From dcab04f113f7be0f518c5958df53560e166eb1d2 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Tue, 15 Nov 2011 15:27:54 +0200 Subject: [PATCH] obexd: Introduce obex_get_non_header_data This function remove the need of calling OBEX_ObjectGetNonHdrData in the plugins. --- obexd/plugins/ftp.c | 4 ++-- obexd/plugins/mas.c | 4 ++-- obexd/plugins/pbap.c | 4 ++-- obexd/src/obex-priv.h | 2 ++ obexd/src/obex.c | 10 ++++++++++ obexd/src/obex.h | 2 ++ 6 files changed, 20 insertions(+), 6 deletions(-) diff --git a/obexd/plugins/ftp.c b/obexd/plugins/ftp.c index 0586326d6..7a736aeba 100644 --- a/obexd/plugins/ftp.c +++ b/obexd/plugins/ftp.c @@ -255,13 +255,13 @@ int ftp_setpath(struct obex_session *os, obex_object_t *obj, void *user_data) { struct ftp_session *ftp = user_data; const char *root_folder, *name; - uint8_t *nonhdr; + const uint8_t *nonhdr; char *fullname; struct stat dstat; gboolean root; int err; - if (OBEX_ObjectGetNonHdrData(obj, &nonhdr) != 2) { + if (obex_get_non_header_data(os, &nonhdr) != 2) { error("Set path failed: flag and constants not found!"); return -EBADMSG; } diff --git a/obexd/plugins/mas.c b/obexd/plugins/mas.c index 7d3d553e9..7d47212f8 100644 --- a/obexd/plugins/mas.c +++ b/obexd/plugins/mas.c @@ -410,10 +410,10 @@ static int mas_setpath(struct obex_session *os, obex_object_t *obj, void *user_data) { const char *name; - uint8_t *nonhdr; + const uint8_t *nonhdr; struct mas_session *mas = user_data; - if (OBEX_ObjectGetNonHdrData(obj, &nonhdr) != 2) { + if (obex_get_non_header_data(os, &nonhdr) != 2) { error("Set path failed: flag and constants not found!"); return -EBADR; } diff --git a/obexd/plugins/pbap.c b/obexd/plugins/pbap.c index fb827662a..2e607b3f2 100644 --- a/obexd/plugins/pbap.c +++ b/obexd/plugins/pbap.c @@ -698,11 +698,11 @@ static int pbap_setpath(struct obex_session *os, obex_object_t *obj, { struct pbap_session *pbap = user_data; const char *name; - uint8_t *nonhdr; + const uint8_t *nonhdr; char *fullname; int err; - if (OBEX_ObjectGetNonHdrData(obj, &nonhdr) != 2) { + if (obex_get_non_header_data(os, &nonhdr) != 2) { error("Set path failed: flag and constants not found!"); return -EBADMSG; } diff --git a/obexd/src/obex-priv.h b/obexd/src/obex-priv.h index a8345112d..6a439b4bc 100644 --- a/obexd/src/obex-priv.h +++ b/obexd/src/obex-priv.h @@ -36,6 +36,8 @@ struct obex_session { time_t time; uint8_t *apparam; size_t apparam_len; + uint8_t *nonhdr; + size_t nonhdr_len; uint8_t *buf; int64_t pending; int64_t offset; diff --git a/obexd/src/obex.c b/obexd/src/obex.c index a1621b926..3a06775b1 100644 --- a/obexd/src/obex.c +++ b/obexd/src/obex.c @@ -931,6 +931,8 @@ static void cmd_setpath(struct obex_session *os, break; } + os->nonhdr_len = OBEX_ObjectGetNonHdrData(obj, &os->nonhdr); + err = os->service->setpath(os, obj, os->service_data); os_set_response(obj, err); } @@ -1546,6 +1548,14 @@ ssize_t obex_get_apparam(struct obex_session *os, const uint8_t **buffer) return os->apparam_len; } +ssize_t obex_get_non_header_data(struct obex_session *os, + const uint8_t **data) +{ + *data = os->nonhdr; + + return os->nonhdr_len; +} + int memncmp0(const void *a, size_t na, const void *b, size_t nb) { if (na != nb) diff --git a/obexd/src/obex.h b/obexd/src/obex.h index 6ede0a4d8..3e8ce00d6 100644 --- a/obexd/src/obex.h +++ b/obexd/src/obex.h @@ -48,6 +48,8 @@ int obex_move(struct obex_session *os, const char *source, uint8_t obex_get_action_id(struct obex_session *os); char *obex_get_id(struct obex_session *os); ssize_t obex_get_apparam(struct obex_session *os, const uint8_t **buffer); +ssize_t obex_get_non_header_data(struct obex_session *os, + const uint8_t **data); /* Just a thin wrapper around memcmp to deal with NULL values */ int memncmp0(const void *a, size_t na, const void *b, size_t nb); -- 2.47.3