Fix brigde daemon forking; no more 'defunct' child process

This commit is contained in:
Andreas Eversberg 2023-03-12 15:56:34 +01:00
parent 72043327b9
commit 3d385fd095
3 changed files with 6 additions and 4 deletions

View File

@ -65,6 +65,7 @@
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <ifaddrs.h>
#include <errno.h>
#include "../libdebug/debug.h"
@ -409,8 +410,8 @@ void bridge_socket_server_child(int slots, int daemon)
close(server_ofd.fd);
}
/* create socket server thread and return 0 on success, return -errno on failure */
int brigde_socket_server(int slots)
/* create socket server process and return 0 on success, return -errno on failure */
int bridge_socket_server(int slots)
{
pid_t pid;
@ -434,6 +435,7 @@ int brigde_socket_server(int slots)
exit(0);
}
wait(NULL);
usleep(100000);
return 0;

View File

@ -1,5 +1,5 @@
int brigde_socket_server(int slots);
int bridge_socket_server(int slots);
void bridge_socket_server_child(int slots, int daemon);
int bridge_socket_client(isdn_t *isdn_ep);

View File

@ -338,7 +338,7 @@ int main(int argc, char *argv[])
/* start bridge server */
if (use_hfc_bridging) {
brigde_socket_server(pcm_slots);
bridge_socket_server(pcm_slots);
bridge_socket_client(isdn_ep);
}