summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/kdc/main.c2
-rw-r--r--src/lib/apputils/net-server.c12
2 files changed, 11 insertions, 3 deletions
diff --git a/src/kdc/main.c b/src/kdc/main.c
index 979c2173a0..c978a77a9c 100644
--- a/src/kdc/main.c
+++ b/src/kdc/main.c
@@ -550,6 +550,8 @@ create_workers(verto_ctx *ctx, int num)
for (i = 0; i < num; i++) {
pid = fork();
if (pid == 0) {
+ verto_reinitialize(ctx);
+
/* Return control to main() in the new worker process. */
free(pids);
return 0;
diff --git a/src/lib/apputils/net-server.c b/src/lib/apputils/net-server.c
index fc6d6e7c48..546ed769ea 100644
--- a/src/lib/apputils/net-server.c
+++ b/src/lib/apputils/net-server.c
@@ -580,7 +580,9 @@ static verto_ev *
add_udp_fd(struct socksetup *data, int sock, int pktinfo)
{
return add_fd(data, sock, pktinfo ? CONN_UDP_PKTINFO : CONN_UDP,
- VERTO_EV_FLAG_IO_READ | VERTO_EV_FLAG_PERSIST,
+ VERTO_EV_FLAG_IO_READ |
+ VERTO_EV_FLAG_PERSIST |
+ VERTO_EV_FLAG_REINITIABLE,
process_packet, 1);
}
@@ -588,7 +590,9 @@ static verto_ev *
add_tcp_listener_fd(struct socksetup *data, int sock)
{
return add_fd(data, sock, CONN_TCP_LISTENER,
- VERTO_EV_FLAG_IO_READ | VERTO_EV_FLAG_PERSIST,
+ VERTO_EV_FLAG_IO_READ |
+ VERTO_EV_FLAG_PERSIST |
+ VERTO_EV_FLAG_REINITIABLE,
accept_tcp_connection, 1);
}
@@ -666,7 +670,9 @@ add_rpc_listener_fd(struct socksetup *data, struct rpc_svc_data *svc, int sock)
verto_ev *ev;
ev = add_fd(data, sock, CONN_RPC_LISTENER,
- VERTO_EV_FLAG_IO_READ | VERTO_EV_FLAG_PERSIST,
+ VERTO_EV_FLAG_IO_READ |
+ VERTO_EV_FLAG_PERSIST |
+ VERTO_EV_FLAG_REINITIABLE,
accept_rpc_connection, 1);
if (ev == NULL)
return NULL;