mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-27 13:46:21 +00:00
Add connection_clear_data()
This commit is contained in:
@@ -81,10 +81,10 @@ void
|
|||||||
connection_init(void)
|
connection_init(void)
|
||||||
{
|
{
|
||||||
xmpp_initialize();
|
xmpp_initialize();
|
||||||
conn.conn_status = JABBER_DISCONNECTED;
|
|
||||||
conn.presence_message = NULL;
|
|
||||||
conn.xmpp_conn = NULL;
|
conn.xmpp_conn = NULL;
|
||||||
conn.xmpp_ctx = NULL;
|
conn.xmpp_ctx = NULL;
|
||||||
|
conn.conn_status = JABBER_DISCONNECTED;
|
||||||
|
conn.presence_message = NULL;
|
||||||
conn.domain = NULL;
|
conn.domain = NULL;
|
||||||
conn.features_by_jid = NULL;
|
conn.features_by_jid = NULL;
|
||||||
conn.available_resources = g_hash_table_new_full(g_str_hash, g_str_equal, free, (GDestroyNotify)resource_destroy);
|
conn.available_resources = g_hash_table_new_full(g_str_hash, g_str_equal, free, (GDestroyNotify)resource_destroy);
|
||||||
@@ -93,8 +93,7 @@ connection_init(void)
|
|||||||
void
|
void
|
||||||
connection_shutdown(void)
|
connection_shutdown(void)
|
||||||
{
|
{
|
||||||
connection_disco_items_free();
|
connection_clear_data();
|
||||||
connection_remove_all_available_resources();
|
|
||||||
xmpp_shutdown();
|
xmpp_shutdown();
|
||||||
|
|
||||||
free(conn.xmpp_log);
|
free(conn.xmpp_log);
|
||||||
@@ -206,6 +205,15 @@ connection_disconnect(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
connection_clear_data(void)
|
||||||
|
{
|
||||||
|
g_hash_table_destroy(conn.features_by_jid);
|
||||||
|
conn.features_by_jid = NULL;
|
||||||
|
|
||||||
|
g_hash_table_remove_all(conn.available_resources);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LIBMESODE
|
#ifdef HAVE_LIBMESODE
|
||||||
TLSCertificate*
|
TLSCertificate*
|
||||||
connection_get_tls_peer_cert(void)
|
connection_get_tls_peer_cert(void)
|
||||||
@@ -350,12 +358,6 @@ connection_remove_available_resource(const char *const resource)
|
|||||||
g_hash_table_remove(conn.available_resources, resource);
|
g_hash_table_remove(conn.available_resources, resource);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
connection_remove_all_available_resources(void)
|
|
||||||
{
|
|
||||||
g_hash_table_remove_all(conn.available_resources);
|
|
||||||
}
|
|
||||||
|
|
||||||
char*
|
char*
|
||||||
connection_create_uuid(void)
|
connection_create_uuid(void)
|
||||||
{
|
{
|
||||||
@@ -409,13 +411,6 @@ connection_set_priority(const int priority)
|
|||||||
conn.priority = priority;
|
conn.priority = priority;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
connection_disco_items_free(void)
|
|
||||||
{
|
|
||||||
g_hash_table_destroy(conn.features_by_jid);
|
|
||||||
conn.features_by_jid = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_connection_handler(xmpp_conn_t *const xmpp_conn, const xmpp_conn_event_t status, const int error,
|
_connection_handler(xmpp_conn_t *const xmpp_conn, const xmpp_conn_event_t status, const int error,
|
||||||
xmpp_stream_error_t *const stream_error, void *const userdata)
|
xmpp_stream_error_t *const stream_error, void *const userdata)
|
||||||
|
|||||||
@@ -58,10 +58,10 @@ xmpp_ctx_t* connection_get_ctx(void);
|
|||||||
char *connection_get_domain(void);
|
char *connection_get_domain(void);
|
||||||
char* connection_jid_for_feature(const char *const feature);
|
char* connection_jid_for_feature(const char *const feature);
|
||||||
GHashTable* connection_get_features(const char *const jid);
|
GHashTable* connection_get_features(const char *const jid);
|
||||||
void connection_disco_items_free(void);
|
|
||||||
|
void connection_clear_data(void);
|
||||||
|
|
||||||
void connection_add_available_resource(Resource *resource);
|
void connection_add_available_resource(Resource *resource);
|
||||||
void connection_remove_available_resource(const char *const resource);
|
void connection_remove_available_resource(const char *const resource);
|
||||||
void connection_remove_all_available_resources(void);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -208,8 +208,7 @@ session_disconnect(void)
|
|||||||
connection_disconnect();
|
connection_disconnect();
|
||||||
_session_free_saved_account();
|
_session_free_saved_account();
|
||||||
_session_free_saved_details();
|
_session_free_saved_details();
|
||||||
connection_disco_items_free();
|
connection_clear_data();
|
||||||
connection_remove_all_available_resources();
|
|
||||||
chat_sessions_clear();
|
chat_sessions_clear();
|
||||||
presence_clear_sub_requests();
|
presence_clear_sub_requests();
|
||||||
}
|
}
|
||||||
@@ -317,21 +316,16 @@ session_login_failed(void)
|
|||||||
sv_ev_failed_login();
|
sv_ev_failed_login();
|
||||||
_session_free_saved_account();
|
_session_free_saved_account();
|
||||||
_session_free_saved_details();
|
_session_free_saved_details();
|
||||||
connection_disco_items_free();
|
|
||||||
connection_remove_all_available_resources();
|
|
||||||
chat_sessions_clear();
|
|
||||||
presence_clear_sub_requests();
|
|
||||||
} else {
|
} else {
|
||||||
log_debug("Connection handler: Restarting reconnect timer");
|
log_debug("Connection handler: Restarting reconnect timer");
|
||||||
if (prefs_get_reconnect() != 0) {
|
if (prefs_get_reconnect() != 0) {
|
||||||
g_timer_start(reconnect_timer);
|
g_timer_start(reconnect_timer);
|
||||||
}
|
}
|
||||||
// free resources but leave saved_user untouched
|
|
||||||
connection_disco_items_free();
|
|
||||||
connection_remove_all_available_resources();
|
|
||||||
chat_sessions_clear();
|
|
||||||
presence_clear_sub_requests();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
connection_clear_data();
|
||||||
|
chat_sessions_clear();
|
||||||
|
presence_clear_sub_requests();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -345,8 +339,8 @@ session_lost_connection(void)
|
|||||||
_session_free_saved_account();
|
_session_free_saved_account();
|
||||||
_session_free_saved_details();
|
_session_free_saved_details();
|
||||||
}
|
}
|
||||||
connection_disco_items_free();
|
|
||||||
connection_remove_all_available_resources();
|
connection_clear_data();
|
||||||
chat_sessions_clear();
|
chat_sessions_clear();
|
||||||
presence_clear_sub_requests();
|
presence_clear_sub_requests();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user