Lance Stout 9f1648328f Resolve timeout errors for get_roster.
See issue #89

Using get_roster will now return the same types of values as
Iq.send. If a timeout occurs, then the event 'roster_timeout'
will be fired. A successful call to get_roster will also
raise the 'roster_received' event.

To ensure that the get_roster call was successful, here
is a pattern to follow:

    def __init__(self, ...):
        ...
        self.add_event_handler('session_start', self.session_start)
        self.add_event_handler('roster_timeout', self.roster_timeout)
        self.add_event_handler('roster_received', self.roster_received)

    def session_start(self, e):
        self.send_presence()
        self.get_roster()

    def roster_timeout(self, e):
        # Optionally increase the timeout period
        self.get_roster(timeout=self.response_timeout * 2)

    def roster_received(self, iq):
        # Do stuff, roster has been initialized.
        ...
2011-05-20 12:56:00 -04:00
..
2010-10-07 19:42:28 -04:00
2010-10-07 10:58:13 -04:00
2010-11-05 21:18:48 -04:00
2010-10-07 10:58:13 -04:00
2010-11-05 21:18:48 -04:00
2010-11-05 21:18:48 -04:00
2010-11-05 21:18:48 -04:00
2010-11-05 21:18:48 -04:00
2010-11-05 21:18:48 -04:00
2011-02-08 21:09:49 -05:00
2010-11-05 21:18:48 -04:00
2010-11-05 21:18:48 -04:00
2010-12-08 00:18:04 -05:00