]> arthur.barton.de Git - netatalk.git/commitdiff
Add tracker loglevel config option
authorRalph Boehme <sloowfranklin@gmail.com>
Tue, 19 Feb 2013 13:19:42 +0000 (14:19 +0100)
committerRalph Boehme <sloowfranklin@gmail.com>
Tue, 19 Feb 2013 13:19:42 +0000 (14:19 +0100)
etc/netatalk/netatalk.c
include/atalk/globals.h
libatalk/util/netatalk_conf.c

index 7d3a3e00ef782b75b4b436a7dd333b99264b9500..bcb29564a6b5385ef896e34c672958a193427dcf 100644 (file)
@@ -60,6 +60,7 @@ static struct event_base *base;
 struct event *sigterm_ev, *sigquit_ev, *sigchld_ev, *timer_ev;
 static int in_shutdown;
 static const char *dbus_path;
+static char *trackerd_loglev;
 
 /******************************************************************
  * Misc stuff
@@ -245,7 +246,7 @@ static void timer_cb(evutil_socket_t fd, short what, void *arg)
     if (trackerd_pid == -1) {
         trackerd_restarts++;
         LOG(log_note, logtype_afpd, "Restarting 'trackerd' (restarts: %u)", trackerd_restarts);
-        if ((trackerd_pid = run_process(TRACKER_RDF_PREFIX "/bin/trackerd", "--verbosity=3", NULL)) == -1) {
+        if ((trackerd_pid = run_process(TRACKER_RDF_PREFIX "/bin/trackerd", trackerd_loglev, NULL)) == -1) {
             LOG(log_error, logtype_default, "Error starting '%s'", "/usr/bin/trackerd");
         }
     }
@@ -283,7 +284,8 @@ static void netatalk_exit(int ret)
 static pid_t run_process(const char *path, ...)
 {
     int ret, i = 0;
-    char *myargv[10];
+#define MYARVSIZE 64
+    char *myargv[MYARVSIZE];
     va_list args;
     pid_t pid;
 
@@ -295,8 +297,10 @@ static pid_t run_process(const char *path, ...)
     if (pid == 0) {
         myargv[i++] = (char *)path;
         va_start(args, path);
-        while ((myargv[i++] = va_arg(args, char *)) != NULL)
-            ;
+        while (i < MYARVSIZE) {
+            if ((myargv[i++] = va_arg(args, char *)) == NULL)
+                break;
+        }
         va_end(args);
 
         ret = execv(path, myargv);
@@ -416,7 +420,9 @@ int main(int argc, char **argv)
     system(TRACKER_PREFIX "/bin/tracker-control -s");
 #endif
 #ifdef HAVE_TRACKER_RDF
-    if ((trackerd_pid = run_process(TRACKER_RDF_PREFIX "/bin/trackerd", "--verbosity=3", NULL)) == -1) {
+    if (asprintf(&trackerd_loglev, "--verbosity=%d", obj.options.tracker_loglevel) == -1)
+        netatalk_exit(EXITERR_CONF);
+    if ((trackerd_pid = run_process(TRACKER_RDF_PREFIX "/bin/trackerd", trackerd_loglev, NULL)) == -1) {
         LOG(log_error, logtype_default, "Error starting '%s'", TRACKER_RDF_PREFIX "/bin/trackerd");
         netatalk_exit(EXITERR_CONF);
     }
index 3fb8e4f65c4819f79527e85be836d9abda17f29c..f857db24abb5f393423102e6cd0ffc6ba2b211ec 100644 (file)
@@ -103,6 +103,7 @@ struct afp_options {
     char *mimicmodel;
     char *adminauthuser;
     char *slmod_path;
+    int tracker_loglevel;
     struct afp_volume_name volfile;
 };
 
index abf9e58ac88ff1d0f5f0fe02410c488ff27d4f43..9636922b81487b1bc6000ac1885763b0bbd093da 100644 (file)
@@ -1694,6 +1694,7 @@ int afp_config_parse(AFPObj *AFPObj, char *processname)
     options->fce_fmodwait   = iniparser_getint   (config, INISEC_GLOBAL, "fce holdfmod",   60);
     options->sleep          = iniparser_getint   (config, INISEC_GLOBAL, "sleep time",     10);
     options->disconnected   = iniparser_getint   (config, INISEC_GLOBAL, "disconnect time",24);
+    options->tracker_loglevel = iniparser_getint (config, INISEC_GLOBAL, "tracker loglevel", 1);
 
     if ((p = iniparser_getstring(config, INISEC_GLOBAL, "hostname", NULL))) {
         EC_NULL_LOG( options->hostname = strdup(p) );