View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006249 | unreal | ircd | public | 2023-03-19 11:36 | 2025-09-17 11:00 |
Reporter | syzop | Assigned To | syzop | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
Product Version | 6.0.6 | ||||
Fixed in Version | 6.2.1 | ||||
Summary | 0006249: url_unreal.c does no IPv6 lookup | ||||
Description | We 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 | ||||
Tags | No tags attached. | ||||
3rd party modules | |||||
|
Oh already reported (indirectly) by progval in https://bugs.unrealircd.org/view.php?id=6073 (remember for credit) |
|
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. |
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 |