OSDN Git Service

gobex: Premit raw OBEX error codes within G_OBEX_ERROR GError domain
authorJohan Hedberg <johan.hedberg@intel.com>
Mon, 11 Jul 2011 22:51:37 +0000 (01:51 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 4 Dec 2012 21:22:02 +0000 (22:22 +0100)
gobex/gobex-defs.h
gobex/gobex-transfer.c

index 776615f..9c2ab53 100644 (file)
@@ -30,8 +30,11 @@ typedef enum {
        G_OBEX_DATA_REF,
 } GObexDataPolicy;
 
+#define G_OBEX_ERROR_FIRST (0xff + 1)
+#define G_OBEX_PROTO_ERROR(code) ((code) < G_OBEX_ERROR_FIRST)
+
 typedef enum {
-       G_OBEX_ERROR_PARSE_ERROR,
+       G_OBEX_ERROR_PARSE_ERROR = G_OBEX_ERROR_FIRST,
        G_OBEX_ERROR_INVALID_ARGS,
        G_OBEX_ERROR_DISCONNECTED,
        G_OBEX_ERROR_TIMEOUT,
index 8434366..a23442e 100644 (file)
@@ -150,7 +150,7 @@ static void transfer_response(GObex *obex, GError *err, GObexPacket *rsp,
 
        rspcode = g_obex_packet_get_operation(rsp, &final);
        if (rspcode != G_OBEX_RSP_SUCCESS && rspcode != G_OBEX_RSP_CONTINUE) {
-               err = g_error_new(G_OBEX_ERROR, G_OBEX_ERROR_FAILED,
+               err = g_error_new(G_OBEX_ERROR, rspcode,
                                        "Transfer failed (0x%02x)", rspcode);
                goto failed;
        }