Changeset f924563 for protocols/msn
- Timestamp:
- 2010-05-03T00:52:08Z (15 years ago)
- Branches:
- master
- Children:
- 1a3ba05
- Parents:
- 6a9d068 (diff), 6824fb3 (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. - Location:
- protocols/msn
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/msn/msn.c
r6a9d068 rf924563 38 38 set_add( &acc->set, "local_display_name", "false", set_eval_bool, acc ); 39 39 set_add( &acc->set, "mail_notifications", "false", set_eval_bool, acc ); 40 set_add( &acc->set, "switchboard_keepalives", "false", set_eval_bool, acc ); 40 41 } 41 42 -
protocols/msn/msn.h
r6a9d068 rf924563 31 31 #define TYPING_NOTIFICATION_MESSAGE "\r\r\rBEWARE, ME R TYPINK MESSAGE!!!!\r\r\r" 32 32 #define GROUPCHAT_SWITCHBOARD_MESSAGE "\r\r\rME WANT TALK TO MANY PEOPLE\r\r\r" 33 #define SB_KEEPALIVE_MESSAGE "\r\r\rDONT HANG UP ON ME!\r\r\r" 33 34 34 35 #ifdef DEBUG_MSN … … 53 54 "TypingUser: %s\r\n" \ 54 55 "\r\n\r\n" 56 57 #define SB_KEEPALIVE_HEADERS "MIME-Version: 1.0\r\n" \ 58 "Content-Type: text/x-ping\r\n" \ 59 "\r\n\r\n" 55 60 56 61 #define PROFILE_URL "http://members.msn.com/" … … 84 89 gint inp; 85 90 struct msn_handler_data *handler; 91 gint keepalive; 86 92 87 93 int trId; … … 181 187 gboolean msn_sb_connected( gpointer data, gint source, b_input_condition cond ); 182 188 int msn_sb_write_msg( struct im_connection *ic, struct msn_message *m ); 189 void msn_sb_start_keepalives( struct msn_switchboard *sb, gboolean initial ); 190 void msn_sb_stop_keepalives( struct msn_switchboard *sb ); 183 191 184 192 /* invitation.c */ -
protocols/msn/ns.c
r6a9d068 rf924563 422 422 else if( strcmp( cmd[0], "FLN" ) == 0 ) 423 423 { 424 if( cmd[1] ) 425 imcb_buddy_status( ic, cmd[1], 0, NULL, NULL ); 424 if( cmd[1] == NULL ) 425 return 1; 426 427 imcb_buddy_status( ic, cmd[1], 0, NULL, NULL ); 428 429 msn_sb_start_keepalives( msn_sb_by_handle( ic, cmd[1] ), TRUE ); 426 430 } 427 431 else if( strcmp( cmd[0], "NLN" ) == 0 ) … … 449 453 ( st != msn_away_state_list ? OPT_AWAY : 0 ), 450 454 st->name, NULL ); 455 456 msn_sb_stop_keepalives( msn_sb_by_handle( ic, cmd[2] ) ); 451 457 } 452 458 else if( strcmp( cmd[0], "RNG" ) == 0 ) -
protocols/msn/sb.c
r6a9d068 rf924563 175 175 i = g_snprintf( buf, i, MSN_TYPING_HEADERS, sb->ic->acc->user ); 176 176 } 177 else if( strcmp( text, SB_KEEPALIVE_MESSAGE ) == 0 ) 178 { 179 buf = g_strdup( SB_KEEPALIVE_HEADERS ); 180 i = strlen( buf ); 181 } 177 182 else if( strncmp( text, MSN_INVITE_HEADERS, sizeof( MSN_INVITE_HEADERS ) - 1 ) == 0 ) 178 183 { … … 256 261 257 262 msn_msgq_purge( ic, &sb->msgq ); 263 msn_sb_stop_keepalives( sb ); 258 264 259 265 if( sb->key ) g_free( sb->key ); … … 477 483 478 484 sb->ready = 1; 485 486 msn_sb_start_keepalives( sb, FALSE ); 479 487 } 480 488 else if( strcmp( cmd[0], "CAL" ) == 0 ) … … 526 534 } 527 535 536 msn_sb_start_keepalives( sb, FALSE ); 537 528 538 return( st ); 529 539 } … … 587 597 if( sb->who ) 588 598 { 599 msn_sb_stop_keepalives( sb ); 600 589 601 /* This is a single-person chat, and the other person is leaving. */ 590 602 g_free( sb->who ); … … 752 764 return( 1 ); 753 765 } 766 767 static gboolean msn_sb_keepalive( gpointer data, gint source, b_input_condition cond ) 768 { 769 struct msn_switchboard *sb = data; 770 return sb->ready && msn_sb_sendmessage( sb, SB_KEEPALIVE_MESSAGE ); 771 } 772 773 void msn_sb_start_keepalives( struct msn_switchboard *sb, gboolean initial ) 774 { 775 bee_user_t *bu; 776 777 if( sb && sb->who && sb->keepalive == 0 && 778 ( bu = bee_user_by_handle( sb->ic->bee, sb->ic, sb->who ) ) && 779 !( bu->flags & BEE_USER_ONLINE ) && 780 set_getbool( &sb->ic->acc->set, "switchboard_keepalives" ) ) 781 { 782 if( initial ) 783 msn_sb_keepalive( sb, 0, 0 ); 784 785 sb->keepalive = b_timeout_add( 20000, msn_sb_keepalive, sb ); 786 } 787 } 788 789 void msn_sb_stop_keepalives( struct msn_switchboard *sb ) 790 { 791 if( sb && sb->keepalive > 0 ) 792 { 793 b_event_remove( sb->keepalive ); 794 sb->keepalive = 0; 795 } 796 }
Note: See TracChangeset
for help on using the changeset viewer.