comparison src/protocols/msn/session.c @ 8499:467b01d02f9c

[gaim-migrate @ 9235] Multiple MSN chats should now work. Patch by Robert Mibus. Thanks! committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Thu, 25 Mar 2004 02:55:42 +0000
parents 06f57183e29f
children fc27237783ee
comparison
equal deleted inserted replaced
8498:0a9b591278bc 8499:467b01d02f9c
218 MsnSwitchBoard *swboard; 218 MsnSwitchBoard *swboard;
219 219
220 g_return_val_if_fail(session != NULL, NULL); 220 g_return_val_if_fail(session != NULL, NULL);
221 g_return_val_if_fail(passport != NULL, NULL); 221 g_return_val_if_fail(passport != NULL, NULL);
222 222
223 for (l = session->switches; l != NULL; l = l->next)
224 {
225 swboard = (MsnSwitchBoard *)l->data;
226
227 if (!swboard->hidden && !swboard->chat_id &&
228 !g_ascii_strcasecmp(passport,
229 msn_user_get_passport(swboard->user)))
230 {
231 return swboard;
232 }
233 }
234
235 return NULL;
236 }
237
238 MsnSwitchBoard *
239 msn_session_find_switch_with_id(const MsnSession *session, int chat_id)
240 {
241 GList *l;
242 MsnSwitchBoard *swboard;
243
244 g_return_val_if_fail(session != NULL, NULL);
245 g_return_val_if_fail(chat_id > 0, NULL);
246
223 for (l = session->switches; l != NULL; l = l->next) { 247 for (l = session->switches; l != NULL; l = l->next) {
224 swboard = (MsnSwitchBoard *)l->data; 248 swboard = (MsnSwitchBoard *)l->data;
225 249
226 if (!swboard->hidden && 250 if (swboard->chat_id == chat_id)
227 !g_ascii_strcasecmp(passport,
228 msn_user_get_passport(swboard->user))) {
229 return swboard; 251 return swboard;
230 }
231 } 252 }
232 253
233 return NULL; 254 return NULL;
234 } 255 }
235 256
236 MsnSwitchBoard * 257 MsnSwitchBoard *
237 msn_session_find_switch_with_id(const MsnSession *session, int chat_id) 258 msn_session_find_unused_switch(const MsnSession *session)
238 { 259 {
239 GList *l; 260 GList *l;
240 MsnSwitchBoard *swboard; 261 MsnSwitchBoard *swboard;
241 262
242 g_return_val_if_fail(session != NULL, NULL); 263 g_return_val_if_fail(session != NULL, NULL);
243 g_return_val_if_fail(chat_id > 0, NULL);
244 264
245 for (l = session->switches; l != NULL; l = l->next) { 265 for (l = session->switches; l != NULL; l = l->next) {
246 swboard = (MsnSwitchBoard *)l->data; 266 swboard = (MsnSwitchBoard *)l->data;
247 267
248 if (swboard->chat_id == chat_id)
249 return swboard;
250 }
251
252 return NULL;
253 }
254
255 MsnSwitchBoard *
256 msn_session_find_unused_switch(const MsnSession *session)
257 {
258 GList *l;
259 MsnSwitchBoard *swboard;
260
261 g_return_val_if_fail(session != NULL, NULL);
262
263 for (l = session->switches; l != NULL; l = l->next) {
264 swboard = (MsnSwitchBoard *)l->data;
265
266 if (!swboard->in_use) 268 if (!swboard->in_use)
267 return swboard; 269 return swboard;
268 } 270 }
269 271
270 return NULL; 272 return NULL;