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:
parent
d819e4e682
commit
74c0cc21a5
15
daemon.c
15
daemon.c
@ -324,8 +324,15 @@ static int upload_pack(void)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int upload_tar(void)
|
||||||
|
{
|
||||||
|
execl_git_cmd("upload-tar", ".", NULL);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
static struct daemon_service daemon_service[] = {
|
static struct daemon_service daemon_service[] = {
|
||||||
{ "upload-pack", "uploadpack", upload_pack, 1, 1 },
|
{ "upload-pack", "uploadpack", upload_pack, 1, 1 },
|
||||||
|
{ "upload-tar", "uploadtar", upload_tar, 0, 1 },
|
||||||
};
|
};
|
||||||
|
|
||||||
static void enable_service(const char *name, int ena) {
|
static void enable_service(const char *name, int ena) {
|
||||||
@ -896,12 +903,12 @@ int main(int argc, char **argv)
|
|||||||
enable_service(arg + 10, 0);
|
enable_service(arg + 10, 0);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!strncmp(arg, "--enable-override=", 18)) {
|
if (!strncmp(arg, "--allow-override=", 17)) {
|
||||||
make_service_overridable(arg + 18, 1);
|
make_service_overridable(arg + 17, 1);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!strncmp(arg, "--disable-override=", 19)) {
|
if (!strncmp(arg, "--forbid-override=", 18)) {
|
||||||
make_service_overridable(arg + 19, 0);
|
make_service_overridable(arg + 18, 0);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!strcmp(arg, "--")) {
|
if (!strcmp(arg, "--")) {
|
||||||
|
Loading…
Reference in New Issue
Block a user