On Tue, 10 Aug 2010, Matthieu Speder wrote:

We could (or should?) perhaps do the same when a custom Host: is used and an SNI name is passed on, as then (lib)curl would still do the proper SNI even when trying out a local https:// site like above.

Agree. And by the way I think that this might be the right thing to do anyway, even without my strange context. The only restriction I see is that HTTP header is only relevant for HTTP service while TLS SNI could in theory apply to non HTTP also. However, in real life, I'm not aware of any TLS server really using SNI apart from HTTPS servers.

Right. And for other protocols, there need to be a similar header/command (like HOST is being suggested for FTP) that then would get the same treatment by us!

I looked for a way to implement your idea. Main issue is that today cookiehost if filled only after the TLS session is built. I did a quick test looking in the header directly and it worked perfectly (see sample code below). However it looks like we do the job of looking in the header twice, so maybe you would do it a different way ?

I would rather have the code extract and store the "Host:" header name in a single place and use it for both features.

                sniname = ptr?Curl_copy_header_value(ptr):NULL;
                if (!sniname &&

A failure to allocate memory (which a NULL pointer means here) is a serious error and MUST result in a clean bailout with an error code.

                                (0 == Curl_inet_pton(AF_INET,
conn->host.name, &addr)) #ifdef ENABLE_IPV6
                                && (0 == Curl_inet_pton(AF_INET6,
conn->host.name, &addr)) #endif
                ) {

Can the SNI field really not be set to work with an IP address? What if you have multiple IP addresses, have the server listen on all of them and connect to the host using https://1.2.3.4/moo ?

The cookie engine at least will need the Host: name as '1.2.3.4' in that case.

--

 / daniel.haxx.se
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to