about summary refs log tree commit diff stats
path: root/src/xmpp_presence.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmpp_presence.c')
-rw-r--r--src/xmpp_presence.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/xmpp_presence.c b/src/xmpp_presence.c
index 125e1400..190484ac 100644
--- a/src/xmpp_presence.c
+++ b/src/xmpp_presence.c
@@ -141,7 +141,7 @@ presence_leave_chat_room(const char * const room_jid)
 }
 
 void
-presence_update(jabber_presence_t status, const char * const msg,
+presence_update(jabber_presence_t presence_type, const char * const msg,
     int idle)
 {
     xmpp_ctx_t *ctx = jabber_get_ctx();
@@ -157,10 +157,11 @@ presence_update(jabber_presence_t status, const char * const msg,
     if (pri < JABBER_PRIORITY_MIN || pri > JABBER_PRIORITY_MAX)
         pri = 0;
 
-    jabber_conn_set_presence(status);
+    jabber_conn_set_presence_type(presence_type);
+    jabber_conn_set_presence_message(msg);
     jabber_conn_set_priority(pri);
 
-    switch(status)
+    switch(presence_type)
     {
         case PRESENCE_AWAY:
             show = STANZA_TEXT_AWAY;
@@ -184,9 +185,10 @@ presence_update(jabber_presence_t status, const char * const msg,
             break;
     }
 
-    jabber_conn_set_status(msg);
 
     xmpp_stanza_t *presence = stanza_create_presence(ctx, show, msg);
+
+    // servers must treat no priority as 0
     if (pri != 0) {
         xmpp_stanza_t *priority, *value;
         char pri_str[10];