TODO.txt
author Chris Jones <christian.jones@sri.com>
Sat, 28 Sep 2013 13:03:51 -0600
changeset 154 cd9e0ddbd5e9
parent 153 bbd4166df95d
child 156 520ccb3e05d4
permissions -rw-r--r--
Updated to-do list.

Review all the *Client receiver methods in layer3.go. They should
probably either all be receivers, or none.

Maybe put auth-related stuff into its own structure inside Client,
instead of at Client's top level.

Add a way to broadcast status information as negotiation happens or
disconnects occur. Possibly a new type of object that can be sent on
Recv along with stanzas. Or use sync.Cond to protect a state
variable.

Asynchronously updating Client.Features is not thread safe. Use a
public function GetFeatures() or similar. Same for setting the JID in
bind()?

NewClient should be synchronous, so it can update Features and JID and
leave those as values rather than functions.

Add a Reconnect() function.

Put roster and bind into separate packages, if possible.

Eliminate as many uses of Generic as possible.

Callback doesn't need to return bool. It shouldn't affect what's given
to the client.

Don't keep the password in memory once we're done with it.

Rename extension.StanzaHandlers to something like StanzaTypes.

Think about how to gracefully shutdown. Probably have a Close()
function.

Get rid of logging. We're providing status updates. Allow some sort of
debug flag that prints from layer1.