{
struct dhcpcd_ctx *ctx = arg;
- if (ps_recvmsg(ctx, ctx->udp_rfd, events,
+ if (ps_recvmsg(ctx->udp_rfd, events,
PS_BOOTP, ctx->ps_inet->psp_fd) == -1)
logerr(__func__);
}
struct rs_state *state = RS_STATE(ifp);
struct dhcpcd_ctx *ctx = ifp->ctx;
- if (ps_recvmsg(ctx, state->nd_fd, events,
+ if (ps_recvmsg(state->nd_fd, events,
PS_ND, ctx->ps_inet->psp_fd) == -1)
logerr(__func__);
#else
struct dhcpcd_ctx *ctx = arg;
- if (ps_recvmsg(ctx, ctx->nd_fd, events,
+ if (ps_recvmsg(ctx->nd_fd, events,
PS_ND, ctx->ps_inet->psp_fd) == -1)
logerr(__func__);
#endif
{
struct dhcpcd_ctx *ctx = arg;
- if (ps_recvmsg(ctx, ctx->dhcp6_rfd, events,
+ if (ps_recvmsg(ctx->dhcp6_rfd, events,
PS_DHCP6, ctx->ps_inet->psp_fd) == -1)
logerr(__func__);
}
{
struct ps_process *psp = arg;
- if (ps_recvmsg(psp->psp_ctx, psp->psp_work_fd, events,
+ if (ps_recvmsg(psp->psp_work_fd, events,
PS_BOOTP, psp->psp_ctx->ps_data_fd) == -1)
logerr(__func__);
}
{
struct ps_process *psp = arg;
- if (ps_recvmsg(psp->psp_ctx, psp->psp_work_fd,
+ if (ps_recvmsg(psp->psp_work_fd,
PS_ND, psp->psp_ctx->ps_data_fd) == -1)
logerr(__func__);
}
{
struct ps_process *psp = arg;
- if (ps_recvmsg(psp->psp_ctx, psp->psp_work_fd, events,
+ if (ps_recvmsg(psp->psp_work_fd, events,
PS_DHCP6, psp->psp_ctx->ps_data_fd) == -1)
logerr(__func__);
}
}
ssize_t
-ps_recvmsg(struct dhcpcd_ctx *ctx, int rfd, unsigned short events,
- uint16_t cmd, int wfd)
+ps_recvmsg(int rfd, unsigned short events, uint16_t cmd, int wfd)
{
struct sockaddr_storage ss = { .ss_family = AF_UNSPEC };
uint8_t controlbuf[sizeof(struct sockaddr_storage)] = { 0 };
logerrx("%s: unexpected event 0x%04x", __func__, events);
len = recvmsg(rfd, &msg, 0);
- if (len == -1)
+ if (len == -1) {
logerr("%s: recvmsg", __func__);
- if (len == -1 || len == 0) {
- if (ctx->options & DHCPCD_FORKED)
- eloop_exit(ctx->eloop,
- len != -1 ? EXIT_SUCCESS : EXIT_FAILURE);
return len;
}
iov[0].iov_len = (size_t)len;
len = ps_sendcmdmsg(wfd, cmd, &msg);
- if (len == -1) {
+ if (len == -1)
logerr("%s: ps_sendcmdmsg", __func__);
- if (ctx->options & DHCPCD_FORKED)
- eloop_exit(ctx->eloop, EXIT_FAILURE);
- }
return len;
}
const struct msghdr *);
ssize_t ps_sendcmd(struct dhcpcd_ctx *, int, uint16_t, unsigned long,
const void *data, size_t len);
-ssize_t ps_recvmsg(struct dhcpcd_ctx *, int, unsigned short, uint16_t, int);
+ssize_t ps_recvmsg(int, unsigned short, uint16_t, int);
ssize_t ps_recvpsmsg(struct dhcpcd_ctx *, int, unsigned short,
ssize_t (*callback)(void *, struct ps_msghdr *, struct msghdr *), void *);