#include <atalk/netatalk_conf.h>
#include <atalk/bstrlib.h>
#include <atalk/bstradd.h>
+#include "afp_zeroconf.h"
#include <event2/event.h>
event_del(sigquit_ev);
event_del(timer_ev);
-#ifdef HAVE_TRACKER_SPARQL
+#ifdef HAVE_TRACKER
system("tracker-control -t");
#endif
kill_childs(SIGTERM, &afpd_pid, &cnid_metad_pid, &dbus_pid, NULL);
static void sigquit_cb(evutil_socket_t fd, short what, void *arg)
{
LOG(log_note, logtype_afpd, "Exiting on SIGQUIT");
-#ifdef HAVE_TRACKER_SPARQL
+#ifdef HAVE_TRACKER
system("tracker-control -t");
#endif
kill_childs(SIGQUIT, &afpd_pid, &cnid_metad_pid, &dbus_pid, NULL);
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");
+
+ if (!(obj.options.flags & OPTION_NOZEROCONF)) {
+ zeroconf_deregister();
+ load_volumes(&obj, lv_all | lv_force);
+ zeroconf_register(&obj);
+ LOG(log_note, logtype_default, "Re-registered with Zeroconf");
+ }
+
kill_childs(SIGHUP, &afpd_pid, &cnid_metad_pid, NULL);
}
setenv("XDG_CACHE_HOME", _PATH_STATEDIR, 0);
setenv("TRACKER_USE_LOG_FILES", "1", 0);
- 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)) == NETATALK_SRV_ERROR) {
- LOG(log_error, logtype_default, "Error starting '%s'", dbus_path);
- netatalk_exit(EXITERR_CONF);
- }
+ if (atalk_iniparser_getboolean(obj.iniconfig, INISEC_GLOBAL, "start dbus", 1)) {
+ dbus_path = atalk_iniparser_getstring(obj.iniconfig, INISEC_GLOBAL, "dbus daemon", DBUS_DAEMON_PATH);
+ LOG(log_note, logtype_default, "Starting dbus: %s", dbus_path);
+ if ((dbus_pid = run_process(dbus_path, "--config-file=" _PATH_CONFDIR "dbus-session.conf", NULL)) == NETATALK_SRV_ERROR) {
+ LOG(log_error, logtype_default, "Error starting '%s'", dbus_path);
+ netatalk_exit(EXITERR_CONF);
+ }
- /* Allow dbus some time to start up */
- sleep(1);
-#endif
+ /* Allow dbus some time to start up */
+ sleep(1);
+ }
-#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");
+
+ if (atalk_iniparser_getboolean(obj.iniconfig, INISEC_GLOBAL, "start tracker", 1)) {
+ LOG(log_note, logtype_default, "Starting Tracker");
+ system(TRACKER_PREFIX "/bin/tracker-control -s");
+ }
+ }
#endif
+
+ /* Now register with zeroconf, we also need the volumes for that */
+ if (! (obj.options.flags & OPTION_NOZEROCONF)) {
+ zeroconf_register(&obj);
+ LOG(log_note, logtype_default, "Registered with Zeroconf");
}
/* run the event loop */