---
src/rde/agent/rda_papi.cc | 8 +++++---
src/rde/rded/rde_rda.cc | 8 +++++---
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/rde/agent/rda_papi.cc b/src/rde/agent/rda_papi.cc
index a07d2b06f..57ad57761 100644
--- a/src/rde/agent/rda_papi.cc
+++ b/src/rde/agent/rda_papi.cc
@@ -654,14 +654,16 @@ static PCSRDA_RETURN_CODE rda_callback_req(int sockfd,
PCS_RDA_ROLE *role) {
*****************************************************************************/
static PCSRDA_RETURN_CODE rda_write_msg(int sockfd, char *msg) {
- int msg_size = 0;
+ const int msg_size = strlen(msg) + 1;
+ int bytes_sent = 0;
/*
** Read from socket into input buffer
*/
- msg_size = send(sockfd, msg, strlen(msg) + 1, 0);
- if (msg_size < 0) {
+ bytes_sent = send(sockfd, msg, msg_size, MSG_NOSIGNAL);
+ if (bytes_sent < 0 || bytes_sent != msg_size) {
+ // @todo handle partial write?
return PCSRDA_RC_IPC_SEND_FAILED;
}
diff --git a/src/rde/rded/rde_rda.cc b/src/rde/rded/rde_rda.cc
index 04e1c4bfc..ab9f25d77 100644
--- a/src/rde/rded/rde_rda.cc
+++ b/src/rde/rded/rde_rda.cc
@@ -179,11 +179,13 @@ static uint32_t rde_rda_sock_close(RDE_RDA_CB
*rde_rda_cb) {
*****************************************************************************/
static uint32_t rde_rda_write_msg(int fd, char *msg) {
int rc = NCSCC_RC_SUCCESS;
- int msg_size = 0;
+ const int msg_size = strlen(msg) + 1;
+ int bytes_sent = 0;
TRACE_ENTER2("%u - '%s'", fd, msg);
- msg_size = send(fd, msg, strlen(msg) + 1, 0);
- if (msg_size < 0) {
+ bytes_sent = send(fd, msg, msg_size, MSG_NOSIGNAL);
+ if (bytes_sent < 0 || bytes_sent != msg_size) {
+ // @todo handle partial write?
if (errno != EINTR && errno != EWOULDBLOCK)
LOG_ER("send FAILED %s", strerror(errno));
--
2.14.1
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel