Author: norman
Date: Fri Nov 18 14:25:15 2011
New Revision: 1203663

URL: http://svn.apache.org/viewvc?rev=1203663&view=rev
Log:
Allow to also access the local bound address. See PROTOCOLS-50

Modified:
    
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
    
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
    
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java?rev=1203663&r1=1203662&r2=1203663&view=diff
==============================================================================
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 Fri Nov 18 14:25:15 2011
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
  */
 public abstract class AbstractSession implements ProtocolSession {
 
-    protected InetSocketAddress socketAddress;
+    private final InetSocketAddress remoteAddress;
     private Logger logger;
     private SessionLog pLog = null;
     
@@ -43,13 +43,15 @@ public abstract class AbstractSession im
     private String id;
     protected ProtocolTransport transport;
 
-    private Map<String, Object> connectionState;
-    private Map<String, Object> sessionState;
+    private final Map<String, Object> connectionState;
+    private final Map<String, Object> sessionState;
+       private final InetSocketAddress localAddress;
 
     
     public AbstractSession(Logger logger, ProtocolTransport transport) {
         this.transport = transport;
-        this.socketAddress = transport.getRemoteAddress();
+        this.remoteAddress = transport.getRemoteAddress();
+        this.localAddress = transport.getRemoteAddress();
         this.logger = logger;
         this.id = transport.getId();
         this.connectionState = new HashMap<String, Object>();
@@ -57,18 +59,28 @@ public abstract class AbstractSession im
 
     }
 
-    /**
+    @Override
+       public InetSocketAddress getLocalAddress() {
+               return localAddress;
+       }
+
+       @Override
+       public InetSocketAddress getRemoteAddress() {
+               return remoteAddress;
+       }
+
+       /**
      * @see org.apache.james.protocols.api.ProtocolSession#getRemoteHost()
      */
     public String getRemoteHost() {
-        return socketAddress.getHostName();
+        return remoteAddress.getHostName();
     }
 
     /**
      * @see org.apache.james.protocols.api.ProtocolSession#getRemoteIPAddress()
      */
     public String getRemoteIPAddress() {
-        return socketAddress.getAddress().getHostAddress();
+        return remoteAddress.getAddress().getHostAddress();
     }
 
     /**

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java?rev=1203663&r1=1203662&r2=1203663&view=diff
==============================================================================
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
 Fri Nov 18 14:25:15 2011
@@ -19,6 +19,7 @@
 
 package org.apache.james.protocols.api;
 
+import java.net.InetSocketAddress;
 import java.util.Map;
 
 import org.slf4j.Logger;
@@ -63,16 +64,25 @@ public interface ProtocolSession {
      * Returns host name of the client
      *
      * @return hostname of the client
+     * @deprecated use {@link #getRemoteAddress()}
      */
+    @Deprecated
     String getRemoteHost();
 
     /**
      * Returns host ip address of the client
      *
      * @return host ip address of the client
+     * @deprecated use {@link #getRemoteAddress()}
      */
+    @Deprecated
     String getRemoteIPAddress();
     
+    
+    InetSocketAddress getLocalAddress();
+    
+    InetSocketAddress getRemoteAddress();
+    
     /**
      * Return the ID for the session
      * 

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java?rev=1203663&r1=1203662&r2=1203663&view=diff
==============================================================================
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java
 Fri Nov 18 14:25:15 2011
@@ -36,6 +36,9 @@ public interface ProtocolTransport {
      */
     InetSocketAddress getRemoteAddress();
 
+    InetSocketAddress getLocalAddress();
+
+    
     /**
      * Return the unique id. The id MUST NOT be 100 % unique for ever. It just 
should just not have the same
      * id when having concurrent connections



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to