|
|
|
@ -1019,27 +1019,28 @@ public class EmailService implements AutoCloseable {
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
// Fallback: check server/certificate IP address
|
|
|
|
|
try {
|
|
|
|
|
InetAddress ip = InetAddress.getByName(server);
|
|
|
|
|
for (String name : names) {
|
|
|
|
|
if (name.startsWith("*."))
|
|
|
|
|
name = name.substring(2);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
for (InetAddress addr : InetAddress.getAllByName(name))
|
|
|
|
|
if (Arrays.equals(ip.getAddress(), addr.getAddress())) {
|
|
|
|
|
Log.i("Accepted " + name + " for " + server);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
} catch (UnknownHostException ex) {
|
|
|
|
|
Log.w(ex);
|
|
|
|
|
if (!harden)
|
|
|
|
|
try {
|
|
|
|
|
InetAddress ip = InetAddress.getByName(server);
|
|
|
|
|
for (String name : names) {
|
|
|
|
|
if (name.startsWith("*."))
|
|
|
|
|
name = name.substring(2);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
for (InetAddress addr : InetAddress.getAllByName(name))
|
|
|
|
|
if (Arrays.equals(ip.getAddress(), addr.getAddress())) {
|
|
|
|
|
Log.i("Accepted " + name + " for " + server);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
} catch (UnknownHostException ex) {
|
|
|
|
|
Log.w(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (UnknownHostException ex) {
|
|
|
|
|
Log.w(ex);
|
|
|
|
|
} catch (Throwable ex) {
|
|
|
|
|
Log.e(ex);
|
|
|
|
|
}
|
|
|
|
|
} catch (UnknownHostException ex) {
|
|
|
|
|
Log.w(ex);
|
|
|
|
|
} catch (Throwable ex) {
|
|
|
|
|
Log.e(ex);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String error = server + " not in certificate: " + TextUtils.join(",", names);
|
|
|
|
|
Log.i(error);
|
|
|
|
|