send_message returns the number of sent bytes and -EIO in case of
IO error now
---
sap/server.c | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/sap/server.c b/sap/server.c
index 711361d..4f47882 100644
--- a/sap/server.c
+++ b/sap/server.c
@@ -254,22 +254,24 @@ static int send_message(struct sap_connection *conn, void *buf, size_t size)
if (!conn || !buf)
return -EINVAL;
- DBG("size %zu", size);
+ DBG("conn %p, size %zu", conn, size);
gstatus = g_io_channel_write_chars(conn->io, buf, size, &written,
- &gerr);
+ &gerr);
if (gstatus != G_IO_STATUS_NORMAL) {
if (gerr)
g_error_free(gerr);
error("write error (0x%02x).", gstatus);
- return -EINVAL;
+ return -EIO;
}
- if (written != size)
- error("write error.(written %zu size %zu)", written, size);
+ if (written != size) {
+ error("written %zu bytes out of %zu", written, size);
+ return -1;
+ }
- return 0;
+ return written;
}
static int disconnect_ind(void *sap_device, uint8_t disc_type)--
1.7.1