diff options
| author | Simeon Simeonov | 2018-03-19 13:24:40 +0100 |
|---|---|---|
| committer | Simeon Simeonov | 2018-03-19 13:24:40 +0100 |
| commit | 6edeb462320240d981ec307798c7841e50197758 (patch) | |
| tree | 6fe190dce68f9c959a32b45fe43f28248330c36e | |
| parent | f9ccb2ec719299368e454fcfcbc147dd353658aa (diff) | |
Make it possible to set mp. encrypted password from the prefs_account_dialog
| -rw-r--r-- | src/prefs_account_dialog.c | 4 | ||||
| -rw-r--r-- | src/prefs_ui.c | 39 | ||||
| -rw-r--r-- | src/prefs_ui.h | 1 |
3 files changed, 42 insertions, 2 deletions
diff --git a/src/prefs_account_dialog.c b/src/prefs_account_dialog.c index e9cba13..e215b8e 100644 --- a/src/prefs_account_dialog.c +++ b/src/prefs_account_dialog.c | |||
| @@ -267,7 +267,7 @@ static PrefsUIData ui_data[] = { | |||
| 267 | {"user_id", &basic.uid_entry, | 267 | {"user_id", &basic.uid_entry, |
| 268 | prefs_set_data_from_entry, prefs_set_entry}, | 268 | prefs_set_data_from_entry, prefs_set_entry}, |
| 269 | {"password", &basic.pass_entry, | 269 | {"password", &basic.pass_entry, |
| 270 | prefs_set_data_from_entry, prefs_set_entry}, | 270 | prefs_set_data_from_epass_entry, prefs_set_entry}, |
| 271 | 271 | ||
| 272 | /* Receive */ | 272 | /* Receive */ |
| 273 | {"use_apop_auth", &receive.use_apop_chkbtn, | 273 | {"use_apop_auth", &receive.use_apop_chkbtn, |
| @@ -313,7 +313,7 @@ static PrefsUIData ui_data[] = { | |||
| 313 | {"smtp_user_id", &p_send.smtp_uid_entry, | 313 | {"smtp_user_id", &p_send.smtp_uid_entry, |
| 314 | prefs_set_data_from_entry, prefs_set_entry}, | 314 | prefs_set_data_from_entry, prefs_set_entry}, |
| 315 | {"smtp_password", &p_send.smtp_pass_entry, | 315 | {"smtp_password", &p_send.smtp_pass_entry, |
| 316 | prefs_set_data_from_entry, prefs_set_entry}, | 316 | prefs_set_data_from_epass_entry, prefs_set_entry}, |
| 317 | 317 | ||
| 318 | {"pop_before_smtp", &p_send.pop_bfr_smtp_chkbtn, | 318 | {"pop_before_smtp", &p_send.pop_bfr_smtp_chkbtn, |
| 319 | prefs_set_data_from_toggle, prefs_set_toggle}, | 319 | prefs_set_data_from_toggle, prefs_set_toggle}, |
diff --git a/src/prefs_ui.c b/src/prefs_ui.c index a3a8f74..5539f4a 100644 --- a/src/prefs_ui.c +++ b/src/prefs_ui.c | |||
| @@ -36,6 +36,7 @@ | |||
| 36 | #include "codeconv.h" | 36 | #include "codeconv.h" |
| 37 | #include "utils.h" | 37 | #include "utils.h" |
| 38 | #include "gtkutils.h" | 38 | #include "gtkutils.h" |
| 39 | #include "masterpassword.h" | ||
| 39 | 40 | ||
| 40 | typedef enum | 41 | typedef enum |
| 41 | { | 42 | { |
| @@ -268,6 +269,44 @@ void prefs_set_data_from_entry(PrefParam *pparam) | |||
| 268 | } | 269 | } |
| 269 | } | 270 | } |
| 270 | 271 | ||
| 272 | void prefs_set_data_from_epass_entry(PrefParam *pparam) | ||
| 273 | { | ||
| 274 | #if USE_SSL | ||
| 275 | PrefsUIData *ui_data; | ||
| 276 | gchar **str; | ||
| 277 | const gchar *entry_str; | ||
| 278 | |||
| 279 | if (!master_password_active()) { | ||
| 280 | prefs_set_data_from_entry(pparam); | ||
| 281 | return; | ||
| 282 | } | ||
| 283 | |||
| 284 | ui_data = (PrefsUIData *)pparam->ui_data; | ||
| 285 | g_return_if_fail(ui_data != NULL); | ||
| 286 | g_return_if_fail(*ui_data->widget != NULL); | ||
| 287 | |||
| 288 | entry_str = gtk_entry_get_text(GTK_ENTRY(*ui_data->widget)); | ||
| 289 | |||
| 290 | switch (pparam->type) { | ||
| 291 | case P_STRING: | ||
| 292 | str = (gchar **)pparam->data; | ||
| 293 | g_free(*str); | ||
| 294 | if ((entry_str != NULL) && (!mpes_string_prefix(entry_str))) { | ||
| 295 | debug_print("Encrypting GTK password entry\n"); | ||
| 296 | *str = encrypt_with_master_password(entry_str); | ||
| 297 | } else { | ||
| 298 | *str = entry_str[0] ? g_strdup(entry_str) : NULL; | ||
| 299 | } | ||
| 300 | break; | ||
| 301 | default: | ||
| 302 | g_warning("Invalid PrefType for GtkEntry widget: %d\n", | ||
| 303 | pparam->type); | ||
| 304 | } | ||
| 305 | #else | ||
| 306 | prefs_set_data_from_entry(pparam); | ||
| 307 | #endif | ||
| 308 | } | ||
| 309 | |||
| 271 | void prefs_set_entry(PrefParam *pparam) | 310 | void prefs_set_entry(PrefParam *pparam) |
| 272 | { | 311 | { |
| 273 | PrefsUIData *ui_data; | 312 | PrefsUIData *ui_data; |
diff --git a/src/prefs_ui.h b/src/prefs_ui.h index cfdf353..f7bd903 100644 --- a/src/prefs_ui.h +++ b/src/prefs_ui.h | |||
| @@ -164,6 +164,7 @@ void prefs_set_data_from_dialog (PrefParam *param); | |||
| 164 | void prefs_set_dialog_to_default(PrefParam *param); | 164 | void prefs_set_dialog_to_default(PrefParam *param); |
| 165 | 165 | ||
| 166 | void prefs_set_data_from_entry (PrefParam *pparam); | 166 | void prefs_set_data_from_entry (PrefParam *pparam); |
| 167 | void prefs_set_data_from_epass_entry(PrefParam *pparam); | ||
| 167 | void prefs_set_entry (PrefParam *pparam); | 168 | void prefs_set_entry (PrefParam *pparam); |
| 168 | void prefs_set_data_from_text (PrefParam *pparam); | 169 | void prefs_set_data_from_text (PrefParam *pparam); |
| 169 | void prefs_set_text (PrefParam *pparam); | 170 | void prefs_set_text (PrefParam *pparam); |
