diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-04-11 12:36:37 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-04-11 12:36:37 +0000 |
commit | f4046a61e7fb5e017a19a0308bfa42fa5abe68d5 (patch) | |
tree | 36b4ef551f8fb0a3c92964770c5d9e1b64ad6d60 /src | |
parent | 5f462cf84e2d28df31df7ba081f9f0822cec9e90 (diff) |
Made setrlimit a commandline option
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1042 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r-- | src/inspircd.cpp | 4 | ||||
-rw-r--r-- | 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<int> 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); |