annotate TODO @ 15920:d7feace39800

Fix some reads of invalid memory when shutting down bonjour when there are bonjour buddies in your buddy list. We were iterating through the blist and removing people as we go, which meant we were deleting bnode and then trying to access bnode->next
author Mark Doliner <mark@kingant.net>
date Sun, 25 Mar 2007 17:04:27 +0000
parents 4b5822e48b53
children 361c15e0b320
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10881
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
1 * conversation api {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
2 * need to handle: {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
3 * unnamed chats
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
4 * chats with the same name as a buddy
11451
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
5 * this should be working now, but it needs to be kept in mind when (re-)designing
10881
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
6 * jabber Messages (one off messages vrs a conversation with a backlog)
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
7 * multiple conversations with a single buddy (jabber, with thread tag)
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
8 * bugs
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
9 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
10 * notes: {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
11 * (12:58:39) Robot101: user list always|auto|never
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
12 * topic only where supported by the protocol
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
13 * how do we log this? {{{
11451
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
14 * rlaager's (NEW) proposal: {{{
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
15 * each conversation has 1 or more logs associated with it.
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
16 * when someone joins, a new log is opened
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
17 * file based loggers should try to use hard-links in a smart way
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
18 to avoid duplicating data on disk as much as possible...
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
19 * this needs to be designed in such a way that a database logger
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
20 can handle it w/o duplication...
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
21 * TO SOLVE THESE CONCERNS, a link and/or copy function callback
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
22 will likely need to be added
10881
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
23 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
24 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
25 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
26 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
27 * buddy list {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
28 * we have not committed any gobjectification, so this is not a blocker for 2.0.0 until we do.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
29 * if we do, it is only a blocker to the extent that gaim needs to run. That is, we do not
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
30 *necessarily* have to gobjectifiy everything as long as we preserve functionality.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
31 * That being said, my understanding of the signals mess says that it is probly more work to
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
32 try to do this in stages than to start it or not start it.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
33 * This would require some sort of signal aggregation, as gobject signals are unique to the instance.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
34 * one way to do this would be to emit the signals from a non-descript buddy object. this would
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
35 most closely mimic the current functionality
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
36 * a second way would be to actually try to aggregate them in some way. I really don't know how
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
37 possible this is, but it would allow us to do things like set a pounce on everyone in a group
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
38 or define sounds on a per-group basis.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
39 * we could look at replacing the UI ops with signals/call backs
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
40 * bugs
11415
66fe476474ec [gaim-migrate @ 13652]
Luke Schierer <lschiere@pidgin.im>
parents: 10891
diff changeset
41 * wrong buddy given priority
10881
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
42 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
43 * build targets {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
44 * this is not a blocker
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
45 * we need build targets for libgaim, we need to test them, and make sure they work.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
46 * we ought to use our own build targets to build the executable itself.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
47 * due to the limitations of cvs, this cannot accompany moving files to other directories at this time.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
48 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
49 * status {{{
12680
134e570b3688 [gaim-migrate @ 15023]
Luke Schierer <lschiere@pidgin.im>
parents: 11451
diff changeset
50 * Error messages aren't particularly usable currently. we need to be able to see the full text of
134e570b3688 [gaim-migrate @ 15023]
Luke Schierer <lschiere@pidgin.im>
parents: 11451
diff changeset
51 the error, and what account is in that error condition.
134e570b3688 [gaim-migrate @ 15023]
Luke Schierer <lschiere@pidgin.im>
parents: 11451
diff changeset
52 * No way to see accounts not in the global state.
134e570b3688 [gaim-migrate @ 15023]
Luke Schierer <lschiere@pidgin.im>
parents: 11451
diff changeset
53 * Easier access to saved states is needed.
10881
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
54 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
55 * Privacy {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
56 * this is not a blocker for 2.0.0
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
57 * Privacy sucks. it doesn't handle many of the protocols in a way that users understand. notably
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
58 msn, but also yahoo, jabber, and icq.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
59 * We want to sync to the server as much as possible, entirely local-only privacy is not an option
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
60 except on protocols like irc that have no server-side.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
61 * We want to be as consistent across protocols as possible. this will require renaming things on
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
62 some protocols.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
63 * Bleeter suggests that we create a privacy.xml, remove privacy from blist.xml. He suggests
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
64 that each protocol define certain capabilities & defaults, with accounts.xml holding exceptions
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
65 to the defaults.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
66 }}}
10885
12083e75627f [gaim-migrate @ 12583]
Luke Schierer <lschiere@pidgin.im>
parents: 10881
diff changeset
67 * Perl {{{
10886
0ece4cf68ea6 [gaim-migrate @ 12584]
Luke Schierer <lschiere@pidgin.im>
parents: 10885
diff changeset
68 * Block for 2.0.0 or remove perl:
11415
66fe476474ec [gaim-migrate @ 13652]
Luke Schierer <lschiere@pidgin.im>
parents: 10891
diff changeset
69 * Extended testing and resolving the inevitable bugs remains.
10886
0ece4cf68ea6 [gaim-migrate @ 12584]
Luke Schierer <lschiere@pidgin.im>
parents: 10885
diff changeset
70 * Test each call to make sure it actually works
0ece4cf68ea6 [gaim-migrate @ 12584]
Luke Schierer <lschiere@pidgin.im>
parents: 10885
diff changeset
71 * Make it work with G_MODULE_BIND_LOCAL
10885
12083e75627f [gaim-migrate @ 12583]
Luke Schierer <lschiere@pidgin.im>
parents: 10881
diff changeset
72 }}}
10891
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
73 * Prefs {{{
12680
134e570b3688 [gaim-migrate @ 15023]
Luke Schierer <lschiere@pidgin.im>
parents: 11451
diff changeset
74 * on upgrade from 1.x, the timestamp preference often gets lost.
10891
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
75 }}}
12928
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
76 * system log {{{
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
77 * The system log minimally should tell me what _I_ do in gaim. It should (minimally) tell me about
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
78 my accounts and actions. It should thus list
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
79 * gaim start and quit
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
80 * Account connection
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
81 * account disconnection, and reason if caused by error.
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
82 * account state changes, IFF we are logging that for buddies.
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
83 * This might include the state message(s).
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
84 * This might be done using one or more files.
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
85 * historically, the system log has also functioned to log things about buddies that do not relate
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
86 to a specific conversation. While I(luke) do not at all object to this, it could be argued that
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
87 such functionality more properly belongs in a plugin, such as the buddy state notification plugin.
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
88 if we continue to implement such functionality, it could include:
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
89 * logging when a buddy signs on, including in some form what account sees that change.
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
90 * logging when a buddy signs off, including in some form what account sees that change.
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
91 * " " " " goes idle, " " " " " " " " "
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
92 * " " " " goes away, " " " " " " " " "
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
93 * " " " " becomes available, " " " " " " " " "
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
94 * like the logging of my own accounts, this could be done in one or more files.
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
95 * one potential downside of using multiple files is the idea that either the file's contents
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
96 duplicate information contained in the file's location/name, or that we need to manipulate
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
97 the display so as to convey that information to the user from the graphical viewer
4b5822e48b53 [gaim-migrate @ 15281]
Luke Schierer <lschiere@pidgin.im>
parents: 12680
diff changeset
98 }}}