--- a/libpurple/protocols/msn/msn.c Wed Dec 17 14:14:57 2014 +0000
+++ b/libpurple/protocols/msn/msn.c Tue Dec 23 00:35:52 2014 -0500
@@ -1326,7 +1326,6 @@
- gboolean http_method = FALSE;
gc = purple_account_get_connection(account);
@@ -1340,12 +1339,9 @@
- http_method = purple_account_get_bool(account, "http_method", FALSE);
- host = purple_account_get_string(account, "http_method_server", MSN_HTTPCONN_SERVER);
- host = purple_account_get_string(account, "server", MSN_SERVER);
+ purple_account_remove_setting(account, "http_method"); + host = purple_account_get_string(account, "http_method_server", MSN_HTTPCONN_SERVER); port = purple_account_get_int(account, "port", MSN_PORT);
session = msn_session_new(account);
@@ -1373,7 +1369,7 @@
ui_name && *ui_name ? ui_name : PACKAGE_NAME);
- if (!msn_session_connect(session, host, port, http_method))
+ if (!msn_session_connect(session, host, port)) purple_connection_error_reason(gc,
PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
@@ -2076,26 +2072,6 @@
-msn_keepalive(PurpleConnection *gc)
- session = gc->proto_data;
- if (!session->http_method)
- cmdproc = session->notification->cmdproc;
- trans = msn_transaction_new(cmdproc, "PNG", NULL);
- msn_transaction_set_saveable(trans, FALSE);
- msn_cmdproc_send_trans(cmdproc, trans);
static void msn_alias_buddy(PurpleConnection *pc, const char *name, const char *alias)
@@ -2942,7 +2918,7 @@
msn_chat_leave, /* chat_leave */
msn_chat_send, /* chat_send */
- msn_keepalive, /* keepalive */
NULL, /* register_user */
@@ -3030,11 +3006,6 @@
prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
- option = purple_account_option_bool_new(_("Use HTTP Method"),
- prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
option = purple_account_option_string_new(_("HTTP Method Server"),
"http_method_server", MSN_HTTPCONN_SERVER);
prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
--- a/libpurple/protocols/msn/notification.c Wed Dec 17 14:14:57 2014 +0000
+++ b/libpurple/protocols/msn/notification.c Tue Dec 23 00:35:52 2014 -0500
@@ -1463,8 +1463,8 @@
msn_parse_socket(cmd->params[1], &host, &port);
- if (session->http_method)
swboard = msn_switchboard_new(session);
--- a/libpurple/protocols/msn/servconn.c Wed Dec 17 14:14:57 2014 +0000
+++ b/libpurple/protocols/msn/servconn.c Tue Dec 23 00:35:52 2014 -0500
@@ -27,7 +27,6 @@
-static void read_cb(gpointer data, gint source, PurpleInputCondition cond);
static void servconn_timeout_renew(MsnServConn *servconn);
/**************************************************************************
@@ -177,72 +176,33 @@
**************************************************************************/
-connect_cb(gpointer data, gint source, const char *error_message)
- servconn->connect_data = NULL;
- servconn->connected = TRUE;
- /* Someone wants to know we connected. */
- servconn->connect_cb(servconn);
- servconn->inpa = purple_input_add(servconn->fd, PURPLE_INPUT_READ,
- servconn_timeout_renew(servconn);
- purple_debug_error("msn", "Connection error: %s\n", error_message);
- msn_servconn_got_error(servconn, MSN_SERVCONN_ERROR_CONNECT, error_message);
msn_servconn_connect(MsnServConn *servconn, const char *host, int port, gboolean force)
g_return_val_if_fail(servconn != NULL, FALSE);
g_return_val_if_fail(host != NULL, FALSE);
g_return_val_if_fail(port > 0, FALSE);
- session = servconn->session;
msn_servconn_disconnect(servconn);
servconn->host = g_strdup(host);
- if (session->http_method)
- if (!servconn->httpconn->connected || force)
- if (!msn_httpconn_connect(servconn->httpconn, host, port))
+ if (!servconn->httpconn->connected || force) + if (!msn_httpconn_connect(servconn->httpconn, host, port)) - servconn->connected = TRUE;
- servconn->httpconn->virgin = TRUE;
- servconn_timeout_renew(servconn);
- /* Someone wants to know we connected. */
- servconn->connect_cb(servconn);
+ servconn->connected = TRUE; + servconn->httpconn->virgin = TRUE; + servconn_timeout_renew(servconn);
+ /* Someone wants to know we connected. */ + servconn->connect_cb(servconn); - servconn->connect_data = purple_proxy_connect(NULL, session->account,
- host, port, connect_cb, servconn);
- return (servconn->connect_data != NULL);
@@ -265,35 +225,6 @@
- if (servconn->session->http_method)
- /* Fake disconnection. */
- if (servconn->disconnect_cb != NULL)
- servconn->disconnect_cb(servconn);
- if (servconn->inpa > 0)
- purple_input_remove(servconn->inpa);
- if (servconn->timeout_handle > 0)
- purple_timeout_remove(servconn->timeout_handle);
- servconn->timeout_handle = 0;
- servconn->rx_buf = NULL;
- servconn->payload_len = 0;
- servconn->connected = FALSE;
if (servconn->disconnect_cb != NULL)
servconn->disconnect_cb(servconn);
@@ -328,34 +259,6 @@
servconn_timeout_renew(servconn);
-servconn_write_cb(gpointer data, gint source, PurpleInputCondition cond)
- MsnServConn *servconn = data;
- writelen = purple_circ_buffer_get_max_read(servconn->tx_buf);
- purple_input_remove(servconn->tx_handler);
- servconn->tx_handler = 0;
- ret = write(servconn->fd, servconn->tx_buf->outptr, writelen);
- if (ret < 0 && errno == EAGAIN)
- msn_servconn_got_error(servconn, MSN_SERVCONN_ERROR_WRITE, NULL);
- purple_circ_buffer_mark_read(servconn->tx_buf, ret);
- servconn_timeout_renew(servconn);
msn_servconn_write(MsnServConn *servconn, const char *buf, size_t len)
@@ -363,45 +266,7 @@
g_return_val_if_fail(servconn != NULL, 0);
- if (!servconn->session->http_method)
- if (servconn->tx_handler == 0) {
- switch (servconn->type)
- ret = write(servconn->fd, buf, len);
- ret = write(servconn->fd, &buf, sizeof(len));
- ret = write(servconn->fd, buf, len);
- ret = write(servconn->fd, buf, len);
- if (ret < 0 && errno == EAGAIN)
- if (ret >= 0 && (size_t)ret < len) {
- if (servconn->tx_handler == 0)
- servconn->tx_handler = purple_input_add(
- servconn->fd, PURPLE_INPUT_WRITE,
- servconn_write_cb, servconn);
- purple_circ_buffer_append(servconn->tx_buf, buf + ret,
- ret = msn_httpconn_write(servconn->httpconn, buf, len);
+ ret = msn_httpconn_write(servconn->httpconn, buf, len); @@ -412,41 +277,6 @@
-read_cb(gpointer data, gint source, PurpleInputCondition cond)
- if (servconn->type == MSN_SERVCONN_NS)
- servconn->session->account->gc->last_received = time(NULL);
- len = read(servconn->fd, buf, sizeof(buf) - 1);
- if (len < 0 && errno == EAGAIN)
- purple_debug_error("msn", "servconn %03d read error, "
- "len: %" G_GSSIZE_FORMAT ", errno: %d, error: %s\n",
- servconn->num, len, errno, g_strerror(errno));
- msn_servconn_got_error(servconn, MSN_SERVCONN_ERROR_READ, NULL);
- servconn->rx_buf = g_realloc(servconn->rx_buf, len + servconn->rx_len + 1);
- memcpy(servconn->rx_buf + servconn->rx_len, buf, len + 1);
- servconn->rx_len += len;
- servconn = msn_servconn_process_data(servconn);
- servconn_timeout_renew(servconn);
MsnServConn *msn_servconn_process_data(MsnServConn *servconn)
char *cur, *end, *old_rx_buf;
--- a/libpurple/protocols/msn/session.c Wed Dec 17 14:14:57 2014 +0000
+++ b/libpurple/protocols/msn/session.c Tue Dec 23 00:35:52 2014 -0500
@@ -114,14 +114,12 @@
-msn_session_connect(MsnSession *session, const char *host, int port,
+msn_session_connect(MsnSession *session, const char *host, int port) g_return_val_if_fail(session != NULL, FALSE);
g_return_val_if_fail(!session->connected, TRUE);
session->connected = TRUE;
- session->http_method = http_method;
if (session->notification == NULL)
--- a/libpurple/protocols/msn/session.h Wed Dec 17 14:14:57 2014 +0000
+++ b/libpurple/protocols/msn/session.h Tue Dec 23 00:35:52 2014 -0500
@@ -82,7 +82,6 @@
gboolean logged_in:1; /**< A temporal flag to ignore local buddy list adds. */
gboolean destroying:1; /**< A flag that states if the session is being destroyed. */
- gboolean http_method:1;
gboolean enable_mpop:1; /**< Use Multiple Points of Presence? */
int adl_fqy; /**< A count of ADL/FQY so status is only changed once. */
guint login_timeout; /**< Timeout to force status change if ADL/FQY fail. */
@@ -145,13 +144,11 @@
* @param session The MSN session.
* @param host The dispatch server host.
* @param port The dispatch server port.
- * @param http_method Whether to use or not http_method.
* @return @c TRUE on success, @c FALSE on failure.
gboolean msn_session_connect(MsnSession *session,
- const char *host, int port,
+ const char *host, int port); * Disconnects from an MSN session.
--- a/libpurple/protocols/msn/switchboard.c Wed Dec 17 14:14:57 2014 +0000
+++ b/libpurple/protocols/msn/switchboard.c Tue Dec 23 00:35:52 2014 -0500
@@ -214,21 +214,6 @@
**************************************************************************/
-send_clientcaps(MsnSwitchBoard *swboard)
- msg = msn_message_new(MSN_MSG_CAPS);
- msn_message_set_content_type(msg, "text/x-clientcaps");
- msn_message_set_flag(msg, 'U');
- msn_message_set_bin_data(msg, MSN_CLIENTINFO, strlen(MSN_CLIENTINFO));
- msn_switchboard_send_msg(swboard, msg, TRUE);
- msn_message_unref(msg);
msn_switchboard_add_user(MsnSwitchBoard *swboard, const char *user)
@@ -656,22 +641,17 @@
joi_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
passport = cmd->params[0];
- session = cmdproc->session;
msn_switchboard_add_user(swboard, passport);
msn_sbconn_process_queue(swboard);
- if (!session->http_method)
- send_clientcaps(swboard);
msn_switchboard_close(swboard);