Mercurial > pidgin
diff src/protocols/msn/switchboard.c @ 8583:fc27237783ee
[gaim-migrate @ 9333]
Added Felipe Contreras's patch to reorganize and clean up the MSN
protocol plugin. Thanks, and once again, apologies for the what must have
seemed a never-ending delay.
committer: Tailor Script <tailor@pidgin.im>
| author | Christian Hammond <chipx86@chipx86.com> |
|---|---|
| date | Mon, 05 Apr 2004 07:11:24 +0000 |
| parents | 467b01d02f9c |
| children | 1e211dde3cae |
line wrap: on
line diff
--- a/src/protocols/msn/switchboard.c Mon Apr 05 06:52:02 2004 +0000 +++ b/src/protocols/msn/switchboard.c Mon Apr 05 07:11:24 2004 +0000 @@ -416,16 +416,12 @@ * Connect stuff **************************************************************************/ static gboolean -connect_cb(gpointer data, gint source, GaimInputCondition cond) +connect_cb(MsnServConn *servconn) { - MsnServConn *servconn = data; GaimAccount *account = servconn->session->account; MsnSwitchBoard *swboard = servconn->data; char outparams[MSN_BUF_LEN]; - if (servconn->fd != source) - servconn->fd = source; - swboard->in_use = TRUE; gaim_debug(GAIM_DEBUG_INFO, "msn", "Connecting to switchboard...\n"); @@ -456,11 +452,13 @@ } static void -failed_read_cb(gpointer data, gint source, GaimInputCondition cond) +disconnect_cb(MsnServConn *servconn) { - MsnServConn *servconn = data; + MsnSwitchBoard *swboard; - msn_switchboard_destroy(servconn->data); + swboard = servconn->data; + if (!swboard->destroying) + msn_switchboard_destroy(swboard); } MsnSwitchBoard * @@ -475,7 +473,7 @@ swboard->servconn = servconn = msn_servconn_new(session); msn_servconn_set_connect_cb(servconn, connect_cb); - msn_servconn_set_failed_read_cb(servconn, failed_read_cb); + msn_servconn_set_disconnect_cb(servconn, disconnect_cb); if (session->http_method) swboard->servconn->http_data->server_type = "SB"; @@ -533,7 +531,9 @@ MsnSession *session; g_return_if_fail(swboard != NULL); + g_return_if_fail(!swboard->destroying); + swboard->destroying = TRUE; session = swboard->servconn->session; if (swboard->servconn->connected) @@ -627,13 +627,11 @@ } gboolean -msn_switchboard_connect(MsnSwitchBoard *swboard, const char *server, int port) +msn_switchboard_connect(MsnSwitchBoard *swboard, const char *host, int port) { g_return_val_if_fail(swboard != NULL, FALSE); - msn_servconn_set_server(swboard->servconn, server, port); - - if (msn_servconn_connect(swboard->servconn)) + if (msn_servconn_connect(swboard->servconn, host, port)) swboard->in_use = TRUE; return swboard->in_use;
