From: Hwankyu Jhun Date: Tue, 12 Sep 2023 05:58:06 +0000 (+0900) Subject: Set close on exec for client socket X-Git-Tag: accepted/tizen/6.5/unified/20230913.042938~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c2d468f23f3e9207a163b7376e3b0bc0dc49e6cc;p=platform%2Fcore%2Fappfw%2Frpc-port.git Set close on exec for client socket To close the client socket fd, this patch sets O_CLOEXEC flag using fcntl(). Change-Id: I90f60c23ffc8aa0e62c93e26b4494493fb08eedb Signed-off-by: Hwankyu Jhun --- diff --git a/src/client-socket-internal.cc b/src/client-socket-internal.cc index 4fbb344..9b0a107 100644 --- a/src/client-socket-internal.cc +++ b/src/client-socket-internal.cc @@ -39,6 +39,7 @@ ClientSocket::ClientSocket() { } ClientSocket::ClientSocket(int fd) : fd_(fd) { + SetCloseOnExec(); } ClientSocket::~ClientSocket() { @@ -46,6 +47,12 @@ ClientSocket::~ClientSocket() { Close(); } +void ClientSocket::SetCloseOnExec() { + int flags = fcntl(fd_, F_GETFL, 0); + fcntl(fd_, F_SETFL, flags | O_CLOEXEC); + _I("Close on exec. fd(%d)", fd_); +} + void ClientSocket::Close() { if (fd_ > -1) { close(fd_); diff --git a/src/client-socket-internal.hh b/src/client-socket-internal.hh index 2446e38..772b452 100644 --- a/src/client-socket-internal.hh +++ b/src/client-socket-internal.hh @@ -42,6 +42,7 @@ class ClientSocket { int GetFd() const; int RemoveFd(); void SetNonblock(); + void SetCloseOnExec(); private: int fd_; diff --git a/src/server-socket-internal.cc b/src/server-socket-internal.cc index 9f82640..9fd7e43 100644 --- a/src/server-socket-internal.cc +++ b/src/server-socket-internal.cc @@ -71,7 +71,7 @@ int ServerSocket::Listen(int backlog) { void ServerSocket::SetCloseOnExec() { int flags = fcntl(fd_, F_GETFL, 0); fcntl(fd_, F_SETFL, flags | O_CLOEXEC); - _I("Close on exec"); + _I("Close on exec. fd(%d)", fd_); } void ServerSocket::Close() {