cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Unresolved Curl_ipv4_resolve_r with USE_IPV6=1

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Wed, 30 Sep 2015 12:18:56 +0200 (CEST)

On Wed, 30 Sep 2015, Thorsten Schöning wrote:

> I'm building 7.44.0 on Windows 8.1 using Embarcadero C++-Builder 10 Seattle
> and get a linker error about unresolved Curl_ipv4_resolve_r when I enable
> USE_IPV6=1. If I explicitly use 0 instead everything builds OK.

Hm. I don't see how this happens in the code. Which code tries to use that
function?

> Curl_ipv4_resolve_r seems to be unconditionally declared in hostip.h,

That's just the prototype, it is harmless even for when the function isn't
around.

> If I manually define CURLRES_IPV4 together with USE_IPV6=1 the linker error
> is resolved and I get a warning about Curl_ipvalid, because it's now
> available two time in hostip4 and hostip6.

That happens because you _either_ have an IPv4-only setup or you are
IPv6-capable, you can't be both at the same time.

> This looks like an error in hostip.h to me, because declaration of
> Curl_ipv4_resolve_r should depend on CURLRES_IPV4 as well.

The declaration of the function an the definition of the function are
different things.

The problem is that some code wrongfully tries to use the IPv4 function while
you said you can use IPv6.

> Any thoughts? Thanks!

A related thought that could help you: we should ditch USE_IPV6 and just set
ENABLE_IPV6 in the windows build files as that's the symbol we use all over
the libcurl code.

-- 
  / daniel.haxx.se

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2015-09-30