diff options
author | James Booth <boothj5@gmail.com> | 2013-01-29 01:02:40 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2013-01-29 01:02:40 +0000 |
commit | 61b4ef9c8311616920805a8837602a3a0ba73fd7 (patch) | |
tree | 7c23c48d18b2995460c79c84a3a3c87cacea724a | |
parent | f60864f87040761ce4142736b3932711ab8c9e94 (diff) | |
download | profani-tty-61b4ef9c8311616920805a8837602a3a0ba73fd7.tar.gz |
Moved roster request to xmpp_iq
-rw-r--r-- | src/xmpp.h | 1 | ||||
-rw-r--r-- | src/xmpp_conn.c | 46 | ||||
-rw-r--r-- | src/xmpp_iq.c | 10 |
3 files changed, 29 insertions, 28 deletions
diff --git a/src/xmpp.h b/src/xmpp.h index 81e19c3f..08cccaab 100644 --- a/src/xmpp.h +++ b/src/xmpp.h @@ -173,6 +173,7 @@ void message_send_gone(const char * const recipient); // iq functions void iq_add_handlers(void); +void iq_roster_request(void); // presence functions void presence_add_handlers(void); diff --git a/src/xmpp_conn.c b/src/xmpp_conn.c index c0940bf2..6b05b48d 100644 --- a/src/xmpp_conn.c +++ b/src/xmpp_conn.c @@ -73,8 +73,6 @@ static jabber_conn_status_t _jabber_connect(const char * const fulljid, const char * const passwd, const char * const altdomain); static void _jabber_reconnect(void); -static void _jabber_roster_request(void); - static void _connection_handler(xmpp_conn_t * const conn, const xmpp_conn_event_t status, const int error, xmpp_stream_error_t * const stream_error, void * const userdata); @@ -140,23 +138,6 @@ jabber_connect_with_details(const char * const jid, return _jabber_connect(saved_details.jid, passwd, saved_details.altdomain); } -static void -_jabber_reconnect(void) -{ - // reconnect with account. - ProfAccount *account = accounts_get_account(saved_account.name); - - if (account == NULL) { - log_error("Unable to reconnect, account no longer exists: %s", saved_account.name); - } else { - char *fulljid = create_fulljid(account->jid, account->resource); - log_debug("Attempting reconnect with account %s", account->name); - _jabber_connect(fulljid, saved_account.passwd, account->server); - free(fulljid); - g_timer_start(reconnect_timer); - } -} - void jabber_disconnect(void) { @@ -373,6 +354,23 @@ _jabber_connect(const char * const fulljid, const char * const passwd, } static void +_jabber_reconnect(void) +{ + // reconnect with account. + ProfAccount *account = accounts_get_account(saved_account.name); + + if (account == NULL) { + log_error("Unable to reconnect, account no longer exists: %s", saved_account.name); + } else { + char *fulljid = create_fulljid(account->jid, account->resource); + log_debug("Attempting reconnect with account %s", account->name); + _jabber_connect(fulljid, saved_account.passwd, account->server); + free(fulljid); + g_timer_start(reconnect_timer); + } +} + +static void _connection_handler(xmpp_conn_t * const conn, const xmpp_conn_event_t status, const int error, xmpp_stream_error_t * const stream_error, void * const userdata) @@ -412,7 +410,7 @@ _connection_handler(xmpp_conn_t * const conn, xmpp_timed_handler_add(conn, _ping_timed_handler, millis, ctx); } - _jabber_roster_request(); + iq_roster_request(); jabber_conn.conn_status = JABBER_CONNECTED; jabber_conn.presence = PRESENCE_ONLINE; @@ -455,14 +453,6 @@ _connection_handler(xmpp_conn_t * const conn, } } -static void -_jabber_roster_request(void) -{ - xmpp_stanza_t *iq = stanza_create_roster_iq(jabber_conn.ctx); - xmpp_send(jabber_conn.conn, iq); - xmpp_stanza_release(iq); -} - static int _ping_timed_handler(xmpp_conn_t * const conn, void * const userdata) { diff --git a/src/xmpp_iq.c b/src/xmpp_iq.c index dae22ddb..1126f53c 100644 --- a/src/xmpp_iq.c +++ b/src/xmpp_iq.c @@ -62,6 +62,16 @@ iq_add_handlers(void) HANDLE(STANZA_NS_PING, STANZA_TYPE_GET, _iq_handle_ping_get); } +void +iq_roster_request(void) +{ + xmpp_conn_t * const conn = jabber_get_conn(); + xmpp_ctx_t * const ctx = jabber_get_ctx(); + xmpp_stanza_t *iq = stanza_create_roster_iq(ctx); + xmpp_send(conn, iq); + xmpp_stanza_release(iq); +} + static int _iq_handle_error(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, void * const userdata) |