aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/jabber/presence.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2006-09-21 21:48:17 +0200
committerWilmer van der Gaast <wilmer@gaast.net>2006-09-21 21:48:17 +0200
commitdeff0406d501264e1d91203ea8f91411a150e35f (patch)
treea9baa4d4e9ee49cefedb9c8c398ab1d3fc68422a /protocols/jabber/presence.c
parent5bcf70a662244dc77af09d2fffbe913ec6f19393 (diff)
Implemented set_away() (VERY simple version, have to add an away state
table like in the MSN module), added sending of keepalive "packets" and removed old main() code (for testing only) from jabber.c.
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;
+}