about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-08-26 23:15:10 +0100
committerJames Booth <boothj5@gmail.com>2015-08-26 23:15:10 +0100
commit4b90a53566d2f8b365d5f41b4a1fbc3b97766b7b (patch)
treec2b43ab91aa1dc216fa762ea0b36f769ab1e2a4c /src
parentfc60c9fbf1bc076fe16ef2b1bf3b9c81d00fa61e (diff)
downloadprofani-tty-4b90a53566d2f8b365d5f41b4a1fbc3b97766b7b.tar.gz
Tidied sv_ev_incoming_message
Diffstat (limited to 'src')
-rw-r--r--src/event/server_events.c115
1 files changed, 56 insertions, 59 deletions
diff --git a/src/event/server_events.c b/src/event/server_events.c
index 80e45401..e8d2bbcf 100644
--- a/src/event/server_events.c
+++ b/src/event/server_events.c
@@ -191,6 +191,53 @@ sv_ev_incoming_carbon(char *barejid, char *resource, char *message)
     chat_log_msg_in(barejid, message);
 }
 
+#ifdef HAVE_LIBGPGME
+static void
+_sv_ev_incoming_pgp(ProfChatWin *chatwin, gboolean new_win, char *barejid, char *resource, char *message, char *enc_message)
+{
+    char *decrypted = p_gpg_decrypt(enc_message);
+    if (decrypted) {
+        if (chatwin->enc_mode == PROF_ENC_NONE) {
+            win_println((ProfWin*)chatwin, 0, "PGP encryption enabled.");
+        }
+        ui_incoming_msg(chatwin, resource, decrypted, NULL, new_win, PROF_ENC_PGP);
+        chat_log_pgp_msg_in(barejid, decrypted);
+        chatwin->enc_mode = PROF_ENC_PGP;
+        p_gpg_free_decrypted(decrypted);
+    } else {
+        ui_incoming_msg(chatwin, resource, message, NULL, new_win, PROF_ENC_NONE);
+        chat_log_msg_in(barejid, message);
+        chatwin->enc_mode = PROF_ENC_NONE;
+    }
+}
+#endif
+
+#ifdef HAVE_LIBOTR
+static void
+_sv_ev_incoming_otr(ProfChatWin *chatwin, gboolean new_win, char *barejid, char *resource, char *message)
+{
+    gboolean decrypted = FALSE;
+    char *otr_res = otr_on_message_recv(barejid, resource, message, &decrypted);
+    if (otr_res) {
+        if (decrypted && g_strrstr(otr_res, message) == NULL) {
+            ui_incoming_msg(chatwin, resource, otr_res, NULL, new_win, PROF_ENC_OTR);
+        } else {
+            ui_incoming_msg(chatwin, resource, otr_res, NULL, new_win, PROF_ENC_NONE);
+        }
+        chat_log_otr_msg_in(barejid, otr_res, decrypted);
+        otr_free_message(otr_res);
+    }
+}
+#endif
+
+static void
+_sv_ev_incoming_plain(ProfChatWin *chatwin, gboolean new_win, char *barejid, char *resource, char *message)
+{
+    ui_incoming_msg(chatwin, resource, message, NULL, new_win, PROF_ENC_NONE);
+    chat_log_msg_in(barejid, message);
+    chatwin->enc_mode = PROF_ENC_NONE;
+}
+
 void
 sv_ev_incoming_message(char *barejid, char *resource, char *message, char *enc_message)
 {
@@ -205,44 +252,18 @@ sv_ev_incoming_message(char *barejid, char *resource, char *message, char *enc_m
 // OTR suported, PGP supported
 #ifdef HAVE_LIBOTR
 #ifdef HAVE_LIBGPGME
-    prof_enc_t enc_mode = chatwin->enc_mode;
     if (enc_message) {
-        if (enc_mode == PROF_ENC_OTR) {
+        if (chatwin->enc_mode == PROF_ENC_OTR) {
             win_println((ProfWin*)chatwin, 0, "PGP encrypted message received whilst in OTR session.");
         } else { // PROF_ENC_NONE, PROF_ENC_PGP
-            char *decrypted = p_gpg_decrypt(enc_message);
-            if (decrypted) {
-                if (enc_mode == PROF_ENC_NONE) {
-                    win_println((ProfWin*)chatwin, 0, "PGP encryption enabled.");
-                }
-                ui_incoming_msg(chatwin, resource, decrypted, NULL, new_win, PROF_ENC_PGP);
-                chat_log_pgp_msg_in(barejid, decrypted);
-                chatwin->enc_mode = PROF_ENC_PGP;
-                p_gpg_free_decrypted(decrypted);
-            } else {
-                ui_incoming_msg(chatwin, resource, message, NULL, new_win, PROF_ENC_NONE);
-                chat_log_msg_in(barejid, message);
-                chatwin->enc_mode = PROF_ENC_NONE;
-            }
+            _sv_ev_incoming_pgp(chatwin, new_win, barejid, resource, message, enc_message);
         }
     } else {
-        if (enc_mode == PROF_ENC_PGP) {
+        if (chatwin->enc_mode == PROF_ENC_PGP) {
             win_println((ProfWin*)chatwin, 0, "PGP encryption disabled.");
-            ui_incoming_msg(chatwin, resource, message, NULL, new_win, PROF_ENC_NONE);
-            chat_log_msg_in(barejid, message);
-            chatwin->enc_mode = PROF_ENC_NONE;
+            _sv_ev_incoming_plain(chatwin, new_win, barejid, resource, message);
         } else {
-            gboolean decrypted = FALSE;
-            char *otr_res = otr_on_message_recv(barejid, resource, message, &decrypted);
-            if (otr_res) {
-                if (decrypted && g_strrstr(otr_res, message) == NULL) {
-                    ui_incoming_msg(chatwin, resource, otr_res, NULL, new_win, PROF_ENC_OTR);
-                } else {
-                    ui_incoming_msg(chatwin, resource, otr_res, NULL, new_win, PROF_ENC_NONE);
-                }
-                chat_log_otr_msg_in(barejid, otr_res, decrypted);
-                otr_free_message(otr_res);
-            }
+            _sv_ev_incoming_otr(chatwin, new_win, barejid, resource, message);
         }
     }
     return;
@@ -252,17 +273,7 @@ sv_ev_incoming_message(char *barejid, char *resource, char *message, char *enc_m
 // OTR supported, PGP unsupported
 #ifdef HAVE_LIBOTR
 #ifndef HAVE_LIBGPGME
-    gboolean decrypted = FALSE;
-    char *otr_res = otr_on_message_recv(barejid, resource, message, &decrypted);
-    if (otr_res) {
-        if (decrypted && g_strrstr(otr_res, message) == NULL) {
-            ui_incoming_msg(chatwin, resource, otr_res, NULL, new_win, PROF_ENC_OTR);
-        } else {
-            ui_incoming_msg(chatwin, resource, otr_res, NULL, new_win, PROF_ENC_NONE);
-        }
-        chat_log_otr_msg_in(barejid, otr_res, decrypted);
-        otr_free_message(otr_res);
-    }
+    _sv_ev_incoming_otr(chatwin, new_win, barejid, resource, message);
     return;
 #endif
 #endif
@@ -271,21 +282,9 @@ sv_ev_incoming_message(char *barejid, char *resource, char *message, char *enc_m
 #ifndef HAVE_LIBOTR
 #ifdef HAVE_LIBGPGME
     if (enc_message) {
-        char *decrypted = p_gpg_decrypt(enc_message);
-        if (decrypted) {
-            ui_incoming_msg(chatwin, resource, decrypted, NULL, new_win, PROF_ENC_PGP);
-            chat_log_pgp_msg_in(barejid, decrypted);
-            chatwin->enc_mode = PROF_ENC_PGP;
-            p_gpg_free_decrypted(decrypted);
-        } else {
-            ui_incoming_msg(chatwin, resource, message, NULL, new_win, PROF_ENC_NONE);
-            chat_log_msg_in(barejid, message);
-            chatwin->enc_mode = PROF_ENC_NONE;
-        }
+        _sv_ev_incoming_pgp(chatwin, new_win, barejid, resource, message, enc_message);
     } else {
-        ui_incoming_msg(chatwin, resource, message, NULL, new_win, PROF_ENC_NONE);
-        chat_log_msg_in(barejid, message);
-        chatwin->enc_mode = PROF_ENC_NONE;
+        _sv_ev_incoming_plain(chatwin, new_win, barejid, resource, message);
     }
     return;
 #endif
@@ -294,9 +293,7 @@ sv_ev_incoming_message(char *barejid, char *resource, char *message, char *enc_m
 // OTR unsupported, PGP unsupported
 #ifndef HAVE_LIBOTR
 #ifndef HAVE_LIBGPGME
-    ui_incoming_msg(chatwin, resource, message, NULL, new_win, PROF_ENC_NONE);
-    chat_log_msg_in(barejid, message);
-    chatwin->enc_mode = PROF_ENC_NONE;
+    _sv_ev_incoming_plain(chatwin, new_win, barejid, resource, message);
     return;
 #endif
 #endif