free() loop records too

master
rofl0r 2020-09-15 23:11:09 +01:00
parent bd92446184
commit 192f8194e1
4 changed files with 10 additions and 2 deletions

View File

@ -91,8 +91,6 @@ void child_main_loop (void)
childs = sblist_new(sizeof (struct child*), config->maxclients);
loop_records_init();
for (i = 0; i < nfds; i++) {
int *fd = (int *) vector_getentry(listen_fds, i, NULL);
fds[i].fd = *fd;

View File

@ -18,6 +18,11 @@ void loop_records_init(void) {
loop_records = sblist_new(sizeof (struct loop_record), 32);
}
void loop_records_destroy(void) {
sblist_free(loop_records);
loop_records = 0;
}
#if 0
static void su_to_str(union sockaddr_union *addr, char *buf) {
int af = addr->v4.sin_family;

View File

@ -4,6 +4,7 @@
#include "sock.h"
void loop_records_init(void);
void loop_records_destroy(void);
void loop_records_add(union sockaddr_union *addr);
int connection_loops (union sockaddr_union *addr);

View File

@ -393,6 +393,8 @@ main (int argc, char **argv)
if (daemonized) setup_sig (SIGHUP, takesig, "SIGHUP", argv[0]);
setup_sig (SIGUSR1, takesig, "SIGUSR1", argv[0]);
loop_records_init();
/* Start the main loop */
log_message (LOG_INFO, "Starting main loop. Accepting connections.");
@ -404,6 +406,8 @@ main (int argc, char **argv)
child_close_sock ();
child_free_children();
loop_records_destroy();
/* Remove the PID file */
if (config->pidpath != NULL && unlink (config->pidpath) < 0) {
log_message (LOG_WARNING,