summaryrefslogtreecommitdiffstats
path: root/src/privsep.h
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2021-02-02 14:41:54 +0000
committerRoy Marples <roy@marples.name>2021-02-02 14:41:54 +0000
commit5d619328bf07da0b6b209ce12f22381a4fe435e0 (patch)
tree5ace2bdf2c31a21315447462ee10b4e1f9f12e64 /src/privsep.h
parentb042338612f18c9be8576c258006f94395db6297 (diff)
downloaddhcpcd-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.h7
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);