Some devices seem not to be able to connect to plain IP addresses

This commit is contained in:
M66B 2020-03-13 17:13:48 +01:00
parent 0a4fda6e1b
commit 60b4f302e2
1 changed files with 3 additions and 6 deletions

View File

@ -360,17 +360,13 @@ public class EmailService implements AutoCloseable {
private void connect(
String host, int port, String user, String password,
SSLSocketFactoryService factory) throws MessagingException {
InetAddress main = null;
try {
//if (BuildConfig.DEBUG)
// throw new MailConnectException(
// new SocketConnectException("Debug", new IOException("Test"), host, port, 0));
main = InetAddress.getByName(host);
EntityLog.log(context, "Connecting to " + main);
_connect(main.getHostAddress(), port, user, password, factory);
} catch (UnknownHostException ex) {
throw new MessagingException("Unknown host " + host, ex);
EntityLog.log(context, "Connecting to " + host);
_connect(host, port, user, password, factory);
} catch (MessagingException ex) {
boolean ioError = false;
Throwable ce = ex;
@ -385,6 +381,7 @@ public class EmailService implements AutoCloseable {
if (ioError) {
try {
// Some devices resolve IPv6 addresses while not having IPv6 connectivity
InetAddress main = InetAddress.getByName(host);
InetAddress[] iaddrs = InetAddress.getAllByName(host);
boolean ip4 = (main instanceof Inet4Address);
boolean ip6 = (main instanceof Inet6Address);