Changeset 9bf2481 for protocols/msn/sb.c


Ignore:
Timestamp:
2010-04-09T23:16:38Z (12 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/sb.c

    rc4bc92a r9bf2481  
    168168               
    169169                /* Build the message. Convert LF to CR-LF for normal messages. */
    170                 if( strcmp( text, TYPING_NOTIFICATION_MESSAGE ) != 0 )
    171                 {
    172                         buf = g_new0( char, sizeof( MSN_MESSAGE_HEADERS ) + strlen( text ) * 2 + 1 );
    173                         i = strlen( MSN_MESSAGE_HEADERS );
    174                        
    175                         strcpy( buf, MSN_MESSAGE_HEADERS );
    176                         for( j = 0; text[j]; j ++ )
    177                         {
    178                                 if( text[j] == '\n' )
    179                                         buf[i++] = '\r';
    180                                
    181                                 buf[i++] = text[j];
    182                         }
    183                 }
    184                 else
     170                if( strcmp( text, TYPING_NOTIFICATION_MESSAGE ) == 0 )
    185171                {
    186172                        i = strlen( MSN_TYPING_HEADERS ) + strlen( sb->ic->acc->user );
    187173                        buf = g_new0( char, i );
    188174                        i = g_snprintf( buf, i, MSN_TYPING_HEADERS, sb->ic->acc->user );
     175                }
     176                else if( strcmp( text, SB_KEEPALIVE_MESSAGE ) == 0 )
     177                {
     178                        buf = g_strdup( SB_KEEPALIVE_HEADERS );
     179                        i = strlen( buf );
     180                }
     181                else
     182                {
     183                        buf = g_new0( char, sizeof( MSN_MESSAGE_HEADERS ) + strlen( text ) * 2 + 1 );
     184                        i = strlen( MSN_MESSAGE_HEADERS );
     185                       
     186                        strcpy( buf, MSN_MESSAGE_HEADERS );
     187                        for( j = 0; text[j]; j ++ )
     188                        {
     189                                if( text[j] == '\n' )
     190                                        buf[i++] = '\r';
     191                               
     192                                buf[i++] = text[j];
     193                        }
    189194                }
    190195               
     
    764769        return( 1 );
    765770}
     771
     772gboolean msn_sb_keepalive( gpointer data, gint source, b_input_condition cond )
     773{
     774        struct msn_switchboard *sb = data;
     775        return sb->ready && msn_sb_sendmessage( sb, SB_KEEPALIVE_MESSAGE );
     776}
Note: See TracChangeset for help on using the changeset viewer.