View Issue Details

IDProjectCategoryView StatusLast Update
0006249unrealircdpublic2025-09-17 11:00
Reportersyzop Assigned Tosyzop  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version6.0.6 
Fixed in Version6.2.1 
Summary0006249: url_unreal.c does no IPv6 lookup
DescriptionWe have two types of remote includes code in UnrealIRCd, which one is used is chosen during ./Config: one is with cURL (url_curl.c) and one is built in unrealircd (url_unreal.c).
Presumably the cURL version of this works great, did not verify.
The unrealircd one, which only handles HTTPS, is what this bug is about. The code only does an A record lookup and never AAAA. Hence, it will never connect to IPv6.

See the happy eyeball v2 like approach in 0004687 which is about a similar problem. This is more complex than just adding an AAAA record lookup.

EDIT: Reported by progval earlier
TagsNo tags attached.
3rd party modules

Relationships

related to 0004687 confirmed Linking to server by hostname: try IPv4 address first and then IPv6 
has duplicate 0006073 closedsyzop Downloads of IP databases don't try all IP addresses of www.unrealircd.org 

Activities

syzop

2023-03-19 11:39

administrator   ~0022789

Oh already reported (indirectly) by progval in https://bugs.unrealircd.org/view.php?id=6073 (remember for credit)

syzop

2025-09-17 11:00

administrator   ~0023508

Fixed in https://github.com/unrealircd/unrealircd/commit/a6ae945499b988614219e7ff92f8346639eac0e1

Verified on both IPv4-only and IPv6-only machines.

commit a6ae945499b988614219e7ff92f8346639eac0e1 (HEAD -> unreal60_dev, origin/unreal60_dev, origin/HEAD)
Author: Bram Matthys <[email protected]>
Date: Wed Sep 17 10:41:01 2025 +0200

    Fix built-in https fetcher to also try IPv6.
    
    Without this fix, on an IPv6-only host UnrealIRCd would give you:
    [warn] /home/ircd/unrealircd/conf/modules.default.conf:309: Failed to download 'https://www.unrealircd.org/files/geo/classic/GeoIP.dat': Could not connect: Network is unreachable
    [warn] Continuing anyway...
    
    This fixes https://bugs.unrealircd.org/view.php?id=6249, which was
    also similarly reported by progval in https://bugs.unrealircd.org/view.php?id=6073
    
    This implements only a simple try-IPv4-then-IPv6 approach in case of
    clear connect errors. There is no happy eyeball like approach (where it
    gives IPv6 a 250ms head start and then tries IPv4 in parallel), if there
    is really a 15sec timeout then it doesn't retry IPv6 either (in case you
    have IPv4, there is a route, but packets end up blackholed), nor does it
    try all IP addresses that the resolver returns (then again, that's not
    strictly related to happy eyeballs or IPv4/IPv6).
    That would require some major overhaul that is not planned in U6. If you
    want better/great protocol support you can always enable cURL in ./Config.

Issue History

Date Modified Username Field Change
2023-03-19 11:36 syzop New Issue
2023-03-19 11:36 syzop Assigned To => syzop
2023-03-19 11:36 syzop Status new => acknowledged
2023-03-19 11:37 syzop Description Updated
2023-03-19 11:38 syzop Description Updated
2023-03-19 11:39 syzop Note Added: 0022789
2023-03-19 11:40 syzop Relationship added has duplicate 0006073
2023-03-19 11:40 syzop Description Updated
2023-03-19 11:40 syzop Relationship added related to 0004687
2025-09-17 11:00 syzop Status acknowledged => resolved
2025-09-17 11:00 syzop Resolution open => fixed
2025-09-17 11:00 syzop Fixed in Version => 6.2.1
2025-09-17 11:00 syzop Note Added: 0023508