Re: [PATCH] Make http-backend REMOTE_USER configurable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 29, 2012 at 06:22:30PM -0400, Jeff King wrote:

> I think an even better thing would be for http-backend to leave
> GIT_COMMITTER_* alone if it exists; that is the usual well-known
> interface for setting such things. And then you could specify a
> detailed committer name and email if you want, or leave them blank to
> pull from $REMOTE_USER as we do now. As it is now, even if you specify
> GIT_COMMITTER_EMAIL, it gets overwritten with
> "$REMOTE_USER@http.$REMOTE_ADDR".

That patch would look something like this:

---
diff --git a/http-backend.c b/http-backend.c
index 869d515..aa892e6 100644
--- a/http-backend.c
+++ b/http-backend.c
@@ -318,7 +318,7 @@ static void run_service(const char **argv)
 	const char *user = getenv("REMOTE_USER");
 	const char *host = getenv("REMOTE_ADDR");
 	char *env[3];
-	struct strbuf buf = STRBUF_INIT;
+	int num_env = 0;
 	int gzipped_request = 0;
 	struct child_process cld;
 
@@ -332,13 +332,17 @@ static void run_service(const char **argv)
 	if (!host || !*host)
 		host = "(none)";
 
-	memset(&env, 0, sizeof(env));
-	strbuf_addf(&buf, "GIT_COMMITTER_NAME=%s", user);
-	env[0] = strbuf_detach(&buf, NULL);
-
-	strbuf_addf(&buf, "GIT_COMMITTER_EMAIL=%s@http.%s", user, host);
-	env[1] = strbuf_detach(&buf, NULL);
-	env[2] = NULL;
+	if (!getenv("GIT_COMMITTER_NAME")) {
+		struct strbuf buf = STRBUF_INIT;
+		strbuf_addf(&buf, "GIT_COMMITTER_NAME=%s", user);
+		env[num_env++] = strbuf_detach(&buf, NULL);
+	}
+	if (!getenv("GIT_COMMITTER_EMAIL")) {
+		struct strbuf buf = STRBUF_INIT;
+		strbuf_addf(&buf, "GIT_COMMITTER_EMAIL=%s@http.%s", user, host);
+		env[num_env++] = strbuf_detach(&buf, NULL);
+	}
+	env[num_env] = NULL;
 
 	memset(&cld, 0, sizeof(cld));
 	cld.argv = argv;
@@ -359,7 +363,6 @@ static void run_service(const char **argv)
 		exit(1);
 	free(env[0]);
 	free(env[1]);
-	strbuf_release(&buf);
 }
 
 static int show_text_ref(const char *name, const unsigned char *sha1,
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]