119
|
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.
|