diff --git a/obexd/plugins/filesystem.c b/obexd/plugins/filesystem.c
index 7bfe673..b4ff556 100644
--- a/obexd/plugins/filesystem.c
+++ b/obexd/plugins/filesystem.c
}
static ssize_t filesystem_read(void *object, void *buf, size_t count,
- uint8_t *hi, unsigned int *flags)
+ uint8_t *hi)
{
ssize_t ret;
if (ret < 0)
return -errno;
- if (flags)
- *flags = 0;
-
*hi = OBEX_HDR_BODY;
return ret;
return len;
}
-static ssize_t folder_read(void *object, void *buf, size_t count,
- uint8_t *hi, unsigned int *flags)
+static ssize_t folder_read(void *object, void *buf, size_t count, uint8_t *hi)
{
- if (flags)
- *flags = 0;
-
*hi = OBEX_HDR_BODY;
return string_read(object, buf, count);
}
static ssize_t capability_read(void *object, void *buf, size_t count,
- uint8_t *hi, unsigned int *flags)
+ uint8_t *hi)
{
struct capability_object *obj = object;
- if (flags)
- *flags = 0;
-
*hi = OBEX_HDR_BODY;
if (obj->buffer)
diff --git a/obexd/plugins/irmc.c b/obexd/plugins/irmc.c
index fd233f7..cd7f386 100644
--- a/obexd/plugins/irmc.c
+++ b/obexd/plugins/irmc.c
return 0;
}
-static ssize_t irmc_read(void *object, void *buf, size_t count, uint8_t *hi,
- unsigned int *flags)
+static ssize_t irmc_read(void *object, void *buf, size_t count, uint8_t *hi)
{
struct irmc_session *irmc = object;
int len;
if (!irmc->buffer)
return -EAGAIN;
- if (flags)
- *flags = 0;
-
*hi = OBEX_HDR_BODY;
len = string_read(irmc->buffer, buf, count);
DBG("returning %d bytes", len);
diff --git a/obexd/plugins/mas.c b/obexd/plugins/mas.c
index fb1b13a..d13625c 100644
--- a/obexd/plugins/mas.c
+++ b/obexd/plugins/mas.c
return count;
}
-static ssize_t any_read(void *obj, void *buf, size_t count,
- uint8_t *hi, unsigned int *flags)
+static ssize_t any_read(void *obj, void *buf, size_t count, uint8_t *hi)
{
DBG("");
*hi = OBEX_HDR_BODY;
- *flags = 0;
return 0;
}
diff --git a/obexd/plugins/pbap.c b/obexd/plugins/pbap.c
index c4df37f..0356ae7 100644
--- a/obexd/plugins/pbap.c
+++ b/obexd/plugins/pbap.c
}
static ssize_t vobject_pull_read(void *object, void *buf, size_t count,
- uint8_t *hi, unsigned int *flags)
+ uint8_t *hi)
{
struct pbap_object *obj = object;
struct pbap_session *pbap = obj->session;
if (pbap->params->maxlistcount == 0) {
/* PhoneBookSize */
*hi = OBEX_HDR_APPARAM;
- if (flags)
- *flags = 0;
return array_read(obj->aparams, buf, count);
} else if (obj->firstpacket) {
/* NewMissedCalls */
*hi = OBEX_HDR_APPARAM;
obj->firstpacket = FALSE;
- if (flags)
- *flags = OBEX_FL_FIT_ONE_PACKET;
return array_read(obj->aparams, buf, count);
} else {
/* Stream data */
*hi = OBEX_HDR_BODY;
- if (flags)
- *flags = 0;
-
len = string_read(obj->buffer, buf, count);
if (len == 0 && !obj->lastpart) {
/* in case when buffer is empty and we know that more
}
static ssize_t vobject_list_read(void *object, void *buf, size_t count,
- uint8_t *hi, unsigned int *flags)
+ uint8_t *hi)
{
struct pbap_object *obj = object;
struct pbap_session *pbap = obj->session;
if (!pbap->cache.valid)
return -EAGAIN;
- if (flags)
- *flags = 0;
-
if (pbap->params->maxlistcount == 0) {
*hi = OBEX_HDR_APPARAM;
return array_read(obj->aparams, buf, count);
}
static ssize_t vobject_vcard_read(void *object, void *buf, size_t count,
- uint8_t *hi, unsigned int *flags)
+ uint8_t *hi)
{
struct pbap_object *obj = object;
if (!obj->buffer)
return -EAGAIN;
- if (flags)
- *flags = 0;
-
*hi = OBEX_HDR_BODY;
return string_read(obj->buffer, buf, count);
}
diff --git a/obexd/plugins/syncevolution.c b/obexd/plugins/syncevolution.c
index 0575ab1..ea3eb7a 100644
--- a/obexd/plugins/syncevolution.c
+++ b/obexd/plugins/syncevolution.c
return 0;
}
-static ssize_t synce_read(void *object, void *buf, size_t count,
- uint8_t *hi, unsigned int *flags)
+static ssize_t synce_read(void *object, void *buf, size_t count, uint8_t *hi)
{
struct synce_context *context = object;
DBusConnection *conn;
gboolean authenticate;
DBusPendingCall *call;
- if (flags)
- *flags = 0;
-
if (context->buffer) {
*hi = OBEX_HDR_BODY;
return string_read(context->buffer, buf, count);
diff --git a/obexd/src/mimetype.h b/obexd/src/mimetype.h
index 5bf741c..8472684 100644
--- a/obexd/src/mimetype.h
+++ b/obexd/src/mimetype.h
void *(*open) (const char *name, int oflag, mode_t mode,
void *driver_data, size_t *size, int *err);
int (*close) (void *object);
- ssize_t (*read) (void *object, void *buf, size_t count, uint8_t *hi,
- unsigned int *flags);
+ ssize_t (*read) (void *object, void *buf, size_t count, uint8_t *hi);
ssize_t (*write) (void *object, const void *buf, size_t count);
int (*flush) (void *object);
int (*remove) (const char *name);
diff --git a/obexd/src/obex-priv.h b/obexd/src/obex-priv.h
index 2a22f38..0806a56 100644
--- a/obexd/src/obex-priv.h
+++ b/obexd/src/obex-priv.h
obex_object_t *obj;
struct obex_mime_type_driver *driver;
gboolean finished;
- uint16_t write_offset;
};
int obex_session_start(GIOChannel *io, uint16_t tx_mtu, uint16_t rx_mtu,
diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index caba2fb..643b942 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
len = MIN(os->size - os->offset, os->tx_mtu);
ptr = os->buf + os->offset;
- flags = 0;
goto add_header;
}
- ptr = os->buf + os->write_offset;
- len = os->driver->read(os->object, ptr, os->tx_mtu - os->write_offset,
- &hi, &flags);
+ len = os->driver->read(os->object, os->buf, os->tx_mtu, &hi);
if (len < 0) {
error("read(): %s (%zd)", strerror(-len), -len);
if (len == -EAGAIN)
return len;
}
+ ptr = os->buf;
+
add_header:
hd.bs = ptr;
switch (hi) {
case OBEX_HDR_BODY:
- flags |= len ? OBEX_FL_STREAM_DATA : OBEX_FL_STREAM_DATAEND;
+ flags = len ? OBEX_FL_STREAM_DATA : OBEX_FL_STREAM_DATAEND;
break;
case OBEX_HDR_APPARAM:
+ flags = 0;
break;
default:
error("read(): unkown header type %u", hi);
os->buf = NULL;
}
- if (flags & OBEX_FL_FIT_ONE_PACKET)
- os->write_offset += len;
- else
- os->write_offset = 0;
-
os->offset += len;
return 0;