diff options
author | James Booth <boothj5@gmail.com> | 2014-05-07 20:41:05 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2014-05-07 20:41:05 +0100 |
commit | 1e4fc2ce793a418317b8adc929fc4a349d79fb15 (patch) | |
tree | 0ef2552285c2e7d260d0bb8b17fadde90f2a0b17 | |
parent | 9fd9871ee908088db4209d6ecc3b4a90d8cfbf8c (diff) | |
download | profani-tty-1e4fc2ce793a418317b8adc929fc4a349d79fb15.tar.gz |
Added UI messages for smp question/answer result
-rw-r--r-- | src/otr/otrlibv3.c | 10 | ||||
-rw-r--r-- | src/ui/core.c | 32 | ||||
-rw-r--r-- | src/ui/ui.h | 3 |
3 files changed, 41 insertions, 4 deletions
diff --git a/src/otr/otrlibv3.c b/src/otr/otrlibv3.c index 92ca3602..619e35cd 100644 --- a/src/otr/otrlibv3.c +++ b/src/otr/otrlibv3.c @@ -162,11 +162,15 @@ otrlib_handle_tlvs(OtrlUserState user_state, OtrlMessageAppOps *ops, ConnContext if ((context->active_fingerprint->trust != NULL) && (context->active_fingerprint->trust[0] != '\0')) { ui_smp_successful(context->username); ui_trust(context->username); - otr_trust(context->username); } else { ui_smp_unsuccessful_sender(context->username); ui_untrust(context->username); - otr_untrust(context->username); + } + } else { + if (context->smstate->sm_prog_state == OTRL_SMP_PROG_SUCCEEDED) { + ui_smp_answer_success(context->username); + } else { + ui_smp_answer_failure(context->username); } } } @@ -180,11 +184,9 @@ otrlib_handle_tlvs(OtrlUserState user_state, OtrlMessageAppOps *ops, ConnContext if ((context->active_fingerprint->trust != NULL) && (context->active_fingerprint->trust[0] != '\0')) { ui_smp_successful(context->username); ui_trust(context->username); - otr_trust(context->username); } else { ui_smp_unsuccessful_receiver(context->username); ui_untrust(context->username); - otr_untrust(context->username); } } } diff --git a/src/ui/core.c b/src/ui/core.c index bc4a9587..4bccf5d5 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -878,6 +878,36 @@ _ui_smp_successful(const char * const recipient) } static void +_ui_smp_answer_success(const char * const recipient) +{ + ProfWin *window = wins_get_by_recipient(recipient); + if (window == NULL) { + return; + } else { + win_vprint_line(window, '!', 0, "%s successfully authenticated you.", recipient); + win_update_virtual(window); + if (wins_is_current(window)) { + ui_current_page_off(); + } + } +} + +static void +_ui_smp_answer_failure(const char * const recipient) +{ + ProfWin *window = wins_get_by_recipient(recipient); + if (window == NULL) { + return; + } else { + win_vprint_line(window, '!', 0, "%s failed to authenticated you.", recipient); + win_update_virtual(window); + if (wins_is_current(window)) { + ui_current_page_off(); + } + } +} + +static void _ui_gone_insecure(const char * const recipient) { ProfWin *window = wins_get_by_recipient(recipient); @@ -2112,6 +2142,8 @@ ui_init_module(void) ui_smp_unsuccessful_sender = _ui_smp_unsuccessful_sender; ui_smp_unsuccessful_receiver = _ui_smp_unsuccessful_receiver; ui_smp_aborted = _ui_smp_aborted; + ui_smp_answer_success = _ui_smp_answer_success; + ui_smp_answer_failure = _ui_smp_answer_failure; ui_chat_win_contact_online = _ui_chat_win_contact_online; ui_chat_win_contact_offline = _ui_chat_win_contact_offline; ui_handle_recipient_not_found = _ui_handle_recipient_not_found; diff --git a/src/ui/ui.h b/src/ui/ui.h index 5e850c6c..c4d42939 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -71,6 +71,9 @@ void (*ui_smp_unsuccessful_sender)(const char * const recipient); void (*ui_smp_unsuccessful_receiver)(const char * const recipient); void (*ui_smp_aborted)(const char * const recipient); +void (*ui_smp_answer_success)(const char * const recipient); +void (*ui_smp_answer_failure)(const char * const recipient); + unsigned long (*ui_get_idle_time)(void); void (*ui_reset_idle_time)(void); void (*ui_new_chat_win)(const char * const to); |