From c6ba84096dacde5b9639e3c984507c01cc278380 Mon Sep 17 00:00:00 2001 From: James Booth Date: Wed, 7 May 2014 21:15:28 +0100 Subject: [PATCH] Added question answer messages for libotr 4.0.0 --- src/otr/otrlibv4.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/otr/otrlibv4.c b/src/otr/otrlibv4.c index d9e7ce01..0bcd779c 100644 --- a/src/otr/otrlibv4.c +++ b/src/otr/otrlibv4.c @@ -127,18 +127,29 @@ cb_handle_smp_event(void *opdata, OtrlSMPEvent smp_event, g_hash_table_insert(smp_initiators, strdup(context->username), strdup(context->username)); break; + case OTRL_SMPEVENT_ASK_FOR_ANSWER: + ui_smp_recipient_initiated_q(context->username, question); + break; + case OTRL_SMPEVENT_SUCCESS: - ui_smp_successful(context->username); - ui_trust(context->username); + if (context->smstate->received_question == 0) { + ui_smp_successful(context->username); + ui_trust(context->username); + } else { + ui_smp_answer_success(context->username); + } break; case OTRL_SMPEVENT_FAILURE: - if (nextMsg == OTRL_SMP_EXPECT3) { - ui_smp_unsuccessful_sender(context->username); - ui_untrust(context->username); - } else if (nextMsg == OTRL_SMP_EXPECT4) { - ui_smp_unsuccessful_receiver(context->username); + if (context->smstate->received_question == 0) { + if (nextMsg == OTRL_SMP_EXPECT3) { + ui_smp_unsuccessful_sender(context->username); + } else if (nextMsg == OTRL_SMP_EXPECT4) { + ui_smp_unsuccessful_receiver(context->username); + } ui_untrust(context->username); + } else { + ui_smp_answer_failure(context->username); } break; @@ -155,9 +166,6 @@ cb_handle_smp_event(void *opdata, OtrlSMPEvent smp_event, ui_untrust(context->username); break; - case OTRL_SMPEVENT_ASK_FOR_ANSWER: - break; - case OTRL_SMPEVENT_IN_PROGRESS: break;