X-Git-Url: https://arthur.barton.de/gitweb/?p=netatalk.git;a=blobdiff_plain;f=etc%2Fnetatalk%2Fnetatalk.c;h=4a20d7b787af5547dddd5f24e6b7ee89d26edc41;hp=54e93b21f23d476f21d11720520e71541650b0cf;hb=980548c882a297d26e67397d0f72e0b991f36bf2;hpb=0a4d3f729499937ca9c1ff4f927a940ec556757b diff --git a/etc/netatalk/netatalk.c b/etc/netatalk/netatalk.c index 54e93b21..4a20d7b7 100644 --- a/etc/netatalk/netatalk.c +++ b/etc/netatalk/netatalk.c @@ -54,7 +54,7 @@ static void kill_childs(int sig, ...); /* static variables */ static AFPObj obj; -static pid_t afpd_pid = -1, cnid_metad_pid = -1, dbus_pid = -1, trackerd_pid = -1; +static pid_t afpd_pid = -1, cnid_metad_pid = -1, dbus_pid = -1; static uint afpd_restarts, cnid_metad_restarts, dbus_restarts, trackerd_restarts; static struct event_base *base; struct event *sigterm_ev, *sigquit_ev, *sigchld_ev, *timer_ev; @@ -78,12 +78,15 @@ 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)); @@ -160,7 +163,7 @@ static void sigterm_cb(evutil_socket_t fd, short what, void *arg) #ifdef HAVE_TRACKER_SPARQL system("tracker-control -t"); #endif - kill_childs(SIGTERM, &afpd_pid, &cnid_metad_pid, &dbus_pid, &trackerd_pid, NULL); + kill_childs(SIGTERM, &afpd_pid, &cnid_metad_pid, &dbus_pid, NULL); } /* SIGQUIT callback */ @@ -170,14 +173,14 @@ static void sigquit_cb(evutil_socket_t fd, short what, void *arg) #ifdef HAVE_TRACKER_SPARQL system("tracker-control -t"); #endif - kill_childs(SIGQUIT, &afpd_pid, &cnid_metad_pid, &dbus_pid, &trackerd_pid, NULL); + kill_childs(SIGQUIT, &afpd_pid, &cnid_metad_pid, &dbus_pid, NULL); } /* SIGHUP callback */ static void sighup_cb(evutil_socket_t fd, short what, void *arg) { LOG(log_note, logtype_afpd, "Received SIGHUP, sending all processes signal to reload config"); - kill_childs(SIGHUP, &afpd_pid, &cnid_metad_pid, &trackerd_pid, NULL); + kill_childs(SIGHUP, &afpd_pid, &cnid_metad_pid, NULL); } /* SIGCHLD callback */ @@ -205,13 +208,11 @@ static void sigchld_cb(evutil_socket_t fd, short what, void *arg) cnid_metad_pid = -1; else if (pid == dbus_pid) dbus_pid = -1; - else if (pid == trackerd_pid) - trackerd_pid = -1; else LOG(log_error, logtype_afpd, "Bad pid: %d", pid); } - if (in_shutdown && afpd_pid == -1 && cnid_metad_pid == -1 && dbus_pid == -1 && trackerd_pid == -1) + if (in_shutdown && afpd_pid == -1 && cnid_metad_pid == -1 && dbus_pid == -1) event_base_loopbreak(base); } @@ -246,16 +247,6 @@ static void timer_cb(evutil_socket_t fd, short what, void *arg) } } #endif - -#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(TRACKERD_PATH, trackerd_loglev, NULL)) == -1) { - LOG(log_error, logtype_default, "Error starting '%s'", "/usr/bin/trackerd"); - } - } -#endif } /****************************************************************** @@ -360,7 +351,7 @@ int main(int argc, char **argv) if (afp_config_parse(&obj, "netatalk") != 0) netatalk_exit(EXITERR_CONF); - load_volumes(&obj); + load_volumes(&obj, lv_all); event_set_log_callback(libevent_logmsg_cb); event_set_fatal_callback(netatalk_exit); @@ -404,12 +395,12 @@ int main(int argc, char **argv) sigprocmask(SIG_SETMASK, &blocksigs, NULL); #ifdef HAVE_TRACKER - setenv("DBUS_SESSION_BUS_ADDRESS", "unix:path=/tmp/spotlight.ipc", 1); + setenv("DBUS_SESSION_BUS_ADDRESS", "unix:path=" _PATH_STATEDIR "spotlight.ipc", 1); setenv("XDG_DATA_HOME", _PATH_STATEDIR, 0); setenv("XDG_CACHE_HOME", _PATH_STATEDIR, 0); - setenv("XDG_CONFIG_HOME", _PATH_CONFDIR, 0); + setenv("TRACKER_USE_LOG_FILES", "1", 0); - dbus_path = iniparser_getstring(obj.iniconfig, INISEC_GLOBAL, "dbus daemon path", DBUS_DAEMON_PATH); + dbus_path = atalk_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); @@ -421,31 +412,27 @@ int main(int argc, char **argv) #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_RDF - if (asprintf(&trackerd_loglev, "--verbosity=%d", obj.options.tracker_loglevel) == -1) - netatalk_exit(EXITERR_CONF); - 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 /* run the event loop */ ret = event_base_dispatch(base); - if (afpd_pid != -1 || cnid_metad_pid != -1 || dbus_pid != -1 || trackerd_pid != -1) { + if (afpd_pid != -1 || cnid_metad_pid != -1 || dbus_pid != -1) { if (afpd_pid != -1) LOG(log_error, logtype_afpd, "AFP service did not shutdown, killing it"); if (cnid_metad_pid != -1) LOG(log_error, logtype_afpd, "CNID database service did not shutdown, killing it"); if (dbus_pid != -1) LOG(log_error, logtype_afpd, "DBUS session daemon still running, killing it"); - if (trackerd_pid != -1) - LOG(log_error, logtype_afpd, "trackerd still running, killing it"); - kill_childs(SIGKILL, &afpd_pid, &cnid_metad_pid, &dbus_pid, &trackerd_pid, NULL); + kill_childs(SIGKILL, &afpd_pid, &cnid_metad_pid, &dbus_pid, NULL); } LOG(log_note, logtype_afpd, "Netatalk AFP server exiting");