| 278 msg = msn_message_new_from_cmd(cmdproc->session, cmd); |
278 msg = msn_message_new_from_cmd(cmdproc->session, cmd); |
| 279 |
279 |
| 280 msn_message_parse_payload(msg, payload, len); |
280 msn_message_parse_payload(msg, payload, len); |
| 281 /* msn_message_show_readable(msg, "SB RECV", FALSE); */ |
281 /* msn_message_show_readable(msg, "SB RECV", FALSE); */ |
| 282 |
282 |
| |
283 if (msg->remote_user != NULL) |
| |
284 g_free (msg->remote_user); |
| |
285 |
| 283 msg->remote_user = g_strdup(cmd->params[0]); |
286 msg->remote_user = g_strdup(cmd->params[0]); |
| 284 msn_cmdproc_process_msg(cmdproc, msg); |
287 msn_cmdproc_process_msg(cmdproc, msg); |
| 285 |
288 |
| 286 msn_message_destroy(msg); |
289 msn_message_destroy(msg); |
| 287 } |
290 } |
| 549 trans = msn_transaction_new(cmdproc, "MSG", "%c %d", |
554 trans = msn_transaction_new(cmdproc, "MSG", "%c %d", |
| 550 msn_message_get_flag(msg), payload_len); |
555 msn_message_get_flag(msg), payload_len); |
| 551 |
556 |
| 552 /* Data for callbacks */ |
557 /* Data for callbacks */ |
| 553 msn_transaction_set_data(trans, msg); |
558 msn_transaction_set_data(trans, msg); |
| |
559 msn_message_ref(msg); |
| 554 |
560 |
| 555 if (msg->ack_cb != NULL) |
561 if (msg->ack_cb != NULL) |
| 556 { |
562 { |
| 557 msn_transaction_add_cb(trans, "ACK", msg_ack); |
563 msn_transaction_add_cb(trans, "ACK", msg_ack); |
| 558 msn_transaction_set_timeout_cb(trans, msg_timeout); |
564 msn_transaction_set_timeout_cb(trans, msg_timeout); |