From b32ae8ce61ed972d9360313d7a2a39abc49d161b Mon Sep 17 00:00:00 2001 From: sergeygrigorev Date: Thu, 19 Oct 2017 12:04:14 +0300 Subject: [PATCH] Add local socket address for the connection #484 * add local address to HandshakeData --- .../corundumstudio/socketio/HandshakeData.java | 15 +++++++++++++++ .../socketio/handler/AuthorizeHandler.java | 1 + 2 files changed, 16 insertions(+) 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;