diff options
author | James Booth <boothj5@gmail.com> | 2014-04-30 22:41:53 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2014-04-30 22:41:53 +0100 |
commit | eaa19598c1fa6fdc168e6cce12c56f348c26a227 (patch) | |
tree | f0af40c48cea3f62981d532283593ccb0a568210 | |
parent | 8994b3769c4b1af94b557e443339f845f8b9a9fd (diff) | |
download | profani-tty-eaa19598c1fa6fdc168e6cce12c56f348c26a227.tar.gz |
Added ui functions for otr authentication
-rw-r--r-- | src/otr/otr.c | 6 | ||||
-rw-r--r-- | src/ui/core.c | 32 | ||||
-rw-r--r-- | src/ui/ui.h | 3 |
3 files changed, 37 insertions, 4 deletions
diff --git a/src/otr/otr.c b/src/otr/otr.c index 7fe3757f..2ad8e752 100644 --- a/src/otr/otr.c +++ b/src/otr/otr.c @@ -442,13 +442,11 @@ _otr_smp_secret(const char * const recipient, const char *secret) // if recipient initiated SMP, send response, else initialise if (g_hash_table_contains(smp_initiators, recipient)) { otrl_message_respond_smp(user_state, &ops, NULL, context, (const unsigned char*)secret, strlen(secret)); - ui_current_print_formatted_line('!', 0, "Authenticating %s...", recipient); - ui_current_page_off(); + ui_otr_authenticating(recipient); g_hash_table_remove(smp_initiators, context->username); } else { otrl_message_initiate_smp(user_state, &ops, NULL, context, (const unsigned char*)secret, strlen(secret)); - ui_current_print_formatted_line('!', 0, "Awaiting authentication from %s...", recipient); - ui_current_page_off(); + ui_otr_authetication_waiting(recipient); } } diff --git a/src/ui/core.c b/src/ui/core.c index 400f8a7f..987d8570 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -1055,6 +1055,36 @@ _ui_current_set_otr(gboolean value) current->is_otr = value; } +static void +_ui_otr_authenticating(const char * const recipient) +{ + ProfWin *window = wins_get_by_recipient(recipient); + if (window == NULL) { + return; + } else { + win_vprint_line(window, '!', 0, "Authenticating %s...", recipient); + win_update_virtual(window); + if (wins_is_current(window)) { + ui_current_page_off(); + } + } +} + +static void +_ui_otr_authetication_waiting(const char * const recipient) +{ + ProfWin *window = wins_get_by_recipient(recipient); + if (window == NULL) { + return; + } else { + win_vprint_line(window, '!', 0, "Awaiting authentication from %s...", recipient); + win_update_virtual(window); + if (wins_is_current(window)) { + ui_current_page_off(); + } + } +} + static int _ui_current_win_index(void) { @@ -2053,6 +2083,8 @@ ui_init_module(void) ui_ask_password = _ui_ask_password; ui_current_win_is_otr = _ui_current_win_is_otr; ui_current_set_otr = _ui_current_set_otr; + ui_otr_authenticating = _ui_otr_authenticating; + ui_otr_authetication_waiting = _ui_otr_authetication_waiting; ui_gone_secure = _ui_gone_secure; ui_gone_insecure = _ui_gone_insecure; ui_trust = _ui_trust; diff --git a/src/ui/ui.h b/src/ui/ui.h index 6853e0c7..9bf07fd1 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -92,6 +92,9 @@ void (*ui_current_error_line)(const char * const msg); void (*ui_current_page_off)(void); void (*ui_current_update_virtual)(void); +void (*ui_otr_authenticating)(const char * const recipient); +void (*ui_otr_authetication_waiting)(const char * const recipient); + win_type_t (*ui_win_type)(int index); char * (*ui_recipient)(int index); void (*ui_close_win)(int index); |