Changeset efbc154 for protocols/msn/sb.c
- Timestamp:
- 2010-04-16T09:58:22Z (15 years ago)
- Branches:
- master
- Children:
- 0f84234
- Parents:
- b6190ca (diff), bb839e8 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/msn/sb.c
rb6190ca refbc154 168 168 169 169 /* Build the message. Convert LF to CR-LF for normal messages. */ 170 if( strcmp( text, TYPING_NOTIFICATION_MESSAGE ) != 0 ) 170 if( strcmp( text, TYPING_NOTIFICATION_MESSAGE ) == 0 ) 171 { 172 i = strlen( MSN_TYPING_HEADERS ) + strlen( sb->ic->acc->user ); 173 buf = g_new0( char, i ); 174 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 171 182 { 172 183 buf = g_new0( char, sizeof( MSN_MESSAGE_HEADERS ) + strlen( text ) * 2 + 1 ); … … 182 193 } 183 194 } 184 else185 {186 i = strlen( MSN_TYPING_HEADERS ) + strlen( sb->ic->acc->user );187 buf = g_new0( char, i );188 i = g_snprintf( buf, i, MSN_TYPING_HEADERS, sb->ic->acc->user );189 }190 195 191 196 /* Build the final packet (MSG command + the message). */ … … 250 255 251 256 msn_msgq_purge( ic, &sb->msgq ); 257 msn_sb_stop_keepalives( sb ); 252 258 253 259 if( sb->key ) g_free( sb->key ); … … 471 477 472 478 sb->ready = 1; 479 480 msn_sb_start_keepalives( sb, FALSE ); 473 481 } 474 482 else if( strcmp( cmd[0], "CAL" ) == 0 ) … … 520 528 } 521 529 530 msn_sb_start_keepalives( sb, FALSE ); 531 522 532 return( st ); 523 533 } … … 581 591 if( sb->who ) 582 592 { 593 msn_sb_stop_keepalives( sb ); 594 583 595 /* This is a single-person chat, and the other person is leaving. */ 584 596 g_free( sb->who ); … … 764 776 return( 1 ); 765 777 } 778 779 static gboolean msn_sb_keepalive( gpointer data, gint source, b_input_condition cond ) 780 { 781 struct msn_switchboard *sb = data; 782 return sb->ready && msn_sb_sendmessage( sb, SB_KEEPALIVE_MESSAGE ); 783 } 784 785 void msn_sb_start_keepalives( struct msn_switchboard *sb, gboolean initial ) 786 { 787 struct buddy *b; 788 789 if( sb && sb->who && sb->keepalive == 0 && 790 ( b = imcb_find_buddy( sb->ic, sb->who ) ) && !b->present && 791 set_getbool( &sb->ic->acc->set, "switchboard_keepalives" ) ) 792 { 793 if( initial ) 794 msn_sb_keepalive( sb, 0, 0 ); 795 796 sb->keepalive = b_timeout_add( 20000, msn_sb_keepalive, sb ); 797 } 798 } 799 800 void msn_sb_stop_keepalives( struct msn_switchboard *sb ) 801 { 802 if( sb && sb->keepalive > 0 ) 803 { 804 b_event_remove( sb->keepalive ); 805 sb->keepalive = 0; 806 } 807 }
Note: See TracChangeset
for help on using the changeset viewer.