summaryrefslogtreecommitdiff
path: root/libsylph/pop.c
diff options
context:
space:
mode:
Diffstat (limited to 'libsylph/pop.c')
-rw-r--r--libsylph/pop.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libsylph/pop.c b/libsylph/pop.c
index 8cb7f5c..a387f5e 100644
--- a/libsylph/pop.c
+++ b/libsylph/pop.c
@@ -39,6 +39,7 @@
39#include "prefs_account.h" 39#include "prefs_account.h"
40#include "utils.h" 40#include "utils.h"
41#include "recv.h" 41#include "recv.h"
42#include "masterpassword.h"
42 43
43gint pop3_greeting_recv (Pop3Session *session, 44gint pop3_greeting_recv (Pop3Session *session,
44 const gchar *msg); 45 const gchar *msg);
@@ -437,8 +438,14 @@ Session *pop3_session_new(PrefsAccount *account)
437 session->error_msg = NULL; 438 session->error_msg = NULL;
438 439
439 session->user = g_strdup(account->userid); 440 session->user = g_strdup(account->userid);
440 session->pass = account->passwd ? g_strdup(account->passwd) : 441 if (master_password_active()) {
441 account->tmp_pass ? g_strdup(account->tmp_pass) : NULL; 442 session->pass = account->passwd ? decrypt_with_master_password(
443 account->passwd) : account->tmp_pass ? g_strdup(
444 account->tmp_pass) : NULL;
445 } else {
446 session->pass = account->passwd ? g_strdup(account->passwd) :
447 account->tmp_pass ? g_strdup(account->tmp_pass) : NULL;
448 }
442 449
443 SESSION(session)->server = g_strdup(account->recv_server); 450 SESSION(session)->server = g_strdup(account->recv_server);
444 451