From bb839e8ae5b6228f9dcd8dda96b4e3ac5c0f63ba Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Sat, 10 Apr 2010 02:05:39 +0100 Subject: Be more clever with keepalives; detect when a switchboard is opened with someone who's offline already. Still a hack but it eases the pain a little bit. --- protocols/msn/ns.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) (limited to 'protocols/msn/ns.c') diff --git a/protocols/msn/ns.c b/protocols/msn/ns.c index 1f6f8c74..4056bad7 100644 --- a/protocols/msn/ns.c +++ b/protocols/msn/ns.c @@ -435,25 +435,16 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts ) } else if( strcmp( cmd[0], "FLN" ) == 0 ) { - struct msn_switchboard *sb; - if( cmd[1] == NULL ) return 1; imcb_buddy_status( ic, cmd[1], 0, NULL, NULL ); - if( ( sb = msn_sb_by_handle( ic, cmd[1] ) ) && - set_getbool( &ic->acc->set, "switchboard_keepalives" ) && - sb->keepalive == 0 ) - { - msn_sb_keepalive( sb, 0, 0 ); - sb->keepalive = b_timeout_add( 20000, msn_sb_keepalive, sb ); - } + msn_sb_start_keepalives( msn_sb_by_handle( ic, cmd[1] ), TRUE ); } else if( strcmp( cmd[0], "NLN" ) == 0 ) { const struct msn_away_state *st; - struct msn_switchboard *sb; if( num_parts != 5 ) { @@ -476,11 +467,7 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts ) ( st != msn_away_state_list ? OPT_AWAY : 0 ), st->name, NULL ); - if( ( sb = msn_sb_by_handle( ic, cmd[1] ) ) && sb->keepalive > 0 ) - { - b_event_remove( sb->keepalive ); - sb->keepalive = 0; - } + msn_sb_stop_keepalives( msn_sb_by_handle( ic, cmd[2] ) ); } else if( strcmp( cmd[0], "RNG" ) == 0 ) { -- cgit v1.2.3