Hi gys,

yesturday I tried to fix the Datagram bug (DIRMINA-732). I think it works on linux, I have no idea for windows (if someone can give it a try), and I know it fails on Mac OSX.

The problem is that if we register the 'any' address (0.0.0.0) on a datagram acceptor, and try to get a session from it, like the way it's done on the failng test :

..
InetSocketAddress bindAddress = new InetSocketAddress( AvailablePortFinder.getNextAvailable());
        acceptor.setHandler(new TestHandler());
        acceptor.bind(bindAddress);
        IoSession session = acceptor.newSession(new InetSocketAddress(
"127.0.0.1", AvailablePortFinder.getNextAvailable()), bindAddress);
...

we get an error, as the bindAddress is considered as a Inet4Address, when the acceptor is bound on a Inet6Address. As we store the address in a hashMap to check if they are equals, we have an issue, because whatever you do, a Inet4Address will always be different from a Inet6Address; I hacked the code atrociously by using a String translation for this address, but it does not work on Mac.

Now, I'm dubious about the test. Why should be grab a session from the acceptor ? If someone has some idea about what's wrong about this test, that would be great !


--
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com


Reply via email to