switch(intf->type) {
case INTF_HTTP_AUTH:
if (spamreport_prefs.user[id] && *(spamreport_prefs.user[id])) {
- gchar *pass = password_decrypt(spamreport_prefs.pass[id], NULL);
+ gchar *pass = spamreport_passwd_get(spam_interfaces[id].name);
auth = g_strdup_printf("%s:%s", spamreport_prefs.user[id], (pass != NULL ? pass : ""));
if (pass != NULL) {
memset(pass, 0, strlen(pass));
return VERSION;
}
-void plugin_master_passphrase_change (const gchar *oldp, const gchar *newp)
-{
- spamreport_master_passphrase_change(oldp, newp);
-}
-
struct PluginFeature *plugin_provides(void)
{
static struct PluginFeature features[] =
{
static gchar *path[3];
gchar *rcpath;
+ guint i;
path[0] = _("Plugins");
path[1] = _("SpamReport");
rcpath = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, COMMON_RC, NULL);
prefs_read_config(param, PREFS_BLOCK_NAME, rcpath, NULL);
g_free(rcpath);
-
+
+ /* Move passwords that are still in main config to password store. */
+ for (i = 0; i < INTF_LAST; i++) {
+ if (spamreport_prefs.pass[i] != NULL &&
+ strlen(spamreport_prefs.pass[i]) > 0) {
+ spamreport_passwd_set(spam_interfaces[i].name,
+ spamreport_prefs.pass[i]);
+ }
+ }
+
spamreport_prefs_page.page.path = path;
spamreport_prefs_page.page.create_widget = create_spamreport_prefs_page;
spamreport_prefs_page.page.destroy_widget = destroy_spamreport_prefs_page;
gtk_entry_set_text(GTK_ENTRY(prefs_page->user_entry[i]),
spamreport_prefs.user[i] ? spamreport_prefs.user[i]:"");
- pass = password_decrypt(spamreport_prefs.pass[i], NULL);
+ pass = spamreport_passwd_get(spam_interfaces[i].name);
gtk_entry_set_text(GTK_ENTRY(prefs_page->pass_entry[i]), pass ? pass:"");
if (pass != NULL) {
memset(pass, 0, strlen(pass));
GTK_EDITABLE(prefs_page->user_entry[i]), 0, -1);
pass = gtk_editable_get_chars(GTK_EDITABLE(prefs_page->pass_entry[i]), 0, -1);
- spamreport_prefs.pass[i] = password_encrypt(pass, NULL);
- memset(pass, 0, strlen(pass));
+ if (strlen(pass) > 0) {
+ spamreport_passwd_set(spam_interfaces[i].name, pass);
+ memset(pass, 0, strlen(pass));
+ }
g_free(pass);
}
} else
prefs_file_close(pref_file);
}
-
-void spamreport_master_passphrase_change(const gchar *oldp, const gchar *newp) {
- gchar *pass;
- int i;
-
- for (i = 0; i < INTF_LAST; i++) {
- pass = password_decrypt(spamreport_prefs.pass[i], oldp);
- if (pass != NULL) {
- g_free(spamreport_prefs.pass[i]);
- spamreport_prefs.pass[i] = password_encrypt(pass, newp);
- memset(pass, 0, strlen(pass));
- }
- g_free(pass);
- }
-}
#include <glib.h>
#include "procmsg.h"
+#include "passwordstore.h"
#define SPAM_REPORT_USERAGENT "Claws Mail SpamReport plugin "
void spamreport_prefs_init(void);
void spamreport_prefs_done(void);
-void spamreport_master_passphrase_change(const gchar *oldp, const gchar *newp);
+
+#define spamreport_passwd_set(id, pwd) \
+ passwd_store_set(PWS_PLUGIN, "SpamReport", id, pwd, FALSE)
+#define spamreport_passwd_get(id) \
+ passwd_store_get(PWS_PLUGIN, "SpamReport", id)
#endif