From f4046a61e7fb5e017a19a0308bfa42fa5abe68d5 Mon Sep 17 00:00:00 2001 From: brain Date: Mon, 11 Apr 2005 12:36:37 +0000 Subject: [PATCH] Made setrlimit a commandline option git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1042 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/inspircd.cpp | 4 ++++ src/inspircd_io.cpp | 24 ++++++++++++++---------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/inspircd.cpp b/src/inspircd.cpp index d69aa6a1e..d784c0925 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -103,6 +103,7 @@ std::vector fd_reap; extern int MODCOUNT; int openSockfd[MAXSOCKS]; bool nofork = false; +bool unlimitcore = false; time_t TIME = time(NULL); @@ -2181,6 +2182,9 @@ int main(int argc, char **argv) if (!strcmp(argv[i],"-wait")) { sleep(6); } + if (!strcmp(argv[i],"-nolimit")) { + unlimitcore = true; + } } } strlcpy(MyExecutable,argv[0],MAXBUF); diff --git a/src/inspircd_io.cpp b/src/inspircd_io.cpp index fca22e3be..00842b697 100644 --- a/src/inspircd_io.cpp +++ b/src/inspircd_io.cpp @@ -33,6 +33,7 @@ extern FILE *log_file; extern int boundPortCount; extern int openSockfd[MAXSOCKS]; extern time_t TIME; +extern bool unlimitcore; void WriteOpers(char* text, ...); @@ -126,17 +127,20 @@ int DaemonSeed (void) setpriority(PRIO_PROCESS,(int)getpid(),15); /* ircd sets to low process priority so it doesnt hog the box */ - rlimit rl; - if (getrlimit(RLIMIT_CORE, &rl) == -1) + if (unlimitcore) { - log(DEFAULT,"Failed to getrlimit()!"); - return(FALSE); - } - else - { - rl.rlim_cur = rl.rlim_max; - if (setrlimit(RLIMIT_CORE, &rl) == -1) - log(DEFAULT,"setrlimit() failed, cannot increase coredump size."); + rlimit rl; + if (getrlimit(RLIMIT_CORE, &rl) == -1) + { + log(DEFAULT,"Failed to getrlimit()!"); + return(FALSE); + } + else + { + rl.rlim_cur = rl.rlim_max; + if (setrlimit(RLIMIT_CORE, &rl) == -1) + log(DEFAULT,"setrlimit() failed, cannot increase coredump size."); + } } return (TRUE); -- 2.39.2