1
0
Fork 0
mirror of https://github.com/M66B/FairEmail.git synced 2025-02-23 14:41:08 +00:00

Use host/address for socket connect

This commit is contained in:
M66B 2021-09-02 08:23:48 +02:00
parent b0007a4450
commit b05cf6d7fa
2 changed files with 13 additions and 5 deletions

View file

@ -16,6 +16,8 @@
package com.sun.mail.util;
import android.text.TextUtils;
import java.security.*;
import java.net.*;
import java.io.*;
@ -325,14 +327,19 @@ public class SocketFetcher {
if (localaddr != null)
socket.bind(new InetSocketAddress(localaddr, localport));
try {
InetAddress iaddr = InetAddress.getByName(host);
String server = props.getProperty("fairemail.server");
if (!TextUtils.isEmpty(server))
iaddr = InetAddress.getByAddress(server, iaddr.getAddress());
eu.faircode.email.Log.i("Socket connect " + iaddr);
logger.finest("connecting...");
if (proxyHost != null)
proxyConnect(socket, proxyHost, proxyPort,
proxyUser, proxyPassword, host, port, cto);
else if (cto >= 0)
socket.connect(new InetSocketAddress(host, port), cto);
socket.connect(new InetSocketAddress(iaddr, port), cto);
else
socket.connect(new InetSocketAddress(host, port));
socket.connect(new InetSocketAddress(iaddr, port));
logger.finest("success!");
} catch (IOException ex) {
logger.log(Level.FINEST, "connection failed", ex);

View file

@ -478,7 +478,7 @@ public class EmailService implements AutoCloseable {
}
EntityLog.log(context, "Connecting to " + main);
_connect(main, port, require_id, user, authenticator, factory);
_connect(host, main, port, require_id, user, authenticator, factory);
} catch (UnknownHostException ex) {
throw new MessagingException(ex.getMessage(), ex);
} catch (MessagingException ex) {
@ -552,7 +552,7 @@ public class EmailService implements AutoCloseable {
try {
EntityLog.log(context, "Falling back to " + iaddr);
_connect(iaddr, port, require_id, user, authenticator, factory);
_connect(host, iaddr, port, require_id, user, authenticator, factory);
return;
} catch (MessagingException ex1) {
ex = ex1;
@ -570,9 +570,10 @@ public class EmailService implements AutoCloseable {
}
private void _connect(
InetAddress address, int port, boolean require_id,
String host, InetAddress address, int port, boolean require_id,
String user, Authenticator authenticator,
SSLSocketFactoryService factory) throws MessagingException {
properties.setProperty("fairemail.server", host);
isession = Session.getInstance(properties, authenticator);
isession.setDebug(debug || log);