summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Faye-Lund <kusmabite@gmail.com>2010-11-04 01:35:23 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-11-04 23:53:52 (GMT)
commit9cddf56ef13c8575ac0c68d82e6196e5b0a2900d (patch)
tree8cc2ad208f4c2bee352f8d3d44a522613a5e0cbe
parentc295cf06608cb07a132abef5802366522fd2f5e0 (diff)
downloadgit-9cddf56ef13c8575ac0c68d82e6196e5b0a2900d.zip
git-9cddf56ef13c8575ac0c68d82e6196e5b0a2900d.tar.gz
git-9cddf56ef13c8575ac0c68d82e6196e5b0a2900d.tar.bz2
daemon: make --inetd and --detach incompatible
Since --inetd makes main return with the result of execute() before daemonize is gets called, these two options are already incompatible. Document it, and add an error if attempted. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Documentation/git-daemon.txt3
-rw-r--r--daemon.c8
2 files changed, 6 insertions, 5 deletions
diff --git a/Documentation/git-daemon.txt b/Documentation/git-daemon.txt
index 5054f79..d15cb6a 100644
--- a/Documentation/git-daemon.txt
+++ b/Documentation/git-daemon.txt
@@ -78,7 +78,8 @@ OPTIONS
--inetd::
Have the server run as an inetd service. Implies --syslog.
- Incompatible with --port, --listen, --user and --group options.
+ Incompatible with --detach, --port, --listen, --user and --group
+ options.
--listen=<host_or_ipaddr>::
Listen on a specific IP address or hostname. IP addresses can
diff --git a/daemon.c b/daemon.c
index a4d3e91..17028b6 100644
--- a/daemon.c
+++ b/daemon.c
@@ -23,10 +23,10 @@ static const char daemon_usage[] =
" [--strict-paths] [--base-path=<path>] [--base-path-relaxed]\n"
" [--user-path | --user-path=<path>]\n"
" [--interpolated-path=<path>]\n"
-" [--reuseaddr] [--detach] [--pid-file=<file>]\n"
+" [--reuseaddr] [--pid-file=<file>]\n"
" [--(enable|disable|allow-override|forbid-override)=<service>]\n"
" [--inetd | [--listen=<host_or_ipaddr>] [--port=<n>]\n"
-" [--user=<user> [--group=<group>]]\n"
+" [--detach] [--user=<user> [--group=<group>]]\n"
" [<directory>...]";
/* List of acceptable pathname prefixes */
@@ -1128,8 +1128,8 @@ int main(int argc, char **argv)
/* avoid splitting a message in the middle */
setvbuf(stderr, NULL, _IOFBF, 4096);
- if (inetd_mode && (group_name || user_name))
- die("--user and --group are incompatible with --inetd");
+ if (inetd_mode && (detach || group_name || user_name))
+ die("--detach, --user and --group are incompatible with --inetd");
if (inetd_mode && (listen_port || (listen_addr.nr > 0)))
die("--listen= and --port= are incompatible with --inetd");