summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/main.c b/main.c
index f0cc399..8b2e37a 100644
--- a/main.c
+++ b/main.c
@@ -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();