diff options
author | James Booth <boothj5@gmail.com> | 2015-04-27 23:30:33 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-04-27 23:30:33 +0100 |
commit | 70d1756a1cf380a75d4e4191670787e5dc6bf182 (patch) | |
tree | 18cdcfdba673e5d9f88745bc8e7bd329787e8dc4 /src | |
parent | eb177ccbefe24732dc1c0a127d1720f1809e53e5 (diff) | |
download | profani-tty-70d1756a1cf380a75d4e4191670787e5dc6bf182.tar.gz |
Moved otr message send event to otr module
Diffstat (limited to 'src')
-rw-r--r-- | src/event/client_events.c | 36 | ||||
-rw-r--r-- | src/otr/otr.c | 37 | ||||
-rw-r--r-- | src/otr/otr.h | 3 |
3 files changed, 43 insertions, 33 deletions
diff --git a/src/event/client_events.c b/src/event/client_events.c index 2a1d349a..2aa66d08 100644 --- a/src/event/client_events.c +++ b/src/event/client_events.c @@ -62,44 +62,14 @@ client_connect_account(ProfAccount *account) void client_send_msg(const char * const barejid, const char * const msg) { - char *id = NULL; - #ifdef HAVE_LIBOTR - prof_otrpolicy_t policy = otr_get_policy(barejid); - - if (otr_is_secure(barejid)) { - char *encrypted = otr_encrypt_message(barejid, msg); - if (encrypted != NULL) { - id = message_send_chat_encrypted(barejid, encrypted); - chat_log_otr_msg_out(barejid, msg); - ui_outgoing_chat_msg(barejid, msg, id); - otr_free_message(encrypted); - } else { - cons_show_error("Failed to encrypt and send message."); - } - - } else if (policy == PROF_OTRPOLICY_ALWAYS) { - cons_show_error("Failed to send message. Please check OTR policy"); - - } else if (policy == PROF_OTRPOLICY_OPPORTUNISTIC) { - char *otr_tagged_msg = otr_tag_message(msg); - id = message_send_chat_encrypted(barejid, otr_tagged_msg); - ui_outgoing_chat_msg(barejid, msg, id); - chat_log_msg_out(barejid, msg); - free(otr_tagged_msg); - - } else { - id = message_send_chat(barejid, msg); - ui_outgoing_chat_msg(barejid, msg, id); - chat_log_msg_out(barejid, msg); - } + otr_on_message_send(barejid, msg); #else - id = message_send_chat(barejid, msg); + char *id = message_send_chat(barejid, msg); chat_log_msg_out(barejid, msg); ui_outgoing_chat_msg(barejid, msg, id); -#endif - free(id); +#endif } void diff --git a/src/otr/otr.c b/src/otr/otr.c index 70bf9761..c8518c70 100644 --- a/src/otr/otr.c +++ b/src/otr/otr.c @@ -314,6 +314,43 @@ otr_on_message_recv(const char * const barejid, const char * const resource, con } void +otr_on_message_send(const char * const barejid, const char * const message) +{ + char *id = NULL; + + prof_otrpolicy_t policy = otr_get_policy(barejid); + + if (otr_is_secure(barejid)) { + char *encrypted = otr_encrypt_message(barejid, message); + if (encrypted != NULL) { + id = message_send_chat_encrypted(barejid, encrypted); + chat_log_otr_msg_out(barejid, message); + ui_outgoing_chat_msg(barejid, message, id); + otr_free_message(encrypted); + } else { + cons_show_error("Failed to encrypt and send message."); + } + + } else if (policy == PROF_OTRPOLICY_ALWAYS) { + cons_show_error("Failed to send message. Please check OTR policy"); + + } else if (policy == PROF_OTRPOLICY_OPPORTUNISTIC) { + char *otr_tagged_msg = otr_tag_message(message); + id = message_send_chat_encrypted(barejid, otr_tagged_msg); + ui_outgoing_chat_msg(barejid, message, id); + chat_log_msg_out(barejid, message); + free(otr_tagged_msg); + + } else { + id = message_send_chat(barejid, message); + ui_outgoing_chat_msg(barejid, message, id); + chat_log_msg_out(barejid, message); + } + + free(id); +} + +void otr_keygen(ProfAccount *account) { if (data_loaded) { diff --git a/src/otr/otr.h b/src/otr/otr.h index 8eb322ed..8e1d22df 100644 --- a/src/otr/otr.h +++ b/src/otr/otr.h @@ -56,7 +56,10 @@ char* otr_libotr_version(void); char* otr_start_query(void); void otr_poll(void); void otr_on_connect(ProfAccount *account); + void otr_on_message_recv(const char * const barejid, const char * const resource, const char * const message); +void otr_on_message_send(const char * const barejid, const char * const message); + void otr_keygen(ProfAccount *account); char* otr_tag_message(const char * const msg); |