1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-02-02 15:08:15 -05:00

Added UI messages for smp question/answer result

This commit is contained in:
James Booth 2014-05-07 20:41:05 +01:00
parent 9fd9871ee9
commit 1e4fc2ce79
3 changed files with 41 additions and 4 deletions

View File

@ -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')) { if ((context->active_fingerprint->trust != NULL) && (context->active_fingerprint->trust[0] != '\0')) {
ui_smp_successful(context->username); ui_smp_successful(context->username);
ui_trust(context->username); ui_trust(context->username);
otr_trust(context->username);
} else { } else {
ui_smp_unsuccessful_sender(context->username); ui_smp_unsuccessful_sender(context->username);
ui_untrust(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')) { if ((context->active_fingerprint->trust != NULL) && (context->active_fingerprint->trust[0] != '\0')) {
ui_smp_successful(context->username); ui_smp_successful(context->username);
ui_trust(context->username); ui_trust(context->username);
otr_trust(context->username);
} else { } else {
ui_smp_unsuccessful_receiver(context->username); ui_smp_unsuccessful_receiver(context->username);
ui_untrust(context->username); ui_untrust(context->username);
otr_untrust(context->username);
} }
} }
} }

View File

@ -877,6 +877,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 static void
_ui_gone_insecure(const char * const recipient) _ui_gone_insecure(const char * const recipient)
{ {
@ -2112,6 +2142,8 @@ ui_init_module(void)
ui_smp_unsuccessful_sender = _ui_smp_unsuccessful_sender; ui_smp_unsuccessful_sender = _ui_smp_unsuccessful_sender;
ui_smp_unsuccessful_receiver = _ui_smp_unsuccessful_receiver; ui_smp_unsuccessful_receiver = _ui_smp_unsuccessful_receiver;
ui_smp_aborted = _ui_smp_aborted; 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_online = _ui_chat_win_contact_online;
ui_chat_win_contact_offline = _ui_chat_win_contact_offline; ui_chat_win_contact_offline = _ui_chat_win_contact_offline;
ui_handle_recipient_not_found = _ui_handle_recipient_not_found; ui_handle_recipient_not_found = _ui_handle_recipient_not_found;

View File

@ -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_unsuccessful_receiver)(const char * const recipient);
void (*ui_smp_aborted)(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); unsigned long (*ui_get_idle_time)(void);
void (*ui_reset_idle_time)(void); void (*ui_reset_idle_time)(void);
void (*ui_new_chat_win)(const char * const to); void (*ui_new_chat_win)(const char * const to);