diff options
Diffstat (limited to 'libsylph/pop.c')
| -rw-r--r-- | libsylph/pop.c | 11 |
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 | ||
| 43 | gint pop3_greeting_recv (Pop3Session *session, | 44 | gint 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 | ||
