From: Junio C Hamano Date: Mon, 3 Sep 2012 22:54:03 +0000 (-0700) Subject: Merge branch 'jc/daemon-access-hook' X-Git-Tag: v1.8.0-rc0~111 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/19801d6a2768b9ce056da4635a287885d08940cb?ds=inline;hp=-c Merge branch 'jc/daemon-access-hook' Allow an external command to tell git-daemon to decline service based on the client address, repository path, etc. * jc/daemon-access-hook: daemon: --access-hook option --- 19801d6a2768b9ce056da4635a287885d08940cb diff --combined Documentation/git-daemon.txt index e8f757704c,c3ba4d7976..7e5098a95e --- a/Documentation/git-daemon.txt +++ b/Documentation/git-daemon.txt @@@ -16,6 -16,7 +16,7 @@@ SYNOPSI [--reuseaddr] [--detach] [--pid-file=] [--enable=] [--disable=] [--allow-override=] [--forbid-override=] + [--access-hook=] [--inetd | [--listen=] [--port=] [--user= [--group=]] [...] @@@ -171,6 -172,21 +172,21 @@@ the facility of inet daemon to achieve errors are not enabled, all errors report "access denied" to the client. The default is --no-informative-errors. + --access-hook=:: + Every time a client connects, first run an external command + specified by the with service name (e.g. "upload-pack"), + path to the repository, hostname (%H), canonical hostname + (%CH), ip address (%IP), and tcp port (%P) as its command line + arguments. The external command can decide to decline the + service by exiting with a non-zero status (or to allow it by + exiting with a zero status). It can also look at the $REMOTE_ADDR + and $REMOTE_PORT environment variables to learn about the + requestor when making this decision. + + + The external command can optionally write a single line to its + standard output to be sent to the requestor as an error message when + it declines the service. + :: A directory to add to the whitelist of allowed directories. Unless --strict-paths is specified this will also include subdirectories @@@ -204,7 -220,7 +220,7 @@@ receive-pack: can push anything into the repository, including removal of refs). This is solely meant for a closed LAN setting where everybody is friendly. This service can be - enabled by `daemon.receivepack` configuration item to + enabled by setting `daemon.receivepack` configuration item to `true`. EXAMPLES