diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2011-07-06 01:56:05 +0300 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2011-07-16 17:50:49 +0300 |
commit | 993e1caab0be86fe9637f88b8c058e1edfd6992e (patch) | |
tree | 7bc19afcf0f0d1b8a4fe82cbe408b591779117bd /tools | |
parent | 08cdbf77afc66f4d1262b13d1f0547195d7e66c2 (diff) | |
download | obexd-993e1caab0be86fe9637f88b8c058e1edfd6992e.tar.gz |
gobex: Add put streaming support to test-server
Diffstat (limited to 'tools')
-rw-r--r-- | tools/test-server.c | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/tools/test-server.c b/tools/test-server.c index 4864add..1432203 100644 --- a/tools/test-server.c +++ b/tools/test-server.c @@ -28,6 +28,7 @@ #include <errno.h> #include <gobex/gobex.h> +#include <gobex/gobex-transfer.h> static GMainLoop *main_loop = NULL; @@ -61,9 +62,23 @@ static void disconn_func(GObex *obex, GError *err, gpointer user_data) g_obex_unref(obex); } +static void put_complete(GObex *obex, GError *err, gpointer user_data) +{ + if (err != NULL) + g_printerr("put failed: %s\n", err->message); + else + g_print("put succeeded\n"); +} + +static gboolean recv_data(const void *buf, gsize len, gpointer user_data) +{ + g_print("received %zu bytes of data\n", len); + return TRUE; +} + static void handle_put(GObex *obex, GObexPacket *req, gpointer user_data) { - GObexPacket *rsp; + GError *err = NULL; GObexHeader *hdr; const char *type, *name; gsize type_len; @@ -88,12 +103,11 @@ static void handle_put(GObex *obex, GObexPacket *req, gpointer user_data) g_print("put type \"%s\" name \"%s\"\n", type ? type : "", name ? name : ""); - if (g_obex_packet_find_header(req, G_OBEX_HDR_ID_BODY)) - rsp = g_obex_packet_new(G_OBEX_RSP_CONTINUE, TRUE, NULL); - else - rsp = g_obex_packet_new(G_OBEX_RSP_SUCCESS, TRUE, NULL); - - g_obex_send(obex, rsp, NULL); + g_obex_put_rsp(obex, req, recv_data, put_complete, NULL, &err); + if (err != NULL) { + g_printerr("Unable to send response: %s\n", err->message); + g_error_free(err); + } } static void handle_connect(GObex *obex, GObexPacket *req, gpointer user_data) |