diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2014-09-29 16:19:38 +0300 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2014-09-30 17:26:48 +0300 |
commit | d201b2bfee18767403e8921943e9b6f1140356b4 (patch) | |
tree | 47695fa0cfba535d5d7514b4e285c1332749a049 /src | |
parent | c7d2bd837f7386151c5bc3109a5213d00a5e5c60 (diff) | |
download | bluez-d201b2bfee18767403e8921943e9b6f1140356b4.tar.gz |
shared/mgmt: Make use of io_send
Diffstat (limited to 'src')
-rw-r--r-- | src/shared/mgmt.c | 16 |
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); |