luad

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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:
Mluad.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); + } } }