Hello everybody. I have a patch I would like to contribute to the LDAP client.
Let's say you have a machine that has no IPv4 connectivity, only IPv6. You want to connect to a LDAP server with a hostname that resolves both to an IPv4 and IPv6 address. Currently you would (most likely) not be able to connect because the client code selects the first result returned by the DNS as the IP to use. That is often the IPv4 address. My patch tries to initiate a socket connection to all the returned IP addresses simultaneously (without applying the LDAP request that caused the connection to be initiated). The first successful connection is selected and all the others are discarded. I know this is not as efficient as just connecting to one IP, but I try to make it as efficient as possible (I'm not a java veteran). I did think about scanning the interfaces of the machine and try to determine what kind of connectivity we have and from there pick the right IP to connect to (if the DNS query returns both A and AAAA records). However, that would only be, at best, guess work. I did create a pull request where you host your mirror at github. I didn't see any better way to provide the code to you. The pull request is available at https://github.com/apache/directory-shared/pull/2 All suggestions and comments are greatly appreciated. Thank you! -- Kveðja / Best regards, Kristinn Örn Sigurðsson.