about summary refs log tree commit diff stats
path: root/src/xmpp/presence.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-05-01 00:55:58 +0100
committerJames Booth <boothj5@gmail.com>2015-05-01 00:55:58 +0100
commitcade9e7c4c9781afceb4f79f6128d4a67dc4ce9b (patch)
treefde4fbe7ffda6dcc7f3099d99602ec0955c4b8f0 /src/xmpp/presence.c
parent0bd642edf8d943485871082c2678b0662e1dd5db (diff)
parent01181780801a46ecc6996be5b75b2245c1c1b953 (diff)
downloadprofani-tty-cade9e7c4c9781afceb4f79f6128d4a67dc4ce9b.tar.gz
Merge branch 'master' into pgp
Diffstat (limited to 'src/xmpp/presence.c')
-rw-r--r--src/xmpp/presence.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/xmpp/presence.c b/src/xmpp/presence.c
index b4d2d098..6d9ba14e 100644
--- a/src/xmpp/presence.c
+++ b/src/xmpp/presence.c
@@ -44,6 +44,7 @@
 #include "log.h"
 #include "muc.h"
 #include "profanity.h"
+#include "ui/ui.h"
 #include "event/server_events.h"
 #include "xmpp/capabilities.h"
 #include "xmpp/connection.h"
@@ -399,7 +400,10 @@ _presence_error_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
         }
 
         log_info("Error joining room: %s, reason: %s", fulljid->barejid, error_cond);
-        sv_ev_room_join_error(fulljid->barejid, error_cond);
+        if (muc_active(fulljid->barejid)) {
+            muc_leave(fulljid->barejid);
+        }
+        ui_handle_room_join_error(fulljid->barejid, error_cond);
         jid_destroy(fulljid);
         return 1;
     }
@@ -427,7 +431,11 @@ _presence_error_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
 
     g_string_free(log_msg, TRUE);
 
-    sv_ev_presence_error(from, type, err_msg);
+    if (from != NULL) {
+        ui_handle_recipient_error(from, err_msg);
+    } else {
+        ui_handle_error(err_msg);
+    }
 
     free(err_msg);