commit 1d1b986e6d3578db533c06db563c7573a2d74f23
parent f7ef74ea057fd903d52f80beb61e374e63819093
Author: Daniel Barlow <dan@telent.net>
Date: Tue, 19 May 2026 17:58:12 +0100
check for space in peers table before accepting new request
Diffstat:
| M | luad.c | | | 18 | ++++++++++-------- |
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/luad.c b/luad.c
@@ -214,14 +214,16 @@ int main(int argc, char **argv)
continue;
if(pollfds[0].revents) {
- int len = recvmsg(socket, &msg , 0);
- int *peer_fds = fds_from_msg(&msg, 5);
- char *argline = malloc(len);
- memmove(argline, buf, len);
-
- pid_t child_pid = fork_lua(L, argline, len, peer_fds, 5);
- if(child_pid >= 0) {
- register_peer(child_pid, &peer_addr, msg.msg_namelen);
+ if(find_peer(0)) {
+ int len = recvmsg(socket, &msg , 0);
+ int *peer_fds = fds_from_msg(&msg, 5);
+ char *argline = malloc(len);
+ memmove(argline, buf, len);
+
+ pid_t child_pid = fork_lua(L, argline, len, peer_fds, 5);
+ if(child_pid >= 0) {
+ register_peer(child_pid, &peer_addr, msg.msg_namelen);
+ }
}
}