diff options
| author | Roy Marples <roy@marples.name> | 2021-02-02 14:41:54 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2021-02-02 14:41:54 +0000 |
| commit | 5d619328bf07da0b6b209ce12f22381a4fe435e0 (patch) | |
| tree | 5ace2bdf2c31a21315447462ee10b4e1f9f12e64 /src/privsep.h | |
| parent | b042338612f18c9be8576c258006f94395db6297 (diff) | |
| download | dhcpcd-5d619328bf07da0b6b209ce12f22381a4fe435e0.tar.xz | |
eloop: Make the API more like native poll/kqueue/epoll
Just have the one callback, but return an abstracted event mask
to work out if we can read/write have something else.
Log diagnostics if the event mask is unexpected.
While here add more logging if we fail to register an event to
monitor.
Diffstat (limited to 'src/privsep.h')
| -rw-r--r-- | src/privsep.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/privsep.h b/src/privsep.h index c74bf25c..33916274 100644 --- a/src/privsep.h +++ b/src/privsep.h @@ -187,8 +187,8 @@ ssize_t ps_sendmsg(struct dhcpcd_ctx *, int, uint16_t, unsigned long, 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, uint16_t, int); -ssize_t ps_recvpsmsg(struct dhcpcd_ctx *, int, +ssize_t ps_recvmsg(struct dhcpcd_ctx *, 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 *); /* Internal privsep functions. */ @@ -209,7 +209,8 @@ int ps_seccomp_enter(void); pid_t ps_dostart(struct dhcpcd_ctx * ctx, pid_t *priv_pid, int *priv_fd, - void (*recv_msg)(void *), void (*recv_unpriv_msg), + void (*recv_msg)(void *, unsigned short), + void (*recv_unpriv_msg)(void *, unsigned short), void *recv_ctx, int (*callback)(void *), void (*)(int, void *), unsigned int); int ps_dostop(struct dhcpcd_ctx *ctx, pid_t *pid, int *fd); |
