cURL
Haxx ad
libcurl

curl's project page on SourceForge.net

Sponsors:
Haxx

cURL > Mailing List > Monthly Index > Single Mail

curl-tracker mailing list Archives

[ curl-Bugs-3105028 ] Error binding to ipv4 interface when target has ipv4+ipv6

From: SourceForge.net <noreply_at_sourceforge.net>
Date: Thu, 11 Nov 2010 16:58:44 +0000

Bugs item #3105028, was opened at 2010-11-08 05:13
Message generated for change (Comment added) made by fiderallalla7
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=100976&aid=3105028&group_id=976

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: bad behaviour
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: fiderallalla (fiderallalla7)
Assigned to: Nobody/Anonymous (nobody)
Summary: Error binding to ipv4 interface when target has ipv4+ipv6

Initial Comment:
Let's assume there are two interfaces:
eth0: ipv4 AND ipv6: 1.1.1.1 / 2001:.....
eth1: only ipv4: 2.2.2.2

curl --interface 2.2.2.2 <host>
fails when <host> has both ipv6 and ipv4 adresses:

curl: (45) bind failed with errno 22: Invalid argument

To prevent that, one has to manually specify --ipv4 / -4,
In my opinion this should be implied, since we are binding to an ipv4-only interface and it makes no sense preferring ipv6 over ipv4.

----------------------------------------------------------------------

>Comment By: fiderallalla (fiderallalla7)
Date: 2010-11-11 17:58

Message:
I'm on debian/lenny

curl without c-ares:

$ ./curl -V
curl 7.21.3-DEV (i686-pc-linux-gnu) libcurl/7.21.3-DEV OpenSSL/0.9.8g
zlib/1.2.3.3 libidn/1.8 libssh2/0.18
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3
pop3s rtsp scp sftp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM SSL libz

$ ./curl --interface XX.XX.XX.XX www.google.com -v
* About to connect() to www.google.com port 80 (#0)
* Trying 2a00:1450:8001::63... getaddrinfo(3) failed for XX.XX.XX.XX:0
* Couldn't bind to 'XX.XX.XX.XX'
* Closing connection #0
curl: (45) Couldn't bind to 'XX.XX.XX.XX'

curl with c-ares:

$ ./curl -V
curl 7.21.3-DEV (i686-pc-linux-gnu) libcurl/7.21.3-DEV OpenSSL/0.9.8g
zlib/1.2.3.3 c-ares/1.7.3 libidn/1.8 libssh2/0.18
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3
pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile NTLM SSL libz

$ ./curl --interface XX.XX.XX.XX www.google.com -v
* About to connect() to www.google.com port 80 (#0)
* Trying 2a00:1450:8001::63... Name 'XX.XX.XX.XX' family 10 resolved to
'XX.XX.XX.XX' family 2
* bind failed with errno 22: Invalid argument
* Closing connection #0
curl: (45) bind failed with errno 22: Invalid argument

Adding --ipv4 to curl's commandline works just fine in both cases.
I'm just wondering why it tries ipv6 in the first place, when the
--interface specified is ipv4-only.

----------------------------------------------------------------------

Comment By: Daniel Stenberg (bagder)
Date: 2010-11-11 15:20

Message:
You didn't state what version or OS you use.

The idea is however that the resolved IP is what dictates what
interface/address to bind the local end to. Can you please try the current
git/tomorrow's daily snapshot and see how it works?

If it still fails, can you please A) show us the full -v output and B)
show use the "curl -V" output.

----------------------------------------------------------------------

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=100976&aid=3105028&group_id=976
Received on 2010-11-11

These mail archives are generated by hypermail.

donate! Page updated November 12, 2010.
web site info

File upload with ASP.NET