提交 0e9fec97 编写于 作者: P Pino Toscano 提交者: Peter Krempa

virNetSocket: allow to not close FD

Add an internal variable to mark the FD as "not owned" by the
virNetSocket, in case the internal implementation takes the actual
ownership of the descriptor; this avoids a warning when closing the
socket, as the FD would be invalid.
上级 03fa904c
......@@ -77,6 +77,7 @@ struct _virNetSocket {
pid_t pid;
int errfd;
bool client;
bool ownsFd;
/* Event callback fields */
virNetSocketIOFunc func;
......@@ -248,6 +249,7 @@ static virNetSocketPtr virNetSocketNew(virSocketAddrPtr localAddr,
sock->errfd = errfd;
sock->pid = pid;
sock->watch = -1;
sock->ownsFd = true;
/* Disable nagle for TCP sockets */
if (sock->localAddr.data.sa.sa_family == AF_INET ||
......@@ -1202,7 +1204,8 @@ void virNetSocketDispose(void *obj)
virObjectUnref(sock->sshSession);
#endif
VIR_FORCE_CLOSE(sock->fd);
if (sock->ownsFd)
VIR_FORCE_CLOSE(sock->fd);
VIR_FORCE_CLOSE(sock->errfd);
virProcessAbort(sock->pid);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册