diff --git a/gobex/gobex-header.c b/gobex/gobex-header.c
index c2f0085..4a28bf8 100644
--- a/gobex/gobex-header.c
+++ b/gobex/gobex-header.c
#include <string.h>
#include "gobex-header.h"
+#include "gobex-debug.h"
/* Header types */
#define G_OBEX_HDR_ENC_UNICODE (0 << 6)
if (len < 2) {
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR,
"Too short header in packet");
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
return NULL;
}
return header;
failed:
+ if (*err)
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
g_obex_header_free(header);
return NULL;
}
diff --git a/gobex/gobex-packet.c b/gobex/gobex-packet.c
index de5a1a8..c7d9e38 100644
--- a/gobex/gobex-packet.c
+++ b/gobex/gobex-packet.c
#include "gobex-defs.h"
#include "gobex-packet.h"
+#include "gobex-debug.h"
#define FINAL_BIT 0x80
if (data_policy == G_OBEX_DATA_INHERIT) {
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_INVALID_ARGS,
"Invalid data policy");
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
return NULL;
}
if (len < 3 + header_offset) {
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR,
"Not enough data to decode packet");
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
return NULL;
}
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR,
"Incorrect packet length (%u != %zu)",
packet_len, len);
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
return NULL;
}
diff --git a/gobex/gobex-transfer.c b/gobex/gobex-transfer.c
index ab8cf2b..7220cfd 100644
--- a/gobex/gobex-transfer.c
+++ b/gobex/gobex-transfer.c
#include <errno.h>
#include "gobex.h"
+#include "gobex-debug.h"
#define FIRST_PACKET_TIMEOUT 60
/* Intentionally override error */
err = g_error_new(G_OBEX_ERROR, G_OBEX_ERROR_CANCELLED,
"Operation was aborted");
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", err->message);
transfer_complete(transfer, err);
g_error_free(err);
}
transfer, &err);
failed:
if (err != NULL) {
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", err->message);
transfer_complete(transfer, err);
g_error_free(err);
}
err = g_error_new(G_OBEX_ERROR, G_OBEX_ERROR_CANCELLED,
"Data producer function failed");
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", err->message);
transfer_complete(transfer, err);
g_error_free(err);
diff --git a/gobex/gobex.c b/gobex/gobex.c
index e1cf5e3..da2ff01 100644
--- a/gobex/gobex.c
+++ b/gobex/gobex.c
{
GObex *obex = user_data;
struct pending_pkt *p = obex->pending_req;
+ GError *err;
g_assert(p != NULL);
obex->pending_req = NULL;
- if (p->rsp_func) {
- GError *err = g_error_new(G_OBEX_ERROR, G_OBEX_ERROR_TIMEOUT,
+ err = g_error_new(G_OBEX_ERROR, G_OBEX_ERROR_TIMEOUT,
"Timed out waiting for response");
+
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", err->message);
+
+ obex->pending_req = NULL;
+
+ if (p->rsp_func)
p->rsp_func(obex, err, NULL, p->rsp_data);
- g_error_free(err);
- }
+ g_error_free(err);
pending_pkt_free(p);
return FALSE;
if (obex->io == NULL) {
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_DISCONNECTED,
"The transport is not connected");
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
return FALSE;
}
if (obex == NULL || pkt == NULL) {
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_INVALID_ARGS,
"Invalid arguments");
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
return FALSE;
}
err = g_error_new(G_OBEX_ERROR, G_OBEX_ERROR_CANCELLED,
"The operation was cancelled");
+ if (err)
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", err->message);
+
+
if (p->rsp_func) {
p->rsp_func(obex, err, rsp, p->rsp_data);
if (obex->rx_pkt_len > obex->rx_mtu) {
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR,
"Too big incoming packet");
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
return FALSE;
}
if (obex->rx_data > 0) {
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR,
"RX buffer not empty before reading packet");
- return FALSE;
+ goto fail;
}
status = g_io_channel_read_chars(io, (gchar *) obex->rx_buf,
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR,
"Unable to read data: %s", read_err->message);
g_error_free(read_err);
- return FALSE;
+ goto fail;
}
obex->rx_data += rbytes;
if (rbytes < 3) {
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR,
"Incomplete packet received");
- return FALSE;
+ goto fail;
}
memcpy(&u16, &obex->rx_buf[1], sizeof(u16));
}
return TRUE;
+fail:
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
+ return FALSE;
}
static gboolean incoming_data(GIOChannel *io, GIOCondition cond,
return TRUE;
failed:
+ if (err)
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", err->message);
+
g_io_channel_unref(obex->io);
obex->io = NULL;
obex->io_source = 0;