MantisBT - Doomseeker
View Issue Details
0003287Doomseeker[All Projects] Bugpublic2017-10-03 18:582018-10-27 22:54
WubTheCaptain 
Zalewa 
normalminorhave not tried
closedfixed 
x86_64Debian GNU/Linuxbuster/sid
1.1 
1.21.2 
0003287: IRC: IRC network address hostname lookups use IPv4 when IPv6 connectivity is available
Doomseeker 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.

  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).

Both 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.
No tags attached.
related to 0003376closed Zalewa Domain names look ups get the process stuck when quitting during look up. 
child of 0003531confirmed  IPV6 Support for Doomseeker 
txt ip-addr.txt (1,341) 2017-10-03 18:58
https://zandronum.com/tracker/file_download.php?file_id=2214&type=bug
Issue History
2017-10-03 18:58WubTheCaptainNew Issue
2017-10-03 18:58WubTheCaptainFile Added: ip-addr.txt
2018-02-18 13:05ZalewaNote Added: 0019069
2018-02-18 13:05ZalewaAssigned To => Zalewa
2018-02-18 13:05ZalewaStatusnew => acknowledged
2018-02-18 13:27ZalewaNote Added: 0019070
2018-02-18 18:39ZalewaNote Added: 0019071
2018-02-18 18:44ZalewaRelationship addedrelated to 0003376
2018-02-18 18:44ZalewaStatusacknowledged => assigned
2018-02-18 18:44ZalewaNote Edited: 0019071bug_revision_view_page.php?bugnote_id=19071#r11408
2018-02-18 18:45ZalewaNote Edited: 0019071bug_revision_view_page.php?bugnote_id=19071#r11409
2018-02-18 19:07ZalewaNote Added: 0019073
2018-02-18 19:07ZalewaStatusassigned => needs testing
2018-09-29 15:15WubTheCaptainTarget Version => 1.2
2018-09-29 15:48WubTheCaptainNote Added: 0019826
2018-09-30 06:22Blzut3Note Added: 0019835
2018-09-30 06:22Blzut3Statusneeds testing => resolved
2018-09-30 06:22Blzut3Fixed in Version => 1.2
2018-09-30 06:22Blzut3Resolutionopen => fixed
2018-10-05 05:50WubTheCaptainRelationship addedparent of 0003531
2018-10-05 05:50WubTheCaptainRelationship replacedchild of 0003531
2018-10-27 22:54WubTheCaptainStatusresolved => closed

Notes
(0019069)
Zalewa   
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.
(0019070)
Zalewa   
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 [^]'
(0019071)
Zalewa   
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

(0019073)
Zalewa   
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.
(0019826)
WubTheCaptain   
2018-09-29 15:48   
Fyi, I no longer have IPv6 connectivity to test this with. I would have to replace my router, since I relied (too much) on ipv6calc to setup a 6rd tunnel with my ISP and that doesn't work anymore.

Please test.
(0019835)
Blzut3   
2018-09-30 06:22   
Can confirm that IPv6 is working in the IRC client.