Changeset 9bf2481 for protocols/msn/ns.c


Ignore:
Timestamp:
2010-04-09T23:16:38Z (14 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
bb839e8
Parents:
c4bc92a
Message:

First stab at MSN keepalives.

Only kicks in if the user goes offline during a conversation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/msn/ns.c

    rc4bc92a r9bf2481  
    436436        else if( strcmp( cmd[0], "FLN" ) == 0 )
    437437        {
    438                 if( cmd[1] )
    439                         imcb_buddy_status( ic, cmd[1], 0, NULL, NULL );
     438                struct msn_switchboard *sb;
     439               
     440                if( cmd[1] == NULL )
     441                        return 1;
     442               
     443                imcb_buddy_status( ic, cmd[1], 0, NULL, NULL );
     444               
     445                if( ( sb = msn_sb_by_handle( ic, cmd[1] ) ) &&
     446                    set_getbool( &ic->acc->set, "switchboard_keepalives" ) &&
     447                    sb->keepalive == 0 )
     448                {
     449                        msn_sb_keepalive( sb, 0, 0 );
     450                        sb->keepalive = b_timeout_add( 20000, msn_sb_keepalive, sb );
     451                }
    440452        }
    441453        else if( strcmp( cmd[0], "NLN" ) == 0 )
    442454        {
    443455                const struct msn_away_state *st;
     456                struct msn_switchboard *sb;
    444457               
    445458                if( num_parts != 5 )
     
    463476                                   ( st != msn_away_state_list ? OPT_AWAY : 0 ),
    464477                                   st->name, NULL );
     478               
     479                if( ( sb = msn_sb_by_handle( ic, cmd[1] ) ) && sb->keepalive > 0 )
     480                {
     481                        b_event_remove( sb->keepalive );
     482                        sb->keepalive = 0;
     483                }
    465484        }
    466485        else if( strcmp( cmd[0], "RNG" ) == 0 )
Note: See TracChangeset for help on using the changeset viewer.