aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/jabber/presence.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/jabber/presence.c')
-rw-r--r--protocols/jabber/presence.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/protocols/jabber/presence.c b/protocols/jabber/presence.c
index 096b4fd5..1310fce3 100644
--- a/protocols/jabber/presence.c
+++ b/protocols/jabber/presence.c
@@ -167,6 +167,7 @@ int presence_send_update( struct im_connection *ic )
struct xt_node *node;
char *show = jd->away_state->code;
char *status = jd->away_message;
+ struct groupchat *c;
int st;
node = jabber_make_packet( "presence", NULL, NULL, NULL );
@@ -178,6 +179,16 @@ int presence_send_update( struct im_connection *ic )
st = jabber_write_packet( ic, node );
+ /* Have to send this update to all groupchats too, the server won't
+ do this automatically. */
+ for( c = ic->groupchats; c && st; c = c->next )
+ {
+ struct jabber_chat *jc = c->data;
+
+ xt_add_attr( node, "to", jc->me->full_jid );
+ st = jabber_write_packet( ic, node );
+ }
+
xt_free_node( node );
return st;
}