Fix memory leak in FServerManager.

This commit is contained in:
Meerkov
2018-04-17 16:11:25 -07:00
parent db3e4d9e83
commit 64b98a84f5

View File

@@ -221,22 +221,25 @@ public final class FServerManager {
DatagramSocket s = new DatagramSocket(); DatagramSocket s = new DatagramSocket();
s.connect(InetAddress.getByAddress(this.externalAddress), 0); s.connect(InetAddress.getByAddress(this.externalAddress), 0);
NetworkInterface n = NetworkInterface.getByInetAddress(s.getLocalAddress()); NetworkInterface n = NetworkInterface.getByInetAddress(s.getLocalAddress());
Enumeration en = n.getInetAddresses(); Enumeration<InetAddress> en = n.getInetAddresses();
while (en.hasMoreElements()) { while (en.hasMoreElements()) {
InetAddress addr = (InetAddress) en.nextElement(); InetAddress addr = (InetAddress) en.nextElement();
if (addr instanceof Inet4Address) { if (addr instanceof Inet4Address) {
if (preferIPv6) { if (preferIPv6) {
continue; continue;
} }
s.close();
return addr.getHostAddress(); return addr.getHostAddress();
} }
if (addr instanceof Inet6Address) { if (addr instanceof Inet6Address) {
if (preferIpv4) { if (preferIpv4) {
continue; continue;
} }
s.close();
return addr.getHostAddress(); return addr.getHostAddress();
} }
} }
s.close();
return null; return null;
} }