Bug 548396 - [RFE] support records with both IPv4 and IPv6 addresses
Summary: [RFE] support records with both IPv4 and IPv6 addresses
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: c-ares
Version: rawhide
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Tom "spot" Callaway
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-12-17 10:50 UTC by Kamil Dudka
Modified: 2023-09-12 13:41 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of: 548269
Environment:
Last Closed: 2023-09-12 13:41:08 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Kamil Dudka 2009-12-17 10:50:44 UTC
+++ This bug was initially created as a clone of Bug #548269 +++

Description of problem:
My last yum update on rawhide included curl and libcurl, and since then I can't access fedoraproject.org via yum (w/ libcurl) or even directly with curl.

Version-Release number of selected component (if applicable):
curl-7.19.7-8.fc13.i686
libcurl-7.19.7-8.fc13.i686

(also happens on x86_64)

How reproducible:
100%

Steps to Reproduce:
1. curl -v fedoraproject.org
  
Actual results:
  * About to connect() to fedoraproject.org port 80 (#0)
  *   Trying 2610:28:200:1::fed0:1... Failed to connect to 2610:28:200:1::fed0:1: Network is unreachable
  * Success
  * couldn't connect to host
  * Closing connection #0
  curl: (7) Failed to connect to 2610:28:200:1::fed0:1: Network is unreachable

Expected results:
The HTML dump of Fedora's home. :)

Additional info:
Curl appears to be fine with pure-IPv4 hosts (e.g. www.google.com).

If I completely disable IPv6 in the kernel, then curl says:
  * About to connect() to fedoraproject.org port 80 (#0)
  * couldn't connect to host
  * Closing connection #0
  curl: (7) couldn't connect to host

If I explicitly add "--ipv4", then it works fine.  With the previous version, that wasn't necessary, of course.  And I have no way of forcing other libcurl apps in this way.

According to yum history, my previously working curl/libcurl was 7.19.7-4.fc13.i686.  I can't find that version at the moment to try rolling back, as koji seems to be down.  However, I tried 7.19.6-10.fc12.i686, and that seems to work fine as well.

--- Additional comment from kdudka on 2009-12-17 05:44:39 EDT ---

Thanks for the report! curl was switched to c-ares for name resolving in Fedora 13 and this feature hasn't been implemented in c-ares yet. I'll clone this bug for that package.

> If I explicitly add "--ipv4", then it works fine.  With the previous version,
> that wasn't necessary, of course.  And I have no way of forcing other libcurl
> apps in this way.

We can of course implement a way to do the same for applications in the meantime. What about adding a new environment variable (e.g. CURL_DISABLE_IPV6) to achieve this? Which applications are you actually focused on? 

> According to yum history, my previously working curl/libcurl was
> 7.19.7-4.fc13.i686.  I can't find that version at the moment to try rolling

The above mentioned change was done in 7.19.6-11.fc13. If the same worked for you in 7.19.7-4.fc13, it must have been a bug in your network ;-)

Comment 1 Josh Stone 2009-12-18 21:27:25 UTC
I poked a bit around in the c-ares source for this.  I think that since c-ares is producing a struct hostent, it will be limited to only a single protocol of results.  There's only one h_addrtype field to represent the entire list of results, so it can't mix IPv4 and IPv6.

Thus, I believe the API would have to change to support mixed protocols.

Comment 2 Tom "spot" Callaway 2010-01-21 03:42:15 UTC
The upstream for c-ares is pretty active, so they might be open to considering making an API change to support this functionality.

Comment 3 Kamil Dudka 2010-01-21 05:13:03 UTC
Sure.  Upstream is aware of the situation in Fedora.  I've discussed the topic with Daniel Stenberg (already CC'd) and he has really no problem with accepting such a patch.

Comment 4 Kamil Dudka 2010-04-21 20:10:25 UTC
I've experimentally built (lib)curl based on threaded DNS resolver in order to replace c-ares.  We'll see if the approach fits well into Fedora.

http://koji.fedoraproject.org/koji/buildinfo?buildID=168222

Comment 5 Kamil Dudka 2010-06-02 10:53:05 UTC
Starting by 7.20.1-1.fc13, libcurl no longer uses c-ares for name resolving.  It means that up2date libcurl is no more affected by this bug.

Comment 6 Fedora Admin user for bugzilla script actions 2020-06-03 02:47:27 UTC
This package has changed maintainer in the Fedora.
Reassigning to the new maintainer of this component.


Note You need to log in before you can comment on or make changes to this bug.