diff --git a/obexd/plugins/ftp.c b/obexd/plugins/ftp.c
index 0586326..7a736ae 100644
--- a/obexd/plugins/ftp.c
+++ b/obexd/plugins/ftp.c
{
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 7d3d553..7d47212 100644
--- a/obexd/plugins/mas.c
+++ b/obexd/plugins/mas.c
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 fb82766..2e607b3 100644
--- a/obexd/plugins/pbap.c
+++ b/obexd/plugins/pbap.c
{
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 a834511..6a439b4 100644
--- a/obexd/src/obex-priv.h
+++ b/obexd/src/obex-priv.h
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 a1621b9..3a06775 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
break;
}
+ os->nonhdr_len = OBEX_ObjectGetNonHdrData(obj, &os->nonhdr);
+
err = os->service->setpath(os, obj, os->service_data);
os_set_response(obj, err);
}
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 6ede0a4..3e8ce00 100644
--- a/obexd/src/obex.h
+++ b/obexd/src/obex.h
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);