[RFC 1/2] Add backdoor options to receive-pack for use in Git-aware CGI

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Shawn O. Pearce
Date: Sunday, August 3, 2008 - 12:25 am

The new --report-status flag forces the status report feature of
the push protocol to be enabled.  This can be useful in a CGI
program that implements the server side of a "smart" Git-aware
HTTP transport.  The CGI code can perform the selection of the
feature and ask receive-pack to enable it automatically.

The new --no-advertise-heads causes receive-pack to bypass its usual
display of known refs to the client, and instead immediately start
reading the commands and pack from stdin.  This is useful in a CGI
situation where we want to hand off all input to receive-pack.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 receive-pack.c |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/receive-pack.c b/receive-pack.c
index d44c19e..512eae6 100644
--- a/receive-pack.c
+++ b/receive-pack.c
@@ -464,6 +464,7 @@ static int delete_only(struct command *cmd)
 
 int main(int argc, char **argv)
 {
+	int advertise_heads = 1;
 	int i;
 	char *dir = NULL;
 
@@ -472,7 +473,15 @@ int main(int argc, char **argv)
 		char *arg = *argv++;
 
 		if (*arg == '-') {
-			/* Do flag handling here */
+			if (!strcmp(arg, "--report-status")) {
+				report_status = 1;
+				continue;
+			}
+			if (!strcmp(arg, "--no-advertise-heads")) {
+				advertise_heads = 0;
+				continue;
+			}
+
 			usage(receive_pack_usage);
 		}
 		if (dir)
@@ -497,10 +506,10 @@ int main(int argc, char **argv)
 	else if (0 <= receive_unpack_limit)
 		unpack_limit = receive_unpack_limit;
 
-	write_head_info();
-
-	/* EOF */
-	packet_flush(1);
+	if (advertise_heads) {
+		write_head_info();
+		packet_flush(1);
+	}
 
 	read_head_info();
 	if (commands) {
-- 
1.6.0.rc1.221.g9ae23

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
More on git over HTTP POST, H. Peter Anvin, (Fri Aug 1, 2:50 pm)
Re: More on git over HTTP POST, Shawn O. Pearce, (Sat Aug 2, 1:57 pm)
Re: More on git over HTTP POST, Daniel Stenberg, (Sat Aug 2, 2:00 pm)
Re: More on git over HTTP POST, Shawn O. Pearce, (Sat Aug 2, 2:08 pm)
Re: More on git over HTTP POST, Petr Baudis, (Sat Aug 2, 2:23 pm)
Re: More on git over HTTP POST, Shawn O. Pearce, (Sat Aug 2, 2:32 pm)
Re: More on git over HTTP POST, Shawn O. Pearce, (Sat Aug 2, 7:56 pm)
Re: More on git over HTTP POST, Junio C Hamano, (Sat Aug 2, 8:27 pm)
Re: More on git over HTTP POST, Shawn O. Pearce, (Sat Aug 2, 8:31 pm)
Re: More on git over HTTP POST, H. Peter Anvin, (Sat Aug 2, 8:47 pm)
Re: More on git over HTTP POST, H. Peter Anvin, (Sat Aug 2, 8:51 pm)
Re: More on git over HTTP POST, H. Peter Anvin, (Sat Aug 2, 9:01 pm)
Re: More on git over HTTP POST, Shawn O. Pearce, (Sat Aug 2, 9:10 pm)
Re: More on git over HTTP POST, Shawn O. Pearce, (Sat Aug 2, 9:12 pm)
Re: More on git over HTTP POST, Mike Hommey, (Sat Aug 2, 11:43 pm)
[RFC 1/2] Add backdoor options to receive-pack for use in ..., Shawn O. Pearce, (Sun Aug 3, 12:25 am)
Re: More on git over HTTP POST, david, (Sun Aug 3, 1:10 am)
Re: More on git over HTTP POST, H. Peter Anvin, (Sun Aug 3, 4:29 am)
Re: More on git over HTTP POST, H. Peter Anvin, (Sun Aug 3, 4:31 am)
Re: More on git over HTTP POST, H. Peter Anvin, (Sun Aug 3, 4:42 am)
Re: [RFC 2/2] Add Git-aware CGI for Git-aware smart HTTP t ..., Johannes Schindelin, (Mon Aug 4, 3:08 am)
Re: [RFC 2/2] Add Git-aware CGI for Git-aware smart HTTP t ..., Johannes Schindelin, (Mon Aug 4, 3:26 am)
Add Git-aware CGI for Git-aware smart HTTP transport, H. Peter Anvin, (Tue Aug 12, 6:56 pm)
Re: Add Git-aware CGI for Git-aware smart HTTP transport, Shawn O. Pearce, (Tue Aug 12, 7:37 pm)