daemon: add upload-tar service.

This allows clients to ask for tarballs with:

	git tar-tree --remote=git://server/repo refname

By default, the upload-tar service is not enabled.  To enable
it server-wide, the server can be started with:

	git-daemon --enable=upload-tar

This service is by default overridable per repostiory, so
alternatively, a repository can define "daemon.uploadtar = true"
to enable it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2006-08-20 19:03:50 -07:00
Родитель d819e4e682
Коммит 74c0cc21a5
1 изменённых файлов: 11 добавлений и 4 удалений

Просмотреть файл

@ -324,8 +324,15 @@ static int upload_pack(void)
return -1;
}
static int upload_tar(void)
{
execl_git_cmd("upload-tar", ".", NULL);
return -1;
}
static struct daemon_service daemon_service[] = {
{ "upload-pack", "uploadpack", upload_pack, 1, 1 },
{ "upload-tar", "uploadtar", upload_tar, 0, 1 },
};
static void enable_service(const char *name, int ena) {
@ -896,12 +903,12 @@ int main(int argc, char **argv)
enable_service(arg + 10, 0);
continue;
}
if (!strncmp(arg, "--enable-override=", 18)) {
make_service_overridable(arg + 18, 1);
if (!strncmp(arg, "--allow-override=", 17)) {
make_service_overridable(arg + 17, 1);
continue;
}
if (!strncmp(arg, "--disable-override=", 19)) {
make_service_overridable(arg + 19, 0);
if (!strncmp(arg, "--forbid-override=", 18)) {
make_service_overridable(arg + 18, 0);
continue;
}
if (!strcmp(arg, "--")) {