summaryrefslogtreecommitdiff
path: root/http-backend.c
diff options
context:
space:
mode:
authorTarmigan Casebolt <tarmigan+git@gmail.com>2009-12-28 16:49:00 -0500
committerJunio C Hamano <gitster@pobox.com>2010-01-06 01:16:50 -0800
commit8b2bd7cdacf71260dbc954316af2bed8e076c182 (patch)
tree81e62e0a245f409adb2db62ec792c49ab1033901 /http-backend.c
parent902f235378cb2b2f6dd5dd664b9630c95321f0ae (diff)
downloadgit-8b2bd7cdacf71260dbc954316af2bed8e076c182.tar.gz
Smart-http: check if repository is OK to export before serving it
Similar to how git-daemon checks whether a repository is OK to be exported, smart-http should also check. This check can be satisfied in two different ways: the environmental variable GIT_HTTP_EXPORT_ALL may be set to export all repositories, or the individual repository may have the file git-daemon-export-ok. Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Tarmigan Casebolt <tarmigan+git@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'http-backend.c')
-rw-r--r--http-backend.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/http-backend.c b/http-backend.c
index f729488fc5..345c12b790 100644
--- a/http-backend.c
+++ b/http-backend.c
@@ -648,6 +648,9 @@ int main(int argc, char **argv)
setup_path();
if (!enter_repo(dir, 0))
not_found("Not a git repository: '%s'", dir);
+ if (!getenv("GIT_HTTP_EXPORT_ALL") &&
+ access("git-daemon-export-ok", F_OK) )
+ not_found("Repository not exported: '%s'", dir);
git_config(http_config, NULL);
cmd->imp(cmd_arg);