equal
deleted
inserted
replaced
|
1 Extension.StanzaHandlers should use reflection, not constructor |
|
2 functions. |
|
3 |
|
4 Rather than use Client.AddFilter(), and Extension.Start(), we should |
|
5 have a function in Extension that, if non-nil, accepts a stanza and |
|
6 returns a slice of stanzas. |
|
7 |
|
8 Review all these *Client receiver methods. They should probably either |
|
9 all be receivers, or none. |
|
10 |
|
11 Get rid of Client.Uid. |
|
12 |
|
13 Maybe put auth-related stuff into its own structure inside Client, |
|
14 instead of at Client's top level. |
|
15 |
|
16 Rename stanzaHandler to something like idCallback. Same for the |
|
17 HandleStanza function. |
|
18 |
|
19 Replace inputControl with something like an enum. |
|
20 |
|
21 Rename In and Out channels to Recv and Send. |
|
22 |
|
23 Add a way to broadcast status information as negotiation happens or |
|
24 disconnects occur. Possibly a new type of object that can be sent on |
|
25 Recv along with stanzas. Or use sync.Cond to protect a state |
|
26 variable. |
|
27 |
|
28 Asynchronously updating Client.Features is not thread safe. |
|
29 |
|
30 NewClient shouldn't be asynchronous. |
|
31 |
|
32 Add a Reconnect() function. |
|
33 |
|
34 Put roster and bind into separate packages, if possible. |
|
35 |
|
36 Eliminate as many uses of Generic as possible. |