comparison src/protocols/msn/session.c @ 9158:c30d81b4dd22

[gaim-migrate @ 9942] Patch from Felipe Contreras to sync our MSN prpl with what's in his tree. He says this may fix a couple bugs, but the important thing is the restructuring of how MsnMessages work. Lots of style changes and other stuff as well. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Tue, 01 Jun 2004 06:42:20 +0000
parents ffecda0c1f45
children 502707ca1836
comparison
equal deleted inserted replaced
9157:bd1ea0a717d7 9158:c30d81b4dd22
22 #include "msn.h" 22 #include "msn.h"
23 #include "session.h" 23 #include "session.h"
24 #include "notification.h" 24 #include "notification.h"
25 25
26 MsnSession * 26 MsnSession *
27 msn_session_new(GaimAccount *account, const char *server, int port) 27 msn_session_new(GaimAccount *account, const char *host, int port)
28 { 28 {
29 MsnSession *session; 29 MsnSession *session;
30 30
31 g_return_val_if_fail(account != NULL, NULL); 31 g_return_val_if_fail(account != NULL, NULL);
32 32
33 session = g_new0(MsnSession, 1); 33 session = g_new0(MsnSession, 1);
34 34
35 session->account = account; 35 session->account = account;
36 session->dispatch_server = g_strdup(server); 36 session->dispatch_host = g_strdup(host);
37 session->dispatch_port = port; 37 session->dispatch_port = port;
38 38
39 session->away_state = NULL; 39 session->away_state = NULL;
40 40
41 session->users = msn_users_new(); 41 session->users = msn_users_new();
42 session->groups = msn_groups_new(); 42 session->groups = msn_groups_new();
56 g_return_if_fail(session != NULL); 56 g_return_if_fail(session != NULL);
57 57
58 if (session->connected) 58 if (session->connected)
59 msn_session_disconnect(session); 59 msn_session_disconnect(session);
60 60
61 if (session->dispatch_server != NULL) 61 if (session->dispatch_host != NULL)
62 g_free(session->dispatch_server); 62 g_free(session->dispatch_host);
63 63
64 while (session->switches != NULL) 64 while (session->switches != NULL)
65 msn_switchboard_destroy(session->switches->data); 65 msn_switchboard_destroy(session->switches->data);
66 66
67 while (session->lists.forward) 67 while (session->lists.forward)
112 session->connected = TRUE; 112 session->connected = TRUE;
113 113
114 session->notification_conn = msn_notification_new(session); 114 session->notification_conn = msn_notification_new(session);
115 115
116 if (msn_notification_connect(session->notification_conn, 116 if (msn_notification_connect(session->notification_conn,
117 session->dispatch_server, 117 session->dispatch_host,
118 session->dispatch_port)) 118 session->dispatch_port))
119 { 119 {
120 return TRUE; 120 return TRUE;
121 } 121 }
122 122
123 return FALSE; 123 return FALSE;
127 msn_session_disconnect(MsnSession *session) 127 msn_session_disconnect(MsnSession *session)
128 { 128 {
129 g_return_if_fail(session != NULL); 129 g_return_if_fail(session != NULL);
130 g_return_if_fail(session->connected); 130 g_return_if_fail(session->connected);
131 131
132 while (session->switches != NULL) { 132 while (session->switches != NULL)
133 {
133 MsnSwitchBoard *board = (MsnSwitchBoard *)session->switches->data; 134 MsnSwitchBoard *board = (MsnSwitchBoard *)session->switches->data;
134 135
135 msn_switchboard_destroy(board); 136 msn_switchboard_destroy(board);
136 } 137 }
137 138
138 if (session->notification_conn != NULL) { 139 if (session->notification_conn != NULL)
140 {
139 msn_servconn_destroy(session->notification_conn); 141 msn_servconn_destroy(session->notification_conn);
140 session->notification_conn = NULL; 142 session->notification_conn = NULL;
141 } 143 }
142 } 144 }
143 145
206 const char *passport) 208 const char *passport)
207 { 209 {
208 GList *l; 210 GList *l;
209 MsnSwitchBoard *swboard; 211 MsnSwitchBoard *swboard;
210 212
211 g_return_val_if_fail(session != NULL, NULL); 213 g_return_val_if_fail(session != NULL, NULL);
212 g_return_val_if_fail(passport != NULL, NULL); 214 g_return_val_if_fail(passport != NULL, NULL);
213 215
214 for (l = session->switches; l != NULL; l = l->next) 216 for (l = session->switches; l != NULL; l = l->next)
215 { 217 {
216 swboard = (MsnSwitchBoard *)l->data; 218 swboard = (MsnSwitchBoard *)l->data;
233 MsnSwitchBoard *swboard; 235 MsnSwitchBoard *swboard;
234 236
235 g_return_val_if_fail(session != NULL, NULL); 237 g_return_val_if_fail(session != NULL, NULL);
236 g_return_val_if_fail(chat_id > 0, NULL); 238 g_return_val_if_fail(chat_id > 0, NULL);
237 239
238 for (l = session->switches; l != NULL; l = l->next) { 240 for (l = session->switches; l != NULL; l = l->next)
241 {
239 swboard = (MsnSwitchBoard *)l->data; 242 swboard = (MsnSwitchBoard *)l->data;
240 243
241 if (swboard->chat_id == chat_id) 244 if (swboard->chat_id == chat_id)
242 return swboard; 245 return swboard;
243 } 246 }
251 GList *l; 254 GList *l;
252 MsnSwitchBoard *swboard; 255 MsnSwitchBoard *swboard;
253 256
254 g_return_val_if_fail(session != NULL, NULL); 257 g_return_val_if_fail(session != NULL, NULL);
255 258
256 for (l = session->switches; l != NULL; l = l->next) { 259 for (l = session->switches; l != NULL; l = l->next)
260 {
257 swboard = (MsnSwitchBoard *)l->data; 261 swboard = (MsnSwitchBoard *)l->data;
258 262
259 if (!swboard->in_use) 263 if (!swboard->in_use)
260 return swboard; 264 return swboard;
261 } 265 }