summaryrefslogtreecommitdiff
path: root/src/manager/client
diff options
context:
space:
mode:
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>2015-08-19 12:34:04 +0200
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>2015-08-19 12:55:01 +0200
commit09a7d6e27fa2f13a79a2a6a0e076e74b65a37f36 (patch)
treebbbbda61efc75be266ad27b4f168097421c02da5 /src/manager/client
parente936b1f16266d77678354e8d57b619065fda866a (diff)
downloadkey-manager-09a7d6e27fa2f13a79a2a6a0e076e74b65a37f36.tar.gz
key-manager-09a7d6e27fa2f13a79a2a6a0e076e74b65a37f36.tar.bz2
key-manager-09a7d6e27fa2f13a79a2a6a0e076e74b65a37f36.zip
Replace read/write with send/recv.
New implementation does not require to mask SIGPIPE signal in client. Change-Id: Ic2a920b56ed9a6e3dc6627fa026857f31d5c1630
Diffstat (limited to 'src/manager/client')
-rw-r--r--src/manager/client/client-common.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/manager/client/client-common.cpp b/src/manager/client/client-common.cpp
index 1d61e670..10d5de19 100644
--- a/src/manager/client/client-common.cpp
+++ b/src/manager/client/client-common.cpp
@@ -241,9 +241,10 @@ int ServiceConnection::send(const CKM::RawBuffer &send_buf)
break;
}
- ssize_t temp = TEMP_FAILURE_RETRY(write(m_socket.get(),
- &send_buf[done],
- send_buf.size() - done));
+ ssize_t temp = TEMP_FAILURE_RETRY(::send(m_socket.get(),
+ &send_buf[done],
+ send_buf.size() - done,
+ MSG_NOSIGNAL));
if (-1 == temp) {
LogError("Error in write: " << CKM::GetErrnoString(errno));
retCode = CKM_API_ERROR_SOCKET;
@@ -278,9 +279,10 @@ int ServiceConnection::receive(CKM::MessageBuffer &recv_buf)
break;
}
- ssize_t temp = TEMP_FAILURE_RETRY(read(m_socket.get(),
- buffer,
- sizeof(buffer)));
+ ssize_t temp = TEMP_FAILURE_RETRY(::recv(m_socket.get(),
+ buffer,
+ sizeof(buffer),
+ 0));
if(-1 == temp) {
LogError("Error in read: " << CKM::GetErrnoString(errno));
ec = CKM_API_ERROR_SOCKET;