diff options
-rw-r--r-- | qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriver.java | 5 | ||||
-rw-r--r-- | qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java | 15 |
2 files changed, 16 insertions, 4 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriver.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriver.java index d45cee8004..34b0ef65be 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriver.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriver.java @@ -43,9 +43,12 @@ public interface NetworkDriver extends Sender<java.nio.ByteBuffer> void bind (int port, InetAddress[] addresses, ProtocolEngineFactory protocolFactory, NetworkDriverConfiguration config, SSLContextFactory sslFactory) throws BindException; - // Returns the remote address of underlying socket + // Returns the remote address of the underlying socket SocketAddress getRemoteAddress(); + // Returns the local address of the underlying socket + SocketAddress getLocalAddress(); + /** * The length of time after which the ProtocolEngines readIdle() method should be called if no data has been * read in seconds diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java index 96fb7b1ef8..7330a042df 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java @@ -78,6 +78,8 @@ public class MINANetworkDriver extends IoHandlerAdapter implements NetworkDriver private Throwable _lastException; private boolean _acceptingConnections = false; + private WriteFuture _lastWriteFuture; + public MINANetworkDriver(boolean useNIO, int processors, boolean executorPool, boolean protectIO) { _useNIO = useNIO; @@ -174,6 +176,11 @@ public class MINANetworkDriver extends IoHandlerAdapter implements NetworkDriver { return _ioSession.getRemoteAddress(); } + + public SocketAddress getLocalAddress() + { + return _ioSession.getLocalAddress(); + } public void open(int port, InetAddress destination, ProtocolEngine engine, NetworkDriverConfiguration config, SSLEngine sslEngine) throws OpenException @@ -256,13 +263,15 @@ public class MINANetworkDriver extends IoHandlerAdapter implements NetworkDriver public void flush() { - // MINA doesn't support flush + if (_lastWriteFuture != null) + { + _lastWriteFuture.join(); + } } public void send(ByteBuffer msg) { - WriteFuture future = _ioSession.write(org.apache.mina.common.ByteBuffer.wrap(msg)); - future.join(); + _lastWriteFuture = _ioSession.write(org.apache.mina.common.ByteBuffer.wrap(msg)); } public void setIdleTimeout(long l) |