]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix FSCORE-82
authorAnthony Minessale <anthony.minessale@gmail.com>
Mon, 7 Jan 2008 20:40:59 +0000 (20:40 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Mon, 7 Jan 2008 20:40:59 +0000 (20:40 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7132 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/include/switch_core.h
src/switch.c
src/switch_core.c

index 288eec55458b61eb23fbfe2f0aeb7d6f52eec69f..50125b558ca4f4c502c2605b4669f988aa98e23c 100644 (file)
@@ -1531,6 +1531,7 @@ SWITCH_DECLARE(void) switch_core_memory_reclaim(void);
 SWITCH_DECLARE(void) switch_core_memory_reclaim_events(void);
 SWITCH_DECLARE(void) switch_core_memory_reclaim_logger(void);
 SWITCH_DECLARE(void) switch_core_memory_reclaim_all(void);
+SWITCH_DECLARE(void) switch_core_setrlimits(void);
 
 ///\}
 
index b6b8de83612866f997629f728887eb9830d58039..90ffd45cfe93535feaab9aad80f82da3ee8502e3 100644 (file)
@@ -430,6 +430,8 @@ int main(int argc, char *argv[])
                set_high_priority();
        }
 
+       switch_core_setrlimits();
+       
 #ifndef WIN32
        if (runas_user || runas_group) {
                if(change_user_group(runas_user, runas_group) < 0) {
index 49af5ad1618e1014118efc328d19cf8b4b65fca5..99352360c9ad0f046c71f0984b8a6d0e6b1d8d11 100644 (file)
@@ -661,6 +661,44 @@ static void load_mime_types(void)
 
 }      
 
+
+SWITCH_DECLARE(void) switch_core_setrlimits(void)
+{
+#ifdef HAVE_SETRLIMIT
+       struct rlimit rlp;
+
+       /* 
+          Setting the stack size on FreeBSD results in an instant crash.
+                
+          If anyone knows how to fix this,
+          feel free to submit a patch to http://jira.freeswitch.org 
+       */
+
+#ifndef __FreeBSD__
+       memset(&rlp, 0, sizeof(rlp));
+       rlp.rlim_cur = SWITCH_THREAD_STACKSIZE;
+       rlp.rlim_max = SWITCH_THREAD_STACKSIZE;
+       setrlimit(RLIMIT_STACK, &rlp);
+#endif
+
+       memset(&rlp, 0, sizeof(rlp));
+       rlp.rlim_cur = 999999;
+       rlp.rlim_max = 999999;
+       setrlimit(RLIMIT_NOFILE, &rlp);
+
+       memset(&rlp, 0, sizeof(rlp));
+       rlp.rlim_cur = RLIM_INFINITY;
+       rlp.rlim_max = RLIM_INFINITY;
+
+       setrlimit(RLIMIT_CPU, &rlp);
+       setrlimit(RLIMIT_DATA, &rlp);
+       setrlimit(RLIMIT_FSIZE, &rlp);
+       setrlimit(RLIMIT_AS, &rlp);
+#endif
+       return;
+}
+
+
 SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switch_bool_t console, const char **err)
 {
        switch_xml_t xml = NULL, cfg = NULL;
@@ -702,41 +740,6 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
        switch_core_set_variable("base_dir", SWITCH_GLOBAL_dirs.base_dir);
        
 
-#ifdef HAVE_SETRLIMIT
-       {
-               struct rlimit rlp;
-
-               /* 
-                  Setting the stack size on FreeBSD results in an instant crash.
-                
-                  If anyone knows how to fix this,
-                  feel free to submit a patch to http://jira.freeswitch.org 
-               */
-
-#ifndef __FreeBSD__
-               memset(&rlp, 0, sizeof(rlp));
-               rlp.rlim_cur = SWITCH_THREAD_STACKSIZE;
-               rlp.rlim_max = SWITCH_THREAD_STACKSIZE;
-               setrlimit(RLIMIT_STACK, &rlp);
-#endif
-
-               memset(&rlp, 0, sizeof(rlp));
-               rlp.rlim_cur = 999999;
-               rlp.rlim_max = 999999;
-               setrlimit(RLIMIT_NOFILE, &rlp);
-
-               memset(&rlp, 0, sizeof(rlp));
-               rlp.rlim_cur = RLIM_INFINITY;
-               rlp.rlim_max = RLIM_INFINITY;
-
-               setrlimit(RLIMIT_CPU, &rlp);
-               setrlimit(RLIMIT_DATA, &rlp);
-               setrlimit(RLIMIT_FSIZE, &rlp);
-               setrlimit(RLIMIT_AS, &rlp);
-       }
-       
-#endif
-
 
        if (switch_xml_init(runtime.memory_pool, err) != SWITCH_STATUS_SUCCESS) {
                apr_terminate();