Skip to content

Commit 44b1998

Browse files
committed
use blocking sockets
1 parent d2034e5 commit 44b1998

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

src/dhcpsd.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,8 @@ dhcpsd_fork(struct ctx *ctx)
204204
cap_rights_t rights;
205205
#endif
206206

207-
if (xsocketpair(PF_LOCAL, SOCK_STREAM | SOCK_CXNB, 0, fork_fd) == -1) {
207+
if (xsocketpair(PF_LOCAL, SOCK_STREAM | SOCK_CLOEXEC, 0, fork_fd) ==
208+
-1) {
208209
logerr("socketpair");
209210
return -1;
210211
}

src/service.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,6 @@ srv_recv(void *arg, unsigned short e)
101101
iov[0].iov_base = sctx->srv_buf;
102102
iov[0].iov_len = cmd.sc_datalen;
103103

104-
sr->sr_result = cmd.sc_result;
105-
sr->sr_errno = cmd.sc_errno;
106-
107104
nread = recvmsg(sctx->srv_fd, &msg, MSG_WAITALL);
108105
if (nread == -1) {
109106
logerr("%s: recvmsg cmd", __func__);
@@ -116,8 +113,10 @@ srv_recv(void *arg, unsigned short e)
116113
}
117114
}
118115

119-
sr->sr_datalen = cmd.sc_datalen;
116+
sr->sr_result = cmd.sc_result;
117+
sr->sr_errno = cmd.sc_errno;
120118
sr->sr_data = sr->sr_datalen != 0 ? sctx->srv_buf : NULL;
119+
sr->sr_datalen = cmd.sc_datalen;
121120

122121
/* We are either a dispatcher for the helper, or a blocking loop for a
123122
* response */
@@ -241,7 +240,7 @@ srv_init(struct ctx *ctx, const char *name,
241240
goto error;
242241
}
243242

244-
if (xsocketpair(PF_LOCAL, SOCK_STREAM | SOCK_CXNB, 0, fdset) == -1) {
243+
if (xsocketpair(PF_LOCAL, SOCK_STREAM | SOCK_CLOEXEC, 0, fdset) == -1) {
245244
logerr("%s: socketpair", __func__);
246245
goto error;
247246
}

0 commit comments

Comments
 (0)