about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/chat_session.c10
-rw-r--r--src/chat_session.h1
-rw-r--r--src/xmpp/message.c6
3 files changed, 12 insertions, 5 deletions
diff --git a/src/chat_session.c b/src/chat_session.c
index dfe2aac9..5aa37d4b 100644
--- a/src/chat_session.c
+++ b/src/chat_session.c
@@ -278,6 +278,16 @@ chat_session_on_message_send(const char * const barejid)
 }
 
 void
+chat_session_on_incoming_message(const char * const barejid, gboolean recipient_supports)
+{
+    if (!chat_session_exists(barejid)) {
+        chat_session_new(barejid, recipient_supports);
+    } else {
+        chat_session_set_recipient_supports(barejid, recipient_supports);
+    }
+}
+
+void
 chat_session_on_window_open(const char * const barejid)
 {
     if (prefs_get_boolean(PREF_STATES)) {
diff --git a/src/chat_session.h b/src/chat_session.h
index 53923438..7f0a0e44 100644
--- a/src/chat_session.h
+++ b/src/chat_session.h
@@ -58,5 +58,6 @@ void chat_session_set_sent(const char * const recipient);
 gboolean chat_session_get_sent(const char * const recipient);
 gboolean chat_session_on_message_send(const char * const barejid);
 void chat_session_on_window_open(const char * const barejid);
+void chat_session_on_incoming_message(const char * const barejid, gboolean recipient_supports);
 
 #endif
diff --git a/src/xmpp/message.c b/src/xmpp/message.c
index 2cf7c4d3..35a4ae05 100644
--- a/src/xmpp/message.c
+++ b/src/xmpp/message.c
@@ -459,11 +459,7 @@ _chat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
         }
 
         // create or update chat session
-        if (!chat_session_exists(jid->barejid)) {
-            chat_session_new(jid->barejid, recipient_supports);
-        } else {
-            chat_session_set_recipient_supports(jid->barejid, recipient_supports);
-        }
+        chat_session_on_incoming_message(jid->barejid, recipient_supports);
 
         // determine if the notifications happened whilst offline
         GTimeVal tv_stamp;