All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Tay Ray Chuan <rctay89@gmail.com>
Cc: "Git Mailing List" <git@vger.kernel.org>,
	"Shawn O. Pearce" <spearce@spearce.org>,
	"Junio C Hamano" <gitster@pobox.com>
Subject: Re: [PATCH] remote-curl: ensure that URLs do not have a trailing slash
Date: Wed, 07 Apr 2010 08:12:30 -0700	[thread overview]
Message-ID: <7viq83e1pd.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <1270651892-5712-1-git-send-email-rctay89@gmail.com> (Tay Ray Chuan's message of "Wed\,  7 Apr 2010 22\:51\:32 +0800")

Tay Ray Chuan <rctay89@gmail.com> writes:

> Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
> ---
>  remote-curl.c |    9 ++++++---
>  1 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/remote-curl.c b/remote-curl.c
> index 0782756..0f21f8a 100644
> --- a/remote-curl.c
> +++ b/remote-curl.c
> @@ -101,7 +101,8 @@ static struct discovery* discover_refs(const char *service)
>  		return last;
>  	free_discovery(last);
>  
> -	strbuf_addf(&buffer, "%s/info/refs", url);
> +	end_url_with_slash(&buffer, url);
> +	strbuf_addstr(&buffer, "info/refs");
>  	if (!prefixcmp(url, "http://") || !prefixcmp(url, "https://")) {
>  		is_http = 1;
>  		if (!strchr(url, '?'))
> @@ -120,7 +121,8 @@ static struct discovery* discover_refs(const char *service)
>  		strbuf_reset(&buffer);
>  
>  		proto_git_candidate = 0;
> -		strbuf_addf(&buffer, "%s/info/refs", url);
> +		end_url_with_slash(&buffer, url);
> +		strbuf_addstr(&buffer, "info/refs");
>  		refs_url = strbuf_detach(&buffer, NULL);
>  
>  		http_ret = http_get_strbuf(refs_url, &buffer, HTTP_NO_CACHE);
> @@ -511,7 +513,8 @@ static int rpc_service(struct rpc_state *rpc, struct discovery *heads)
>  	rpc->out = client.out;
>  	strbuf_init(&rpc->result, 0);
>  
> -	strbuf_addf(&buf, "%s/%s", url, svc);
> +	end_url_with_slash(&buf, url)
> +	strbuf_addf(&buf, "%s", svc);
>  	rpc->service_url = strbuf_detach(&buf, NULL);
>  
>  	strbuf_addf(&buf, "Content-Type: application/x-%s-request", svc);

The code does not look like it is making sure things do not have a
trailing slash.  For example, if svc has trailing slash, either %s/%s or
strbuf_addf() would have the last character of svc in rpc->service_url.

You are fixing something else.

The new code avoids duplicated slashes in the middle if "url" can but does
not necessarily end with a slash.  Is that what you are trying to fix?  I
wonder if it makes more sense to make sure "url" always ends with a slash
at the calling sites where it is obtained from either the end user or from
the running environment...

  reply	other threads:[~2010-04-07 15:12 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-07 14:51 [PATCH] remote-curl: ensure that URLs do not have a trailing slash Tay Ray Chuan
2010-04-07 15:12 ` Junio C Hamano [this message]
2010-04-07 15:57   ` Tay Ray Chuan
2010-04-07 15:58     ` [PATCH v2 1/2] http: make end_url_with_slash() public Tay Ray Chuan
2010-04-07 16:01     ` [PATCH v2 resend " Tay Ray Chuan
2010-04-07 16:01       ` [PATCH v2 resend 2/2] remote-curl: ensure that URLs have a trailing slash Tay Ray Chuan
2010-04-07 23:15         ` Junio C Hamano
2010-04-08  2:15         ` [PATCH v3 1/3] t5541-http-push: add test for URLs with " Tay Ray Chuan
2010-04-08  2:15           ` [PATCH v3 2/3] http: make end_url_with_slash() public Tay Ray Chuan
2010-04-08  2:15             ` [PATCH v3 3/3] remote-curl: ensure that URLs have a trailing slash Tay Ray Chuan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7viq83e1pd.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=rctay89@gmail.com \
    --cc=spearce@spearce.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.