add new "disable-shm" server config option
authorLennart Poettering <lennart@poettering.net>
Sat, 19 Aug 2006 01:20:13 +0000 (01:20 +0000)
committerLennart Poettering <lennart@poettering.net>
Sat, 19 Aug 2006 01:20:13 +0000 (01:20 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1286 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/daemon/daemon-conf.c
src/daemon/daemon-conf.h
src/daemon/main.c

index 2cb0669..dd47812 100644 (file)
@@ -73,7 +73,8 @@ static const pa_daemon_conf default_conf = {
     .config_file = NULL,
     .use_pid_file = 1,
     .system_instance = 0,
-    .no_cpu_limit = 0
+    .no_cpu_limit = 0,
+    .disable_shm = 0
 #ifdef HAVE_SYS_RESOURCE_H
     , .rlimit_as = { .value = 0, .is_set = 0 },
     .rlimit_core = { .value = 0, .is_set = 0 },
@@ -248,6 +249,7 @@ int pa_daemon_conf_load(pa_daemon_conf *c, const char *filename) {
         { "use-pid-file",            pa_config_parse_bool,    NULL },
         { "system-instance",         pa_config_parse_bool,    NULL },
         { "no-cpu-limit",            pa_config_parse_bool,    NULL },
+        { "disable-shm",             pa_config_parse_bool,    NULL },
 #ifdef HAVE_SYS_RESOURCE_H
         { "rlimit-as",               parse_rlimit,            NULL },
         { "rlimit-core",             parse_rlimit,            NULL },
@@ -281,21 +283,22 @@ int pa_daemon_conf_load(pa_daemon_conf *c, const char *filename) {
     table[13].data = &c->use_pid_file;
     table[14].data = &c->system_instance;
     table[15].data = &c->no_cpu_limit;
+    table[16].data = &c->disable_shm;
 #ifdef HAVE_SYS_RESOURCE_H
-    table[16].data = &c->rlimit_as;
-    table[17].data = &c->rlimit_core;
-    table[18].data = &c->rlimit_data;
-    table[19].data = &c->rlimit_fsize;
-    table[20].data = &c->rlimit_nofile;
-    table[21].data = &c->rlimit_stack;
+    table[17].data = &c->rlimit_as;
+    table[18].data = &c->rlimit_core;
+    table[19].data = &c->rlimit_data;
+    table[20].data = &c->rlimit_fsize;
+    table[21].data = &c->rlimit_nofile;
+    table[22].data = &c->rlimit_stack;
 #ifdef RLIMIT_NPROC
-    table[22].data = &c->rlimit_nproc;
+    table[23].data = &c->rlimit_nproc;
 #endif
 #ifdef RLIMIT_MEMLOCK
 #ifndef RLIMIT_NPROC
 #error "Houston, we have a numbering problem!"
 #endif
-    table[23].data = &c->rlimit_memlock;
+    table[24].data = &c->rlimit_memlock;
 #endif
 #endif
     
@@ -367,6 +370,7 @@ char *pa_daemon_conf_dump(pa_daemon_conf *c) {
     pa_strbuf_printf(s, "use-pid-file = %i\n", c->use_pid_file);
     pa_strbuf_printf(s, "system-instance = %i\n", !!c->system_instance);
     pa_strbuf_printf(s, "no-cpu-limit = %i\n", !!c->no_cpu_limit);
+    pa_strbuf_printf(s, "disable_shm = %i\n", !!c->disable_shm);
 #ifdef HAVE_SYS_RESOURCE_H
     pa_strbuf_printf(s, "rlimit-as = %li\n", c->rlimit_as.is_set ? (long int) c->rlimit_as.value : -1);
     pa_strbuf_printf(s, "rlimit-core = %li\n", c->rlimit_core.is_set ? (long int) c->rlimit_core.value : -1);
index 8420833..b4b833a 100644 (file)
@@ -59,7 +59,8 @@ typedef struct pa_daemon_conf {
         auto_log_target,
         use_pid_file,
         system_instance,
-        no_cpu_limit;
+        no_cpu_limit,
+        disable_shm;
     char *script_commands, *dl_search_path, *default_script_file;
     pa_log_target_t log_target;
     pa_log_level_t log_level;
index 95ba6dd..8b816b9 100644 (file)
@@ -306,10 +306,10 @@ static void set_all_rlimits(const pa_daemon_conf *conf) {
 #endif
 
 int main(int argc, char *argv[]) {
-    pa_core *c;
+    pa_core *c = NULL;
     pa_strbuf *buf = NULL;
-    pa_daemon_conf *conf;
-    pa_mainloop *mainloop;
+    pa_daemon_conf *conf = NULL;
+    pa_mainloop *mainloop = NULL;
 
     char *s; 
     int r, retval = 1, d = 0;
@@ -559,8 +559,9 @@ int main(int argc, char *argv[]) {
     mainloop = pa_mainloop_new();
     assert(mainloop);
 
-    c = pa_core_new(pa_mainloop_get_api(mainloop), 1);
-    assert(c);
+    if (!(c = pa_core_new(pa_mainloop_get_api(mainloop), !conf->disable_shm)))
+        goto finish;
+
     c->is_system_instance = !!conf->system_instance;
 
     r = pa_signal_init(pa_mainloop_get_api(mainloop));
@@ -651,12 +652,14 @@ int main(int argc, char *argv[]) {
         pa_cpu_limit_done();
     
     pa_signal_done();
-    pa_mainloop_free(mainloop);
     
     pa_log_info("Daemon terminated.");
     
 finish:
 
+    if (mainloop)
+        pa_mainloop_free(mainloop);
+
     if (conf)
         pa_daemon_conf_free(conf);