diff --git a/src/main/java/com/corundumstudio/socketio/HandshakeData.java b/src/main/java/com/corundumstudio/socketio/HandshakeData.java index 43ac26f..2148175 100644 --- a/src/main/java/com/corundumstudio/socketio/HandshakeData.java +++ b/src/main/java/com/corundumstudio/socketio/HandshakeData.java @@ -31,6 +31,7 @@ public class HandshakeData implements Serializable { private HttpHeaders headers; private InetSocketAddress address; private Date time = new Date(); + private InetSocketAddress local; private String url; private Map> urlParams; private boolean xdomain; @@ -40,10 +41,15 @@ public class HandshakeData implements Serializable { } public HandshakeData(HttpHeaders headers, Map> urlParams, InetSocketAddress address, String url, boolean xdomain) { + this(headers, urlParams, address, null, url, xdomain); + } + + public HandshakeData(HttpHeaders headers, Map> urlParams, InetSocketAddress address, InetSocketAddress local, String url, boolean xdomain) { super(); this.headers = headers; this.urlParams = urlParams; this.address = address; + this.local = local; this.url = url; this.xdomain = xdomain; } @@ -57,6 +63,15 @@ public class HandshakeData implements Serializable { return address; } + /** + * Connection local address + * + * @return + */ + public InetSocketAddress getLocal() { + return local; + } + /** * Http headers sent during first client request * diff --git a/src/main/java/com/corundumstudio/socketio/handler/AuthorizeHandler.java b/src/main/java/com/corundumstudio/socketio/handler/AuthorizeHandler.java index 80bfe3f..264db7c 100644 --- a/src/main/java/com/corundumstudio/socketio/handler/AuthorizeHandler.java +++ b/src/main/java/com/corundumstudio/socketio/handler/AuthorizeHandler.java @@ -144,6 +144,7 @@ public class AuthorizeHandler extends ChannelInboundHandlerAdapter implements Di HandshakeData data = new HandshakeData(req.headers(), params, (InetSocketAddress)channel.remoteAddress(), + (InetSocketAddress)channel.localAddress(), req.uri(), origin != null && !origin.equalsIgnoreCase("null")); boolean result = false;