aboutsummaryrefslogtreecommitdiffstats
path: root/facebook/facebook-api.c
diff options
context:
space:
mode:
Diffstat (limited to 'facebook/facebook-api.c')
-rw-r--r--facebook/facebook-api.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/facebook/facebook-api.c b/facebook/facebook-api.c
index 512bd3f..57a22b0 100644
--- a/facebook/facebook-api.c
+++ b/facebook/facebook-api.c
@@ -799,6 +799,7 @@ fb_api_cb_mqtt_open(FbMqtt *mqtt, gpointer data)
FbApiPrivate *priv = api->priv;
FbThrift *thft;
GByteArray *cytes;
+ GError *err = NULL;
static guint8 flags = FB_MQTT_CONNECT_FLAG_USER |
FB_MQTT_CONNECT_FLAG_PASS |
@@ -873,7 +874,12 @@ fb_api_cb_mqtt_open(FbMqtt *mqtt, gpointer data)
fb_thrift_write_stop(thft);
bytes = fb_thrift_get_bytes(thft);
- cytes = fb_util_zcompress(bytes);
+ cytes = fb_util_zcompress(bytes, &err);
+
+ FB_API_ERROR_EMIT(api, err,
+ g_object_unref(thft);
+ return;
+ );
fb_util_debug_hexdump(FB_UTIL_DEBUG_LEVEL_INFO, bytes, "Writing connect");
fb_mqtt_connect(mqtt, flags, cytes);
@@ -1547,6 +1553,7 @@ fb_api_cb_mqtt_publish(FbMqtt *mqtt, const gchar *topic, GByteArray *pload,
FbApi *api = data;
gboolean comp;
GByteArray *bytes;
+ GError *err = NULL;
guint i;
static const struct {
@@ -1563,12 +1570,8 @@ fb_api_cb_mqtt_publish(FbMqtt *mqtt, const gchar *topic, GByteArray *pload,
comp = fb_util_zcompressed(pload);
if (G_LIKELY(comp)) {
- bytes = fb_util_zuncompress(pload);
-
- if (G_UNLIKELY(bytes == NULL)) {
- fb_api_error(api, FB_API_ERROR, "Failed to decompress");
- return;
- }
+ bytes = fb_util_zuncompress(pload, &err);
+ FB_API_ERROR_EMIT(api, err, return);
} else {
bytes = (GByteArray*) pload;
}
@@ -2054,6 +2057,7 @@ fb_api_publish(FbApi *api, const gchar *topic, const gchar *format, ...)
GByteArray *bytes;
GByteArray *cytes;
gchar *msg;
+ GError *err = NULL;
va_list ap;
g_return_if_fail(FB_IS_API(api));
@@ -2066,7 +2070,12 @@ fb_api_publish(FbApi *api, const gchar *topic, const gchar *format, ...)
va_end(ap);
bytes = g_byte_array_new_take((guint8*) msg, strlen(msg));
- cytes = fb_util_zcompress(bytes);
+ cytes = fb_util_zcompress(bytes, &err);
+
+ FB_API_ERROR_EMIT(api, err,
+ g_byte_array_free(bytes, TRUE);
+ return;
+ );
fb_util_debug_hexdump(FB_UTIL_DEBUG_LEVEL_INFO, bytes,
"Writing message (topic: %s)",