Re: [RFC PATCH v2 1/8] Pass unknown protocols to external protocol handlers
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Dec 4, 2009, 17:55 UTC
- Message-ID
- <20091204175545.GC1483@spearce.org>
- In-Reply-To
- <1259942168-24869-4-git-send-email-ilari.liusvaara@elisanet.fi>
Ilari Liusvaara <ilari.liusvaara@elisanet.fi> wrote:
Show 5 quoted lines
> Change URL handling to allow external protocol handlers to implement > new protocols without the '::' syntax if helper name does not conflict > with any built-in protocol. > > foo:// now invokes git-remote-foo with foo:// URL.
...
Uh, great, but...
Show 8 quoted lines
> @@ -30,6 +50,7 @@ static struct child_process *get_helper(struct transport *transport) > const char **refspecs = NULL; > int refspec_nr = 0; > int refspec_alloc = 0; > + int duped; > > if (data->helper) > return data->helper;
...
Show 12 quoted lines
> + /* Open the output as FILE* so strbuf_getline() can be used.
> + Do this with duped fd because fclose() will close the fd,
> + and stuff like disowning will require the fd to remain.
> +
> + Set the stream to unbuffered because some reads are critical
> + in sense that any overreading will cause deadlocks.
> + */
> + if((duped = dup(helper->out)) < 0)
> + die_errno("Can't dup helper output fd");
> + data->out = xfdopen(duped, "r");
> + setvbuf(data->out, NULL, _IONBF, 0);
> +This is an entirely unrelated change. Please split it into its own commit so its easier to review, test, blah blah blah.
-- Shawn.