/* 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;
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);
#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 */
#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 */
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);
}
}
}
+#ifdef HAVE_TRACKER
if (dbus_pid == -1) {
dbus_restarts++;
LOG(log_note, logtype_afpd, "Restarting 'dbus' (restarts: %u)", dbus_restarts);
LOG(log_error, logtype_default, "Error starting '%s'", dbus_path);
}
}
-
-#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_RDF_PREFIX "/bin/trackerd", trackerd_loglev, NULL)) == -1) {
- LOG(log_error, logtype_default, "Error starting '%s'", "/usr/bin/trackerd");
- }
- }
#endif
}
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);
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);
}
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);
-#endif
+ setenv("TRACKER_USE_LOG_FILES", "1", 0);
- dbus_path = iniparser_getstring(obj.iniconfig, INISEC_GLOBAL, "dbus daemon path", "/bin/dbus-daemon");
+ 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);
/* 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_RDF
- 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);
- }
-#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");