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