1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-11-03 19:37:16 -05:00

Fixed error when losing connection and segfaulting on notify_remind()

This commit is contained in:
James Booth 2013-05-06 00:33:33 +01:00
parent 3d8d5214bb
commit 78ff58cf77
5 changed files with 20 additions and 6 deletions

View File

@ -62,6 +62,7 @@ prof_run(const int disable_tls, char *log_level)
inp_non_block();
GTimer *timer = g_timer_new();
gboolean cmd_result = TRUE;
jabber_conn_status_t conn_status = jabber_get_connection_status();
char inp[INP_WIN_MAX];
int size = 0;
@ -71,7 +72,7 @@ prof_run(const int disable_tls, char *log_level)
size = 0;
while(ch != '\n') {
if (jabber_get_connection_status() == JABBER_CONNECTED) {
if (conn_status == JABBER_CONNECTED) {
_handle_idle_time();
}

View File

@ -74,7 +74,13 @@ autocomplete_free(Autocomplete ac)
gint
autocomplete_length(Autocomplete ac)
{
return g_slist_length(ac->items);
if (ac == NULL) {
return 0;
} else if (ac->items == NULL) {
return 0;
} else {
return g_slist_length(ac->items);
}
}
gboolean

View File

@ -100,7 +100,7 @@ jabber_init(const int disable_tls)
jabber_conn.ctx = NULL;
jabber_conn.tls_disabled = disable_tls;
jabber_conn.domain = NULL;
presence_init();
presence_sub_requests_init();
caps_init();
available_resources = g_hash_table_new_full(g_str_hash, g_str_equal, free,
(GDestroyNotify)resource_destroy);
@ -327,7 +327,7 @@ _connection_free_session_data(void)
{
g_hash_table_remove_all(available_resources);
chat_sessions_clear();
presence_free_sub_requests();
presence_clear_sub_requests();
}
int

View File

@ -61,7 +61,7 @@ static void _send_room_presence(xmpp_conn_t *conn, xmpp_stanza_t *presence);
void _send_caps_request(char *node, char *caps_key, char *id, char *from);
void
presence_init(void)
presence_sub_requests_init(void)
{
sub_requests_ac = autocomplete_new();
}
@ -141,6 +141,12 @@ presence_free_sub_requests(void)
autocomplete_free(sub_requests_ac);
}
void
presence_clear_sub_requests(void)
{
autocomplete_clear(sub_requests_ac);
}
char *
presence_sub_request_find(char * search_str)
{

View File

@ -23,8 +23,9 @@
#ifndef PRESENCE_H
#define PRESENCE_H
void presence_sub_requests_init(void);
void presence_add_handlers(void);
void presence_init(void);
void presence_free_sub_requests(void);
void presence_clear_sub_requests(void);
#endif