aboutsummaryrefslogtreecommitdiffstats
path: root/facebook/facebook-api.c
diff options
context:
space:
mode:
authorjgeboski <jgeboski@gmail.com>2015-12-15 23:41:53 -0500
committerjgeboski <jgeboski@gmail.com>2015-12-20 13:08:39 -0500
commit2018aa1a288d5204d5d066bff672df8cb46065b9 (patch)
treecc051528a9ce8896cbc6d2b9d2bab0190cba3a35 /facebook/facebook-api.c
parentb9f3d252fc662e3ff3a216f1ea42e0d85cd34d69 (diff)
downloadbitlbee-facebook-2018aa1a288d5204d5d066bff672df8cb46065b9.tar.gz
bitlbee-facebook-2018aa1a288d5204d5d066bff672df8cb46065b9.tar.bz2
bitlbee-facebook-2018aa1a288d5204d5d066bff672df8cb46065b9.tar.xz
facebook-util: use the GConverter interface instead of zlib
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)",