From cac874bdc74a95c0c5f2f0f25e69d52968a11b97 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 24 May 2020 13:02:19 +0200 Subject: [PATCH] [core] Use UInt16 for ConnectionConfiguration 'port' --- .../smack/ConnectionConfiguration.java | 14 ++++++++++---- .../tcp/rce/IpTcpRemoteConnectionEndpoint.java | 4 ++-- .../tcp/rce/RemoteXmppTcpConnectionEndpoints.java | 9 +++++---- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java b/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java index 3d59269c7..e0b24a08f 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java @@ -35,6 +35,7 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.X509TrustManager; import javax.security.auth.callback.CallbackHandler; +import org.jivesoftware.smack.datatypes.UInt16; import org.jivesoftware.smack.debugger.SmackDebuggerFactory; import org.jivesoftware.smack.packet.id.StandardStanzaIdSource; import org.jivesoftware.smack.packet.id.StanzaIdSource; @@ -101,7 +102,7 @@ public abstract class ConnectionConfiguration { protected final InetAddress hostAddress; protected final DnsName host; - protected final int port; + protected final UInt16 port; private final String keystorePath; private final String keystoreType; @@ -237,7 +238,7 @@ public abstract class ConnectionConfiguration { return hostAddress; } - public int getPort() { + public UInt16 getPort() { return port; } @@ -621,7 +622,7 @@ public abstract class ConnectionConfiguration { private DomainBareJid xmppServiceDomain; private InetAddress hostAddress; private DnsName host; - private int port = 5222; + private UInt16 port = UInt16.from(5222); private boolean allowEmptyOrNullUsername = false; private boolean saslMechanismsSealed; private Set enabledSaslMechanisms; @@ -837,7 +838,12 @@ public abstract class ConnectionConfiguration { throw new IllegalArgumentException( "Port must be a 16-bit unsigned integer (i.e. between 0-65535. Port was: " + port); } - this.port = port; + UInt16 portUint16 = UInt16.from(port); + return setPort(portUint16); + } + + public B setPort(UInt16 port) { + this.port = Objects.requireNonNull(port); return getThis(); } diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/rce/IpTcpRemoteConnectionEndpoint.java b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/rce/IpTcpRemoteConnectionEndpoint.java index 2dabe1950..713509800 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/rce/IpTcpRemoteConnectionEndpoint.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/rce/IpTcpRemoteConnectionEndpoint.java @@ -42,7 +42,7 @@ public final class IpTcpRemoteConnectionEndpoint this.internetAddressResourceRecord = internetAddressResourceRecord; } - public static IpTcpRemoteConnectionEndpoint from(CharSequence host, int port, + public static IpTcpRemoteConnectionEndpoint from(CharSequence host, UInt16 port, InetAddress inetAddress) { InternetAddressRR internetAddressResourceRecord; // TODO: Use InternetAddressRR.from(InetAddress) once MiniDNS is updated. @@ -52,7 +52,7 @@ public final class IpTcpRemoteConnectionEndpoint internetAddressResourceRecord = new AAAA((Inet6Address) inetAddress); } - return new IpTcpRemoteConnectionEndpoint(host, UInt16.from(port), + return new IpTcpRemoteConnectionEndpoint(host, port, internetAddressResourceRecord); } diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/rce/RemoteXmppTcpConnectionEndpoints.java b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/rce/RemoteXmppTcpConnectionEndpoints.java index 9328d0fe7..cf5ce3e25 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/rce/RemoteXmppTcpConnectionEndpoints.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/rce/RemoteXmppTcpConnectionEndpoints.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.ConnectionConfiguration.DnssecMode; +import org.jivesoftware.smack.datatypes.UInt16; import org.jivesoftware.smack.util.DNSUtil; import org.jivesoftware.smack.util.dns.DNSResolver; import org.jivesoftware.smack.util.rce.RemoteConnectionEndpoint; @@ -72,7 +73,7 @@ public class RemoteXmppTcpConnectionEndpoints { if (hostAddresses != null) { discoveredRemoteConnectionEndpoints = new ArrayList<>(hostAddresses.size()); - int port = config.getPort(); + UInt16 port = config.getPort(); for (InetAddress inetAddress : hostAddresses) { IpTcpRemoteConnectionEndpoint connectionEndpoint = IpTcpRemoteConnectionEndpoint.from( host, port, inetAddress); @@ -198,13 +199,13 @@ public class RemoteXmppTcpConnectionEndpoints { LOGGER.info("Could not resolve DNS SRV resource records for " + srvDomain + ". Consider adding those."); } - int defaultPort; + UInt16 defaultPort; switch (domainType) { case client: - defaultPort = 5222; + defaultPort = UInt16.from(5222); break; case server: - defaultPort = 5269; + defaultPort = UInt16.from(5269); break; default: throw new AssertionError();