summaryrefslogtreecommitdiff
path: root/java/src/IceSSL/SslEndpointI.java
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2006-03-22 22:13:16 +0000
committerMark Spruiell <mes@zeroc.com>2006-03-22 22:13:16 +0000
commitb4657eb422449715e68bdd427799856cd0de0808 (patch)
treee4a08d853b02e18793a029b24b18864be26c7cec /java/src/IceSSL/SslEndpointI.java
parentSslConnector -> ConnectorI (diff)
downloadice-b4657eb422449715e68bdd427799856cd0de0808.tar.bz2
ice-b4657eb422449715e68bdd427799856cd0de0808.tar.xz
ice-b4657eb422449715e68bdd427799856cd0de0808.zip
SslEndpointI -> EndpointI
Diffstat (limited to 'java/src/IceSSL/SslEndpointI.java')
-rw-r--r--java/src/IceSSL/SslEndpointI.java567
1 files changed, 0 insertions, 567 deletions
diff --git a/java/src/IceSSL/SslEndpointI.java b/java/src/IceSSL/SslEndpointI.java
deleted file mode 100644
index 4ca9ef357f5..00000000000
--- a/java/src/IceSSL/SslEndpointI.java
+++ /dev/null
@@ -1,567 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2006 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package IceSSL;
-
-final class SslEndpointI extends IceInternal.EndpointI
-{
- final static short TYPE = 2;
-
- public
- SslEndpointI(Instance instance, String ho, int po, int ti, String conId, boolean co, boolean pub)
- {
- _instance = instance;
- _host = ho;
- _port = po;
- _timeout = ti;
- _connectionId = conId;
- _compress = co;
- _publish = pub;
- calcHashValue();
- }
-
- public
- SslEndpointI(Instance instance, String str)
- {
- _instance = instance;
- _host = null;
- _port = 0;
- _timeout = -1;
- _compress = false;
- _publish = true;
-
- String[] arr = str.split("[ \t\n\r]+");
-
- int i = 0;
- while(i < arr.length)
- {
- if(arr[i].length() == 0)
- {
- i++;
- continue;
- }
-
- String option = arr[i++];
- if(option.length() != 2 || option.charAt(0) != '-')
- {
- throw new Ice.EndpointParseException("ssl " + str);
- }
-
- String argument = null;
- if(i < arr.length && arr[i].charAt(0) != '-')
- {
- argument = arr[i++];
- }
-
- switch(option.charAt(1))
- {
- case 'h':
- {
- if(argument == null)
- {
- throw new Ice.EndpointParseException("ssl " + str);
- }
-
- _host = argument;
- break;
- }
-
- case 'p':
- {
- if(argument == null)
- {
- throw new Ice.EndpointParseException("ssl " + str);
- }
-
- try
- {
- _port = Integer.parseInt(argument);
- }
- catch(NumberFormatException ex)
- {
- throw new Ice.EndpointParseException("ssl " + str);
- }
-
- if(_port < 0 || _port > 65535)
- {
- throw new Ice.EndpointParseException("ssl " + str);
- }
-
- break;
- }
-
- case 't':
- {
- if(argument == null)
- {
- throw new Ice.EndpointParseException("ssl " + str);
- }
-
- try
- {
- _timeout = Integer.parseInt(argument);
- }
- catch(NumberFormatException ex)
- {
- throw new Ice.EndpointParseException("ssl " + str);
- }
-
- break;
- }
-
- case 'z':
- {
- if(argument != null)
- {
- throw new Ice.EndpointParseException("ssl " + str);
- }
-
- _compress = true;
- break;
- }
-
- default:
- {
- throw new Ice.EndpointParseException("ssl " + str);
- }
- }
- }
-
- if(_host == null)
- {
- _host = _instance.defaultHost();
- if(_host == null)
- {
- _host = "0.0.0.0";
- }
- }
- else if(_host.equals("*"))
- {
- _host = "0.0.0.0";
- }
-
- calcHashValue();
- }
-
- public
- SslEndpointI(Instance instance, IceInternal.BasicStream s)
- {
- _instance = instance;
- s.startReadEncaps();
- _host = s.readString();
- _port = s.readInt();
- _timeout = s.readInt();
- _compress = s.readBool();
- s.endReadEncaps();
- _publish = true;
- calcHashValue();
- }
-
- //
- // Marshal the endpoint
- //
- public void
- streamWrite(IceInternal.BasicStream s)
- {
- s.writeShort(TYPE);
- s.startWriteEncaps();
- s.writeString(_host);
- s.writeInt(_port);
- s.writeInt(_timeout);
- s.writeBool(_compress);
- s.endWriteEncaps();
- }
-
- //
- // Convert the endpoint to its string form
- //
- public String
- _toString()
- {
- String s = "ssl -h " + _host + " -p " + _port;
- if(_timeout != -1)
- {
- s += " -t " + _timeout;
- }
- if(_compress)
- {
- s += " -z";
- }
- return s;
- }
-
- //
- // Return the endpoint type
- //
- public short
- type()
- {
- return TYPE;
- }
-
- //
- // Return the timeout for the endpoint in milliseconds. 0 means
- // non-blocking, -1 means no timeout.
- //
- public int
- timeout()
- {
- return _timeout;
- }
-
- //
- // Return a new endpoint with a different timeout value, provided
- // that timeouts are supported by the endpoint. Otherwise the same
- // endpoint is returned.
- //
- public IceInternal.EndpointI
- timeout(int timeout)
- {
- if(timeout == _timeout)
- {
- return this;
- }
- else
- {
- return new SslEndpointI(_instance, _host, _port, timeout, _connectionId, _compress, _publish);
- }
- }
-
- //
- // Return a new endpoint with a different connection id.
- //
- public IceInternal.EndpointI
- connectionId(String connectionId)
- {
- if(connectionId == _connectionId)
- {
- return this;
- }
- else
- {
- return new SslEndpointI(_instance, _host, _port, _timeout, connectionId, _compress, _publish);
- }
- }
-
- //
- // Return true if the endpoints support bzip2 compress, or false
- // otherwise.
- //
- public boolean
- compress()
- {
- return _compress;
- }
-
- //
- // Return a new endpoint with a different compression value,
- // provided that compression is supported by the
- // endpoint. Otherwise the same endpoint is returned.
- //
- public IceInternal.EndpointI
- compress(boolean compress)
- {
- if(compress == _compress)
- {
- return this;
- }
- else
- {
- return new SslEndpointI(_instance, _host, _port, _timeout, _connectionId, compress, _publish);
- }
- }
-
- //
- // Return true if the endpoint is datagram-based.
- //
- public boolean
- datagram()
- {
- return false;
- }
-
- //
- // Return true if the endpoint is secure.
- //
- public boolean
- secure()
- {
- return true;
- }
-
- //
- // Return true if the endpoint type is unknown.
- //
- public boolean
- unknown()
- {
- return false;
- }
-
- //
- // Return a client side transceiver for this endpoint, or null if a
- // transceiver can only be created by a connector.
- //
- public IceInternal.Transceiver
- clientTransceiver()
- {
- return null;
- }
-
- //
- // Return a server side transceiver for this endpoint, or null if a
- // transceiver can only be created by an acceptor. In case a
- // transceiver is created, this operation also returns a new
- // "effective" endpoint, which might differ from this endpoint,
- // for example, if a dynamic port number is assigned.
- //
- public IceInternal.Transceiver
- serverTransceiver(IceInternal.EndpointIHolder endpoint)
- {
- endpoint.value = this;
- return null;
- }
-
- //
- // Return a connector for this endpoint, or null if no connector
- // is available.
- //
- public IceInternal.Connector
- connector()
- {
- return new SslConnector(_instance, _host, _port);
- }
-
- //
- // Return an acceptor for this endpoint, or null if no acceptors
- // is available. In case an acceptor is created, this operation
- // also returns a new "effective" endpoint, which might differ
- // from this endpoint, for example, if a dynamic port number is
- // assigned.
- //
- public IceInternal.Acceptor
- acceptor(IceInternal.EndpointIHolder endpoint)
- {
- SslAcceptor p = new SslAcceptor(_instance, _host, _port);
- endpoint.value = new SslEndpointI(_instance, _host, p.effectivePort(), _timeout, _connectionId,
- _compress, _publish);
- return p;
- }
-
- //
- // Expand endpoint out in to separate endpoints for each local
- // host if endpoint was configured with no host set. This
- // only applies for ObjectAdapter endpoints.
- //
- public java.util.ArrayList
- expand(boolean includeLoopback)
- {
- java.util.ArrayList endps = new java.util.ArrayList();
- if(_host.equals("0.0.0.0"))
- {
- java.util.ArrayList hosts = IceInternal.Network.getLocalHosts();
- java.util.Iterator iter = hosts.iterator();
- while(iter.hasNext())
- {
- String host = (String)iter.next();
- if(includeLoopback || hosts.size() == 1 || !host.equals("127.0.0.1"))
- {
- endps.add(new SslEndpointI(_instance, host, _port, _timeout, _connectionId, _compress,
- hosts.size() == 1 || !host.equals("127.0.0.1")));
- }
- }
- }
- else
- {
- endps.add(this);
- }
- return endps;
- }
-
- //
- // Return whether endpoint should be published in proxies
- // created by Object Adapter.
- //
- public boolean
- publish()
- {
- return _publish;
- }
-
- //
- // Check whether the endpoint is equivalent to a specific
- // Transceiver or Acceptor
- //
- public boolean
- equivalent(IceInternal.Transceiver transceiver)
- {
- return false;
- }
-
- public boolean
- equivalent(IceInternal.Acceptor acceptor)
- {
- SslAcceptor sslAcceptor = null;
- try
- {
- sslAcceptor = (SslAcceptor)acceptor;
- }
- catch(ClassCastException ex)
- {
- return false;
- }
- return sslAcceptor.equivalent(_host, _port);
- }
-
- public int
- hashCode()
- {
- return _hashCode;
- }
-
- //
- // Compare endpoints for sorting purposes
- //
- public boolean
- equals(java.lang.Object obj)
- {
- return compareTo(obj) == 0;
- }
-
- public int
- compareTo(java.lang.Object obj) // From java.lang.Comparable
- {
- SslEndpointI p = null;
-
- try
- {
- p = (SslEndpointI)obj;
- }
- catch(ClassCastException ex)
- {
- return 1;
- }
-
- if(this == p)
- {
- return 0;
- }
-
- if(_port < p._port)
- {
- return -1;
- }
- else if(p._port < _port)
- {
- return 1;
- }
-
- if(!_connectionId.equals(p._connectionId))
- {
- return _connectionId.compareTo(p._connectionId);
- }
-
- if(_timeout < p._timeout)
- {
- return -1;
- }
- else if(p._timeout < _timeout)
- {
- return 1;
- }
-
- if(!_compress && p._compress)
- {
- return -1;
- }
- else if(!p._compress && _compress)
- {
- return 1;
- }
-
- if(!_host.equals(p._host))
- {
- //
- // We do the most time-consuming part of the comparison last.
- //
- java.net.InetSocketAddress laddr = null;
- try
- {
- laddr = IceInternal.Network.getAddress(_host, _port);
- }
- catch(Ice.DNSException ex)
- {
- }
-
- java.net.InetSocketAddress raddr = null;
- try
- {
- raddr = IceInternal.Network.getAddress(p._host, p._port);
- }
- catch(Ice.DNSException ex)
- {
- }
-
- if(laddr == null && raddr != null)
- {
- return -1;
- }
- else if(raddr == null && laddr != null)
- {
- return 1;
- }
- else if(laddr != null && raddr != null)
- {
- byte[] larr = laddr.getAddress().getAddress();
- byte[] rarr = raddr.getAddress().getAddress();
- assert(larr.length == rarr.length);
- for(int i = 0; i < larr.length; i++)
- {
- if(larr[i] < rarr[i])
- {
- return -1;
- }
- else if(rarr[i] < larr[i])
- {
- return 1;
- }
- }
- }
- }
-
- return 0;
- }
-
- private void
- calcHashValue()
- {
- try
- {
- java.net.InetAddress addr = java.net.InetAddress.getByName(_host);
- _hashCode = addr.getHostAddress().hashCode();
- }
- catch(java.net.UnknownHostException ex)
- {
- _hashCode = _host.hashCode();
- }
- _hashCode = 5 * _hashCode + _port;
- _hashCode = 5 * _hashCode + _timeout;
- _hashCode = 5 * _hashCode + _connectionId.hashCode();
- _hashCode = 5 * _hashCode + (_compress ? 1 : 0);
- }
-
- private Instance _instance;
- private String _host;
- private int _port;
- private int _timeout;
- private String _connectionId = "";
- private boolean _compress;
- private boolean _publish;
- private int _hashCode;
-}