annotate src/protocols/gg/confer.c @ 13967:99b9b58b19dd

[gaim-migrate @ 16523] Fix a crazy MSN crash. Basically it's possible to have more than one slplink associated with a given switchboard, but our code did not allow for that. I think it happens when you're in a multi-user chat and you do stuff with multiple users that involves slplinks. Like maybe file transfer and buddy icon related stuff. Tracking this down took an ungodly amount of time, but thanks to Meebo for letting me do it :-) committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Thu, 20 Jul 2006 07:31:15 +0000
parents fa7313d125ac
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
1 /**
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
2 * @file confer.c
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
3 *
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
4 * gaim
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
5 *
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
6 * Copyright (C) 2005 Bartosz Oler <bartosz@bzimage.us>
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
7 *
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
11 * (at your option) any later version.
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
12 *
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
16 * GNU General Public License for more details.
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
17 *
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
21 */
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
22
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
23
13317
41747a38a1a8 [gaim-migrate @ 15686]
Richard Laager <rlaager@wiktel.com>
parents: 12961
diff changeset
24 #include <libgadu.h>
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
25 #include "gg.h"
13626
fa7313d125ac [gaim-migrate @ 16013]
Evan Schoenberg <evan.s@dreskin.net>
parents: 13317
diff changeset
26 #include "gg-utils.h"
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
27 #include "confer.h"
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
28
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
29 /* GaimConversation *ggp_confer_find_by_name(GaimConnection *gc, const gchar *name) {{{ */
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
30 GaimConversation *ggp_confer_find_by_name(GaimConnection *gc, const gchar *name)
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
31 {
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
32 g_return_val_if_fail(gc != NULL, NULL);
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
33 g_return_val_if_fail(name != NULL, NULL);
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
34
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
35 return gaim_find_conversation_with_account(GAIM_CONV_TYPE_CHAT, name,
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
36 gaim_connection_get_account(gc));
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
37 }
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
38 /* }}} */
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
39
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
40 /* void ggp_confer_participants_add_uin(GaimConnection *gc, const gchar *chat_name, const uin_t uin) {{{ */
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
41 void ggp_confer_participants_add_uin(GaimConnection *gc, const gchar *chat_name,
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
42 const uin_t uin)
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
43 {
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
44 GaimConversation *conv;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
45 GGPInfo *info = gc->proto_data;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
46 GGPChat *chat;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
47 GList *l;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
48 gchar *str_uin;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
49
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
50 for (l = info->chats; l != NULL; l = l->next) {
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
51 chat = l->data;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
52
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
53 if (g_utf8_collate(chat->name, chat_name) != 0)
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
54 continue;
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
55
12961
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
56 if (g_list_find(chat->participants, GINT_TO_POINTER(uin)) == NULL) {
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
57 chat->participants = g_list_append(
12961
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
58 chat->participants, GINT_TO_POINTER(uin));
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
59
12961
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
60 str_uin = g_strdup_printf("%lu", (unsigned long int)uin);
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
61 conv = ggp_confer_find_by_name(gc, chat_name);
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
62 gaim_conv_chat_add_user(GAIM_CONV_CHAT(conv), str_uin, NULL,
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
63 GAIM_CBFLAGS_NONE, TRUE);
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
64
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
65 g_free(str_uin);
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
66 }
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
67 break;
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
68 }
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
69 }
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
70 /* }}} */
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
71
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
72 /* void ggp_confer_participants_add(GaimConnection *gc, const gchar *chat_name, const uin_t *recipients, int count) {{{ */
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
73 void ggp_confer_participants_add(GaimConnection *gc, const gchar *chat_name,
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
74 const uin_t *recipients, int count)
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
75 {
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
76 GGPInfo *info = gc->proto_data;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
77 GList *l;
12961
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
78 gchar *str_uin;
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
79
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
80 for (l = info->chats; l != NULL; l = l->next) {
12373
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
81 GGPChat *chat = l->data;
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
82 int i;
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
83
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
84 if (g_utf8_collate(chat->name, chat_name) != 0)
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
85 continue;
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
86
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
87 for (i = 0; i < count; i++) {
12373
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
88 GaimConversation *conv;
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
89
12961
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
90 if (g_list_find(chat->participants,
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
91 GINT_TO_POINTER(recipients[i])) != NULL) {
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
92 continue;
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
93 }
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
94
12961
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
95 chat->participants = g_list_append(chat->participants,
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
96 GINT_TO_POINTER(recipients[i]));
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
97
12961
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
98 str_uin = g_strdup_printf("%lu", (unsigned long int)recipients[i]);
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
99 conv = ggp_confer_find_by_name(gc, chat_name);
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
100 gaim_conv_chat_add_user(GAIM_CONV_CHAT(conv),
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
101 str_uin, NULL,
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
102 GAIM_CBFLAGS_NONE, TRUE);
12373
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
103 g_free(str_uin);
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
104 }
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
105 break;
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
106 }
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
107 }
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
108 /* }}} */
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
109
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
110 /* const char *ggp_confer_find_by_participants(GaimConnection *gc, const uin_t *recipients, int count) {{{ */
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
111 const char *ggp_confer_find_by_participants(GaimConnection *gc,
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
112 const uin_t *recipients, int count)
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
113 {
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
114 GGPInfo *info = gc->proto_data;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
115 GGPChat *chat = NULL;
12373
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
116 GList *l;
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
117 int matches;
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
118
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
119 g_return_val_if_fail(info->chats != NULL, NULL);
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
120
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
121 for (l = info->chats; l != NULL; l = l->next) {
12373
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
122 GList *m;
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
123
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
124 chat = l->data;
12373
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
125 matches = 0;
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
126
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
127 for (m = chat->participants; m != NULL; m = m->next) {
12961
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
128 uin_t uin = GPOINTER_TO_INT(m->data);
12373
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
129 int i;
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
130
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
131 for (i = 0; i < count; i++)
12961
4eae108efdde [gaim-migrate @ 15314]
Richard Laager <rlaager@wiktel.com>
parents: 12373
diff changeset
132 if (uin == recipients[i])
12373
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
133 matches++;
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
134 }
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
135
12373
508512caa22e [gaim-migrate @ 14677]
Richard Laager <rlaager@wiktel.com>
parents: 12007
diff changeset
136 if (matches == count)
11414
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
137 break;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
138
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
139 chat = NULL;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
140 }
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
141
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
142 if (chat == NULL)
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
143 return NULL;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
144 else
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
145 return chat->name;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
146 }
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
147 /* }}} */
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
148
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
149 /* const char *ggp_confer_add_new(GaimConnection *gc, const char *name) {{{ */
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
150 const char *ggp_confer_add_new(GaimConnection *gc, const char *name)
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
151 {
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
152 GGPInfo *info = gc->proto_data;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
153 GGPChat *chat;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
154
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
155 chat = g_new0(GGPChat, 1);
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
156
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
157 if (name == NULL)
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
158 chat->name = g_strdup_printf("conf#%d", info->chats_count++);
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
159 else
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
160 chat->name = g_strdup(name);
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
161
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
162 chat->participants = NULL;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
163
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
164 info->chats = g_list_append(info->chats, chat);
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
165
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
166 return chat->name;
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
167 }
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
168 /* }}} */
d5599677bf32 [gaim-migrate @ 13651]
Bartoz Oler <bartosz@pidgin.im>
parents:
diff changeset
169
12007
8724718d387f [gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11414
diff changeset
170 /* vim: set ts=8 sts=0 sw=8 noet: */