[cvsnt] ipv6 handling in cvsnt is broken

Arkadiusz Miskiewicz arekm at maven.pl
Tue Nov 11 00:24:23 GMT 2008

Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.

On Monday 10 of November 2008, Tony Hoyle wrote:
> Arkadiusz Miskiewicz wrote:
> A couple of points:
> > This rule only applies to ::, not ::1.
> This is entirely irrelevant as there are only two possible cases.   The
> code is written to handle both cases transparently, and does.
> $ netstat -an | grep 2402
> tcp        0      0*
> tcp6       0      0 ::1:2402                :::*
> $ netstat -an | grep 2401
> tcp6       0      0 :::2401                 :::*
> cvsnt doesn't just cater for a couple of OSs - the commercial builds run
> on all sorts of environments and the code to handle these cases has to
> be (and is) robust.
> > You are wrong here. Tell me how to specify LockServer being ::1 with port
> > 432 in PServer config file? Parsing is done in cvsnt, I see strchr used
> > there for example.
> ip6-localhost:432

With ipv6 address not hostname please. 

Host ip6-localhost not found: 3(NXDOMAIN).

> I can see absolutely no reason why anyone would want to do this.  The
> config is there to change the port in case there's a conflicting
> application. 

To test what's broken in cvsnt for example. To use what's documented... Does 
it matter? It's existing option and should work well.

Anyway I found out what was cause of my initial the problem. IPv4 socket hangt 
in TIME_WAIT state so bind() failed with "address already in use" but IPv6 
socket succeeded. That's why it was listening only on ::1 and not on  

Due to logic flaw in CSocketIO::bind() (I mentioned in other mail in this 
thread  - bind() method succeeds when any bind succeeds) is started instead 
of yelling about a problem.

ps. about getaddinfo() manual handling of error messages in 
CSocketIO::create(). There is gai_strerror() which does what's done there 
manually (but possibly handles more error codes).
Arkadiusz Miśkiewicz        PLD/Linux Team
arekm / maven.pl            http://ftp.pld-linux.org/

More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook