Zandronum Chat @ irc.zandronum.com
#zandronum
Get the latest version: 3.0
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003287Doomseeker[All Projects] Bugpublic2017-10-03 18:582018-02-18 19:07
ReporterWubTheCaptain 
Assigned ToZalewa 
PrioritynormalSeverityminorReproducibilityhave not tried
Statusneeds testingResolutionopen 
Platformx86_64OSDebian GNU/LinuxOS Versionbuster/sid
Product Version1.1 
Target VersionFixed in Version 
Summary0003287: IRC: IRC network address hostname lookups use IPv4 when IPv6 connectivity is available
DescriptionDoomseeker includes a small IRC client.

Connecting to an IRC network with DNS hostname lookups from IRC network address seems to prefer IPv4 over IPv6, even while IPv6 connectivity was available.
Steps To Reproduce

  1. First, make sure at minimum your network interface has an IPv6-address. An IPv4-address may also be required.

  2. If IRC is not already visible, to view it press Ctrl + I or access it via top crates (View → IRC) or the button (IRC).

  3. On the left side of IRC panel, click the "Connect button".

  4. If needed, add a definition for any known IRC network with IPv6-connectivity.

  5. Attempt to connect to an IRC network.

  6. Notice from the first log lines how you are connecting over IPv4 (by default) while IPv6 was also available. If unsure, issue a WHOIS command to your own name (e.g. "/WHOIS WubTheCaptain", where WubTheCaptain is my username).

Additional InformationBoth the local and remote hosts had dual-stack IPv4 and IPv6 connectivity in this case. The DNS holds both A and AAAA records.

Directly inputting an IPv6 address to the defined IRC network's address field works for connecting over IPv6.

Using a third-party IRC client such as Irssi, HexChat or WeeChat works as intended and resolves IPv6 first when the host has IPv6-connectivity.

Example IRC networks currently with dual-stack IPv4 & IPv6 connectivity:


  1. irc.zandronum.com

  2. irc.esper.net

  3. irc.yui.cat

  4. irc.rizon.net



Attached ip-addr.txt shows my configured network interfaces (without routes) from iproute2.
Attached Filestxt file icon ip-addr.txt [^] (1,341 bytes) 2017-10-03 18:58 [Show Content]

- Relationships
related to 0003376needs testingZalewa Domain names look ups get the process stuck when quitting during look up. 

-  Notes
User avatar (0019069)
Zalewa (developer)
2018-02-18 13:05

This was specifically programmed to do so to avoid some "hostname look up problems":https://bitbucket.org/Doomseeker/doomseeker/commits/920ac7da8535c9abaac88801b004fee098c32282#Lsrc/irc/ircclient.cppT103 [^]

Since this was 2010 and Qt has underwent new version releases since then, I'll try to see if this is still necessary. Sending the host name directly to socket.connectToHost() will refer the choice to Qt which, I hope, will make the right decision.
User avatar (0019070)
Zalewa (developer)
2018-02-18 13:27

Quote
Sending the host name directly to socket.connectToHost() will refer the choice to Qt which, I hope, will make the right decision.


If you do so with an invalid domain and quit the program before the resolution errors out, you will be stuck with doomseeker process running forever. See this commit for more details:https://bitbucket.org/Doomseeker/doomseeker/commits/fb1f296bfbcffe767f3c4e6bda16ff9c5f0c6b95 [^]
User avatar (0019071)
Zalewa (developer)
2018-02-18 18:39
edited on: 2018-02-18 18:45

Quote
If you do so with an invalid domain and quit the program before the resolution errors out, you will be stuck with doomseeker process running forever. See this commit for more details:https://bitbucket.org/Doomseeker/doomseeker/commits/fb1f296bfbcffe767f3c4e6bda16ff9c5f0c6b95


I figured it out.

Process is getting stuck on domain names lookup because we never "delete QApplication".

See this "minimal" example:https://bitbucket.org/zalewa/dotfiles/commits/5c2545284971ae6924fd42466041e37d8913336b#Ldev/qt/hostlookup/main.cppT83 [^]

Work on this will progress in 0003376

User avatar (0019073)
Zalewa (developer)
2018-02-18 19:07

This commit will directly use the host name to connect the TCP socket:https://bitbucket.org/Doomseeker/doomseeker/commits/53e0b57c8f839ce0fee7ea2ffe4436f9b56f7b23 [^]

I cannot promise that this will result in IPv6 being preferred over IPv4, but at least Qt does the decision now, not us.

Issue Community Support
Only registered users can voice their support. Click here to register, or here to log in.
Supporters: No one explicitly supports this issue yet.
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2017-10-03 18:58 WubTheCaptain New Issue
2017-10-03 18:58 WubTheCaptain File Added: ip-addr.txt
2018-02-18 13:05 Zalewa Note Added: 0019069
2018-02-18 13:05 Zalewa Assigned To => Zalewa
2018-02-18 13:05 Zalewa Status new => acknowledged
2018-02-18 13:27 Zalewa Note Added: 0019070
2018-02-18 18:39 Zalewa Note Added: 0019071
2018-02-18 18:44 Zalewa Relationship added related to 0003376
2018-02-18 18:44 Zalewa Status acknowledged => assigned
2018-02-18 18:44 Zalewa Note Edited: 0019071 View Revisions
2018-02-18 18:45 Zalewa Note Edited: 0019071 View Revisions
2018-02-18 19:07 Zalewa Note Added: 0019073
2018-02-18 19:07 Zalewa Status assigned => needs testing






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker