summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/IceInternal/Acceptor.java2
-rw-r--r--java/src/IceInternal/EndpointI.java8
-rw-r--r--java/src/IceInternal/IncomingConnectionFactory.java4
-rw-r--r--java/src/IceInternal/OpaqueEndpointI.java17
-rw-r--r--java/src/IceInternal/TcpAcceptor.java9
-rw-r--r--java/src/IceInternal/TcpEndpointI.java20
-rw-r--r--java/src/IceInternal/TcpTransceiver.java2
-rw-r--r--java/src/IceInternal/Transceiver.java2
-rw-r--r--java/src/IceInternal/UdpEndpointI.java20
-rw-r--r--java/src/IceInternal/UdpTransceiver.java10
-rw-r--r--java/src/IceInternal/WSAcceptor.java11
-rw-r--r--java/src/IceInternal/WSEndpoint.java13
-rw-r--r--java/src/IceInternal/WSTransceiver.java2
-rw-r--r--java/src/IceSSL/AcceptorI.java12
-rw-r--r--java/src/IceSSL/EndpointI.java20
-rw-r--r--java/src/IceSSL/TransceiverI.java2
16 files changed, 47 insertions, 107 deletions
diff --git a/java/src/IceInternal/Acceptor.java b/java/src/IceInternal/Acceptor.java
index 1adc2349db7..8efcc04dcb3 100644
--- a/java/src/IceInternal/Acceptor.java
+++ b/java/src/IceInternal/Acceptor.java
@@ -13,7 +13,7 @@ public interface Acceptor
{
java.nio.channels.ServerSocketChannel fd();
void close();
- EndpointI listen(EndpointI endp);
+ EndpointI listen();
Transceiver accept();
String protocol();
@Override
diff --git a/java/src/IceInternal/EndpointI.java b/java/src/IceInternal/EndpointI.java
index f752291c6f3..7e6d487f7f2 100644
--- a/java/src/IceInternal/EndpointI.java
+++ b/java/src/IceInternal/EndpointI.java
@@ -111,14 +111,6 @@ abstract public class EndpointI implements Ice.Endpoint, java.lang.Comparable<En
public abstract Acceptor acceptor(String adapterName);
//
- // Return (potentially) new endpoint based on info from associated
- // Transceiver or Acceptor, which might differ from this endpoint,
- // for example, if a dynamic port number was assigned.
- //
- public abstract EndpointI endpoint(Transceiver transceiver);
- public abstract EndpointI endpoint(Acceptor acceptor);
-
- //
// Expand endpoint out in to separate endpoints for each local
// host if listening on INADDR_ANY.
//
diff --git a/java/src/IceInternal/IncomingConnectionFactory.java b/java/src/IceInternal/IncomingConnectionFactory.java
index e0ecfcc2fc3..b66b100bfff 100644
--- a/java/src/IceInternal/IncomingConnectionFactory.java
+++ b/java/src/IceInternal/IncomingConnectionFactory.java
@@ -388,7 +388,7 @@ public final class IncomingConnectionFactory extends EventHandler implements Ice
s.append(_transceiver.toString());
_instance.initializationData().logger.trace(_instance.traceLevels().networkCat, s.toString());
}
- _endpoint = _transceiver.bind(_endpoint);
+ _endpoint = _transceiver.bind();
Ice.ConnectionI connection =
new Ice.ConnectionI(_adapter.getCommunicator(), _instance, null, _transceiver, null, _endpoint,
@@ -410,7 +410,7 @@ public final class IncomingConnectionFactory extends EventHandler implements Ice
_instance.initializationData().logger.trace(_instance.traceLevels().networkCat, s.toString());
}
- _endpoint = _acceptor.listen(_endpoint);
+ _endpoint = _acceptor.listen();
if(_instance.traceLevels().network >= 1)
{
diff --git a/java/src/IceInternal/OpaqueEndpointI.java b/java/src/IceInternal/OpaqueEndpointI.java
index 8932c41c7de..3a3ab472863 100644
--- a/java/src/IceInternal/OpaqueEndpointI.java
+++ b/java/src/IceInternal/OpaqueEndpointI.java
@@ -210,23 +210,6 @@ final class OpaqueEndpointI extends EndpointI
}
//
- // Return (potentially) new endpoint based on info from associated
- // Transceiver or Acceptor, which might differ from this endpoint,
- // for example, if a dynamic port number was assigned.
- //
- @Override
- public EndpointI endpoint(Transceiver transceiver)
- {
- return null;
- }
-
- @Override
- public EndpointI endpoint(Acceptor acceptor)
- {
- return null;
- }
-
- //
// Expand endpoint out in to separate endpoints for each local
// host if listening on INADDR_ANY on server side or if no host
// was specified on client side.
diff --git a/java/src/IceInternal/TcpAcceptor.java b/java/src/IceInternal/TcpAcceptor.java
index 5bb1b1c79da..3f593624188 100644
--- a/java/src/IceInternal/TcpAcceptor.java
+++ b/java/src/IceInternal/TcpAcceptor.java
@@ -26,10 +26,11 @@ class TcpAcceptor implements Acceptor
}
@Override
- public EndpointI listen(EndpointI endp)
+ public EndpointI listen()
{
_addr = Network.doBind(_fd, _addr, _backlog);
- return endp.endpoint(this);
+ _endpoint = _endpoint.endpoint(this);
+ return _endpoint;
}
@Override
@@ -71,8 +72,9 @@ class TcpAcceptor implements Acceptor
return _addr.getPort();
}
- TcpAcceptor(ProtocolInstance instance, String host, int port)
+ TcpAcceptor(TcpEndpointI endpoint, ProtocolInstance instance, String host, int port)
{
+ _endpoint = endpoint;
_instance = instance;
_backlog = instance.properties().getPropertyAsIntWithDefault("Ice.TCP.Backlog", 511);
@@ -124,6 +126,7 @@ class TcpAcceptor implements Acceptor
}
}
+ private TcpEndpointI _endpoint;
private ProtocolInstance _instance;
private java.nio.channels.ServerSocketChannel _fd;
private int _backlog;
diff --git a/java/src/IceInternal/TcpEndpointI.java b/java/src/IceInternal/TcpEndpointI.java
index 9678e59803d..4f8fa51c9ac 100644
--- a/java/src/IceInternal/TcpEndpointI.java
+++ b/java/src/IceInternal/TcpEndpointI.java
@@ -155,25 +155,13 @@ final class TcpEndpointI extends IPEndpointI
@Override
public Acceptor acceptor(String adapterName)
{
- return new TcpAcceptor(_instance, _host, _port);
+ return new TcpAcceptor(this, _instance, _host, _port);
}
- //
- // Return (potentially) new endpoint based on info from associated
- // Transceiver or Acceptor, which might differ from this endpoint,
- // for example, if a dynamic port number was assigned.
- //
- @Override
- public EndpointI endpoint(Transceiver transceiver)
- {
- return this;
- }
-
- @Override
- public EndpointI endpoint(Acceptor acceptor)
+ public TcpEndpointI endpoint(TcpAcceptor acceptor)
{
- TcpAcceptor p = (TcpAcceptor)acceptor;
- return createEndpoint(_host, p.effectivePort(), _connectionId);
+ return new TcpEndpointI(_instance, _host, acceptor.effectivePort(), _sourceAddr, _timeout,
+ _connectionId, _compress);
}
@Override
diff --git a/java/src/IceInternal/TcpTransceiver.java b/java/src/IceInternal/TcpTransceiver.java
index 625ab8ce448..5e8d33fb672 100644
--- a/java/src/IceInternal/TcpTransceiver.java
+++ b/java/src/IceInternal/TcpTransceiver.java
@@ -39,7 +39,7 @@ final class TcpTransceiver implements Transceiver
}
@Override
- public EndpointI bind(EndpointI endp)
+ public EndpointI bind()
{
assert(false);
return null;
diff --git a/java/src/IceInternal/Transceiver.java b/java/src/IceInternal/Transceiver.java
index c7c1fbd3a71..f9889df74f8 100644
--- a/java/src/IceInternal/Transceiver.java
+++ b/java/src/IceInternal/Transceiver.java
@@ -17,7 +17,7 @@ public interface Transceiver
int closing(boolean initiator, Ice.LocalException ex);
void close();
- EndpointI bind(EndpointI endp);
+ EndpointI bind();
int write(Buffer buf);
int read(Buffer buf, Ice.Holder<Boolean> moreData);
diff --git a/java/src/IceInternal/UdpEndpointI.java b/java/src/IceInternal/UdpEndpointI.java
index b5bab1f3bfb..797f5f25138 100644
--- a/java/src/IceInternal/UdpEndpointI.java
+++ b/java/src/IceInternal/UdpEndpointI.java
@@ -150,7 +150,7 @@ final class UdpEndpointI extends IPEndpointI
@Override
public Transceiver transceiver()
{
- return new UdpTransceiver(_instance, _host, _port, _mcastInterface, _connect);
+ return new UdpTransceiver(this, _instance, _host, _port, _mcastInterface, _connect);
}
//
@@ -163,22 +163,10 @@ final class UdpEndpointI extends IPEndpointI
return null;
}
- //
- // Return (potentially) new endpoint based on info from associated
- // Transceiver or Acceptor, which might differ from this endpoint,
- // for example, if a dynamic port number was assigned.
- //
- @Override
- public EndpointI endpoint(Transceiver transceiver)
- {
- UdpTransceiver p = (UdpTransceiver)transceiver;
- return createEndpoint(_host, p.effectivePort(), _connectionId);
- }
-
- @Override
- public EndpointI endpoint(Acceptor acceptor)
+ public UdpEndpointI endpoint(UdpTransceiver transceiver)
{
- return this;
+ return new UdpEndpointI(_instance, _host, transceiver.effectivePort(), _sourceAddr, _mcastInterface,_mcastTtl,
+ _connect, _connectionId, _compress);
}
//
diff --git a/java/src/IceInternal/UdpTransceiver.java b/java/src/IceInternal/UdpTransceiver.java
index 0ac66b0a366..78e1de99371 100644
--- a/java/src/IceInternal/UdpTransceiver.java
+++ b/java/src/IceInternal/UdpTransceiver.java
@@ -52,7 +52,7 @@ final class UdpTransceiver implements Transceiver
}
@Override
- public EndpointI bind(EndpointI endp)
+ public EndpointI bind()
{
if(_addr.getAddress().isMulticastAddress())
{
@@ -103,7 +103,8 @@ final class UdpTransceiver implements Transceiver
}
_bound = true;
- return endp.endpoint(this);
+ _endpoint = _endpoint.endpoint(this);
+ return _endpoint;
}
@Override
@@ -393,8 +394,10 @@ final class UdpTransceiver implements Transceiver
//
// Only for use by UdpEndpoint
//
- UdpTransceiver(ProtocolInstance instance, String host, int port, String mcastInterface, boolean connect)
+ UdpTransceiver(UdpEndpointI endpoint, ProtocolInstance instance, String host, int port, String mcastInterface,
+ boolean connect)
{
+ _endpoint = endpoint;
_instance = instance;
_state = connect ? StateNeedConnect : StateNotConnected;
_mcastInterface = mcastInterface;
@@ -601,6 +604,7 @@ final class UdpTransceiver implements Transceiver
}
}
+ private UdpEndpointI _endpoint = null;
private ProtocolInstance _instance;
private int _state;
diff --git a/java/src/IceInternal/WSAcceptor.java b/java/src/IceInternal/WSAcceptor.java
index 65ef46623fb..cc11b1ff8e8 100644
--- a/java/src/IceInternal/WSAcceptor.java
+++ b/java/src/IceInternal/WSAcceptor.java
@@ -24,11 +24,10 @@ final class WSAcceptor implements IceInternal.Acceptor
}
@Override
- public EndpointI listen(EndpointI endp)
+ public EndpointI listen()
{
- WSEndpoint p = (WSEndpoint)endp;
- EndpointI endpoint = _delegate.listen(p.delegate());
- return endp.endpoint(this);
+ _endpoint = _endpoint.endpoint(_delegate.listen());
+ return _endpoint;
}
@Override
@@ -64,12 +63,14 @@ final class WSAcceptor implements IceInternal.Acceptor
return _delegate;
}
- WSAcceptor(ProtocolInstance instance, IceInternal.Acceptor del)
+ WSAcceptor(WSEndpoint endpoint, ProtocolInstance instance, IceInternal.Acceptor del)
{
+ _endpoint = endpoint;
_instance = instance;
_delegate = del;
}
+ private WSEndpoint _endpoint;
private ProtocolInstance _instance;
private IceInternal.Acceptor _delegate;
}
diff --git a/java/src/IceInternal/WSEndpoint.java b/java/src/IceInternal/WSEndpoint.java
index 7170d68e252..14f64906f42 100644
--- a/java/src/IceInternal/WSEndpoint.java
+++ b/java/src/IceInternal/WSEndpoint.java
@@ -207,20 +207,11 @@ final class WSEndpoint extends IceInternal.EndpointI
public Acceptor acceptor(String adapterName)
{
Acceptor delAcc = _delegate.acceptor(adapterName);
- return new WSAcceptor(_instance, delAcc);
+ return new WSAcceptor(this, _instance, delAcc);
}
- @Override
- public EndpointI endpoint(Transceiver transceiver)
- {
- return this;
- }
-
- @Override
- public EndpointI endpoint(Acceptor acceptor)
+ public WSEndpoint endpoint(EndpointI delEndp)
{
- WSAcceptor p = (WSAcceptor)acceptor;
- EndpointI delEndp = _delegate.endpoint(p.delegate());
return new WSEndpoint(_instance, delEndp, _resource);
}
diff --git a/java/src/IceInternal/WSTransceiver.java b/java/src/IceInternal/WSTransceiver.java
index c34a1f65e1b..8cf6b96813e 100644
--- a/java/src/IceInternal/WSTransceiver.java
+++ b/java/src/IceInternal/WSTransceiver.java
@@ -306,7 +306,7 @@ final class WSTransceiver implements Transceiver
}
@Override
- public EndpointI bind(EndpointI endp)
+ public EndpointI bind()
{
assert(false);
return null;
diff --git a/java/src/IceSSL/AcceptorI.java b/java/src/IceSSL/AcceptorI.java
index 186d7988c30..4a853cc73da 100644
--- a/java/src/IceSSL/AcceptorI.java
+++ b/java/src/IceSSL/AcceptorI.java
@@ -26,11 +26,11 @@ final class AcceptorI implements IceInternal.Acceptor
}
@Override
- public IceInternal.EndpointI listen(IceInternal.EndpointI endp)
+ public IceInternal.EndpointI listen()
{
_addr = IceInternal.Network.doBind(_fd, _addr, _backlog);
-
- return endp.endpoint(this);
+ _endpoint = _endpoint.endpoint(this);
+ return _endpoint;
}
@Override
@@ -49,7 +49,7 @@ final class AcceptorI implements IceInternal.Acceptor
IceInternal.StreamSocket stream = new IceInternal.StreamSocket(_instance, IceInternal.Network.doAccept(_fd));
try
{
- java.net.InetSocketAddress peerAddr =
+ java.net.InetSocketAddress peerAddr =
(java.net.InetSocketAddress)stream.fd().socket().getRemoteSocketAddress();
return new TransceiverI(_instance, _instance.createSSLEngine(true, peerAddr), stream, "", _adapterName);
}
@@ -94,8 +94,9 @@ final class AcceptorI implements IceInternal.Acceptor
return _addr.getPort();
}
- AcceptorI(Instance instance, String adapterName, String host, int port)
+ AcceptorI(EndpointI endpoint, Instance instance, String adapterName, String host, int port)
{
+ _endpoint = endpoint;
_instance = instance;
_adapterName = adapterName;
_backlog = instance.properties().getPropertyAsIntWithDefault("Ice.TCP.Backlog", 511);
@@ -149,6 +150,7 @@ final class AcceptorI implements IceInternal.Acceptor
}
}
+ private EndpointI _endpoint;
private Instance _instance;
private String _adapterName;
private java.nio.channels.ServerSocketChannel _fd;
diff --git a/java/src/IceSSL/EndpointI.java b/java/src/IceSSL/EndpointI.java
index 1b42777d3c7..cce1479e1ff 100644
--- a/java/src/IceSSL/EndpointI.java
+++ b/java/src/IceSSL/EndpointI.java
@@ -158,25 +158,13 @@ final class EndpointI extends IceInternal.IPEndpointI
@Override
public IceInternal.Acceptor acceptor(String adapterName)
{
- return new AcceptorI(_instance, adapterName, _host, _port);
+ return new AcceptorI(this, _instance, adapterName, _host, _port);
}
- //
- // Return (potentially) new endpoint based on info from associated
- // Transceiver or Acceptor, which might differ from this endpoint,
- // for example, if a dynamic port number was assigned.
- //
- @Override
- public IceInternal.EndpointI endpoint(IceInternal.Transceiver transceiver)
- {
- return this;
- }
-
- @Override
- public IceInternal.EndpointI endpoint(IceInternal.Acceptor acceptor)
+ public EndpointI endpoint(AcceptorI acceptor)
{
- AcceptorI p = (AcceptorI)acceptor;
- return new EndpointI(_instance, _host, p.effectivePort(), _sourceAddr, _timeout, _connectionId, _compress);
+ return new EndpointI(_instance, _host, acceptor.effectivePort(), _sourceAddr, _timeout, _connectionId,
+ _compress);
}
diff --git a/java/src/IceSSL/TransceiverI.java b/java/src/IceSSL/TransceiverI.java
index fb1d4c947ff..40bd7e6fab1 100644
--- a/java/src/IceSSL/TransceiverI.java
+++ b/java/src/IceSSL/TransceiverI.java
@@ -138,7 +138,7 @@ final class TransceiverI implements IceInternal.Transceiver
}
@Override
- public IceInternal.EndpointI bind(IceInternal.EndpointI endp)
+ public IceInternal.EndpointI bind()
{
assert(false);
return null;