diff src/protocols/msn/switchboard.c @ 10463:9bed28273ec7

[gaim-migrate @ 11737] Felipe Contreras fixed the MSN HTTP Method. Yay! Thanks Felipe. committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Fri, 31 Dec 2004 16:34:22 +0000
parents 92d4a25fd33c
children bcfea6c3d5c9
line wrap: on
line diff
--- a/src/protocols/msn/switchboard.c	Fri Dec 31 15:34:18 2004 +0000
+++ b/src/protocols/msn/switchboard.c	Fri Dec 31 16:34:22 2004 +0000
@@ -42,7 +42,6 @@
 {
 	MsnSwitchBoard *swboard;
 	MsnServConn *servconn;
-	MsnCmdProc *cmdproc;
 
 	g_return_val_if_fail(session != NULL, NULL);
 
@@ -50,17 +49,16 @@
 
 	swboard->session = session;
 	swboard->servconn = servconn = msn_servconn_new(session, MSN_SERVER_SB);
-	cmdproc = servconn->cmdproc;
+	swboard->cmdproc = servconn->cmdproc;
 
 	swboard->im_queue = g_queue_new();
 	swboard->empty = TRUE;
 
-	servconn->data = swboard;
+	swboard->cmdproc->data = swboard;
+	swboard->cmdproc->cbs_table = cbs_table;
 
 	session->switches = g_list_append(session->switches, swboard);
 
-	cmdproc->cbs_table = cbs_table;
-
 	return swboard;
 }
 
@@ -88,7 +86,7 @@
 		if (swboard->error != MSN_SB_ERROR_NONE)
 		{
 			/* The messages could not be sent due to a switchboard error */
-			msg_error_helper(swboard->servconn->cmdproc, msg,
+			msg_error_helper(swboard->cmdproc, msg,
 							 MSN_MSG_ERROR_SB);
 		}
 		msn_message_unref(msg);
@@ -199,8 +197,8 @@
 
 	g_return_if_fail(swboard != NULL);
 
-	cmdproc = swboard->servconn->cmdproc;
-	account = swboard->servconn->session->account;
+	cmdproc = swboard->cmdproc;
+	account = cmdproc->session->account;
 
 	swboard->users = g_list_prepend(swboard->users, g_strdup(user));
 	swboard->current_users++;
@@ -313,7 +311,7 @@
 	if (swboard->total_users == 0)
 	{
 		swboard->error = reason;
-		msn_switchboard_destroy(swboard);
+		msn_switchboard_close(swboard);
 	}
 }
 
@@ -346,7 +344,7 @@
 	if ((error != MSN_MSG_ERROR_SB) && (msg->nak_cb != NULL))
 		msg->nak_cb(msg, msg->ack_data);
 
-	swboard = cmdproc->servconn->data;
+	swboard = cmdproc->data;
 
 	if (msg->type == MSN_MSG_TEXT)
 	{
@@ -434,7 +432,7 @@
 {
 	MsnSwitchBoard *swboard;
 
-	swboard = cmdproc->servconn->data;
+	swboard = cmdproc->data;
 	swboard->ready = TRUE;
 }
 
@@ -444,7 +442,7 @@
 	MsnSwitchBoard *swboard;
 	const char *user;
 
-	swboard = cmdproc->servconn->data;
+	swboard = cmdproc->data;
 	user = cmd->params[0];
 
 	if (swboard->conv == NULL)
@@ -509,7 +507,7 @@
 
 	account = cmdproc->session->account;
 	gc = account->gc;
-	swboard = cmdproc->servconn->data;
+	swboard = cmdproc->data;
 
 	swboard->total_users = atoi(cmd->params[2]);
 
@@ -530,13 +528,14 @@
 	session = cmdproc->session;
 	account = session->account;
 	gc = account->gc;
-	swboard = cmdproc->servconn->data;
+	swboard = cmdproc->data;
 
 	msn_switchboard_add_user(swboard, passport);
 
 	msn_switchboard_process_queue(swboard);
 
-	send_clientcaps(swboard);
+	if (!session->http_method)
+		send_clientcaps(swboard);
 
 	if (swboard->closed)
 		msn_switchboard_close(swboard);
@@ -590,7 +589,7 @@
 	if (msg->ack_cb != NULL)
 		msg->ack_cb(msg, msg->ack_data);
 
-	swboard = cmdproc->servconn->data;
+	swboard = cmdproc->data;
 	swboard->ack_list = g_list_remove(swboard->ack_list, msg);
 	msn_message_unref(msg);
 }
