summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2011-11-15 15:27:54 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2011-11-16 15:41:07 +0200
commit5e24938677cdd556f7ece2be889b01cdf5a53e48 (patch)
tree903039a501346ea758c4d7f749a1d8c0b4235523
parent4494df4cef64e969d62c3837d51a7bbb51b16a8c (diff)
downloadobexd-5e24938677cdd556f7ece2be889b01cdf5a53e48.tar.gz
Introduce obex_get_non_header_data
This function remove the need of calling OBEX_ObjectGetNonHdrData in the plugins.
-rw-r--r--plugins/ftp.c4
-rw-r--r--plugins/mas.c4
-rw-r--r--plugins/pbap.c4
-rw-r--r--src/obex-priv.h2
-rw-r--r--src/obex.c10
-rw-r--r--src/obex.h2
6 files changed, 20 insertions, 6 deletions
diff --git a/plugins/ftp.c b/plugins/ftp.c
index 0586326..7a736ae 100644
--- a/plugins/ftp.c
+++ b/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/plugins/mas.c b/plugins/mas.c
index 7d3d553..7d47212 100644
--- a/plugins/mas.c
+++ b/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/plugins/pbap.c b/plugins/pbap.c
index fb82766..2e607b3 100644
--- a/plugins/pbap.c
+++ b/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/src/obex-priv.h b/src/obex-priv.h
index a834511..6a439b4 100644
--- a/src/obex-priv.h
+++ b/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/src/obex.c b/src/obex.c
index a1621b9..3a06775 100644
--- a/src/obex.c
+++ b/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/src/obex.h b/src/obex.h
index 6ede0a4..3e8ce00 100644
--- a/src/obex.h
+++ b/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);