about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/event/server_events.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/event/server_events.c b/src/event/server_events.c
index b496e3e2..85c0e6ca 100644
--- a/src/event/server_events.c
+++ b/src/event/server_events.c
@@ -273,20 +273,21 @@ sv_ev_room_history(const char *const room_jid, const char *const nick,
     GDateTime *timestamp, const char *const message)
 {
     ProfMucWin *mucwin = wins_get_muc(room_jid);
-
-    // if this is the first successful connection
-    if (_success_connections_counter == 1) {
-        // save timestamp of last received muc message
-        // so we dont display, if there was no activity in channel, once we reconnect
-        if (_last_muc_message) {
-            g_date_time_unref(_last_muc_message);
+    if (mucwin) {
+        // if this is the first successful connection
+        if (_success_connections_counter == 1) {
+            // save timestamp of last received muc message
+            // so we dont display, if there was no activity in channel, once we reconnect
+            if (_last_muc_message) {
+                g_date_time_unref(_last_muc_message);
+            }
+            _last_muc_message  = g_date_time_new_now_local();
         }
-        _last_muc_message  = g_date_time_new_now_local();
-    }
 
-    gboolean younger = g_date_time_compare(_last_muc_message, timestamp) < 0 ? TRUE : FALSE;
-    if (mucwin && (_success_connections_counter == 1 || younger )) {
-        mucwin_history(mucwin, nick, timestamp, message);
+        gboolean younger = g_date_time_compare(_last_muc_message, timestamp) < 0 ? TRUE : FALSE;
+        if (_success_connections_counter == 1 || younger ) {
+            mucwin_history(mucwin, nick, timestamp, message);
+        }
     }
 }