X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=etc%2Fnetatalk%2Fnetatalk.c;h=9aaa3a742603eede7b5b68a2e34fa7f6e509b79d;hb=b5ba94c620d6e7e5c78af6d8f29ed5890323eb18;hp=3fbb3dce26cd5268b217eca3140c4eadddbcd3fe;hpb=af3a18cef2dc7a03e2ba40e0907b64b7a9d50e2c;p=netatalk.git diff --git a/etc/netatalk/netatalk.c b/etc/netatalk/netatalk.c index 3fbb3dce..9aaa3a74 100644 --- a/etc/netatalk/netatalk.c +++ b/etc/netatalk/netatalk.c @@ -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 @@ -77,15 +78,21 @@ static int set_sl_volumes(void) EC_NULL_LOG( volumes = getvolumes() ); for (vol = volumes; vol; vol = vol->v_next) { - bstring volnamequot = bformat("'%s'", vol->v_path); - bstrListPush(vollist, volnamequot); + if (vol->v_flags & AFPVOL_SPOTLIGHT) { + bstring volnamequot = bformat("'%s'", vol->v_path); + bstrListPush(vollist, volnamequot); + } } volnamelist = bjoin(vollist, sep); - cmd = bformat("gsettings set org.freedesktop.Tracker.Miner.Files index-recursive-directories \"[%s]\"", bdata(volnamelist)); + cmd = bformat("gsettings set org.freedesktop.Tracker.Miner.Files index-recursive-directories \"[%s]\"", + bdata(volnamelist) ? bdata(volnamelist) : ""); LOG(log_debug, logtype_sl, "set_sl_volumes: %s", bdata(cmd)); system(bdata(cmd)); + /* Disable default root user home indexing */ + system("gsettings set org.freedesktop.Tracker.Miner.Files index-single-directories \"[]\""); + EC_CLEANUP: if (cmd) bdestroy(cmd); @@ -233,6 +240,7 @@ static void timer_cb(evutil_socket_t fd, short what, void *arg) } } +#ifdef HAVE_TRACKER if (dbus_pid == -1) { dbus_restarts++; LOG(log_note, logtype_afpd, "Restarting 'dbus' (restarts: %u)", dbus_restarts); @@ -240,12 +248,13 @@ static void timer_cb(evutil_socket_t fd, short what, void *arg) LOG(log_error, logtype_default, "Error starting '%s'", dbus_path); } } +#endif -#ifdef HAVE_TRACKER_0_6 +#ifdef HAVE_TRACKER_RDF if (trackerd_pid == -1) { trackerd_restarts++; LOG(log_note, logtype_afpd, "Restarting 'trackerd' (restarts: %u)", trackerd_restarts); - if ((trackerd_pid = run_process(TRACKER_0_6_PREFIX "/bin/trackerd", "--verbosity=3", NULL)) == -1) { + if ((trackerd_pid = run_process(TRACKERD_PATH, trackerd_loglev, NULL)) == -1) { LOG(log_error, logtype_default, "Error starting '%s'", "/usr/bin/trackerd"); } } @@ -275,7 +284,7 @@ static void kill_childs(int sig, ...) /* this get called when error conditions are met that require us to exit gracefully */ static void netatalk_exit(int ret) { - server_unlock(_PATH_NETATALK_LOCK); + server_unlock(PATH_NETATALK_LOCK); exit(ret); } @@ -283,7 +292,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 +305,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); @@ -336,13 +348,13 @@ int main(int argc, char **argv) } } - if (check_lockfile("netatalk", _PATH_NETATALK_LOCK) != 0) + if (check_lockfile("netatalk", PATH_NETATALK_LOCK) != 0) exit(EXITERR_SYS); if (!debug && daemonize(0, 0) != 0) exit(EXITERR_SYS); - if (create_lockfile("netatalk", _PATH_NETATALK_LOCK) != 0) + if (create_lockfile("netatalk", PATH_NETATALK_LOCK) != 0) exit(EXITERR_SYS); sigfillset(&blocksigs); @@ -359,7 +371,7 @@ int main(int argc, char **argv) LOG(log_note, logtype_default, "Netatalk AFP server starting"); if ((afpd_pid = run_process(_PATH_AFPD, "-d", "-F", obj.options.configfile, NULL)) == -1) { - LOG(log_error, logtype_afpd, "Error starting 'cnid_metad'"); + LOG(log_error, logtype_afpd, "Error starting 'afpd'"); netatalk_exit(EXITERR_CONF); } @@ -396,15 +408,10 @@ int main(int argc, char **argv) #ifdef HAVE_TRACKER setenv("DBUS_SESSION_BUS_ADDRESS", "unix:path=/tmp/spotlight.ipc", 1); -#endif -#if 0 - setenv("XDG_DATA_DIRS", TRACKER_PREFIX "/share/:/usr/share/", 1); - setenv("TRACKER_DB_ONTOLOGIES_DIR", TRACKER_PREFIX "/share/tracker/ontologies", 1); - setenv("TRACKER_EXTRACTOR_RULES_DIR", TRACKER_PREFIX "/share/tracker/extract-rules", 1); - setenv("TRACKER_LANGUAGE_STOPWORDS_DIR", TRACKER_PREFIX "/share/tracker/languages", 1); -#endif + setenv("XDG_DATA_HOME", _PATH_STATEDIR, 0); + setenv("XDG_CACHE_HOME", _PATH_STATEDIR, 0); - dbus_path = iniparser_getstring(obj.iniconfig, INISEC_GLOBAL, "dbus daemon path", "/bin/dbus-daemon"); + dbus_path = iniparser_getstring(obj.iniconfig, INISEC_GLOBAL, "dbus daemon", DBUS_DAEMON_PATH); LOG(log_debug, logtype_default, "DBUS: '%s'", dbus_path); if ((dbus_pid = run_process(dbus_path, "--config-file=" _PATH_CONFDIR "dbus-session.conf", NULL)) == -1) { LOG(log_error, logtype_default, "Error starting '%s'", dbus_path); @@ -413,14 +420,21 @@ int main(int argc, char **argv) /* Allow dbus some time to start up */ sleep(1); +#endif #ifdef HAVE_TRACKER_SPARQL +#ifdef SOLARIS + setenv("XDG_DATA_DIRS", TRACKER_PREFIX "/share", 0); + setenv("TRACKER_DB_ONTOLOGIES_DIR", TRACKER_PREFIX "/share/tracker/ontologies", 0); + setenv("TRACKER_EXTRACTOR_RULES_DIR", TRACKER_PREFIX "/share/tracker/extract-rules", 0); + setenv("TRACKER_LANGUAGE_STOPWORDS_DIR", TRACKER_PREFIX "/share/tracker/languages", 0); +#endif set_sl_volumes(); system(TRACKER_PREFIX "/bin/tracker-control -s"); #endif -#ifdef HAVE_TRACKER_0_6 - if ((trackerd_pid = run_process(TRACKER_0_6_PREFIX "/bin/trackerd", "--verbosity=3", NULL)) == -1) { - LOG(log_error, logtype_default, "Error starting '%s'", TRACKER_0_6_PREFIX "/bin/trackerd"); +#ifdef HAVE_TRACKER_RDF + if ((trackerd_pid = run_process(TRACKERD_PATH, trackerd_loglev, NULL)) == -1) { + LOG(log_error, logtype_default, "Error starting '%s'", TRACKERD_PATH); netatalk_exit(EXITERR_CONF); } #endif