From b508aac64a1c189367a34e79906a7b2553d0ad15 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Tue, 7 Feb 2017 13:34:00 +0000 Subject: [PATCH] Use only send/recv in IPC --- test/RPCSession.cpp | 9 +++------ test/RPCSession.h | 3 +-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/test/RPCSession.cpp b/test/RPCSession.cpp index 968d77b1d..791d2cfe9 100644 --- a/test/RPCSession.cpp +++ b/test/RPCSession.cpp @@ -73,10 +73,6 @@ IPCSocket::IPCSocket(string const& _path): m_path(_path) if (connect(m_socket, reinterpret_cast(&saun), sizeof(struct sockaddr_un)) < 0) BOOST_FAIL("Error connecting to IPC socket: " << _path); - - m_fp = fdopen(m_socket, "r"); - if (!m_fp) - BOOST_FAIL("Error opening IPC socket: " << _path); #endif } @@ -113,11 +109,12 @@ string IPCSocket::sendRequest(string const& _req) return returnStr; #else - send(m_socket, _req.c_str(), _req.length(), 0); + if (send(m_socket, _req.c_str(), _req.length(), 0) != (ssize_t)_req.length()) + BOOST_FAIL("Writing on IPC failed"); char c; string response; - while ((c = fgetc(m_fp)) != EOF) + while (recv(m_socket, &c, 1, 0) == 1) { if (c != '\n') response += c; diff --git a/test/RPCSession.h b/test/RPCSession.h index fc166b99b..5369e1e2e 100644 --- a/test/RPCSession.h +++ b/test/RPCSession.h @@ -55,12 +55,11 @@ class IPCSocket: public boost::noncopyable public: IPCSocket(std::string const& _path); std::string sendRequest(std::string const& _req); - ~IPCSocket() { close(m_socket); fclose(m_fp); } + ~IPCSocket() { close(m_socket); } std::string const& path() const { return m_path; } private: - FILE *m_fp; std::string m_path; int m_socket; };