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.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/protocols/jabber/presence.c b/protocols/jabber/presence.c
index 8004ed40..75e8786c 100644
--- a/protocols/jabber/presence.c
+++ b/protocols/jabber/presence.c
@@ -53,6 +53,8 @@ xt_status jabber_pkt_presence( struct xt_node *node, gpointer data )
return XT_HANDLED;
}
+/* Send the <presence/> tag that finalizes the whole login process, from here
+ we'll actually show up as online to our buddies. */
int presence_announce( struct gaim_connection *gc )
{
struct xt_node *node;
@@ -68,3 +70,20 @@ int presence_announce( struct gaim_connection *gc )
xt_free_node( node );
return st;
}
+
+int presence_send( struct gaim_connection *gc, char *to, char *show, char *status )
+{
+ struct xt_node *node;
+ int st;
+
+ node = jabber_make_packet( "presence", NULL, to, NULL );
+ if( show )
+ xt_add_child( node, xt_new_node( "show", show, NULL ) );
+ if( status )
+ xt_add_child( node, xt_new_node( "status", status, NULL ) );
+
+ st = jabber_write_packet( gc, node );
+
+ xt_free_node( node );
+ return st;
+}