@axtavt please check https://github.com/netty/netty/pull/7157 Fixed by https://github.com/netty/netty/pull/7157
DefaultSocks5CommandRequest incorrectly rejects SOCKS5 commands with dstPort=0
### Expected behavior
According to [SOCKS 5 spec](https://www.ietf.org/rfc/rfc1928.txt), dstPort = 0 is a valid value in case of UDP ASSOCIATE command:

> If the client is not in possesion of the information at the time of the UDP ASSOCIATE, the client MUST use a port number and address of all zeros.

### Actual behavior
However, constructor of DefaultSocks5CommandRequest rejects this value as invalid:

    if (dstPort <= 0 || dstPort >= 65536) {
            throw new IllegalArgumentException("dstPort: " + dstPort + " (expected: 1~65535)");
    }

### Netty version
4.1.15.Final
codec-socks/src/main/java/io/netty/handler/codec/socksx/v5/DefaultSocks5CommandRequest.java
codec-socks/src/main/java/io/netty/handler/codec/socksx/v5/DefaultSocks5CommandRequest.java
codec-socks/src/test/java/io/netty/handler/codec/socksx/v5/DefaultSocks5CommandRequestTest.java
diff --git a/codec-socks/src/main/java/io/netty/handler/codec/socksx/v5/DefaultSocks5CommandRequest.java b/codec-socks/src/main/java/io/netty/handler/codec/socksx/v5/DefaultSocks5CommandRequest.java
index d90150ebc24..ddd35fd6250 100755
--- a/codec-socks/src/main/java/io/netty/handler/codec/socksx/v5/DefaultSocks5CommandRequest.java
+++ b/codec-socks/src/main/java/io/netty/handler/codec/socksx/v5/DefaultSocks5CommandRequest.java
@@ -59,8 +59,8 @@ public DefaultSocks5CommandRequest(
             }
         }
 
-        if (dstPort <= 0 || dstPort >= 65536) {
-            throw new IllegalArgumentException("dstPort: " + dstPort + " (expected: 1~65535)");
+        if (dstPort < 0 || dstPort > 65535) {
+            throw new IllegalArgumentException("dstPort: " + dstPort + " (expected: 0~65535)");
         }
 
         this.type = type;

diff --git a/codec-socks/src/test/java/io/netty/handler/codec/socksx/v5/DefaultSocks5CommandRequestTest.java b/codec-socks/src/test/java/io/netty/handler/codec/socksx/v5/DefaultSocks5CommandRequestTest.java
index e4dc2dade7a..3b3b5db5281 100755
--- a/codec-socks/src/test/java/io/netty/handler/codec/socksx/v5/DefaultSocks5CommandRequestTest.java
+++ b/codec-socks/src/test/java/io/netty/handler/codec/socksx/v5/DefaultSocks5CommandRequestTest.java
@@ -76,7 +76,7 @@ public void testIDNNotExceeds255CharsLimit() {
     public void testValidPortRange() {
         try {
             new DefaultSocks5CommandRequest(Socks5CommandType.BIND, Socks5AddressType.DOMAIN,
-                    "παράδειγμα.δοκιμήπαράδει", 0);
+                    "παράδειγμα.δοκιμήπαράδει", -1);
         } catch (Exception e) {
             assertTrue(e instanceof IllegalArgumentException);
         }
@@ -87,5 +87,10 @@ public void testValidPortRange() {
         } catch (Exception e) {
             assertTrue(e instanceof IllegalArgumentException);
         }
+
+        new DefaultSocks5CommandRequest(Socks5CommandType.BIND, Socks5AddressType.DOMAIN,
+                "παράδειγμα.δοκιμήπαράδει", 0);
+        new DefaultSocks5CommandRequest(Socks5CommandType.BIND, Socks5AddressType.DOMAIN,
+                "παράδειγμα.δοκιμήπαράδει", 65535);
     }
 }
