use of com.biglybt.core.networkmanager.admin.NetworkAdminNetworkInterfaceAddress in project BiglyBT by BiglySoftware.
the class NetworkAdminDistributedNATTester method runChecks.
private void runChecks(TimerEvent ev) {
if (!enabled) {
return;
}
synchronized (this) {
if (check_running) {
return;
}
check_running = true;
}
boolean async = false;
logMessage("Running checks");
try {
NetworkAdminNetworkInterface[] interfaces = admin.getInterfaces();
List<InetAddress> global_ipv6 = new ArrayList<>();
for (NetworkAdminNetworkInterface intf : interfaces) {
NetworkAdminNetworkInterfaceAddress[] addresses = intf.getAddresses();
for (NetworkAdminNetworkInterfaceAddress address : addresses) {
InetAddress a = address.getAddress();
if (AddressUtils.isGlobalAddressV6(a)) {
global_ipv6.add(a);
}
}
}
if (global_ipv6.size() > 1) {
DHT[] dhts = dht_plugin.getDHTs();
DHT target_dht = null;
for (int i = 0; i < dhts.length; i++) {
if (dhts[i].getTransport().getNetwork() == DHT.NW_AZ_MAIN_V6) {
target_dht = dhts[i];
break;
}
}
if (target_dht != null) {
DHTTransport transport = target_dht.getTransport();
InetAddress bind_address = transport.getCurrentBindAddress();
if (bind_address == null) {
logMessage("DHT bind address invalid, not testing");
} else if (!bind_address.isAnyLocalAddress()) {
logMessage("DHT already bound, not testing");
} else {
DHT f_target_dht = target_dht;
AEThread2.createAndStartDaemon("DistributedNATCheck", () -> {
try {
test(f_target_dht, global_ipv6);
} finally {
synchronized (NetworkAdminDistributedNATTester.this) {
check_running = false;
}
}
});
async = true;
}
} else {
logMessage("No DHT");
}
} else {
logMessage("Insufficient V6 addresses");
}
} finally {
if (!async) {
synchronized (this) {
check_running = false;
}
}
}
}
use of com.biglybt.core.networkmanager.admin.NetworkAdminNetworkInterfaceAddress in project BiglyBT by BiglySoftware.
the class PMSWTImpl method updateLocalAddresses.
private void updateLocalAddresses(NetworkAdmin network_admin) {
NetworkAdminNetworkInterface[] interfaces = network_admin.getInterfaces();
Set<String> ias = new HashSet<>();
for (NetworkAdminNetworkInterface intf : interfaces) {
NetworkAdminNetworkInterfaceAddress[] addresses = intf.getAddresses();
for (NetworkAdminNetworkInterfaceAddress address : addresses) {
InetAddress ia = address.getAddress();
ias.add(ia.getHostAddress());
}
}
local_addresses = ias;
}
Aggregations