aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--protocols/twitter/twitter.c4
-rw-r--r--protocols/twitter/twitter.h3
-rw-r--r--protocols/twitter/twitter_lib.c6
3 files changed, 7 insertions, 6 deletions
diff --git a/protocols/twitter/twitter.c b/protocols/twitter/twitter.c
index 50bf6cd2..a74250bf 100644
--- a/protocols/twitter/twitter.c
+++ b/protocols/twitter/twitter.c
@@ -150,7 +150,7 @@ static gboolean twitter_oauth_callback( struct oauth_info *info )
if( info->request_token == NULL )
{
- imcb_error( ic, "OAuth error: %s", info->http->status_string );
+ imcb_error( ic, "OAuth error: %s", twitter_parse_error( info->http ) );
imc_logout( ic, TRUE );
return FALSE;
}
@@ -166,7 +166,7 @@ static gboolean twitter_oauth_callback( struct oauth_info *info )
{
if( info->token == NULL || info->token_secret == NULL )
{
- imcb_error( ic, "OAuth error: %s", info->http->status_string );
+ imcb_error( ic, "OAuth error: %s", twitter_parse_error( info->http ) );
imc_logout( ic, TRUE );
return FALSE;
}
diff --git a/protocols/twitter/twitter.h b/protocols/twitter/twitter.h
index 5bce97d4..a3b21a07 100644
--- a/protocols/twitter/twitter.h
+++ b/protocols/twitter/twitter.h
@@ -84,4 +84,7 @@ extern GSList *twitter_connections;
void twitter_login_finish( struct im_connection *ic );
+struct http_request;
+char *twitter_parse_error( struct http_request *req );
+
#endif //_TWITTER_H
diff --git a/protocols/twitter/twitter_lib.c b/protocols/twitter/twitter_lib.c
index e8fb3530..472ce944 100644
--- a/protocols/twitter/twitter_lib.c
+++ b/protocols/twitter/twitter_lib.c
@@ -141,7 +141,7 @@ static void twitter_add_buddy(struct im_connection *ic, char *name, const char *
/* Warning: May return a malloc()ed value, which will be free()d on the next
call. Only for short-term use. */
-static char *twitter_parse_error(struct http_request *req)
+char *twitter_parse_error(struct http_request *req)
{
static char *ret = NULL;
struct xt_parser *xp = NULL;
@@ -160,14 +160,12 @@ static char *twitter_parse_error(struct http_request *req)
node->text_len > 0)
{
ret = g_strdup_printf("%s (%s)", req->status_string, node->text);
- xt_free(xp);
- return ret;
}
xt_free(xp);
}
- return req->status_string;
+ return ret ? ret : req->status_string;
}
static void twitter_http_get_friends_ids(struct http_request *req);