Mercurial > pidgin
annotate src/protocols/msn/cmdproc.h @ 13905:4e44ecb866bd
[gaim-migrate @ 16394]
msn_session_sync_users() iterates over the buddy list, following the ->next pointers of the groups, contacts, and buddies. msn_show_sync_issue(), if called, removed the buddy for which it was called, in preparation for the buddy either being added to the server list or confirmed-to-be-removed. This could lead to the buddy pointer being released and ->next therefore being junk.
The buddy is now not removed until the user responds to the action dialog presented via msn_show_sync_issue(). I'm unclear why gtkgaim got away with this exercise in memory stomping but Adium/libgaim crashed every time, but it's safer in any case.
I also changed some foo->bar to gaim_foo_get_bar().
committer: Tailor Script <tailor@pidgin.im>
author | Evan Schoenberg <evan.s@dreskin.net> |
---|---|
date | Sun, 02 Jul 2006 09:37:25 +0000 |
parents | bcfea6c3d5c9 |
children |
rev | line source |
---|---|
8810 | 1 /** |
2 * @file cmdproc.h MSN command processor functions | |
3 * | |
4 * gaim | |
5 * | |
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
6 * Gaim is the legal property of its developers, whose names are too numerous |
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
7 * to list here. Please refer to the COPYRIGHT file distributed with this |
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
8 * source distribution. |
8810 | 9 * |
10 * This program is free software; you can redistribute it and/or modify | |
11 * it under the terms of the GNU General Public License as published by | |
12 * the Free Software Foundation; either version 2 of the License, or | |
13 * (at your option) any later version. | |
14 * | |
15 * This program is distributed in the hope that it will be useful, | |
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 * GNU General Public License for more details. | |
19 * | |
20 * You should have received a copy of the GNU General Public License | |
21 * along with this program; if not, write to the Free Software | |
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
23 */ | |
24 #ifndef _MSN_CMDPROC_H_ | |
25 #define _MSN_CMDPROC_H_ | |
26 | |
27 typedef struct _MsnCmdProc MsnCmdProc; | |
28 | |
29 #include "session.h" | |
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
8810
diff
changeset
|
30 #include "servconn.h" |
8810 | 31 #include "error.h" |
32 #include "command.h" | |
33 #include "table.h" | |
34 #include "history.h" | |
35 | |
36 struct _MsnCmdProc | |
37 { | |
38 MsnSession *session; | |
39 MsnServConn *servconn; | |
40 | |
41 GQueue *txqueue; | |
42 | |
43 MsnCommand *last_cmd; | |
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
44 |
8810 | 45 MsnTable *cbs_table; |
46 | |
47 MsnHistory *history; | |
10463 | 48 |
49 void *data; /**< Extra data, like the switchboard. */ | |
8810 | 50 }; |
51 | |
52 MsnCmdProc *msn_cmdproc_new(MsnSession *session); | |
53 void msn_cmdproc_destroy(MsnCmdProc *cmdproc); | |
54 | |
55 void msn_cmdproc_process_queue(MsnCmdProc *cmdproc); | |
56 | |
57 void msn_cmdproc_send_trans(MsnCmdProc *cmdproc, MsnTransaction *trans); | |
58 void msn_cmdproc_queue_trans(MsnCmdProc *cmdproc, | |
59 MsnTransaction *trans); | |
60 void msn_cmdproc_send(MsnCmdProc *cmdproc, const char *command, | |
61 const char *format, ...); | |
62 void msn_cmdproc_send_quick(MsnCmdProc *cmdproc, const char *command, | |
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
8810
diff
changeset
|
63 const char *format, ...); |
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
64 |
8810 | 65 void msn_cmdproc_process_msg(MsnCmdProc *cmdproc, |
66 MsnMessage *msg); | |
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
67 void msn_cmdproc_process_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd); |
8810 | 68 void msn_cmdproc_process_cmd_text(MsnCmdProc *cmdproc, const char *command); |
69 void msn_cmdproc_process_payload(MsnCmdProc *cmdproc, | |
70 char *payload, int payload_len); | |
71 | |
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
72 void msn_cmdproc_disconnect(MsnCmdProc *cmdproc); |
8810 | 73 |
74 #endif /* _MSN_CMDPROC_H_ */ |