[PATCH 14/15] daemon: make --inetd and --detcach incompatible
- From
Erik Faye-Lund <kusmabite@gmail.com>
- Date
- Oct 22, 2010, 00:05 UTC
- Message-ID
- <1287705944-5668-14-git-send-email-kusmabite@gmail.com>
- In-Reply-To
- <1287705944-5668-1-git-send-email-kusmabite@gmail.com>
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> --- Documentation/git-daemon.txt | 3 ++- daemon.c | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/Documentation/git-daemon.txt b/Documentation/git-daemon.txt index 685aa58..053ded5 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 af13f4a..fc55367 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 */ @@ -1122,8 +1122,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");
-- 1.7.3.1.199.g72340