Mercurial > pidgin.yaz
comparison src/protocols/msn/msn.c @ 10602:f52ab405f1ab
[gaim-migrate @ 12032]
This is patch 1112281 from Felipe Contreras, it prevents file transfers being
cancelled when closing a conversation window with the sender/recipient.
committer: Tailor Script <tailor@pidgin.im>
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Wed, 16 Feb 2005 20:14:12 +0000 |
parents | 0f7452b1f777 |
children | fe919915fceb |
comparison
equal
deleted
inserted
replaced
10601:e46b51de549a | 10602:f52ab405f1ab |
---|---|
336 msn_switchboard_request_add_user(swboard, buddy->name); | 336 msn_switchboard_request_add_user(swboard, buddy->name); |
337 | 337 |
338 /* TODO: This might move somewhere else, after USR might be */ | 338 /* TODO: This might move somewhere else, after USR might be */ |
339 swboard->chat_id = session->conv_seq++; | 339 swboard->chat_id = session->conv_seq++; |
340 swboard->conv = serv_got_joined_chat(gc, swboard->chat_id, "MSN Chat"); | 340 swboard->conv = serv_got_joined_chat(gc, swboard->chat_id, "MSN Chat"); |
341 swboard->flag = MSN_SB_FLAG_IM; | |
341 | 342 |
342 gaim_conv_chat_add_user(GAIM_CONV_CHAT(swboard->conv), | 343 gaim_conv_chat_add_user(GAIM_CONV_CHAT(swboard->conv), |
343 gaim_account_get_username(buddy->account), NULL, GAIM_CBFLAGS_NONE, TRUE); | 344 gaim_account_get_username(buddy->account), NULL, GAIM_CBFLAGS_NONE, TRUE); |
344 } | 345 } |
345 | 346 |
736 { | 737 { |
737 MsnSession *session; | 738 MsnSession *session; |
738 MsnSwitchBoard *swboard; | 739 MsnSwitchBoard *swboard; |
739 | 740 |
740 session = gc->proto_data; | 741 session = gc->proto_data; |
741 swboard = msn_session_get_swboard(session, who); | 742 swboard = msn_session_get_swboard(session, who, MSN_SB_FLAG_IM); |
742 | 743 |
743 msn_switchboard_send_msg(swboard, msg, TRUE); | 744 msn_switchboard_send_msg(swboard, msg, TRUE); |
744 } | 745 } |
745 else | 746 else |
746 { | 747 { |
792 serv_got_typing(gc, who, MSN_TYPING_RECV_TIMEOUT, GAIM_TYPING); | 793 serv_got_typing(gc, who, MSN_TYPING_RECV_TIMEOUT, GAIM_TYPING); |
793 | 794 |
794 return MSN_TYPING_SEND_TIMEOUT; | 795 return MSN_TYPING_SEND_TIMEOUT; |
795 } | 796 } |
796 | 797 |
797 swboard = msn_session_find_swboard(session, who); | 798 swboard = msn_session_find_swboard(session, who, MSN_SB_FLAG_IM); |
798 | 799 |
799 if (swboard == NULL || !msn_switchboard_can_send(swboard)) | 800 if (swboard == NULL || !msn_switchboard_can_send(swboard)) |
800 return 0; | 801 return 0; |
801 | 802 |
802 msg = msn_message_new(MSN_MSG_TYPING); | 803 msg = msn_message_new(MSN_MSG_TYPING); |
1079 MsnSession *session; | 1080 MsnSession *session; |
1080 MsnSwitchBoard *swboard; | 1081 MsnSwitchBoard *swboard; |
1081 | 1082 |
1082 session = gc->proto_data; | 1083 session = gc->proto_data; |
1083 | 1084 |
1084 swboard = msn_session_find_switch_with_id(session, id); | 1085 swboard = msn_session_find_swboard_with_id(session, id, MSN_SB_FLAG_IM); |
1085 | 1086 |
1086 if (swboard == NULL) | 1087 if (swboard == NULL) |
1087 { | 1088 { |
1088 /* if we have no switchboard, everyone else left the chat already */ | 1089 /* if we have no switchboard, everyone else left the chat already */ |
1089 swboard = msn_switchboard_new(session); | 1090 swboard = msn_switchboard_new(session); |
1090 msn_switchboard_request(swboard); | 1091 msn_switchboard_request(swboard); |
1091 swboard->chat_id = id; | 1092 swboard->chat_id = id; |
1092 swboard->conv = gaim_find_chat(gc, id); | 1093 swboard->conv = gaim_find_chat(gc, id); |
1094 swboard->flag = MSN_SB_FLAG_IM; | |
1093 } | 1095 } |
1094 | 1096 |
1095 msn_switchboard_request_add_user(swboard, who); | 1097 msn_switchboard_request_add_user(swboard, who); |
1096 } | 1098 } |
1097 | 1099 |
1101 MsnSession *session; | 1103 MsnSession *session; |
1102 MsnSwitchBoard *swboard; | 1104 MsnSwitchBoard *swboard; |
1103 | 1105 |
1104 session = gc->proto_data; | 1106 session = gc->proto_data; |
1105 | 1107 |
1106 swboard = msn_session_find_switch_with_id(session, id); | 1108 swboard = msn_session_find_swboard_with_id(session, id, MSN_SB_FLAG_IM); |
1107 | 1109 |
1108 /* if swboard is NULL we were the only person left anyway */ | 1110 /* if swboard is NULL we were the only person left anyway */ |
1109 if (swboard == NULL) | 1111 if (swboard == NULL) |
1110 return; | 1112 return; |
1111 | 1113 |
1122 char *msgformat; | 1124 char *msgformat; |
1123 char *msgtext; | 1125 char *msgtext; |
1124 | 1126 |
1125 account = gaim_connection_get_account(gc); | 1127 account = gaim_connection_get_account(gc); |
1126 session = gc->proto_data; | 1128 session = gc->proto_data; |
1127 swboard = msn_session_find_switch_with_id(session, id); | 1129 swboard = msn_session_find_swboard_with_id(session, id, MSN_SB_FLAG_IM); |
1128 | 1130 |
1129 if (swboard == NULL) | 1131 if (swboard == NULL) |
1130 return -EINVAL; | 1132 return -EINVAL; |
1131 | 1133 |
1132 if (!swboard->ready) | 1134 if (!swboard->ready) |
1158 | 1160 |
1159 static void | 1161 static void |
1160 msn_keepalive(GaimConnection *gc) | 1162 msn_keepalive(GaimConnection *gc) |
1161 { | 1163 { |
1162 MsnSession *session; | 1164 MsnSession *session; |
1163 MsnCmdProc *cmdproc; | 1165 |
1164 | 1166 session = gc->proto_data; |
1165 session = gc->proto_data; | |
1166 | |
1167 cmdproc = session->notification->cmdproc; | |
1168 | 1167 |
1169 if (!session->http_method) | 1168 if (!session->http_method) |
1169 { | |
1170 MsnCmdProc *cmdproc; | |
1171 | |
1172 cmdproc = session->notification->cmdproc; | |
1173 | |
1170 msn_cmdproc_send_quick(cmdproc, "PNG", NULL, NULL); | 1174 msn_cmdproc_send_quick(cmdproc, "PNG", NULL, NULL); |
1175 } | |
1171 } | 1176 } |
1172 | 1177 |
1173 static void | 1178 static void |
1174 msn_group_buddy(GaimConnection *gc, const char *who, | 1179 msn_group_buddy(GaimConnection *gc, const char *who, |
1175 const char *old_group_name, const char *new_group_name) | 1180 const char *old_group_name, const char *new_group_name) |
1215 MsnSession *session; | 1220 MsnSession *session; |
1216 MsnSwitchBoard *swboard; | 1221 MsnSwitchBoard *swboard; |
1217 | 1222 |
1218 session = gc->proto_data; | 1223 session = gc->proto_data; |
1219 | 1224 |
1220 swboard = msn_session_find_swboard(session, who); | 1225 swboard = msn_session_find_swboard(session, who, MSN_SB_FLAG_IM); |
1221 | 1226 |
1222 /* | 1227 /* |
1223 * Don't perform an assertion here. It swboard is NULL, then the | 1228 * Don't perform an assertion here. If swboard is NULL, then the |
1224 * switchboard was either closed by the other party, or the person | 1229 * switchboard was either closed by the other party, or the person |
1225 * is talking to himself. | 1230 * is talking to himself. |
1226 */ | 1231 */ |
1227 if (swboard == NULL) | 1232 if (swboard == NULL) |
1228 return; | 1233 return; |
1229 | 1234 |
1230 msn_switchboard_close(swboard); | 1235 if (!(swboard->flag & MSN_SB_FLAG_FT)) |
1236 msn_switchboard_close(swboard); | |
1237 else | |
1238 swboard->conv = NULL; | |
1231 } | 1239 } |
1232 | 1240 |
1233 static void | 1241 static void |
1234 msn_set_buddy_icon(GaimConnection *gc, const char *filename) | 1242 msn_set_buddy_icon(GaimConnection *gc, const char *filename) |
1235 { | 1243 { |