diff options
Diffstat (limited to 'protocols')
| -rw-r--r-- | protocols/twitter/twitter.c | 12 | ||||
| -rw-r--r-- | protocols/twitter/twitter_http.c | 6 | ||||
| -rw-r--r-- | protocols/twitter/twitter_lib.c | 27 | 
3 files changed, 24 insertions, 21 deletions
| diff --git a/protocols/twitter/twitter.c b/protocols/twitter/twitter.c index b619b1e5..a8103cca 100644 --- a/protocols/twitter/twitter.c +++ b/protocols/twitter/twitter.c @@ -677,14 +677,14 @@ static void twitter_logout(struct im_connection *ic)  	// Set the status to logged out.  	ic->flags &= ~OPT_LOGGED_IN; -	// Remove the main_loop function from the function queue. -	b_event_remove(td->main_loop_id); +	if (td) { +		// Remove the main_loop function from the function queue. +		b_event_remove(td->main_loop_id); -	if (td->timeline_gc) { -		imcb_chat_free(td->timeline_gc); -	} +		if (td->timeline_gc) { +			imcb_chat_free(td->timeline_gc); +		} -	if (td) {  		if (td->filter_update_id > 0) {  			b_event_remove(td->filter_update_id);  		} diff --git a/protocols/twitter/twitter_http.c b/protocols/twitter/twitter_http.c index 2632f333..c06cac39 100644 --- a/protocols/twitter/twitter_http.c +++ b/protocols/twitter/twitter_http.c @@ -52,7 +52,7 @@ struct http_request *twitter_http(struct im_connection *ic, char *url_string, ht  	struct twitter_data *td = ic->proto_data;  	char *tmp;  	GString *request = g_string_new(""); -	void *ret; +	void *ret = NULL;  	char *url_arguments;  	url_t *base_url = NULL; @@ -71,8 +71,7 @@ struct http_request *twitter_http(struct im_connection *ic, char *url_string, ht  	if (strstr(url_string, "://")) {  		base_url = g_new0(url_t, 1);  		if (!url_set(base_url, url_string)) { -			g_free(base_url); -			return NULL; +			goto error;  		}  	} @@ -131,6 +130,7 @@ struct http_request *twitter_http(struct im_connection *ic, char *url_string, ht  		ret = http_dorequest(td->url_host, td->url_port, td->url_ssl, request->str, func, data);  	} +error:  	g_free(url_arguments);  	g_string_free(request, TRUE);  	g_free(base_url); diff --git a/protocols/twitter/twitter_lib.c b/protocols/twitter/twitter_lib.c index 40adb992..80747015 100644 --- a/protocols/twitter/twitter_lib.c +++ b/protocols/twitter/twitter_lib.c @@ -311,14 +311,14 @@ static void twitter_http_get_friends_ids(struct http_request *req)  	td = ic->proto_data; -	txl = g_new0(struct twitter_xml_list, 1); -	txl->list = td->follow_ids; -  	// Parse the data.  	if (!(parsed = twitter_parse_response(ic, req))) {  		return;  	} +	txl = g_new0(struct twitter_xml_list, 1); +	txl->list = td->follow_ids; +  	twitter_xt_get_friends_id_list(parsed, txl);  	json_value_free(parsed); @@ -387,13 +387,14 @@ static void twitter_http_get_users_lookup(struct http_request *req)  		return;  	} -	txl = g_new0(struct twitter_xml_list, 1); -	txl->list = NULL; -  	// Get the user list from the parsed xml feed.  	if (!(parsed = twitter_parse_response(ic, req))) {  		return;  	} + +	txl = g_new0(struct twitter_xml_list, 1); +	txl->list = NULL; +  	twitter_xt_get_users(parsed, txl);  	json_value_free(parsed); @@ -1384,13 +1385,14 @@ static void twitter_http_get_home_timeline(struct http_request *req)  	td = ic->proto_data; -	txl = g_new0(struct twitter_xml_list, 1); -	txl->list = NULL; -  	// The root <statuses> node should hold the list of statuses <status>  	if (!(parsed = twitter_parse_response(ic, req))) {  		goto end;  	} + +	txl = g_new0(struct twitter_xml_list, 1); +	txl->list = NULL; +  	twitter_xt_get_status_list(ic, parsed, txl);  	json_value_free(parsed); @@ -1423,13 +1425,14 @@ static void twitter_http_get_mentions(struct http_request *req)  	td = ic->proto_data; -	txl = g_new0(struct twitter_xml_list, 1); -	txl->list = NULL; -  	// The root <statuses> node should hold the list of statuses <status>  	if (!(parsed = twitter_parse_response(ic, req))) {  		goto end;  	} + +	txl = g_new0(struct twitter_xml_list, 1); +	txl->list = NULL; +  	twitter_xt_get_status_list(ic, parsed, txl);  	json_value_free(parsed); | 
