git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2] http: honnor empty http.proxy option to bypass proxy

From
Sergey Ryazanov <ryazanov.s.a@gmail.com>
Date
Apr 11, 2017, 14:56 UTC
Message-ID
<CAHNKnsRxNMS4fYTaoHSRgcTmCr+rcjVOGE1kqJGHqLTgBxdC0w@mail.gmail.com>
In-Reply-To
<20170411130659.ehit7jdhnk43m23g@sigill.intra.peff.net>
On Tue, Apr 11, 2017 at 4:06 PM, Jeff King <peff@peff.net> wrote:
Show 24 quoted lines
> On Tue, Apr 11, 2017 at 12:20:50PM +0300, Sergey Ryazanov wrote:
>> diff --git a/http.c b/http.c
>> index 96d84bb..8be75b2 100644
>> --- a/http.c
>> +++ b/http.c
>> @@ -836,8 +836,14 @@ static CURL *get_curl_handle(void)
>>               }
>>       }
>>
>> -     if (curl_http_proxy) {
>> -             curl_easy_setopt(result, CURLOPT_PROXY, curl_http_proxy);
>> +     if (curl_http_proxy && curl_http_proxy[0] == '\0') {
>> +             /*
>> +              * Handle case with the empty http.proxy value here to keep
>> +              * common code clean.
>> +              * NB: empty option disables proxying at all.
>> +              */
>> +             curl_easy_setopt(result, CURLOPT_PROXY, "");
>> +     } else if (curl_http_proxy) {
>
> This seems pretty reasonable. You could bump this under the existing "if
> (curl_http_proxy)" condition, but that would add an extra level of
> indentation to the rest of the parsing.
>
Because of this additional indentation I decide to add new if () block.
Show 13 quoted lines
> One thing I do wonder, though: can credential_from_url() ever return a
> NULL host field for other inputs, and what should we do on those inputs?
>
> For example, if I set the value to just "https://" with no hostname,
> then I think we'll end up with a NULL proxy_auth.host field. And we'll
> feed that NULL to CURLOPT_PROXY, which will cause it to use the
> defaults.
>
> I don't know _what_ "https://" should do. It's clearly bogus. But
> telling curl to use the defaults seems funny. In that sense, your
> original was much better (we'd feed it to curl, which would be free to
> complain).
>

I thought about this situation too. IMHO the best solution here is to check host after credential_from_url() call. If host is NULL then we should show warning message and exit. Then user could fix its configuration.

Since I in any case will send v3 with grammar fixes then I could add new patch to the series. This new patch will check host for NULL and print warning message. Are you Ok with such solution?

-- 
Sergey
Previous: Jeff KingNext: Jeff King
Message 5 of 6 in “http: honnor empty http.proxy option to bypass proxy”
  1. http: honnor empty http.proxy option to bypass proxySergey Ryazanov, Apr 11, 2017
  2. Ævar Arnfjörð BjarmasonApr 11, 2017
  3. Sergey RyazanovApr 11, 2017
  4. Jeff KingApr 11, 2017
  5. Sergey RyazanovApr 11, 2017
  6. Jeff KingApr 11, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.