diff options
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -14,6 +14,8 @@ #include <cap-ng.h> #include <pwd.h> #include <grp.h> +#include <sys/time.h> +#include <sys/resource.h> #include "main.h" #include "signal-handler.h" @@ -565,6 +567,7 @@ main(int argc, char **argv) { struct server *server; unsigned server_count; + struct rlimit old_rlimit; cfg_init(argc, argv); @@ -572,6 +575,23 @@ main(int argc, char **argv) cfg_read(); + /* + * In the splice case we use 4 fds per proxy connection... + */ + if (prlimit(0, RLIMIT_NOFILE, NULL, &old_rlimit) == 0) { + struct rlimit new_rlimit; + + new_rlimit.rlim_cur = old_rlimit.rlim_max; + new_rlimit.rlim_max = old_rlimit.rlim_max; + + if (prlimit(0, RLIMIT_NOFILE, &new_rlimit, NULL) == 0) + debug(DBG_MALLOC, "prlimit(NOFILE): %u/%u -> %u/%u", + (unsigned)old_rlimit.rlim_cur, + (unsigned)old_rlimit.rlim_max, + (unsigned)new_rlimit.rlim_cur, + (unsigned)new_rlimit.rlim_cur); + } + uring_init(); igmp_init(); |