@@ -602,7 +601,7 @@
 	MsnSwitchBoard *swboard;
 
 	gc = cmdproc->session->account->gc;
-	swboard = cmdproc->servconn->data;
+	swboard = cmdproc->data;
 
 	if (swboard->current_users > 1)
 		serv_got_chat_left(gc, swboard->chat_id);
@@ -615,7 +614,7 @@
 {
 	MsnSwitchBoard *swboard;
 
-	swboard = cmdproc->servconn->data;
+	swboard = cmdproc->data;
 
 #if 0
 	GList *l;
@@ -650,7 +649,7 @@
 	const char *value;
 
 	gc = cmdproc->session->account->gc;
-	swboard = cmdproc->servconn->data;
+	swboard = cmdproc->data;
 
 	body = msn_message_get_bin_data(msg, &body_len);
 	body_str = g_strndup(body, body_len);
@@ -709,7 +708,7 @@
 	char *passport;
 
 	gc = cmdproc->session->account->gc;
-	swboard = cmdproc->servconn->data;
+	swboard = cmdproc->data;
 	passport = msg->remote_user;
 
 	if (swboard->current_users == 1 &&
@@ -798,7 +797,7 @@
 	g_return_if_fail(swboard != NULL);
 	g_return_if_fail(msg     != NULL);
 
-	cmdproc = swboard->servconn->cmdproc;
+	cmdproc = swboard->cmdproc;
 
 	payload = msn_message_gen_payload(msg, &payload_len);
 
@@ -885,8 +884,8 @@
 
 	cmdproc->ready = TRUE;
 
-	account = servconn->session->account;
-	swboard = servconn->data;
+	account = cmdproc->session->account;
+	swboard = cmdproc->data;
 	g_return_if_fail(swboard != NULL);
 
 	if (msn_switchboard_is_invited(swboard))
@@ -910,7 +909,7 @@
 {
 	MsnSwitchBoard *swboard;
 
-	swboard = servconn->data;
+	swboard = servconn->cmdproc->data;
 	g_return_if_fail(swboard != NULL);
 
 	msn_switchboard_destroy(swboard);
@@ -945,7 +944,7 @@
 	MsnSwitchBoard *swboard;
 	const char *user;
 
-	swboard = cmdproc->servconn->data;
+	swboard = cmdproc->data;
 
 	user = cmd->params[0];
 
@@ -985,7 +984,7 @@
 
 	g_return_if_fail(swboard != NULL);
 
-	cmdproc = swboard->servconn->cmdproc;
+	cmdproc = swboard->cmdproc;
 
 	trans = msn_transaction_new(cmdproc, "CAL", "%s", user);
 	/* this doesn't do anything, but users seem to think that
@@ -1020,41 +1019,6 @@
 
 	msn_parse_socket(cmd->params[2], &host, &port);
 
-	if (swboard->session->http_method)
-	{
-		GaimAccount *account;
-		MsnSession *session;
-		MsnServConn *servconn;
-
-		port = 80;
-
-		session = swboard->session;
-		servconn = swboard->servconn;
-		account = session->account;
-
-		swboard->empty = FALSE;
-
-		servconn->http_data->gateway_host = g_strdup(host);
-
-#if 0
-		servconn->connected = TRUE;
-		servconn->cmdproc->ready = TRUE;
-#endif
-
-		if (msn_switchboard_is_invited(swboard))
-		{
-			msn_cmdproc_send(servconn->cmdproc, "ANS", "%s %s %s",
-							 gaim_account_get_username(account),
-							 swboard->auth_key, swboard->session_id);
-		}
-		else
-		{
-			msn_cmdproc_send(servconn->cmdproc, "USR", "%s %s",
-							 gaim_account_get_username(account),
-							 swboard->auth_key);
-		}
-	}
-
 	msn_switchboard_connect(swboard, host, port);
 
 	g_free(host);
@@ -1102,7 +1066,7 @@
 	{
 		MsnCmdProc *cmdproc;
 
-		cmdproc = swboard->servconn->cmdproc;
+		cmdproc = swboard->cmdproc;
 
 		msn_cmdproc_send_quick(cmdproc, "OUT", NULL, NULL);