diff options
author | James Booth <boothj5@gmail.com> | 2015-10-27 22:25:02 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-10-27 22:25:26 +0000 |
commit | ff9abecd509f3a1d1f857a736dda28da9e94ad69 (patch) | |
tree | 8c64e07941789b2aa5dcebcc13908af3531cbb36 /src/ui | |
parent | 40dcd597270c375ff2d0abc36554f6436f406a03 (diff) | |
download | profani-tty-ff9abecd509f3a1d1f857a736dda28da9e94ad69.tar.gz |
Combined chatwin OTR SMP functions
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/chatwin.c | 122 | ||||
-rw-r--r-- | src/ui/ui.h | 16 | ||||
-rw-r--r-- | src/ui/window.c | 12 |
3 files changed, 57 insertions, 93 deletions
diff --git a/src/ui/chatwin.c b/src/ui/chatwin.c index 004a24bd..7921e559 100644 --- a/src/ui/chatwin.c +++ b/src/ui/chatwin.c @@ -102,89 +102,51 @@ chatwin_otr_unsecured(ProfChatWin *chatwin) } void -chatwin_otr_smp_init(ProfChatWin *chatwin) +chatwin_otr_smp_event(ProfChatWin *chatwin, prof_otr_smp_event_t event, void *data) { assert(chatwin != NULL); - win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", - "%s wants to authenticate your identity, use '/otr secret <secret>'.", chatwin->barejid); -} - -void -chatwin_otr_smp_init_q(ProfChatWin *chatwin, const char *question) -{ - assert(chatwin != NULL); - - win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", - "%s wants to authenticate your identity with the following question:", chatwin->barejid); - win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", " %s", question); - win_print((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "use '/otr answer <answer>'."); -} - -void -chatwin_otr_smp_sender_failed(ProfChatWin *chatwin) -{ - assert(chatwin != NULL); - - win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", - "Authentication failed, the secret you entered does not match the secret entered by %s.", chatwin->barejid); -} - -void -chatwin_otr_smp_receiver_failed(ProfChatWin *chatwin) -{ - assert(chatwin != NULL); - - win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", - "Authentication failed, the secret entered by %s does not match yours.", chatwin->barejid); -} - -void -chatwin_otr_smp_aborted(ProfChatWin *chatwin) -{ - assert(chatwin != NULL); - - win_print((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "SMP session aborted."); -} - -void -chatwin_otr_smp_success(ProfChatWin *chatwin) -{ - assert(chatwin != NULL); - - win_print((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "Authentication successful."); -} - -void -chatwin_otr_smp_answer_success(ProfChatWin *chatwin) -{ - assert(chatwin != NULL); - - win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "%s successfully authenticated you.", chatwin->barejid); -} - -void -chatwin_otr_smp_answer_failure(ProfChatWin *chatwin) -{ - assert(chatwin != NULL); - - win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "%s failed to authenticate you.", chatwin->barejid); -} - -void -chatwin_otr_smp_authenticating(ProfChatWin *chatwin) -{ - assert(chatwin != NULL); - - win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "Authenticating %s...", chatwin->barejid); -} - -void -chatwin_otr_smp_authenticaton_wait(ProfChatWin *chatwin) -{ - assert(chatwin != NULL); - - win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "Awaiting authentication from %s...", chatwin->barejid); + switch (event) { + case PROF_OTR_SMP_INIT: + win_vprintln_ch((ProfWin*)chatwin, '!', + "%s wants to authenticate your identity, use '/otr secret <secret>'.", chatwin->barejid); + break; + case PROF_OTR_SMP_INIT_Q: + win_vprintln_ch((ProfWin*)chatwin, '!', + "%s wants to authenticate your identity with the following question:", chatwin->barejid); + win_vprintln_ch((ProfWin*)chatwin, '!', " %s", (char*)data); + win_vprintln_ch((ProfWin*)chatwin, '!', "use '/otr answer <answer>'."); + break; + case PROF_OTR_SMP_SENDER_FAIL: + win_vprintln_ch((ProfWin*)chatwin, '!', + "Authentication failed, the secret you entered does not match the secret entered by %s.", + chatwin->barejid); + break; + case PROF_OTR_SMP_RECEIVER_FAIL: + win_vprintln_ch((ProfWin*)chatwin, '!', + "Authentication failed, the secret entered by %s does not match yours.", chatwin->barejid); + break; + case PROF_OTR_SMP_ABORT: + win_vprintln_ch((ProfWin*)chatwin, '!', "SMP session aborted."); + break; + case PROF_OTR_SMP_SUCCESS: + win_vprintln_ch((ProfWin*)chatwin, '!', "Authentication successful."); + break; + case PROF_OTR_SMP_SUCCESS_Q: + win_vprintln_ch((ProfWin*)chatwin, '!', "%s successfully authenticated you.", chatwin->barejid); + break; + case PROF_OTR_SMP_FAIL_Q: + win_vprintln_ch((ProfWin*)chatwin, '!', "%s failed to authenticate you.", chatwin->barejid); + break; + case PROF_OTR_SMP_AUTH: + win_vprintln_ch((ProfWin*)chatwin, '!', "Authenticating %s...", chatwin->barejid); + break; + case PROF_OTR_SMP_AUTH_WAIT: + win_vprintln_ch((ProfWin*)chatwin, '!', "Awaiting authentication from %s...", chatwin->barejid); + break; + default: + break; + } } void diff --git a/src/ui/ui.h b/src/ui/ui.h index eed77ba7..5e634438 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -38,6 +38,7 @@ #include "command/commands.h" #include "ui/win_types.h" #include "muc.h" +#include "otr/otr.h" #define NO_ME 1 #define NO_DATE 2 @@ -66,19 +67,7 @@ void chatwin_otr_secured(ProfChatWin *chatwin, gboolean trusted); void chatwin_otr_unsecured(ProfChatWin *chatwin); void chatwin_otr_trust(ProfChatWin *chatwin); void chatwin_otr_untrust(ProfChatWin *chatwin); -void chatwin_otr_smp_init(ProfChatWin *chatwin); -void chatwin_otr_smp_init_q(ProfChatWin *chatwin, const char *question); - -void chatwin_otr_smp_success(ProfChatWin *chatwin); -void chatwin_otr_smp_sender_failed(ProfChatWin *chatwin); -void chatwin_otr_smp_receiver_failed(ProfChatWin *chatwin); -void chatwin_otr_smp_aborted(ProfChatWin *chatwin); - -void chatwin_otr_smp_answer_success(ProfChatWin *chatwin); -void chatwin_otr_smp_answer_failure(ProfChatWin *chatwin); - -void chatwin_otr_smp_authenticating(ProfChatWin *chatwin); -void chatwin_otr_smp_authenticaton_wait(ProfChatWin *chatwin); +void chatwin_otr_smp_event(ProfChatWin *chatwin, prof_otr_smp_event_t event, void *data); void ui_handle_otr_error(const char *const barejid, const char *const message); @@ -372,6 +361,7 @@ void win_show_occupant_info(ProfWin *window, const char *const room, Occupant *o void win_show_contact(ProfWin *window, PContact contact); void win_show_info(ProfWin *window, PContact contact); void win_println(ProfWin *window, int pad, const char *const message); +void win_vprintln_ch(ProfWin *window, char ch, const char *const message, ...); // desktop notifier actions void notifier_initialise(void); diff --git a/src/ui/window.c b/src/ui/window.c index 2b3a9c54..24baa63a 100644 --- a/src/ui/window.c +++ b/src/ui/window.c @@ -964,6 +964,18 @@ win_println(ProfWin *window, int pad, const char *const message) } void +win_vprintln_ch(ProfWin *window, char ch, const char *const message, ...) +{ + va_list arg; + va_start(arg, message); + GString *fmt_msg = g_string_new(NULL); + g_string_vprintf(fmt_msg, message, arg); + win_print(window, ch, 0, NULL, 0, 0, "", fmt_msg->str); + g_string_free(fmt_msg, TRUE); + va_end(arg); +} + +void win_newline(ProfWin *window) { win_print(window, '-', 0, NULL, NO_DATE, 0, "", ""); |