diff options
Diffstat (limited to 'protocols/jabber/jabber.c')
| -rw-r--r-- | protocols/jabber/jabber.c | 44 | 
1 files changed, 12 insertions, 32 deletions
| diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c index 132a355c..13eac23e 100644 --- a/protocols/jabber/jabber.c +++ b/protocols/jabber/jabber.c @@ -121,6 +121,7 @@ static int jabber_send_im( struct gaim_connection *gc, char *who, char *message,  	return st;  } +/* TODO: For away state handling, implement some list like the one for MSN. */  static GList *jabber_away_states( struct gaim_connection *gc )  {  	GList *l = NULL; @@ -135,11 +136,19 @@ static GList *jabber_away_states( struct gaim_connection *gc )  static void jabber_set_away( struct gaim_connection *gc, char *state, char *message )  { +	/* For now let's just always set state to "away" and send the message, if available. */ +	presence_send( gc, NULL, g_strcasecmp( state, "Online" ) == 0 ? NULL : "away", message ); +} + +static void jabber_keepalive( struct gaim_connection *gc ) +{ +	/* Just any whitespace character is enough as a keepalive for XMPP sessions. */ +	jabber_write( gc, "\n", 1 );  }  void jabber_init()  { -	struct prpl *ret = g_new0(struct prpl, 1); +	struct prpl *ret = g_new0( struct prpl, 1 );  	ret->name = "jabber";  	ret->login = jabber_login; @@ -157,7 +166,7 @@ void jabber_init()  //	ret->chat_invite = jabber_chat_invite;  //	ret->chat_leave = jabber_chat_leave;  //	ret->chat_open = jabber_chat_open; -//	ret->keepalive = jabber_keepalive; +	ret->keepalive = jabber_keepalive;  //	ret->add_permit = jabber_add_permit;  //	ret->rem_permit = jabber_rem_permit;  //	ret->add_deny = jabber_add_deny; @@ -165,34 +174,5 @@ void jabber_init()  //	ret->send_typing = jabber_send_typing;  	ret->handle_cmp = g_strcasecmp; -	register_protocol(ret); -} - -#if 0 -int main( int argc, char *argv[] ) -{ -	struct xt_parser *xt = xt_new( NULL ); -	struct xt_node *msg; -	int i; -	char buf[512]; -	 -	msg = xt_new_node( "message", NULL, xt_new_node( "body", "blaataap-test", NULL ) ); -	xt_add_child( msg, xt_new_node( "html", NULL, xt_new_node( "body", "<b>blaataap in html</b>", NULL ) ) ); -	xt_add_attr( msg, "xmlns", "jabber:client" ); -	xt_add_attr( xt_find_node( msg->children, "html" ), "xmlns", "html rotte zooi" ); -	printf( "%s\n", xt_to_string( msg ) ); -	 -	while( ( i = read( 0, buf, 512 ) ) > 0 ) -	{ -		if( xt_feed( xt, buf, i ) < 1 ) -			break; -	} -	xt->handlers = jabber_handlers; -	xt_handle( xt, NULL ); -	 -	xt_cleanup( xt, NULL ); -	printf( "%d\n", xt->root ); -	 -	xt_free( xt ); +	register_protocol( ret );  } -#endif | 
