From: Junio C Hamano Date: Sat, 8 Mar 2008 10:20:30 +0000 (-0800) Subject: Merge branch 'js/maint-daemon' into maint X-Git-Tag: v1.5.4.4~5 X-Git-Url: https://www.git.lorimer.id.au/gitweb.git/diff_plain/1f1300b4f16591feaa1387e967752af33d4fffda?hp=274d9d329444705ba771e548352918699e6bb557 Merge branch 'js/maint-daemon' into maint * js/maint-daemon: daemon: ensure that base-path is an existing directory daemon: send more error messages to the syslog --- diff --git a/daemon.c b/daemon.c index 41a60af624..2b4a6f145c 100644 --- a/daemon.c +++ b/daemon.c @@ -1149,6 +1149,11 @@ int main(int argc, char **argv) usage(daemon_usage); } + if (log_syslog) { + openlog("git-daemon", 0, LOG_DAEMON); + set_die_routine(daemon_die); + } + if (inetd_mode && (group_name || user_name)) die("--user and --group are incompatible with --inetd"); @@ -1176,14 +1181,17 @@ int main(int argc, char **argv) } } - if (log_syslog) { - openlog("git-daemon", 0, LOG_DAEMON); - set_die_routine(daemon_die); - } - if (strict_paths && (!ok_paths || !*ok_paths)) die("option --strict-paths requires a whitelist"); + if (base_path) { + struct stat st; + + if (stat(base_path, &st) || !S_ISDIR(st.st_mode)) + die("base-path '%s' does not exist or " + "is not a directory", base_path); + } + if (inetd_mode) { struct sockaddr_storage ss; struct sockaddr *peer = (struct sockaddr *)&ss;