| 449 } |
449 } |
| 450 |
450 |
| 451 /************************************************************************** |
451 /************************************************************************** |
| 452 * Messages |
452 * Messages |
| 453 **************************************************************************/ |
453 **************************************************************************/ |
| |
454 static void |
| |
455 msg_cmd_post(MsnServConn *servconn, char *payload, size_t len) |
| |
456 { |
| |
457 MsnMessage *msg = msn_message_new(); |
| |
458 |
| |
459 msg->passport = servconn->msg_passport; |
| |
460 |
| |
461 msn_message_parse_payload(msg, payload, len); |
| |
462 |
| |
463 msn_servconn_process_message(servconn, msg); |
| |
464 |
| |
465 msn_message_destroy(msg); |
| |
466 } |
| |
467 |
| 454 static gboolean |
468 static gboolean |
| 455 msg_cmd(MsnServConn *servconn, const char *command, const char **params, |
469 msg_cmd(MsnServConn *servconn, const char *command, const char **params, |
| 456 size_t param_count) |
470 size_t param_count) |
| 457 { |
471 { |
| 458 gaim_debug(GAIM_DEBUG_INFO, "msn", "Found message. Parsing.\n"); |
472 gaim_debug(GAIM_DEBUG_INFO, "msn", "Found message. Parsing.\n"); |
| 459 |
473 |
| 460 servconn->parsing_multiline = TRUE; |
474 servconn->payload_cb = msg_cmd_post; |
| 461 servconn->multiline_type = MSN_MULTILINE_MSG; |
475 servconn->payload_len = atoi(params[2]); |
| 462 servconn->multiline_len = atoi(params[2]); |
|
| 463 |
476 |
| 464 servconn->msg_passport = g_strdup(params[0]); |
477 servconn->msg_passport = g_strdup(params[0]); |
| 465 servconn->msg_friendly = g_strdup(params[1]); |
|
| 466 |
478 |
| 467 return TRUE; |
479 return TRUE; |
| 468 } |
480 } |
| 469 |
481 |
| 470 /************************************************************************** |
482 /************************************************************************** |
| 744 |
756 |
| 745 static gboolean |
757 static gboolean |
| 746 ipg_cmd(MsnServConn *servconn, const char *command, const char **params, |
758 ipg_cmd(MsnServConn *servconn, const char *command, const char **params, |
| 747 size_t param_count) |
759 size_t param_count) |
| 748 { |
760 { |
| 749 /* GaimConnection *gc = servconn->session->account->gc; */ |
761 servconn->payload_cb = NULL; |
| 750 |
762 servconn->payload_len = atoi(params[2]); |
| 751 servconn->parsing_multiline = TRUE; |
|
| 752 servconn->multiline_type = MSN_MULTILINE_IPG; |
|
| 753 servconn->multiline_len = atoi(params[0]); |
|
| 754 |
|
| 755 servconn->msg_passport = NULL; |
|
| 756 servconn->msg_friendly = NULL; |
|
| 757 |
763 |
| 758 return TRUE; |
764 return TRUE; |
| 759 } |
765 } |
| 760 |
766 |
| 761 static gboolean |
767 static gboolean |
| 1165 |
1171 |
| 1166 static gboolean |
1172 static gboolean |
| 1167 not_cmd(MsnServConn *servconn, const char *command, const char **params, |
1173 not_cmd(MsnServConn *servconn, const char *command, const char **params, |
| 1168 size_t param_count) |
1174 size_t param_count) |
| 1169 { |
1175 { |
| 1170 /* GaimConnection *gc = servconn->session->account->gc; */ |
1176 servconn->payload_cb = NULL; |
| 1171 |
1177 servconn->payload_len = atoi(params[2]); |
| 1172 servconn->parsing_multiline = TRUE; |
|
| 1173 servconn->multiline_type = MSN_MULTILINE_NOT; |
|
| 1174 servconn->multiline_len = atoi(params[0]); |
|
| 1175 |
|
| 1176 servconn->msg_passport = NULL; |
|
| 1177 servconn->msg_friendly = NULL; |
|
| 1178 |
1178 |
| 1179 return TRUE; |
1179 return TRUE; |
| 1180 } |
1180 } |
| 1181 |
1181 |
| 1182 static gboolean |
1182 static gboolean |
| 1602 else if (!strcmp(params[1], "NS")) { |
1602 else if (!strcmp(params[1], "NS")) { |
| 1603 if (!msn_notification_connect(session->notification_conn, host, |
1603 if (!msn_notification_connect(session->notification_conn, host, |
| 1604 port)) |
1604 port)) |
| 1605 { |
1605 { |
| 1606 gaim_connection_error(gc, _("Unable to transfer to " |
1606 gaim_connection_error(gc, _("Unable to transfer to " |
| 1607 "notification server")); |
1607 "notification server")); |
| |
1608 |
| |
1609 g_free(host); |
| 1608 |
1610 |
| 1609 return FALSE; |
1611 return FALSE; |
| 1610 } |
1612 } |
| 1611 } |
1613 } |
| 1612 |
1614 |
| 1622 profile_msg(MsnServConn *servconn, MsnMessage *msg) |
1624 profile_msg(MsnServConn *servconn, MsnMessage *msg) |
| 1623 { |
1625 { |
| 1624 MsnSession *session = servconn->session; |
1626 MsnSession *session = servconn->session; |
| 1625 const char *value; |
1627 const char *value; |
| 1626 |
1628 |
| 1627 if (strcmp(servconn->msg_passport, "Hotmail")) { |
1629 if (strcmp(msg->passport, "Hotmail")) { |
| 1628 /* This isn't an official message. */ |
1630 /* This isn't an official message. */ |
| 1629 return TRUE; |
1631 return TRUE; |
| 1630 } |
1632 } |
| 1631 |
1633 |
| 1632 if ((value = msn_message_get_attr(msg, "kv")) != NULL) |
1634 if ((value = msn_message_get_attr(msg, "kv")) != NULL) |
| 1653 MsnSession *session = servconn->session; |
1655 MsnSession *session = servconn->session; |
| 1654 GaimConnection *gc = session->account->gc; |
1656 GaimConnection *gc = session->account->gc; |
| 1655 GHashTable *table; |
1657 GHashTable *table; |
| 1656 const char *unread; |
1658 const char *unread; |
| 1657 |
1659 |
| 1658 if (strcmp(servconn->msg_passport, "Hotmail")) { |
1660 if (strcmp(msg->passport, "Hotmail")) { |
| 1659 /* This isn't an official message. */ |
1661 /* This isn't an official message. */ |
| 1660 return TRUE; |
1662 return TRUE; |
| 1661 } |
1663 } |
| 1662 |
1664 |
| 1663 if (!gaim_account_get_check_mail(session->account)) |
1665 if (!gaim_account_get_check_mail(session->account)) |
| 1703 MsnSession *session = servconn->session; |
1705 MsnSession *session = servconn->session; |
| 1704 GaimConnection *gc = session->account->gc; |
1706 GaimConnection *gc = session->account->gc; |
| 1705 GHashTable *table; |
1707 GHashTable *table; |
| 1706 char *from, *subject; |
1708 char *from, *subject; |
| 1707 |
1709 |
| 1708 if (strcmp(servconn->msg_passport, "Hotmail")) { |
1710 if (strcmp(msg->passport, "Hotmail")) { |
| 1709 /* This isn't an official message. */ |
1711 /* This isn't an official message. */ |
| 1710 return TRUE; |
1712 return TRUE; |
| 1711 } |
1713 } |
| 1712 |
1714 |
| 1713 if (!gaim_account_get_check_mail(session->account)) |
1715 if (!gaim_account_get_check_mail(session->account)) |
| 1741 system_msg(MsnServConn *servconn, MsnMessage *msg) |
1743 system_msg(MsnServConn *servconn, MsnMessage *msg) |
| 1742 { |
1744 { |
| 1743 GHashTable *table; |
1745 GHashTable *table; |
| 1744 const char *type_s; |
1746 const char *type_s; |
| 1745 |
1747 |
| 1746 if (strcmp(servconn->msg_passport, "Hotmail")) { |
1748 if (strcmp(msg->passport, "Hotmail")) { |
| 1747 /* This isn't an official message. */ |
1749 /* This isn't an official message. */ |
| 1748 return TRUE; |
1750 return TRUE; |
| 1749 } |
1751 } |
| 1750 |
1752 |
| 1751 table = msn_message_get_hashtable_from_body(msg); |
1753 table = msn_message_get_hashtable_from_body(msg); |