From: Junio C Hamano <gitster@pobox.com>
To: Yi EungJun <semtlenori@gmail.com>
Cc: git@vger.kernel.org, Yi EungJun <eungjun.yi@navercorp.com>,
Eric Sunshine <sunshine@sunshineco.com>,
Jeff King <peff@peff.net>,
Peter Krefting <peter@softwolves.pp.se>
Subject: Re: [PATCH v5 1/1] http: Add Accept-Language header if possible
Date: Wed, 03 Dec 2014 10:22:20 -0800 [thread overview]
Message-ID: <xmqqfvcwiof7.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1417522356-24212-2-git-send-email-eungjun.yi@navercorp.com> (Yi EungJun's message of "Tue, 2 Dec 2014 21:12:36 +0900")
Yi EungJun <semtlenori@gmail.com> writes:
> From: Yi EungJun <eungjun.yi@navercorp.com>
>
> Add an Accept-Language header which indicates the user's preferred
> languages defined by $LANGUAGE, $LC_ALL, $LC_MESSAGES and $LANG.
>
> Examples:
> LANGUAGE= -> ""
> LANGUAGE=ko:en -> "Accept-Language: ko, en;q=0.9, *;q=0.1"
> LANGUAGE=ko LANG=en_US.UTF-8 -> "Accept-Language: ko, *;q=0.1"
> LANGUAGE= LANG=en_US.UTF-8 -> "Accept-Language: en-US, *;q=0.1"
>
> This gives git servers a chance to display remote error messages in
> the user's preferred language.
>
> Limit the number of languages to 1,000 because q-value must not be
> smaller than 0.001, and limit the length of Accept-Language header to
> 4,000 bytes for some HTTP servers which cannot accept such long header.
>
> Signed-off-by: Yi EungJun <eungjun.yi@navercorp.com>
> ---
> http.c | 154 +++++++++++++++++++++++++++++++++++++++++++++
> remote-curl.c | 2 +
> t/t5550-http-fetch-dumb.sh | 31 +++++++++
> 3 files changed, 187 insertions(+)
>
> diff --git a/http.c b/http.c
> index 040f362..69624af 100644
> --- a/http.c
> +++ b/http.c
> @@ -68,6 +68,8 @@ static struct curl_slist *no_pragma_header;
>
> static struct active_request_slot *active_queue_head;
>
> +static struct strbuf *cached_accept_language;
> +
> size_t fread_buffer(char *ptr, size_t eltsize, size_t nmemb, void *buffer_)
> {
> size_t size = eltsize * nmemb;
> @@ -515,6 +517,9 @@ void http_cleanup(void)
> cert_auth.password = NULL;
> }
> ssl_cert_password_required = 0;
> +
> + if (cached_accept_language)
> + strbuf_release(cached_accept_language);
Is this correct?
You still keep cached_accept_language pointer itself, so the next
call to get_accept_language() would say "Ah, cached_accept_language
is there, so its contents (which is empty because we released it
here) must be valid and to be reused". Perhaps you want to free it,
too, i.e.
if (cached_accept_language) {
strbuf_release(cached_accept_language);
free(cached_accept_language);
cached_accept_language = NULL;
}
or something?
> +static struct strbuf *get_accept_language(void)
> +{
> + ...
> + if (cached_accept_language)
> + return cached_accept_language;
> +
> + cached_accept_language = xmalloc(sizeof(struct strbuf));
> + ...
> + for (max_q = 1, decimal_places = 0;
> + max_q < num_langs;
> + decimal_places++, max_q *= 10);
Have that "empty statement" on its own separate line, i.e.
for (a, counter = 0;
b;
c, counter++)
; /* just counting */
Alternatively, you can make it more obvious that the purpose of loop
is to count, i.e.
for (a, counter = 0;
b;
c)
counter++;
> +test_expect_success 'git client does not send Accept-Language' '
> + test_must_fail env GIT_CURL_VERBOSE=1 LANGUAGE= git clone "$HTTPD_URL/accept/language" 2>stderr &&
> + ! grep "^Accept-Language:" stderr
> +'
Hmph, this test smells a bit brittle. What is the reason you expect
"git clone" to fail? Is it because there is no repository at the
named URL at "$HTTPD_URL/accept/language"? Is that the only plausible
reason for a failure?
It might be better to use the URL to a repository that is expected
to be served by the server started in this test and expect success.
If it bothers you that "clone" creates a new copy that is otherwise
unused by this test, you can use something like "ls-remote" instead,
I would think.
next prev parent reply other threads:[~2014-12-03 18:22 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-19 17:58 [PATCH v4 0/1] http: Add Accept-Language header if possible Yi EungJun
2014-07-19 17:58 ` [PATCH v4 1/1] " Yi EungJun
2014-07-21 19:01 ` Junio C Hamano
2014-08-03 7:35 ` Yi, EungJun
2014-12-02 12:12 ` [PATCH v5 0/1] " Yi EungJun
2014-12-02 12:12 ` [PATCH v5 1/1] " Yi EungJun
2014-12-03 18:22 ` Junio C Hamano [this message]
2014-12-03 19:31 ` Eric Sunshine
2014-12-03 21:37 ` Junio C Hamano
2014-12-03 22:00 ` Michael Blume
2014-12-03 22:06 ` Michael Blume
2014-12-22 16:44 ` [PATCH v6 0/1] " Yi EungJun
2014-12-22 16:44 ` [PATCH v6 1/1] " Yi EungJun
2014-12-22 19:34 ` Junio C Hamano
2014-12-24 20:35 ` Eric Sunshine
2014-12-29 16:18 ` Junio C Hamano
2015-01-18 12:23 ` [PATCH v7 0/1] " Yi EungJun
2015-01-18 12:26 ` [PATCH v7 1/1] " Yi EungJun
2015-01-18 15:14 ` Torsten Bögershausen
2015-01-19 20:21 ` [PATCH v6 0/1] " Eric Sunshine
2015-01-22 7:54 ` [PATCH v7 1/1] " Junio C Hamano
2015-01-27 15:51 ` [PATCH v8 0/1] " Yi EungJun
2015-01-27 15:51 ` [PATCH] " Yi EungJun
2015-01-27 23:34 ` Junio C Hamano
2015-01-28 6:15 ` Junio C Hamano
2015-01-28 11:59 ` Yi, EungJun
2015-01-28 12:04 ` [PATCH v9 0/1] " Yi EungJun
2015-01-28 12:04 ` [PATCH v9 1/1] " Yi EungJun
2015-02-25 22:52 ` Junio C Hamano
2015-02-26 3:04 ` Jeff King
2015-02-26 3:10 ` Jeff King
2015-02-26 20:59 ` Junio C Hamano
2015-02-26 21:33 ` Jeff King
2015-02-26 21:42 ` Junio C Hamano
2015-02-26 21:47 ` Stefan Beller
2015-02-26 22:06 ` Jeff King
2015-02-26 22:07 ` Jeff King
2015-02-26 22:26 ` Stefan Beller
2015-02-26 22:36 ` Jeff King
2015-02-26 22:45 ` Jeff King
2015-02-26 23:29 ` Junio C Hamano
2015-02-26 22:13 ` Junio C Hamano
2015-01-29 6:19 ` [PATCH v9 0/1] " Junio C Hamano
2015-01-30 17:23 ` Yi, EungJun
2015-03-06 16:13 ` [PATCH] http: Include locale.h when using setlocale() Ævar Arnfjörð Bjarmason
2015-03-06 19:01 ` Junio C Hamano
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=xmqqfvcwiof7.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=eungjun.yi@navercorp.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--cc=peter@softwolves.pp.se \
--cc=semtlenori@gmail.com \
--cc=sunshine@sunshineco.com \
/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.