Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/EionRobb/skype4pidgin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEion Robb <eion@robbmob.com>2017-04-17 10:46:30 +0300
committerEion Robb <eion@robbmob.com>2017-04-17 10:46:30 +0300
commite95356fe75ba1b67b266690a12caf105585e412b (patch)
tree6adddf4bc42fa1899b5d7df58f09e5acd066d365 /skypeweb/skypeweb_connection.c
parent1dba378157bc5a1cea5441a2e5ff1bb54b5f72b9 (diff)
Multiple fixes for issue #541
* Parse 404 responses as they have useful data * Attach to an endpoint before setting online status * Allow specifying NULL as an `end` param for get_chunk()
Diffstat (limited to 'skypeweb/skypeweb_connection.c')
-rw-r--r--skypeweb/skypeweb_connection.c42
1 files changed, 19 insertions, 23 deletions
diff --git a/skypeweb/skypeweb_connection.c b/skypeweb/skypeweb_connection.c
index c216ad0..4f58542 100644
--- a/skypeweb/skypeweb_connection.c
+++ b/skypeweb/skypeweb_connection.c
@@ -34,34 +34,30 @@ skypeweb_post_or_get_cb(PurpleHttpConnection *http_conn, PurpleHttpResponse *res
const gchar *data;
gsize len;
- if (purple_http_response_is_successful(response)) {
- data = purple_http_response_get_data(response, &len);
-
- if (conn->callback != NULL) {
- if (!len)
+ data = purple_http_response_get_data(response, &len);
+
+ if (conn->callback != NULL) {
+ if (!len)
+ {
+ purple_debug_info("skypeweb", "No data in response\n");
+ conn->callback(conn->sa, NULL, conn->user_data);
+ } else {
+ JsonParser *parser = json_parser_new();
+ if (!json_parser_load_from_data(parser, data, len, NULL))
{
- purple_debug_info("skypeweb", "No data in response\n");
- conn->callback(conn->sa, NULL, conn->user_data);
- } else {
- JsonParser *parser = json_parser_new();
- if (!json_parser_load_from_data(parser, data, len, NULL))
- {
- if (conn->error_callback != NULL) {
- conn->error_callback(conn->sa, data, len, conn->user_data);
- } else {
- purple_debug_error("skypeweb", "Error parsing response: %s\n", data);
- }
+ if (conn->error_callback != NULL) {
+ conn->error_callback(conn->sa, data, len, conn->user_data);
} else {
- JsonNode *root = json_parser_get_root(parser);
-
- purple_debug_info("skypeweb", "executing callback for %s\n", conn->url);
- conn->callback(conn->sa, root, conn->user_data);
+ purple_debug_error("skypeweb", "Error parsing response: %s\n", data);
}
- g_object_unref(parser);
+ } else {
+ JsonNode *root = json_parser_get_root(parser);
+
+ purple_debug_info("skypeweb", "executing callback for %s\n", conn->url);
+ conn->callback(conn->sa, root, conn->user_data);
}
+ g_object_unref(parser);
}
- } else {
- purple_debug_error("skypeweb", "error in response: %s\n", purple_http_response_get_error(response));
}
skypeweb_destroy_connection(conn);