comparison libpurple/protocols/msn/cmdproc.c @ 23597:e069c16db597

Always save the MSN transaction in each command, not just for synchronous ones. Apparently, "URL" may or may not be async, but we also send it ourselves, too, and we need the transaction for other things. References #5762.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Thu, 17 Jul 2008 03:23:59 +0000
parents ba47ec8a2477
children 0ffa511ac165
comparison
equal deleted inserted replaced
23596:73f61c445827 23597:e069c16db597
261 { 261 {
262 MsnTransCb cb = NULL; 262 MsnTransCb cb = NULL;
263 MsnTransaction *trans = NULL; 263 MsnTransaction *trans = NULL;
264 264
265 if (cmd->trId) 265 if (cmd->trId)
266 trans = msn_history_find(cmdproc->history, cmd->trId); 266 cmd->trans = trans = msn_history_find(cmdproc->history, cmd->trId);
267 267
268 if (trans != NULL) 268 if (trans != NULL)
269 if (trans->timer) { 269 if (trans->timer) {
270 purple_timeout_remove(trans->timer); 270 purple_timeout_remove(trans->timer);
271 trans->timer = 0; 271 trans->timer = 0;
307 if (cmdproc->cbs_table->async != NULL) 307 if (cmdproc->cbs_table->async != NULL)
308 cb = g_hash_table_lookup(cmdproc->cbs_table->async, cmd->command); 308 cb = g_hash_table_lookup(cmdproc->cbs_table->async, cmd->command);
309 309
310 if (cb == NULL && trans != NULL) 310 if (cb == NULL && trans != NULL)
311 { 311 {
312 cmd->trans = trans;
313
314 if (trans->callbacks != NULL) 312 if (trans->callbacks != NULL)
315 cb = g_hash_table_lookup(trans->callbacks, cmd->command); 313 cb = g_hash_table_lookup(trans->callbacks, cmd->command);
316 } 314 }
317 315
318 if (cb == NULL && cmdproc->cbs_table->fallback != NULL) 316 if (cb == NULL && cmdproc->cbs_table->fallback != NULL)