summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2014-09-29 16:19:38 +0300
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2014-09-30 17:26:48 +0300
commitd201b2bfee18767403e8921943e9b6f1140356b4 (patch)
tree47695fa0cfba535d5d7514b4e285c1332749a049 /src
parentc7d2bd837f7386151c5bc3109a5213d00a5e5c60 (diff)
downloadbluez-d201b2bfee18767403e8921943e9b6f1140356b4.tar.gz
shared/mgmt: Make use of io_send
Diffstat (limited to 'src')
-rw-r--r--src/shared/mgmt.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/shared/mgmt.c b/src/shared/mgmt.c
index ae90b8974..5dae7a9d9 100644
--- a/src/shared/mgmt.c
+++ b/src/shared/mgmt.c
@@ -162,7 +162,8 @@ static bool can_write_data(struct io *io, void *user_data)
{
struct mgmt *mgmt = user_data;
struct mgmt_request *request;
- ssize_t bytes_written;
+ struct iovec iov;
+ ssize_t ret;
request = queue_pop_head(mgmt->reply_queue);
if (!request) {
@@ -175,10 +176,13 @@ static bool can_write_data(struct io *io, void *user_data)
return false;
}
- bytes_written = write(mgmt->fd, request->buf, request->len);
- if (bytes_written < 0) {
+ iov.iov_base = request->buf;
+ iov.iov_len = request->len;
+
+ ret = io_send(io, &iov, 1);
+ if (ret < 0) {
util_debug(mgmt->debug_callback, mgmt->debug_data,
- "write failed: %s", strerror(errno));
+ "write failed: %s", strerror(-ret));
if (request->callback)
request->callback(MGMT_STATUS_FAILED, 0, NULL,
request->user_data);
@@ -190,8 +194,8 @@ static bool can_write_data(struct io *io, void *user_data)
"[0x%04x] command 0x%04x",
request->index, request->opcode);
- util_hexdump('<', request->buf, bytes_written,
- mgmt->debug_callback, mgmt->debug_data);
+ util_hexdump('<', request->buf, ret, mgmt->debug_callback,
+ mgmt->debug_data);
queue_push_tail(mgmt->pending_list, request);