diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2009-10-16 09:38:13 -0230 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2009-10-16 09:38:13 -0230 |
commit | b8b803f51c8ff622491d2a160663e4912f7dba03 (patch) | |
tree | b4ded20bd5b2fa37a18943a5ac0665ce2d525128 | |
parent | Added support for per-OA ACM and fix for retry on CloseConnectionException (diff) | |
download | ice-b8b803f51c8ff622491d2a160663e4912f7dba03.tar.bz2 ice-b8b803f51c8ff622491d2a160663e4912f7dba03.tar.xz ice-b8b803f51c8ff622491d2a160663e4912f7dba03.zip |
Added support for EndpointInfo and ConnectionInfo to python.
Set endpoint in Connection getInfo implementations.
Removed unused _stateTime from ConnectionI.
Remove ["cpp:virtual"] from SSLEndpointInfo slice definition.
60 files changed, 1313 insertions, 283 deletions
diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp index 605e898042e..696c966b591 100644 --- a/cpp/src/Ice/ConnectionI.cpp +++ b/cpp/src/Ice/ConnectionI.cpp @@ -1521,8 +1521,7 @@ Ice::ConnectionI::ConnectionI(const InstancePtr& instance, _readStream(_instance.get()), _writeStream(_instance.get()), _dispatchCount(0), - _state(StateNotInitialized), - _stateTime(IceUtil::Time::now(IceUtil::Time::Monotonic)) + _state(StateNotInitialized) { int& compressionLevel = const_cast<int&>(_compressionLevel); @@ -1786,7 +1785,6 @@ Ice::ConnectionI::setState(State state) } _state = state; - _stateTime = IceUtil::Time::now(IceUtil::Time::Monotonic); notifyAll(); diff --git a/cpp/src/Ice/ConnectionI.h b/cpp/src/Ice/ConnectionI.h index a023767a63f..5c844ea5cb7 100644 --- a/cpp/src/Ice/ConnectionI.h +++ b/cpp/src/Ice/ConnectionI.h @@ -308,7 +308,6 @@ private: int _dispatchCount; State _state; // The current state. - IceUtil::Time _stateTime; // The last time when the state was changed. }; } diff --git a/cpp/src/Ice/TcpAcceptor.cpp b/cpp/src/Ice/TcpAcceptor.cpp index 1b0e4251ba5..9574f7bce0a 100644 --- a/cpp/src/Ice/TcpAcceptor.cpp +++ b/cpp/src/Ice/TcpAcceptor.cpp @@ -9,6 +9,7 @@ #include <Ice/TcpAcceptor.h> #include <Ice/TcpTransceiver.h> +#include <Ice/Endpoint.h> #include <Ice/Instance.h> #include <Ice/TraceLevels.h> #include <Ice/LoggerUtil.h> @@ -168,7 +169,7 @@ IceInternal::TcpAcceptor::accept() Trace out(_logger, _traceLevels->networkCat); out << "accepted tcp connection\n" << fdToString(fd); } - return new TcpTransceiver(_instance, fd, true); + return new TcpTransceiver(_instance, _endpointInfo, fd, true); } string @@ -183,11 +184,12 @@ IceInternal::TcpAcceptor::effectivePort() const return getPort(_addr); } -IceInternal::TcpAcceptor::TcpAcceptor(const InstancePtr& instance, const string& host, int port) : +IceInternal::TcpAcceptor::TcpAcceptor(const InstancePtr& instance, const TcpEndpointInfoPtr& endpointInfo) : _instance(instance), + _endpointInfo(endpointInfo), _traceLevels(instance->traceLevels()), _logger(instance->initializationData().logger), - _addr(getAddressForServer(host, port, instance->protocolSupport())) + _addr(getAddressForServer(endpointInfo->host, endpointInfo->port, instance->protocolSupport())) #ifdef ICE_USE_IOCP , _acceptFd(INVALID_SOCKET), _info(SocketOperationRead) diff --git a/cpp/src/Ice/TcpAcceptor.h b/cpp/src/Ice/TcpAcceptor.h index 64406b330be..b4067c9a711 100644 --- a/cpp/src/Ice/TcpAcceptor.h +++ b/cpp/src/Ice/TcpAcceptor.h @@ -23,8 +23,6 @@ namespace IceInternal { -class TcpEndpoint; - class TcpAcceptor : public Acceptor, public NativeInfo { public: @@ -47,11 +45,12 @@ public: private: - TcpAcceptor(const InstancePtr&, const std::string&, int); + TcpAcceptor(const InstancePtr&, const Ice::TcpEndpointInfoPtr&); virtual ~TcpAcceptor(); friend class TcpEndpointI; const InstancePtr _instance; + const Ice::TcpEndpointInfoPtr _endpointInfo; const TraceLevelsPtr _traceLevels; const ::Ice::LoggerPtr _logger; const struct sockaddr_storage _addr; diff --git a/cpp/src/Ice/TcpConnector.cpp b/cpp/src/Ice/TcpConnector.cpp index 9d45fdf82bd..e1fdf982cdc 100644 --- a/cpp/src/Ice/TcpConnector.cpp +++ b/cpp/src/Ice/TcpConnector.cpp @@ -31,7 +31,8 @@ IceInternal::TcpConnector::connect() try { - TransceiverPtr transceiver = new TcpTransceiver(_instance, createSocket(false, _addr.ss_family), false); + TransceiverPtr transceiver = + new TcpTransceiver(_instance, _endpointInfo, createSocket(false, _addr.ss_family), false); dynamic_cast<TcpTransceiver*>(transceiver.get())->connect(_addr); return transceiver; } @@ -120,13 +121,16 @@ IceInternal::TcpConnector::operator<(const Connector& r) const return compareAddress(_addr, p->_addr) == -1; } -IceInternal::TcpConnector::TcpConnector(const InstancePtr& instance, const struct sockaddr_storage& addr, - Ice::Int timeout, const string& connectionId) : +IceInternal::TcpConnector::TcpConnector(const InstancePtr& instance, + const TcpEndpointInfoPtr& endpointInfo, + const struct sockaddr_storage& addr, + const string& connectionId) : _instance(instance), + _endpointInfo(endpointInfo), _traceLevels(instance->traceLevels()), _logger(instance->initializationData().logger), _addr(addr), - _timeout(timeout), + _timeout(_endpointInfo->timeout), _connectionId(connectionId) { } diff --git a/cpp/src/Ice/TcpConnector.h b/cpp/src/Ice/TcpConnector.h index 6f83719cdb8..72453a40c80 100644 --- a/cpp/src/Ice/TcpConnector.h +++ b/cpp/src/Ice/TcpConnector.h @@ -11,6 +11,7 @@ #define ICE_TCP_CONNECTOR_H #include <Ice/TransceiverF.h> +#include <Ice/EndpointF.h> #include <Ice/InstanceF.h> #include <Ice/TraceLevelsF.h> #include <Ice/LoggerF.h> @@ -40,11 +41,13 @@ public: private: - TcpConnector(const InstancePtr&, const struct sockaddr_storage&, Ice::Int, const std::string&); + TcpConnector(const InstancePtr&, const Ice::TcpEndpointInfoPtr&, const struct sockaddr_storage&, + const std::string&); virtual ~TcpConnector(); friend class TcpEndpointI; const InstancePtr _instance; + const Ice::TcpEndpointInfoPtr _endpointInfo; const TraceLevelsPtr _traceLevels; const ::Ice::LoggerPtr _logger; const struct sockaddr_storage _addr; diff --git a/cpp/src/Ice/TcpEndpointI.cpp b/cpp/src/Ice/TcpEndpointI.cpp index 9d8c761231f..9b18fc3c4ac 100644 --- a/cpp/src/Ice/TcpEndpointI.cpp +++ b/cpp/src/Ice/TcpEndpointI.cpp @@ -351,7 +351,7 @@ IceInternal::TcpEndpointI::connectors_async(const EndpointI_connectorsPtr& callb AcceptorPtr IceInternal::TcpEndpointI::acceptor(EndpointIPtr& endp, const string&) const { - TcpAcceptor* p = new TcpAcceptor(_instance, _host, _port); + TcpAcceptor* p = new TcpAcceptor(_instance, TcpEndpointInfoPtr::dynamicCast(getInfo())); endp = new TcpEndpointI(_instance, _host, p->effectivePort(), _timeout, _connectionId, _compress); return p; } @@ -503,7 +503,8 @@ IceInternal::TcpEndpointI::connectors(const vector<struct sockaddr_storage>& add vector<ConnectorPtr> connectors; for(unsigned int i = 0; i < addresses.size(); ++i) { - connectors.push_back(new TcpConnector(_instance, addresses[i], _timeout, _connectionId)); + connectors.push_back(new TcpConnector(_instance, TcpEndpointInfoPtr::dynamicCast(getInfo()), addresses[i], + _connectionId)); } return connectors; } diff --git a/cpp/src/Ice/TcpTransceiver.cpp b/cpp/src/Ice/TcpTransceiver.cpp index 959c3ce6f87..33ffb3f9e43 100644 --- a/cpp/src/Ice/TcpTransceiver.cpp +++ b/cpp/src/Ice/TcpTransceiver.cpp @@ -459,6 +459,7 @@ IceInternal::TcpTransceiver::getInfo() const { assert(_fd != INVALID_SOCKET); Ice::TcpConnectionInfoPtr info = new Ice::TcpConnectionInfo(); + info->endpoint = _endpointInfo; fdToAddressAndPort(_fd, info->localAddress, info->localPort, info->remoteAddress, info->remotePort); return info; } @@ -472,8 +473,12 @@ IceInternal::TcpTransceiver::checkSendSize(const Buffer& buf, size_t messageSize } } -IceInternal::TcpTransceiver::TcpTransceiver(const InstancePtr& instance, SOCKET fd, bool connected) : +IceInternal::TcpTransceiver::TcpTransceiver(const InstancePtr& instance, + const TcpEndpointInfoPtr& endpointInfo, + SOCKET fd, + bool connected) : NativeInfo(fd), + _endpointInfo(endpointInfo), _traceLevels(instance->traceLevels()), _logger(instance->initializationData().logger), _stats(instance->initializationData().stats), diff --git a/cpp/src/Ice/TcpTransceiver.h b/cpp/src/Ice/TcpTransceiver.h index 2f131531d0a..81ca7d07c30 100644 --- a/cpp/src/Ice/TcpTransceiver.h +++ b/cpp/src/Ice/TcpTransceiver.h @@ -55,7 +55,7 @@ public: private: - TcpTransceiver(const InstancePtr&, SOCKET, bool); + TcpTransceiver(const InstancePtr&, const Ice::TcpEndpointInfoPtr&, SOCKET, bool); virtual ~TcpTransceiver(); void connect(const struct sockaddr_storage&); @@ -63,6 +63,7 @@ private: friend class TcpConnector; friend class TcpAcceptor; + const Ice::TcpEndpointInfoPtr _endpointInfo; const TraceLevelsPtr _traceLevels; const Ice::LoggerPtr _logger; const Ice::StatsPtr _stats; diff --git a/cpp/src/Ice/UdpConnector.cpp b/cpp/src/Ice/UdpConnector.cpp index d8a4c5588df..6f6f9b6b8ff 100644 --- a/cpp/src/Ice/UdpConnector.cpp +++ b/cpp/src/Ice/UdpConnector.cpp @@ -20,7 +20,7 @@ using namespace IceInternal; TransceiverPtr IceInternal::UdpConnector::connect() { - return new UdpTransceiver(_instance, _addr, _mcastInterface, _mcastTtl); + return new UdpTransceiver(_instance, _endpointInfo, _addr); } Short @@ -54,32 +54,32 @@ IceInternal::UdpConnector::operator==(const Connector& r) const return false; } - if(_protocolMajor != p->_protocolMajor) + if(_endpointInfo->protocolMajor != p->_endpointInfo->protocolMajor) { return false; } - if(_protocolMinor != p->_protocolMinor) + if(_endpointInfo->protocolMinor != p->_endpointInfo->protocolMinor) { return false; } - if(_encodingMajor != p->_encodingMajor) + if(_endpointInfo->encodingMajor != p->_endpointInfo->encodingMajor) { return false; } - if(_encodingMinor != p->_encodingMinor) + if(_endpointInfo->encodingMinor != p->_endpointInfo->encodingMinor) { return false; } - if(_mcastTtl != p->_mcastTtl) + if(_endpointInfo->mcastTtl != p->_endpointInfo->mcastTtl) { return false; } - if(_mcastInterface != p->_mcastInterface) + if(_endpointInfo->mcastInterface != p->_endpointInfo->mcastInterface) { return false; } @@ -111,56 +111,56 @@ IceInternal::UdpConnector::operator<(const Connector& r) const return false; } - if(_protocolMajor < p->_protocolMajor) + if(_endpointInfo->protocolMajor < p->_endpointInfo->protocolMajor) { return true; } - else if(p->_protocolMajor < _protocolMajor) + else if(p->_endpointInfo->protocolMajor < _endpointInfo->protocolMajor) { return false; } - if(_protocolMinor < p->_protocolMinor) + if(_endpointInfo->protocolMinor < p->_endpointInfo->protocolMinor) { return true; } - else if(p->_protocolMinor < _protocolMinor) + else if(p->_endpointInfo->protocolMinor < _endpointInfo->protocolMinor) { return false; } - if(_encodingMajor < p->_encodingMajor) + if(_endpointInfo->encodingMajor < p->_endpointInfo->encodingMajor) { return true; } - else if(p->_encodingMajor < _encodingMajor) + else if(p->_endpointInfo->encodingMajor < _endpointInfo->encodingMajor) { return false; } - if(_encodingMinor < p->_encodingMinor) + if(_endpointInfo->encodingMinor < p->_endpointInfo->encodingMinor) { return true; } - else if(p->_encodingMinor < _encodingMinor) + else if(p->_endpointInfo->encodingMinor < _endpointInfo->encodingMinor) { return false; } - if(_mcastTtl < p->_mcastTtl) + if(_endpointInfo->mcastTtl < p->_endpointInfo->mcastTtl) { return true; } - else if(p->_mcastTtl < _mcastTtl) + else if(p->_endpointInfo->mcastTtl < _endpointInfo->mcastTtl) { return false; } - if(_mcastInterface < p->_mcastInterface) + if(_endpointInfo->mcastInterface < p->_endpointInfo->mcastInterface) { return true; } - else if(p->_mcastInterface < _mcastInterface) + else if(p->_endpointInfo->mcastInterface < _endpointInfo->mcastInterface) { return false; } @@ -169,18 +169,13 @@ IceInternal::UdpConnector::operator<(const Connector& r) const } -IceInternal::UdpConnector::UdpConnector(const InstancePtr& instance, const struct sockaddr_storage& addr, - const string& mcastInterface, int mcastTtl, Ice::Byte protocolMajor, - Ice::Byte protocolMinor, Ice::Byte encodingMajor, Ice::Byte encodingMinor, +IceInternal::UdpConnector::UdpConnector(const InstancePtr& instance, + const UdpEndpointInfoPtr& endpointInfo, + const struct sockaddr_storage& addr, const std::string& connectionId) : _instance(instance), + _endpointInfo(endpointInfo), _addr(addr), - _mcastInterface(mcastInterface), - _mcastTtl(mcastTtl), - _protocolMajor(protocolMajor), - _protocolMinor(protocolMinor), - _encodingMajor(encodingMajor), - _encodingMinor(encodingMinor), _connectionId(connectionId) { } diff --git a/cpp/src/Ice/UdpConnector.h b/cpp/src/Ice/UdpConnector.h index 4e27190ac1e..924d02bba7c 100644 --- a/cpp/src/Ice/UdpConnector.h +++ b/cpp/src/Ice/UdpConnector.h @@ -11,6 +11,7 @@ #define ICE_UDP_CONNECTOR_H #include <Ice/TransceiverF.h> +#include <Ice/EndpointF.h> #include <Ice/InstanceF.h> #include <Ice/Connector.h> #include <Ice/Protocol.h> @@ -39,19 +40,14 @@ public: private: - UdpConnector(const InstancePtr&, const struct sockaddr_storage&, const std::string&, int, Ice::Byte, Ice::Byte, - Ice::Byte, Ice::Byte, const std::string&); + UdpConnector(const InstancePtr&, const Ice::UdpEndpointInfoPtr&, const struct sockaddr_storage&, + const std::string&); virtual ~UdpConnector(); friend class UdpEndpointI; const InstancePtr _instance; + const Ice::UdpEndpointInfoPtr _endpointInfo; struct sockaddr_storage _addr; - const std::string _mcastInterface; - const int _mcastTtl; - const Ice::Byte _protocolMajor; - const Ice::Byte _protocolMinor; - const Ice::Byte _encodingMajor; - const Ice::Byte _encodingMinor; const std::string _connectionId; }; diff --git a/cpp/src/Ice/UdpEndpointI.cpp b/cpp/src/Ice/UdpEndpointI.cpp index bbd273cfa54..298bb72b800 100644 --- a/cpp/src/Ice/UdpEndpointI.cpp +++ b/cpp/src/Ice/UdpEndpointI.cpp @@ -536,7 +536,7 @@ IceInternal::UdpEndpointI::secure() const TransceiverPtr IceInternal::UdpEndpointI::transceiver(EndpointIPtr& endp) const { - UdpTransceiver* p = new UdpTransceiver(_instance, _host, _port, _mcastInterface, _connect); + UdpTransceiver* p = new UdpTransceiver(_instance, UdpEndpointInfoPtr::dynamicCast(getInfo()), _connect); endp = new UdpEndpointI(_instance, _host, p->effectivePort(), _mcastInterface, _mcastTtl, _protocolMajor, _protocolMinor, _encodingMajor, _encodingMinor, _connect, _connectionId, _compress); @@ -794,8 +794,8 @@ IceInternal::UdpEndpointI::connectors(const vector<struct sockaddr_storage>& add vector<ConnectorPtr> connectors; for(unsigned int i = 0; i < addresses.size(); ++i) { - connectors.push_back(new UdpConnector(_instance, addresses[i], _mcastInterface, _mcastTtl, _protocolMajor, - _protocolMinor, _encodingMajor, _encodingMinor, _connectionId)); + connectors.push_back(new UdpConnector(_instance, UdpEndpointInfoPtr::dynamicCast(getInfo()), addresses[i], + _connectionId)); } return connectors; } diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp index fbf00a1048a..8cd68d76edb 100644 --- a/cpp/src/Ice/UdpTransceiver.cpp +++ b/cpp/src/Ice/UdpTransceiver.cpp @@ -457,6 +457,7 @@ IceInternal::UdpTransceiver::getInfo() const { assert(_fd != INVALID_SOCKET); Ice::UdpConnectionInfoPtr info = new Ice::UdpConnectionInfo(); + info->endpoint = _endpointInfo; fdToAddressAndPort(_fd, info->localAddress, info->localPort, info->remoteAddress, info->remotePort); addrToAddressAndPort(_mcastAddr, info->mcastAddress, info->mcastPort); return info; @@ -482,8 +483,10 @@ IceInternal::UdpTransceiver::effectivePort() const return getPort(_addr); } -IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const struct sockaddr_storage& addr, - const string& mcastInterface, int mcastTtl) : +IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, + const Ice::UdpEndpointInfoPtr& endpointInfo, + const struct sockaddr_storage& addr) : + _endpointInfo(endpointInfo), _traceLevels(instance->traceLevels()), _logger(instance->initializationData().logger), _stats(instance->initializationData().stats), @@ -510,24 +513,26 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s if(isMulticast(_addr)) { - if(mcastInterface.length() > 0) + if(endpointInfo->mcastInterface.length() > 0) { - setMcastInterface(_fd, mcastInterface, _addr.ss_family == AF_INET); + setMcastInterface(_fd, endpointInfo->mcastInterface, _addr.ss_family == AF_INET); } - if(mcastTtl != -1) + if(endpointInfo->mcastTtl != -1) { - setMcastTtl(_fd, mcastTtl, _addr.ss_family == AF_INET); + setMcastTtl(_fd, endpointInfo->mcastTtl, _addr.ss_family == AF_INET); } } } -IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const string& host, int port, - const string& mcastInterface, bool connect) : +IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, + const Ice::UdpEndpointInfoPtr& endpointInfo, + bool connect) : + _endpointInfo(endpointInfo), _traceLevels(instance->traceLevels()), _logger(instance->initializationData().logger), _stats(instance->initializationData().stats), _incoming(true), - _addr(getAddressForServer(host, port, instance->protocolSupport())), + _addr(getAddressForServer(_endpointInfo->host, _endpointInfo->port, instance->protocolSupport())), _connect(connect), _warn(instance->initializationData().properties->getPropertyAsInt("Ice.Warn.Datagrams") > 0) #ifdef ICE_USE_IOCP @@ -564,7 +569,7 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s { setPort(_mcastAddr, getPort(_addr)); } - setMcastGroup(_fd, _mcastAddr, mcastInterface); + setMcastGroup(_fd, _mcastAddr, _endpointInfo->mcastInterface); } else { diff --git a/cpp/src/Ice/UdpTransceiver.h b/cpp/src/Ice/UdpTransceiver.h index f7c918184a8..a8a3194a607 100644 --- a/cpp/src/Ice/UdpTransceiver.h +++ b/cpp/src/Ice/UdpTransceiver.h @@ -61,8 +61,8 @@ public: private: - UdpTransceiver(const InstancePtr&, const struct sockaddr_storage&, const std::string&, int); - UdpTransceiver(const InstancePtr&, const std::string&, int, const std::string&, bool); + UdpTransceiver(const InstancePtr&, const Ice::UdpEndpointInfoPtr&, const struct sockaddr_storage&); + UdpTransceiver(const InstancePtr&, const Ice::UdpEndpointInfoPtr&, bool); virtual ~UdpTransceiver(); void setBufSize(const InstancePtr&); @@ -70,6 +70,7 @@ private: friend class UdpEndpointI; friend class UdpConnector; + const Ice::UdpEndpointInfoPtr _endpointInfo; const TraceLevelsPtr _traceLevels; const Ice::LoggerPtr _logger; const Ice::StatsPtr _stats; diff --git a/cpp/src/IceSSL/AcceptorI.cpp b/cpp/src/IceSSL/AcceptorI.cpp index c82a77dc4dc..e8de9f97a87 100644 --- a/cpp/src/IceSSL/AcceptorI.cpp +++ b/cpp/src/IceSSL/AcceptorI.cpp @@ -188,7 +188,7 @@ IceSSL::AcceptorI::accept() // SSL handshaking is performed in TransceiverI::initialize, since // accept must not block. // - return new TransceiverI(_instance, fd, _adapterName); + return new TransceiverI(_instance, _endpointInfo, fd, _adapterName); } string @@ -210,11 +210,13 @@ IceSSL::AcceptorI::effectivePort() const } } -IceSSL::AcceptorI::AcceptorI(const InstancePtr& instance, const string& adapterName, const string& host, int port) : +IceSSL::AcceptorI::AcceptorI(const InstancePtr& instance, const SSLEndpointInfoPtr& endpointInfo, + const string& adapterName) : _instance(instance), + _endpointInfo(endpointInfo), _adapterName(adapterName), _logger(instance->communicator()->getLogger()), - _addr(IceInternal::getAddressForServer(host, port, instance->protocolSupport())) + _addr(IceInternal::getAddressForServer(_endpointInfo->host, _endpointInfo->port, instance->protocolSupport())) #ifdef ICE_USE_IOCP , _acceptFd(INVALID_SOCKET), _info(IceInternal::SocketOperationRead) diff --git a/cpp/src/IceSSL/AcceptorI.h b/cpp/src/IceSSL/AcceptorI.h index 71ce3991b2b..df84201cd9f 100644 --- a/cpp/src/IceSSL/AcceptorI.h +++ b/cpp/src/IceSSL/AcceptorI.h @@ -15,6 +15,7 @@ #include <Ice/Acceptor.h> #include <Ice/Protocol.h> #include <IceSSL/InstanceF.h> +#include <IceSSL/EndpointInfo.h> #ifndef _WIN32 # include <sys/socket.h> // For struct sockaddr_storage @@ -49,11 +50,12 @@ public: private: - AcceptorI(const InstancePtr&, const std::string&, const std::string&, int); + AcceptorI(const InstancePtr&, const SSLEndpointInfoPtr&, const std::string&); virtual ~AcceptorI(); friend class EndpointI; const InstancePtr _instance; + const SSLEndpointInfoPtr _endpointInfo; const std::string _adapterName; const Ice::LoggerPtr _logger; const struct sockaddr_storage _addr; diff --git a/cpp/src/IceSSL/ConnectorI.cpp b/cpp/src/IceSSL/ConnectorI.cpp index 9b5e14a6fe9..fad1c651c13 100644 --- a/cpp/src/IceSSL/ConnectorI.cpp +++ b/cpp/src/IceSSL/ConnectorI.cpp @@ -42,7 +42,7 @@ IceSSL::ConnectorI::connect() try { - return new TransceiverI(_instance, IceInternal::createSocket(false, _addr.ss_family), _host, _addr); + return new TransceiverI(_instance, _endpointInfo, IceInternal::createSocket(false, _addr.ss_family), _addr); } catch(const Ice::LocalException& ex) { @@ -81,7 +81,7 @@ IceSSL::ConnectorI::operator==(const IceInternal::Connector& r) const return false; } - if(_timeout != p->_timeout) + if(_endpointInfo->timeout != p->_endpointInfo->timeout) { return false; } @@ -109,11 +109,11 @@ IceSSL::ConnectorI::operator<(const IceInternal::Connector& r) const return type() < r.type(); } - if(_timeout < p->_timeout) + if(_endpointInfo->timeout < p->_endpointInfo->timeout) { return true; } - else if(p->_timeout < _timeout) + else if(p->_endpointInfo->timeout < _endpointInfo->timeout) { return false; } @@ -130,13 +130,12 @@ IceSSL::ConnectorI::operator<(const IceInternal::Connector& r) const return IceInternal::compareAddress(_addr, p->_addr) == -1; } -IceSSL::ConnectorI::ConnectorI(const InstancePtr& instance, const string& host, const struct sockaddr_storage& addr, - Ice::Int timeout, const string& connectionId) : +IceSSL::ConnectorI::ConnectorI(const InstancePtr& instance, const SSLEndpointInfoPtr& endpointInfo, + const struct sockaddr_storage& addr, const string& connectionId) : _instance(instance), + _endpointInfo(endpointInfo), _logger(instance->communicator()->getLogger()), - _host(host), _addr(addr), - _timeout(timeout), _connectionId(connectionId) { } diff --git a/cpp/src/IceSSL/ConnectorI.h b/cpp/src/IceSSL/ConnectorI.h index d8c79a6e0c4..163f87d5add 100644 --- a/cpp/src/IceSSL/ConnectorI.h +++ b/cpp/src/IceSSL/ConnectorI.h @@ -14,6 +14,7 @@ #include <Ice/TransceiverF.h> #include <Ice/Connector.h> #include <IceSSL/InstanceF.h> +#include <IceSSL/EndpointInfo.h> #ifdef _WIN32 # include <winsock2.h> @@ -41,15 +42,14 @@ public: private: - ConnectorI(const InstancePtr&, const std::string&, const struct sockaddr_storage&, Ice::Int, const std::string&); + ConnectorI(const InstancePtr&, const SSLEndpointInfoPtr&, const struct sockaddr_storage&, const std::string&); virtual ~ConnectorI(); friend class EndpointI; const InstancePtr _instance; + const SSLEndpointInfoPtr _endpointInfo; const Ice::LoggerPtr _logger; - const std::string _host; struct sockaddr_storage _addr; - const Ice::Int _timeout; const std::string _connectionId; }; diff --git a/cpp/src/IceSSL/EndpointI.cpp b/cpp/src/IceSSL/EndpointI.cpp index c21db89353c..8166574bf65 100644 --- a/cpp/src/IceSSL/EndpointI.cpp +++ b/cpp/src/IceSSL/EndpointI.cpp @@ -351,7 +351,7 @@ IceSSL::EndpointI::connectors_async(const IceInternal::EndpointI_connectorsPtr& IceInternal::AcceptorPtr IceSSL::EndpointI::acceptor(IceInternal::EndpointIPtr& endp, const string& adapterName) const { - AcceptorI* p = new AcceptorI(_instance, adapterName, _host, _port); + AcceptorI* p = new AcceptorI(_instance, SSLEndpointInfoPtr::dynamicCast(getInfo()), adapterName); endp = new EndpointI(_instance, _host, p->effectivePort(), _timeout, _connectionId, _compress); return p; } @@ -502,7 +502,8 @@ IceSSL::EndpointI::connectors(const vector<struct sockaddr_storage>& addresses) vector<IceInternal::ConnectorPtr> connectors; for(unsigned int i = 0; i < addresses.size(); ++i) { - connectors.push_back(new ConnectorI(_instance, _host, addresses[i], _timeout, _connectionId)); + connectors.push_back(new ConnectorI(_instance, SSLEndpointInfoPtr::dynamicCast(getInfo()), addresses[i], + _connectionId)); } return connectors; } diff --git a/cpp/src/IceSSL/TransceiverI.cpp b/cpp/src/IceSSL/TransceiverI.cpp index 28f59e93756..1c95553e46a 100644 --- a/cpp/src/IceSSL/TransceiverI.cpp +++ b/cpp/src/IceSSL/TransceiverI.cpp @@ -234,7 +234,7 @@ IceSSL::TransceiverI::initialize() } } - _instance->verifyPeer(_ssl, _fd, _host, _adapterName, _incoming); + _instance->verifyPeer(_ssl, _fd, _endpointInfo->host, _adapterName, _incoming); _state = StateHandshakeComplete; } catch(const Ice::LocalException& ex) @@ -784,6 +784,7 @@ IceSSL::TransceiverI::getInfo() const assert(_fd != INVALID_SOCKET && _ssl != 0); SSLConnectionInfoPtr info = new SSLConnectionInfo(); + info->endpoint = _endpointInfo; IceInternal::fdToAddressAndPort(_fd, info->localAddress, info->localPort, info->remoteAddress, info->remotePort); // @@ -841,14 +842,14 @@ IceSSL::TransceiverI::getConnectionInfo() const return populateConnectionInfo(_ssl, _fd, _adapterName, _incoming); } -IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, SOCKET fd, const string& host, +IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, const SSLEndpointInfoPtr& endpointInfo, SOCKET fd, const struct sockaddr_storage& addr) : IceInternal::NativeInfo(fd), _instance(instance), + _endpointInfo(endpointInfo), _logger(instance->communicator()->getLogger()), _stats(instance->communicator()->getStats()), _ssl(0), - _host(host), _incoming(false), _state(StateNeedConnect) #ifdef ICE_USE_IOCP @@ -879,9 +880,11 @@ IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, SOCKET fd, const #endif } -IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, SOCKET fd, const string& adapterName) : +IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, const SSLEndpointInfoPtr& endpointInfo, SOCKET fd, + const string& adapterName) : IceInternal::NativeInfo(fd), _instance(instance), + _endpointInfo(endpointInfo), _logger(instance->communicator()->getLogger()), _stats(instance->communicator()->getStats()), _ssl(0), diff --git a/cpp/src/IceSSL/TransceiverI.h b/cpp/src/IceSSL/TransceiverI.h index f852d7df7c6..526e5b9d47c 100644 --- a/cpp/src/IceSSL/TransceiverI.h +++ b/cpp/src/IceSSL/TransceiverI.h @@ -12,6 +12,7 @@ #include <IceSSL/InstanceF.h> #include <IceSSL/Plugin.h> +#include <IceSSL/EndpointInfo.h> #include <Ice/LoggerF.h> #include <Ice/StatsF.h> @@ -62,8 +63,8 @@ public: private: - TransceiverI(const InstancePtr&, SOCKET, const std::string&, const struct sockaddr_storage&); - TransceiverI(const InstancePtr&, SOCKET, const std::string&); + TransceiverI(const InstancePtr&, const SSLEndpointInfoPtr&, SOCKET, const struct sockaddr_storage&); + TransceiverI(const InstancePtr&, const SSLEndpointInfoPtr&, SOCKET, const std::string&); virtual ~TransceiverI(); #ifdef ICE_USE_IOCP @@ -75,13 +76,12 @@ private: friend class AcceptorI; const InstancePtr _instance; + const SSLEndpointInfoPtr _endpointInfo; const Ice::LoggerPtr _logger; const Ice::StatsPtr _stats; SSL* _ssl; - const std::string _host; - const bool _incoming; const std::string _adapterName; diff --git a/cs/src/Ice/ConnectionI.cs b/cs/src/Ice/ConnectionI.cs index 7d7a30ff142..bebb5152582 100644 --- a/cs/src/Ice/ConnectionI.cs +++ b/cs/src/Ice/ConnectionI.cs @@ -1436,7 +1436,6 @@ namespace Ice _writeStream = new IceInternal.BasicStream(instance); _dispatchCount = 0; _state = StateNotInitialized; - _stateTime = IceInternal.Time.currentMonotonicTimeMillis(); _compressionLevel = initData.properties.getPropertyAsIntWithDefault("Ice.Compression.Level", 1); if(_compressionLevel < 1) @@ -1684,7 +1683,6 @@ namespace Ice } _state = state; - _stateTime = IceInternal.Time.currentMonotonicTimeMillis(); Monitor.PulseAll(this); @@ -2563,7 +2561,6 @@ namespace Ice private int _dispatchCount; private int _state; // The current state. - private long _stateTime; // The last time when the state was changed. private IceInternal.Incoming _incomingCache; private object _incomingCacheMutex = new object(); diff --git a/cs/src/Ice/TcpAcceptor.cs b/cs/src/Ice/TcpAcceptor.cs index d87c6220c16..7d12737792a 100644 --- a/cs/src/Ice/TcpAcceptor.cs +++ b/cs/src/Ice/TcpAcceptor.cs @@ -101,7 +101,7 @@ namespace IceInternal Socket acceptFd = _acceptFd; _acceptFd = null; _acceptError = null; - return new TcpTransceiver(instance_, acceptFd, null, true); + return new TcpTransceiver(instance_, _endpointInfo, acceptFd, null, true); } public override string ToString() @@ -114,16 +114,18 @@ namespace IceInternal return _addr.Port; } - internal TcpAcceptor(Instance instance, string host, int port) + internal TcpAcceptor(Instance instance, Ice.TcpEndpointInfo endpointInfo) { instance_ = instance; + _endpointInfo = endpointInfo; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _backlog = instance.initializationData().properties.getPropertyAsIntWithDefault("Ice.TCP.Backlog", 511); try { - _addr = Network.getAddressForServer(host, port, instance_.protocolSupport()); + _addr = + Network.getAddressForServer(_endpointInfo.host, _endpointInfo.port, instance_.protocolSupport()); _fd = Network.createSocket(false, _addr.AddressFamily); Network.setBlock(_fd, false); Network.setTcpBufSize(_fd, instance_.initializationData().properties, _logger); @@ -159,6 +161,7 @@ namespace IceInternal } private Instance instance_; + private Ice.TcpEndpointInfo _endpointInfo; private TraceLevels _traceLevels; private Ice.Logger _logger; private Socket _fd; diff --git a/cs/src/Ice/TcpConnector.cs b/cs/src/Ice/TcpConnector.cs index 8a4659c953a..3841f3416f5 100644 --- a/cs/src/Ice/TcpConnector.cs +++ b/cs/src/Ice/TcpConnector.cs @@ -35,7 +35,7 @@ namespace IceInternal // // Nonblocking connect is handled by the transceiver. // - return new TcpTransceiver(_instance, fd, _addr, false); + return new TcpTransceiver(_instance, _endpointInfo, fd, _addr, false); } catch(Ice.LocalException ex) { @@ -56,17 +56,17 @@ namespace IceInternal // // Only for use by TcpEndpoint // - internal TcpConnector(Instance instance, IPEndPoint addr, int timeout, string connectionId) + internal TcpConnector(Instance instance, Ice.TcpEndpointInfo endpointInfo, IPEndPoint addr, string connectionId) { _instance = instance; + _endpointInfo = endpointInfo; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _addr = addr; - _timeout = timeout; _connectionId = connectionId; _hashCode = _addr.GetHashCode(); - _hashCode = 5 * _hashCode + _timeout; + _hashCode = 5 * _hashCode + _endpointInfo.timeout; _hashCode = 5 * _hashCode + _connectionId.GetHashCode(); } @@ -88,7 +88,7 @@ namespace IceInternal return true; } - if(_timeout != p._timeout) + if(_endpointInfo.timeout != p._endpointInfo.timeout) { return false; } @@ -112,10 +112,10 @@ namespace IceInternal } private Instance _instance; + private Ice.TcpEndpointInfo _endpointInfo; private TraceLevels _traceLevels; private Ice.Logger _logger; private IPEndPoint _addr; - private int _timeout; private string _connectionId; private int _hashCode; } diff --git a/cs/src/Ice/TcpEndpointI.cs b/cs/src/Ice/TcpEndpointI.cs index 26e5fd1de8e..48dc20fbcd2 100644 --- a/cs/src/Ice/TcpEndpointI.cs +++ b/cs/src/Ice/TcpEndpointI.cs @@ -404,7 +404,7 @@ namespace IceInternal // public override Acceptor acceptor(ref EndpointI endpoint, string adapterName) { - TcpAcceptor p = new TcpAcceptor(_instance, _host, _port); + TcpAcceptor p = new TcpAcceptor(_instance, (Ice.TcpEndpointInfo)getInfo()); endpoint = new TcpEndpointI(_instance, _host, p.effectivePort(), _timeout, _connectionId, _compress); return p; } @@ -453,7 +453,7 @@ namespace IceInternal List<Connector> connectors = new List<Connector>(); foreach(IPEndPoint addr in addresses) { - connectors.Add(new TcpConnector(_instance, addr, _timeout, _connectionId)); + connectors.Add(new TcpConnector(_instance, (Ice.TcpEndpointInfo)getInfo(), addr, _connectionId)); } return connectors; } diff --git a/cs/src/Ice/TcpTransceiver.cs b/cs/src/Ice/TcpTransceiver.cs index 64e3f91bae5..7bb7cd23b23 100644 --- a/cs/src/Ice/TcpTransceiver.cs +++ b/cs/src/Ice/TcpTransceiver.cs @@ -424,6 +424,7 @@ namespace IceInternal { Debug.Assert(_fd != null); Ice.TcpConnectionInfo info = new Ice.TcpConnectionInfo(); + info.endpoint = _endpointInfo; IPEndPoint localEndpoint = Network.getLocalAddress(_fd); info.localAddress = localEndpoint.Address.ToString(); info.localPort = localEndpoint.Port; @@ -457,8 +458,10 @@ namespace IceInternal // // Only for use by TcpConnector, TcpAcceptor // - internal TcpTransceiver(Instance instance, Socket fd, IPEndPoint addr, bool connected) + internal TcpTransceiver(Instance instance, Ice.TcpEndpointInfo endpointInfo, Socket fd, IPEndPoint addr, + bool connected) { + _endpointInfo = endpointInfo; _fd = fd; _addr = addr; _traceLevels = instance.traceLevels(); @@ -480,6 +483,7 @@ namespace IceInternal } } + private Ice.TcpEndpointInfo _endpointInfo; private Socket _fd; private IPEndPoint _addr; private TraceLevels _traceLevels; diff --git a/cs/src/Ice/UdpConnector.cs b/cs/src/Ice/UdpConnector.cs index f92b170616e..5e65167825a 100644 --- a/cs/src/Ice/UdpConnector.cs +++ b/cs/src/Ice/UdpConnector.cs @@ -18,7 +18,7 @@ namespace IceInternal { public Transceiver connect() { - return new UdpTransceiver(instance_, _addr, _mcastInterface, _mcastTtl); + return new UdpTransceiver(instance_, _endpointInfo, _addr); } public short type() @@ -29,23 +29,16 @@ namespace IceInternal // // Only for use by TcpEndpoint // - internal UdpConnector(Instance instance, IPEndPoint addr, string mcastInterface, int mcastTtl, - byte protocolMajor, byte protocolMinor, byte encodingMajor, byte encodingMinor, - string connectionId) + internal UdpConnector(Instance instance, Ice.UdpEndpointInfo endpointInfo, IPEndPoint addr, string connectionId) { instance_ = instance; + _endpointInfo = endpointInfo; _addr = addr; - _mcastInterface = mcastInterface; - _mcastTtl = mcastTtl; - _protocolMajor = protocolMajor; - _protocolMinor = protocolMinor; - _encodingMajor = encodingMajor; - _encodingMinor = encodingMinor; _connectionId = connectionId; _hashCode = _addr.GetHashCode(); - _hashCode = 5 * _hashCode + _mcastInterface.GetHashCode(); - _hashCode = 5 * _hashCode + _mcastTtl.GetHashCode(); + _hashCode = 5 * _hashCode + _endpointInfo.mcastInterface.GetHashCode(); + _hashCode = 5 * _hashCode + _endpointInfo.mcastTtl.GetHashCode(); _hashCode = 5 * _hashCode + _connectionId.GetHashCode(); } @@ -72,32 +65,32 @@ namespace IceInternal return false; } - if(_protocolMajor != p._protocolMajor) + if(_endpointInfo.protocolMajor != p._endpointInfo.protocolMajor) { return false; } - if(_protocolMinor != p._protocolMinor) + if(_endpointInfo.protocolMinor != p._endpointInfo.protocolMinor) { return false; } - if(_encodingMajor != p._encodingMajor) + if(_endpointInfo.encodingMajor != p._endpointInfo.encodingMajor) { return false; } - if(_encodingMinor != p._encodingMinor) + if(_endpointInfo.encodingMinor != p._endpointInfo.encodingMinor) { return false; } - if(!_mcastInterface.Equals(p._mcastInterface)) + if(!_endpointInfo.mcastInterface.Equals(p._endpointInfo.mcastInterface)) { return false; } - if(_mcastTtl != p._mcastTtl) + if(_endpointInfo.mcastTtl != p._endpointInfo.mcastTtl) { return false; } @@ -116,13 +109,8 @@ namespace IceInternal } private Instance instance_; + private Ice.UdpEndpointInfo _endpointInfo; private IPEndPoint _addr; - private string _mcastInterface; - private int _mcastTtl; - private byte _protocolMajor; - private byte _protocolMinor; - private byte _encodingMajor; - private byte _encodingMinor; private string _connectionId; private int _hashCode; } diff --git a/cs/src/Ice/UdpEndpointI.cs b/cs/src/Ice/UdpEndpointI.cs index c584901ea25..93c4d1dce7c 100644 --- a/cs/src/Ice/UdpEndpointI.cs +++ b/cs/src/Ice/UdpEndpointI.cs @@ -598,7 +598,7 @@ namespace IceInternal // public override Transceiver transceiver(ref EndpointI endpoint) { - UdpTransceiver p = new UdpTransceiver(instance_, _host, _port, _mcastInterface, _connect); + UdpTransceiver p = new UdpTransceiver(instance_, (Ice.UdpEndpointInfo)getInfo(), _connect); endpoint = new UdpEndpointI(instance_, _host, p.effectivePort(), _mcastInterface, _mcastTtl, _protocolMajor, _protocolMinor, _encodingMajor, _encodingMinor, _connect, _connectionId, _compress); @@ -679,8 +679,7 @@ namespace IceInternal List<Connector> connectors = new List<Connector>(); foreach(IPEndPoint addr in addresses) { - connectors.Add(new UdpConnector(instance_, addr, _mcastInterface, _mcastTtl, _protocolMajor, - _protocolMinor, _encodingMajor, _encodingMinor, _connectionId)); + connectors.Add(new UdpConnector(instance_, (Ice.UdpEndpointInfo)getInfo(), addr, _connectionId)); } return connectors; } diff --git a/cs/src/Ice/UdpTransceiver.cs b/cs/src/Ice/UdpTransceiver.cs index 69ce6b9ed00..b26ec892b7f 100644 --- a/cs/src/Ice/UdpTransceiver.cs +++ b/cs/src/Ice/UdpTransceiver.cs @@ -33,11 +33,11 @@ namespace IceInternal { if(Network.isMulticast(_addr)) { - Network.setMcastGroup(_fd, _addr.Address, _mcastInterface); + Network.setMcastGroup(_fd, _addr.Address, _endpointInfo.mcastInterface); - if(_mcastTtl != -1) + if(_endpointInfo.mcastTtl != -1) { - Network.setMcastTtl(_fd, _mcastTtl, _addr.AddressFamily); + Network.setMcastTtl(_fd, _endpointInfo.mcastTtl, _addr.AddressFamily); } } _state = StateConnected; @@ -549,6 +549,7 @@ namespace IceInternal { Debug.Assert(_fd != null); Ice.UdpConnectionInfo info = new Ice.UdpConnectionInfo(); + info.endpoint = _endpointInfo; IPEndPoint localEndpoint = Network.getLocalAddress(_fd); info.localAddress = localEndpoint.Address.ToString(); info.localPort = localEndpoint.Port; @@ -609,15 +610,14 @@ namespace IceInternal // // Only for use by UdpConnector. // - internal UdpTransceiver(Instance instance, IPEndPoint addr, string mcastInterface, int mcastTtl) + internal UdpTransceiver(Instance instance, Ice.UdpEndpointInfo endpointInfo, IPEndPoint addr) { + _endpointInfo = endpointInfo; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _stats = instance.initializationData().stats; _warn = instance.initializationData().properties.getPropertyAsInt("Ice.Warn.Datagrams") > 0; _addr = addr; - _mcastInterface = mcastInterface; - _mcastTtl = mcastTtl; _state = StateNeedConnect; _incoming = false; @@ -637,8 +637,9 @@ namespace IceInternal // // Only for use by UdpEndpoint. // - internal UdpTransceiver(Instance instance, string host, int port, string mcastInterface, bool connect) + internal UdpTransceiver(Instance instance, Ice.UdpEndpointInfo endpointInfo, bool connect) { + _endpointInfo = endpointInfo; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _stats = instance.initializationData().stats; @@ -648,7 +649,7 @@ namespace IceInternal try { - _addr = Network.getAddressForServer(host, port, instance.protocolSupport()); + _addr = Network.getAddressForServer(_endpointInfo.host, _endpointInfo.port, instance.protocolSupport()); _fd = Network.createSocket(true, _addr.AddressFamily); setBufSize(instance); Network.setBlock(_fd, false); @@ -663,18 +664,18 @@ namespace IceInternal _mcastAddr = _addr; if(_addr.AddressFamily == AddressFamily.InterNetwork) { - _addr = Network.doBind(_fd, new IPEndPoint(IPAddress.Any, port)); + _addr = Network.doBind(_fd, new IPEndPoint(IPAddress.Any, _endpointInfo.port)); } else { Debug.Assert(_addr.AddressFamily == AddressFamily.InterNetworkV6); - _addr = Network.doBind(_fd, new IPEndPoint(IPAddress.IPv6Any, port)); + _addr = Network.doBind(_fd, new IPEndPoint(IPAddress.IPv6Any, _endpointInfo.port)); } - if(port == 0) + if(_endpointInfo.port == 0) { _mcastAddr.Port = _addr.Port; } - Network.setMcastGroup(_fd, _mcastAddr.Address, mcastInterface); + Network.setMcastGroup(_fd, _mcastAddr.Address, _endpointInfo.mcastInterface); } else { @@ -788,6 +789,7 @@ namespace IceInternal } } + private Ice.UdpEndpointInfo _endpointInfo; private TraceLevels _traceLevels; private Ice.Logger _logger; private Ice.Stats _stats; @@ -799,8 +801,6 @@ namespace IceInternal private Socket _fd; private IPEndPoint _addr; private IPEndPoint _mcastAddr = null; - private string _mcastInterface = null; - private int _mcastTtl = -1; private IAsyncResult _writeResult; private IAsyncResult _readResult; diff --git a/cs/src/IceSSL/AcceptorI.cs b/cs/src/IceSSL/AcceptorI.cs index 4d73a1aa66f..e4ca1c9afae 100644 --- a/cs/src/IceSSL/AcceptorI.cs +++ b/cs/src/IceSSL/AcceptorI.cs @@ -122,7 +122,7 @@ namespace IceSSL Socket acceptFd = _acceptFd; _acceptFd = null; _acceptError = null; - return new TransceiverI(_instance, acceptFd, null, "", true, _adapterName); + return new TransceiverI(_instance, _endpointInfo, acceptFd, null, true, _adapterName); } public override string ToString() @@ -135,9 +135,10 @@ namespace IceSSL return _addr.Port; } - internal AcceptorI(Instance instance, string adapterName, string host, int port) + internal AcceptorI(Instance instance, SSLEndpointInfo endpointInfo, string adapterName) { _instance = instance; + _endpointInfo = endpointInfo; _adapterName = adapterName; _logger = instance.communicator().getLogger(); _backlog = instance.communicator().getProperties().getPropertyAsIntWithDefault("Ice.TCP.Backlog", 511); @@ -155,7 +156,8 @@ namespace IceSSL try { - _addr = IceInternal.Network.getAddressForServer(host, port, _instance.protocolSupport()); + _addr = IceInternal.Network.getAddressForServer(_endpointInfo.host, _endpointInfo.port, + _instance.protocolSupport()); _fd = IceInternal.Network.createSocket(false, _addr.AddressFamily); IceInternal.Network.setBlock(_fd, false); IceInternal.Network.setTcpBufSize(_fd, _instance.communicator().getProperties(), _logger); @@ -191,6 +193,7 @@ namespace IceSSL } private Instance _instance; + private SSLEndpointInfo _endpointInfo; private string _adapterName; private Ice.Logger _logger; private Socket _fd; diff --git a/cs/src/IceSSL/ConnectorI.cs b/cs/src/IceSSL/ConnectorI.cs index 0284bba2995..a69f01f27dc 100644 --- a/cs/src/IceSSL/ConnectorI.cs +++ b/cs/src/IceSSL/ConnectorI.cs @@ -55,7 +55,7 @@ namespace IceSSL // // Nonblocking connect is handled by the transceiver. // - return new TransceiverI(_instance, fd, _addr, _host, false, null); + return new TransceiverI(_instance, _endpointInfo, fd, _addr, false, null); } catch(Ice.LocalException ex) { @@ -76,17 +76,15 @@ namespace IceSSL // // Only for use by EndpointI. // - internal ConnectorI(Instance instance, string host, IPEndPoint addr, int timeout, string connectionId) + internal ConnectorI(Instance instance, SSLEndpointInfo endpointInfo, IPEndPoint addr, string connectionId) { _instance = instance; - _host = host; _logger = instance.communicator().getLogger(); _addr = addr; - _timeout = timeout; _connectionId = connectionId; _hashCode = _addr.GetHashCode(); - _hashCode = 5 * _hashCode + _timeout; + _hashCode = 5 * _hashCode + _endpointInfo.timeout; _hashCode = 5 * _hashCode + _connectionId.GetHashCode(); } @@ -108,7 +106,7 @@ namespace IceSSL return true; } - if(_timeout != p._timeout) + if(_endpointInfo.timeout != p._endpointInfo.timeout) { return false; } @@ -132,10 +130,9 @@ namespace IceSSL } private Instance _instance; + private SSLEndpointInfo _endpointInfo; private Ice.Logger _logger; - private string _host; private IPEndPoint _addr; - private int _timeout; private string _connectionId; private int _hashCode; } diff --git a/cs/src/IceSSL/EndpointI.cs b/cs/src/IceSSL/EndpointI.cs index 6b01a4ce357..8dab3fa6cd2 100644 --- a/cs/src/IceSSL/EndpointI.cs +++ b/cs/src/IceSSL/EndpointI.cs @@ -403,7 +403,7 @@ namespace IceSSL // public override IceInternal.Acceptor acceptor(ref IceInternal.EndpointI endpoint, string adapterName) { - AcceptorI p = new AcceptorI(_instance, adapterName, _host, _port); + AcceptorI p = new AcceptorI(_instance, (SSLEndpointInfo)getInfo(), adapterName); endpoint = new EndpointI(_instance, _host, p.effectivePort(), _timeout, _connectionId, _compress); return p; } @@ -453,7 +453,7 @@ namespace IceSSL List<IceInternal.Connector> connectors = new List<IceInternal.Connector>(); foreach(IPEndPoint addr in addresses) { - connectors.Add(new ConnectorI(_instance, _host, addr, _timeout, _connectionId)); + connectors.Add(new ConnectorI(_instance, (SSLEndpointInfo)getInfo(), addr, _connectionId)); } return connectors; } diff --git a/cs/src/IceSSL/TransceiverI.cs b/cs/src/IceSSL/TransceiverI.cs index 5a0435eff45..0dc1e8db57d 100644 --- a/cs/src/IceSSL/TransceiverI.cs +++ b/cs/src/IceSSL/TransceiverI.cs @@ -354,6 +354,7 @@ namespace IceSSL { Debug.Assert(_fd != null && _stream != null); IceSSL.SSLConnectionInfo info = new IceSSL.SSLConnectionInfo(); + info.endpoint = _endpointInfo; IPEndPoint localEndpoint = IceInternal.Network.getLocalAddress(_fd); info.localAddress = localEndpoint.Address.ToString(); info.localPort = localEndpoint.Port; @@ -403,13 +404,13 @@ namespace IceSSL // // Only for use by ConnectorI, AcceptorI. // - internal TransceiverI(Instance instance, Socket fd, IPEndPoint addr, string host, bool connected, - string adapterName) + internal TransceiverI(Instance instance, SSLEndpointInfo endpointInfo, Socket fd, IPEndPoint addr, + bool connected, string adapterName) { _instance = instance; + _endpointInfo = endpointInfo; _fd = fd; _addr = addr; - _host = host; _adapterName = adapterName; _stream = null; _info = null; @@ -456,7 +457,7 @@ namespace IceSSL // // Client authentication. // - _writeResult = _stream.BeginAuthenticateAsClient(_host, _instance.certs(), + _writeResult = _stream.BeginAuthenticateAsClient(_endpointInfo.host, _instance.certs(), _instance.protocols(), _instance.checkCRL() > 0, callback, state); @@ -522,7 +523,7 @@ namespace IceSSL } _info = Util.populateConnectionInfo(_stream, _fd, _chain, _adapterName, _adapterName != null); - _instance.verifyPeer(_info, _fd, _host, _adapterName != null); + _instance.verifyPeer(_info, _fd, _endpointInfo.host, _adapterName != null); if(_instance.networkTraceLevel() >= 1) { @@ -716,9 +717,9 @@ namespace IceSSL } private Instance _instance; + private SSLEndpointInfo _endpointInfo; private Socket _fd; private IPEndPoint _addr; - private string _host; private string _adapterName; private SslStream _stream; private ConnectionInfo _info; diff --git a/java/src/Ice/ConnectionI.java b/java/src/Ice/ConnectionI.java index f03033b8cb9..83508d52682 100644 --- a/java/src/Ice/ConnectionI.java +++ b/java/src/Ice/ConnectionI.java @@ -1290,7 +1290,6 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne _writeStream = new IceInternal.BasicStream(instance); _dispatchCount = 0; _state = StateNotInitialized; - _stateTime = IceInternal.Time.currentMonotonicTimeMillis(); int compressionLevel = initData.properties.getPropertyAsIntWithDefault("Ice.Compression.Level", 1); if(compressionLevel < 1) @@ -1563,7 +1562,6 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne } _state = state; - _stateTime = IceInternal.Time.currentMonotonicTimeMillis(); notifyAll(); @@ -2500,7 +2498,6 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne private int _dispatchCount; private int _state; // The current state. - private long _stateTime; // The last time when the state was changed. private IceInternal.Incoming _incomingCache; private java.lang.Object _incomingCacheMutex = new java.lang.Object(); diff --git a/java/src/IceInternal/TcpAcceptor.java b/java/src/IceInternal/TcpAcceptor.java index 50f46759f6f..74c24556065 100644 --- a/java/src/IceInternal/TcpAcceptor.java +++ b/java/src/IceInternal/TcpAcceptor.java @@ -66,7 +66,7 @@ class TcpAcceptor implements Acceptor _logger.trace(_traceLevels.networkCat, s); } - return new TcpTransceiver(_instance, fd, true); + return new TcpTransceiver(_instance, _endpointInfo, fd, true); } public String @@ -81,9 +81,10 @@ class TcpAcceptor implements Acceptor return _addr.getPort(); } - TcpAcceptor(Instance instance, String host, int port) + TcpAcceptor(Instance instance, Ice.TcpEndpointInfo endpointInfo) { _instance = instance; + _endpointInfo = endpointInfo; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _backlog = instance.initializationData().properties.getPropertyAsIntWithDefault("Ice.TCP.Backlog", 511); @@ -110,7 +111,7 @@ class TcpAcceptor implements Acceptor // Network.setReuseAddress(_fd, true); } - _addr = Network.getAddressForServer(host, port, _instance.protocolSupport()); + _addr = Network.getAddressForServer(_endpointInfo.host, _endpointInfo.port, _instance.protocolSupport()); if(_traceLevels.network >= 2) { String s = "attempting to bind to tcp socket " + toString(); @@ -135,6 +136,7 @@ class TcpAcceptor implements Acceptor } private Instance _instance; + private Ice.TcpEndpointInfo _endpointInfo; private TraceLevels _traceLevels; private Ice.Logger _logger; private java.nio.channels.ServerSocketChannel _fd; diff --git a/java/src/IceInternal/TcpConnector.java b/java/src/IceInternal/TcpConnector.java index ae5d618be99..b2f2e331a10 100644 --- a/java/src/IceInternal/TcpConnector.java +++ b/java/src/IceInternal/TcpConnector.java @@ -34,7 +34,7 @@ final class TcpConnector implements Connector _logger.trace(_traceLevels.networkCat, s); } } - return new TcpTransceiver(_instance, fd, connected); + return new TcpTransceiver(_instance, _endpointInfo, fd, connected); } catch(Ice.LocalException ex) { @@ -68,18 +68,19 @@ final class TcpConnector implements Connector // // Only for use by TcpEndpoint // - TcpConnector(Instance instance, java.net.InetSocketAddress addr, int timeout, String connectionId) + TcpConnector(Instance instance, Ice.TcpEndpointInfo endpointInfo, java.net.InetSocketAddress addr, + String connectionId) { _instance = instance; + _endpointInfo = endpointInfo; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _addr = addr; - _timeout = timeout; _connectionId = connectionId; _hashCode = _addr.getAddress().getHostAddress().hashCode(); _hashCode = 5 * _hashCode + _addr.getPort(); - _hashCode = 5 * _hashCode + _timeout; + _hashCode = 5 * _hashCode + _endpointInfo.timeout; _hashCode = 5 * _hashCode + _connectionId.hashCode(); } @@ -102,7 +103,7 @@ final class TcpConnector implements Connector return true; } - if(_timeout != p._timeout) + if(_endpointInfo.timeout != p._endpointInfo.timeout) { return false; } @@ -116,10 +117,10 @@ final class TcpConnector implements Connector } private Instance _instance; + private Ice.TcpEndpointInfo _endpointInfo; private TraceLevels _traceLevels; private Ice.Logger _logger; private java.net.InetSocketAddress _addr; - private int _timeout; private String _connectionId = ""; private int _hashCode; } diff --git a/java/src/IceInternal/TcpEndpointI.java b/java/src/IceInternal/TcpEndpointI.java index 44fc624af8d..65577f31365 100644 --- a/java/src/IceInternal/TcpEndpointI.java +++ b/java/src/IceInternal/TcpEndpointI.java @@ -394,7 +394,7 @@ final class TcpEndpointI extends EndpointI public Acceptor acceptor(EndpointIHolder endpoint, String adapterName) { - TcpAcceptor p = new TcpAcceptor(_instance, _host, _port); + TcpAcceptor p = new TcpAcceptor(_instance, (Ice.TcpEndpointInfo)getInfo()); endpoint.value = new TcpEndpointI(_instance, _host, p.effectivePort(), _timeout, _connectionId, _compress); return p; @@ -524,7 +524,7 @@ final class TcpEndpointI extends EndpointI java.util.List<Connector> connectors = new java.util.ArrayList<Connector>(); for(java.net.InetSocketAddress p : addresses) { - connectors.add(new TcpConnector(_instance, p, _timeout, _connectionId)); + connectors.add(new TcpConnector(_instance, (Ice.TcpEndpointInfo)getInfo(), p, _connectionId)); } return connectors; } diff --git a/java/src/IceInternal/TcpTransceiver.java b/java/src/IceInternal/TcpTransceiver.java index fef0558e62c..155c2b28f7b 100644 --- a/java/src/IceInternal/TcpTransceiver.java +++ b/java/src/IceInternal/TcpTransceiver.java @@ -226,6 +226,7 @@ final class TcpTransceiver implements Transceiver { assert(_fd != null); Ice.TcpConnectionInfo info = new Ice.TcpConnectionInfo(); + info.endpoint = _endpointInfo; java.net.Socket socket = _fd.socket(); info.localAddress = socket.getLocalAddress().getHostAddress(); info.localPort = socket.getLocalPort(); @@ -254,8 +255,10 @@ final class TcpTransceiver implements Transceiver // // Only for use by TcpConnector, TcpAcceptor // - TcpTransceiver(Instance instance, java.nio.channels.SocketChannel fd, boolean connected) + TcpTransceiver(Instance instance, Ice.TcpEndpointInfo endpointInfo, java.nio.channels.SocketChannel fd, + boolean connected) { + _endpointInfo = endpointInfo; _fd = fd; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; @@ -288,6 +291,7 @@ final class TcpTransceiver implements Transceiver super.finalize(); } + private Ice.TcpEndpointInfo _endpointInfo; private java.nio.channels.SocketChannel _fd; private TraceLevels _traceLevels; private Ice.Logger _logger; diff --git a/java/src/IceInternal/UdpConnector.java b/java/src/IceInternal/UdpConnector.java index edff81e92a2..96ab5ed69c7 100644 --- a/java/src/IceInternal/UdpConnector.java +++ b/java/src/IceInternal/UdpConnector.java @@ -14,7 +14,7 @@ final class UdpConnector implements Connector public Transceiver connect() { - return new UdpTransceiver(_instance, _addr, _mcastInterface, _mcastTtl); + return new UdpTransceiver(_instance, _endpointInfo, _addr); } public java.nio.channels.SelectableChannel @@ -45,23 +45,18 @@ final class UdpConnector implements Connector // // Only for use by TcpEndpoint // - UdpConnector(Instance instance, java.net.InetSocketAddress addr, String mcastInterface, int mcastTtl, - byte protocolMajor, byte protocolMinor, byte encodingMajor, byte encodingMinor, String connectionId) + UdpConnector(Instance instance, Ice.UdpEndpointInfo endpointInfo, java.net.InetSocketAddress addr, + String connectionId) { _instance = instance; + _endpointInfo = endpointInfo; _addr = addr; - _mcastInterface = mcastInterface; - _mcastTtl = mcastTtl; - _protocolMajor = protocolMajor; - _protocolMinor = protocolMinor; - _encodingMajor = encodingMajor; - _encodingMinor = encodingMinor; _connectionId = connectionId; _hashCode = _addr.getAddress().getHostAddress().hashCode(); _hashCode = 5 * _hashCode + _addr.getPort(); - _hashCode = 5 * _hashCode + _mcastInterface.hashCode(); - _hashCode = 5 * _hashCode + _mcastTtl; + _hashCode = 5 * _hashCode + _endpointInfo.mcastInterface.hashCode(); + _hashCode = 5 * _hashCode + _endpointInfo.mcastTtl; _hashCode = 5 * _hashCode + _connectionId.hashCode(); } @@ -89,32 +84,32 @@ final class UdpConnector implements Connector return false; } - if(_protocolMajor != p._protocolMajor) + if(_endpointInfo.protocolMajor != p._endpointInfo.protocolMajor) { return false; } - if(_protocolMinor != p._protocolMinor) + if(_endpointInfo.protocolMinor != p._endpointInfo.protocolMinor) { return false; } - if(_encodingMajor != p._encodingMajor) + if(_endpointInfo.encodingMajor != p._endpointInfo.encodingMajor) { return false; } - if(_encodingMinor != p._encodingMinor) + if(_endpointInfo.encodingMinor != p._endpointInfo.encodingMinor) { return false; } - if(_mcastTtl != p._mcastTtl) + if(_endpointInfo.mcastTtl != p._endpointInfo.mcastTtl) { return false; } - if(_mcastInterface.compareTo(p._mcastInterface) != 0) + if(_endpointInfo.mcastInterface.compareTo(p._endpointInfo.mcastInterface) != 0) { return false; } @@ -123,13 +118,8 @@ final class UdpConnector implements Connector } private Instance _instance; + private Ice.UdpEndpointInfo _endpointInfo; private java.net.InetSocketAddress _addr; - private String _mcastInterface; - private int _mcastTtl; - private byte _protocolMajor; - private byte _protocolMinor; - private byte _encodingMajor; - private byte _encodingMinor; private String _connectionId; private int _hashCode; } diff --git a/java/src/IceInternal/UdpEndpointI.java b/java/src/IceInternal/UdpEndpointI.java index 846b4f41c48..0760a94f180 100644 --- a/java/src/IceInternal/UdpEndpointI.java +++ b/java/src/IceInternal/UdpEndpointI.java @@ -528,7 +528,7 @@ final class UdpEndpointI extends EndpointI public Transceiver transceiver(EndpointIHolder endpoint) { - UdpTransceiver p = new UdpTransceiver(_instance, _host, _port, _mcastInterface, _connect); + UdpTransceiver p = new UdpTransceiver(_instance, (Ice.UdpEndpointInfo)getInfo(), _connect); endpoint.value = new UdpEndpointI(_instance, _host, p.effectivePort(), _mcastInterface, _mcastTtl, _protocolMajor, _protocolMinor, _encodingMajor, _encodingMinor, _connect, _connectionId, _compress); @@ -744,9 +744,7 @@ final class UdpEndpointI extends EndpointI java.util.ArrayList<Connector> connectors = new java.util.ArrayList<Connector>(); for(java.net.InetSocketAddress p : addresses) { - connectors.add( - new UdpConnector(_instance, p, _mcastInterface, _mcastTtl, _protocolMajor, _protocolMinor, - _encodingMajor, _encodingMinor, _connectionId)); + connectors.add(new UdpConnector(_instance, (Ice.UdpEndpointInfo)getInfo(), p, _connectionId)); } return connectors; } diff --git a/java/src/IceInternal/UdpTransceiver.java b/java/src/IceInternal/UdpTransceiver.java index 10f4c531935..717688d3e92 100644 --- a/java/src/IceInternal/UdpTransceiver.java +++ b/java/src/IceInternal/UdpTransceiver.java @@ -235,6 +235,7 @@ final class UdpTransceiver implements Transceiver assert(_fd != null); Ice.UdpConnectionInfo info = new Ice.UdpConnectionInfo(); + info.endpoint = _endpointInfo; java.net.DatagramSocket socket = _fd.socket(); info.localAddress = socket.getLocalAddress().getHostAddress(); info.localPort = socket.getLocalPort(); @@ -284,8 +285,9 @@ final class UdpTransceiver implements Transceiver // // Only for use by UdpEndpoint // - UdpTransceiver(Instance instance, java.net.InetSocketAddress addr, String mcastInterface, int mcastTtl) + UdpTransceiver(Instance instance, Ice.UdpEndpointInfo endpointInfo, java.net.InetSocketAddress addr) { + _endpointInfo = endpointInfo; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _stats = instance.initializationData().stats; @@ -302,7 +304,7 @@ final class UdpTransceiver implements Transceiver _connect = false; // We're connected now if(_addr.getAddress().isMulticastAddress()) { - configureMulticast(null, mcastInterface, mcastTtl); + configureMulticast(null, _endpointInfo.mcastInterface, _endpointInfo.mcastTtl); } if(_traceLevels.network >= 1) @@ -321,8 +323,9 @@ final class UdpTransceiver implements Transceiver // // Only for use by UdpEndpoint // - UdpTransceiver(Instance instance, String host, int port, String mcastInterface, boolean connect) + UdpTransceiver(Instance instance, Ice.UdpEndpointInfo endpointInfo, boolean connect) { + _endpointInfo = endpointInfo; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _stats = instance.initializationData().stats; @@ -334,7 +337,7 @@ final class UdpTransceiver implements Transceiver _fd = Network.createUdpSocket(); setBufSize(instance); Network.setBlock(_fd, false); - _addr = Network.getAddressForServer(host, port, instance.protocolSupport()); + _addr = Network.getAddressForServer(_endpointInfo.host, _endpointInfo.port, instance.protocolSupport()); if(_traceLevels.network >= 2) { String s = "attempting to bind to udp socket " + Network.addrToString(_addr); @@ -344,12 +347,12 @@ final class UdpTransceiver implements Transceiver { Network.setReuseAddress(_fd, true); _mcastAddr = _addr; - _addr = Network.doBind(_fd, Network.getAddress("0.0.0.0", port, Network.EnableIPv4)); - if(port == 0) + _addr = Network.doBind(_fd, Network.getAddress("0.0.0.0", _endpointInfo.port, Network.EnableIPv4)); + if(_endpointInfo.port == 0) { _mcastAddr = new java.net.InetSocketAddress(_mcastAddr.getAddress(), _addr.getPort()); } - configureMulticast(_mcastAddr, mcastInterface, -1); + configureMulticast(_mcastAddr, _endpointInfo.mcastInterface, -1); } else { @@ -567,6 +570,7 @@ final class UdpTransceiver implements Transceiver super.finalize(); } + private Ice.UdpEndpointInfo _endpointInfo; private TraceLevels _traceLevels; private Ice.Logger _logger; private Ice.Stats _stats; diff --git a/java/src/IceSSL/AcceptorI.java b/java/src/IceSSL/AcceptorI.java index 18184b50aa2..432efd98985 100644 --- a/java/src/IceSSL/AcceptorI.java +++ b/java/src/IceSSL/AcceptorI.java @@ -88,7 +88,7 @@ final class AcceptorI implements IceInternal.Acceptor IceInternal.Network.fdToString(fd)); } - return new TransceiverI(_instance, engine, fd, "", true, true, _adapterName); + return new TransceiverI(_instance, _endpointInfo, engine, fd, true, true, _adapterName); } public String @@ -103,9 +103,10 @@ final class AcceptorI implements IceInternal.Acceptor return _addr.getPort(); } - AcceptorI(Instance instance, String adapterName, String host, int port) + AcceptorI(Instance instance, SSLEndpointInfo endpointInfo, String adapterName) { _instance = instance; + _endpointInfo = endpointInfo; _adapterName = adapterName; _logger = instance.communicator().getLogger(); _backlog = instance.communicator().getProperties().getPropertyAsIntWithDefault("Ice.TCP.Backlog", 511); @@ -132,7 +133,8 @@ final class AcceptorI implements IceInternal.Acceptor // IceInternal.Network.setReuseAddress(_fd, true); } - _addr = IceInternal.Network.getAddressForServer(host, port, _instance.protocolSupport()); + _addr = IceInternal.Network.getAddressForServer(_endpointInfo.host, _endpointInfo.port, + _instance.protocolSupport()); if(_instance.networkTraceLevel() >= 2) { String s = "attempting to bind to ssl socket " + toString(); @@ -157,6 +159,7 @@ final class AcceptorI implements IceInternal.Acceptor } private Instance _instance; + private SSLEndpointInfo _endpointInfo; private String _adapterName; private Ice.Logger _logger; private java.nio.channels.ServerSocketChannel _fd; diff --git a/java/src/IceSSL/ConnectorI.java b/java/src/IceSSL/ConnectorI.java index 32e8d4cf817..07a12015439 100644 --- a/java/src/IceSSL/ConnectorI.java +++ b/java/src/IceSSL/ConnectorI.java @@ -39,7 +39,7 @@ final class ConnectorI implements IceInternal.Connector try { javax.net.ssl.SSLEngine engine = _instance.createSSLEngine(false); - return new TransceiverI(_instance, engine, fd, _host, connected, false, ""); + return new TransceiverI(_instance, _endpointInfo, engine, fd, connected, false, ""); } catch(RuntimeException ex) { @@ -79,18 +79,17 @@ final class ConnectorI implements IceInternal.Connector // // Only for use by EndpointI. // - ConnectorI(Instance instance, String host, java.net.InetSocketAddress addr, int timeout, String connectionId) + ConnectorI(Instance instance, SSLEndpointInfo endpointInfo, java.net.InetSocketAddress addr, String connectionId) { _instance = instance; + _endpointInfo = endpointInfo; _logger = instance.communicator().getLogger(); - _host = host; _addr = addr; - _timeout = timeout; _connectionId = connectionId; _hashCode = _addr.getAddress().getHostAddress().hashCode(); _hashCode = 5 * _hashCode + _addr.getPort(); - _hashCode = 5 * _hashCode + _timeout; + _hashCode = 5 * _hashCode + _endpointInfo.timeout; _hashCode = 5 * _hashCode + _connectionId.hashCode(); } @@ -113,7 +112,7 @@ final class ConnectorI implements IceInternal.Connector return true; } - if(_timeout != p._timeout) + if(_endpointInfo.timeout != p._endpointInfo.timeout) { return false; } @@ -127,10 +126,9 @@ final class ConnectorI implements IceInternal.Connector } private Instance _instance; + private SSLEndpointInfo _endpointInfo; private Ice.Logger _logger; - private String _host; private java.net.InetSocketAddress _addr; - private int _timeout; private String _connectionId; private int _hashCode; } diff --git a/java/src/IceSSL/EndpointI.java b/java/src/IceSSL/EndpointI.java index 77e70e0671d..4fc235a2c10 100644 --- a/java/src/IceSSL/EndpointI.java +++ b/java/src/IceSSL/EndpointI.java @@ -394,7 +394,7 @@ final class EndpointI extends IceInternal.EndpointI public IceInternal.Acceptor acceptor(IceInternal.EndpointIHolder endpoint, String adapterName) { - AcceptorI p = new AcceptorI(_instance, adapterName, _host, _port); + AcceptorI p = new AcceptorI(_instance, (SSLEndpointInfo)getInfo(), adapterName); endpoint.value = new EndpointI(_instance, _host, p.effectivePort(), _timeout, _connectionId, _compress); return p; @@ -525,7 +525,7 @@ final class EndpointI extends IceInternal.EndpointI java.util.List<IceInternal.Connector> connectors = new java.util.ArrayList<IceInternal.Connector>(); for(java.net.InetSocketAddress p : addresses) { - connectors.add(new ConnectorI(_instance, _host, p, _timeout, _connectionId)); + connectors.add(new ConnectorI(_instance, (SSLEndpointInfo)getInfo(), p, _connectionId)); } return connectors; } diff --git a/java/src/IceSSL/TransceiverI.java b/java/src/IceSSL/TransceiverI.java index 54687c5f052..bd7a8a8a3ca 100644 --- a/java/src/IceSSL/TransceiverI.java +++ b/java/src/IceSSL/TransceiverI.java @@ -280,6 +280,7 @@ final class TransceiverI implements IceInternal.Transceiver assert(_fd != null); IceSSL.SSLConnectionInfo info = new IceSSL.SSLConnectionInfo(); + info.endpoint = _endpointInfo; java.net.Socket socket = _fd.socket(); info.localAddress = socket.getLocalAddress().getHostAddress(); info.localPort = socket.getLocalPort(); @@ -339,13 +340,13 @@ final class TransceiverI implements IceInternal.Transceiver // // Only for use by ConnectorI, AcceptorI. // - TransceiverI(Instance instance, javax.net.ssl.SSLEngine engine, java.nio.channels.SocketChannel fd, - String host, boolean connected, boolean incoming, String adapterName) + TransceiverI(Instance instance, SSLEndpointInfo endpointInfo, javax.net.ssl.SSLEngine engine, + java.nio.channels.SocketChannel fd, boolean connected, boolean incoming, String adapterName) { _instance = instance; + _endpointInfo = endpointInfo; _engine = engine; _fd = fd; - _host = host; _incoming = incoming; _adapterName = adapterName; _state = connected ? StateConnected : StateNeedConnect; @@ -536,7 +537,7 @@ final class TransceiverI implements IceInternal.Transceiver // Additional verification. // _info = Util.populateConnectionInfo(_engine.getSession(), _fd.socket(), _adapterName, _incoming); - _instance.verifyPeer(_info, _fd, _host, _incoming); + _instance.verifyPeer(_info, _fd, _endpointInfo.host, _incoming); if(_instance.networkTraceLevel() >= 1) { @@ -791,9 +792,9 @@ final class TransceiverI implements IceInternal.Transceiver } private Instance _instance; + private SSLEndpointInfo _endpointInfo; private java.nio.channels.SocketChannel _fd; private javax.net.ssl.SSLEngine _engine; - private String _host; private boolean _incoming; private String _adapterName; private int _state; diff --git a/php/lib/.depend b/php/lib/.depend index b20d05bab1a..1fcdb8974dc 100644 --- a/php/lib/.depend +++ b/php/lib/.depend @@ -24,7 +24,7 @@ Ice/Stats.php: $(slicedir)/Ice/Stats.ice $(SLICE2PHP) $(SLICEPARSERLIB) Ice/Process.php: $(slicedir)/Ice/Process.ice $(SLICE2PHP) $(SLICEPARSERLIB) Ice/ProcessF.php: $(slicedir)/Ice/ProcessF.ice $(SLICE2PHP) $(SLICEPARSERLIB) Ice/FacetMap.php: $(slicedir)/Ice/FacetMap.ice $(SLICE2PHP) $(SLICEPARSERLIB) -Ice/Connection.php: $(slicedir)/Ice/Connection.ice $(slicedir)/Ice/ObjectAdapterF.ice $(slicedir)/Ice/Identity.ice $(SLICE2PHP) $(SLICEPARSERLIB) +Ice/Connection.php: $(slicedir)/Ice/Connection.ice $(slicedir)/Ice/ObjectAdapterF.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/Endpoint.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/EndpointF.ice $(SLICE2PHP) $(SLICEPARSERLIB) Ice/ConnectionF.php: $(slicedir)/Ice/ConnectionF.ice $(SLICE2PHP) $(SLICEPARSERLIB) Ice/SliceChecksumDict.php: $(slicedir)/Ice/SliceChecksumDict.ice $(SLICE2PHP) $(SLICEPARSERLIB) Ice/Endpoint.php: $(slicedir)/Ice/Endpoint.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/EndpointF.ice $(SLICE2PHP) $(SLICEPARSERLIB) diff --git a/php/src/IcePHP/.depend b/php/src/IcePHP/.depend index de92e482369..de76f760319 100644 --- a/php/src/IcePHP/.depend +++ b/php/src/IcePHP/.depend @@ -1,10 +1,10 @@ -Communicator$(OBJEXT): Communicator.cpp ./Communicator.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactoryF.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Logger.h ./Properties.h ./Proxy.h ./Types.h ./Operation.h $(ice_cpp_dir)/include/IceUtil/OutputUtil.h ./Util.h $(ice_cpp_dir)/include/IceUtil/Options.h $(ice_cpp_dir)/include/IceUtil/RecMutex.h -Connection$(OBJEXT): Connection.cpp ./Connection.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactoryF.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Util.h -Endpoint$(OBJEXT): Endpoint.cpp ./Endpoint.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactoryF.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Util.h -Init$(OBJEXT): Init.cpp ./Communicator.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactoryF.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Connection.h ./Endpoint.h ./Logger.h ./Operation.h ./Properties.h ./Proxy.h ./Types.h $(ice_cpp_dir)/include/IceUtil/OutputUtil.h ./Util.h -Logger$(OBJEXT): Logger.cpp ./Logger.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactoryF.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Util.h -Operation$(OBJEXT): Operation.cpp ./Operation.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactoryF.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Communicator.h ./Proxy.h ./Types.h $(ice_cpp_dir)/include/IceUtil/OutputUtil.h ./Util.h $(ice_cpp_dir)/include/Slice/PHPUtil.h $(ice_cpp_dir)/include/Slice/Parser.h -Properties$(OBJEXT): Properties.cpp ./Properties.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactoryF.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Util.h -Proxy$(OBJEXT): Proxy.cpp ./Proxy.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactoryF.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Communicator.h ./Types.h ./Operation.h $(ice_cpp_dir)/include/IceUtil/OutputUtil.h ./Connection.h ./Endpoint.h ./Util.h -Types$(OBJEXT): Types.cpp ./Types.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactoryF.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Communicator.h ./Operation.h $(ice_cpp_dir)/include/IceUtil/OutputUtil.h ./Proxy.h ./Util.h $(ice_cpp_dir)/include/IceUtil/InputUtil.h $(ice_cpp_dir)/include/IceUtil/ScopedArray.h $(ice_cpp_dir)/include/Slice/PHPUtil.h $(ice_cpp_dir)/include/Slice/Parser.h -Util$(OBJEXT): Util.cpp ./Util.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactoryF.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h $(ice_cpp_dir)/include/IceUtil/UUID.h $(ice_cpp_dir)/include/Slice/PHPUtil.h $(ice_cpp_dir)/include/Slice/Parser.h +Communicator$(OBJEXT): Communicator.cpp ./Communicator.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Logger.h ./Properties.h ./Proxy.h ./Types.h ./Operation.h $(ice_cpp_dir)/include/IceUtil/OutputUtil.h ./Util.h $(ice_cpp_dir)/include/IceUtil/Options.h $(ice_cpp_dir)/include/IceUtil/RecMutex.h +Connection$(OBJEXT): Connection.cpp ./Connection.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Util.h +Endpoint$(OBJEXT): Endpoint.cpp ./Endpoint.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Util.h +Init$(OBJEXT): Init.cpp ./Communicator.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Connection.h ./Endpoint.h ./Logger.h ./Operation.h ./Properties.h ./Proxy.h ./Types.h $(ice_cpp_dir)/include/IceUtil/OutputUtil.h ./Util.h +Logger$(OBJEXT): Logger.cpp ./Logger.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Util.h +Operation$(OBJEXT): Operation.cpp ./Operation.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Communicator.h ./Proxy.h ./Types.h $(ice_cpp_dir)/include/IceUtil/OutputUtil.h ./Util.h $(ice_cpp_dir)/include/Slice/PHPUtil.h $(ice_cpp_dir)/include/Slice/Parser.h +Properties$(OBJEXT): Properties.cpp ./Properties.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Util.h +Proxy$(OBJEXT): Proxy.cpp ./Proxy.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Communicator.h ./Types.h ./Operation.h $(ice_cpp_dir)/include/IceUtil/OutputUtil.h ./Connection.h ./Endpoint.h ./Util.h +Types$(OBJEXT): Types.cpp ./Types.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h ./Communicator.h ./Operation.h $(ice_cpp_dir)/include/IceUtil/OutputUtil.h ./Proxy.h ./Util.h $(ice_cpp_dir)/include/IceUtil/InputUtil.h $(ice_cpp_dir)/include/IceUtil/ScopedArray.h $(ice_cpp_dir)/include/Slice/PHPUtil.h $(ice_cpp_dir)/include/Slice/Parser.h +Util$(OBJEXT): Util.cpp ./Util.h ./Config.h $(ice_cpp_dir)/include/Ice/Ice.h $(ice_cpp_dir)/include/Ice/Initialize.h $(ice_cpp_dir)/include/Ice/CommunicatorF.h $(ice_cpp_dir)/include/Ice/LocalObjectF.h $(ice_cpp_dir)/include/IceUtil/Shared.h $(ice_cpp_dir)/include/IceUtil/Config.h $(ice_cpp_dir)/include/Ice/Handle.h $(ice_cpp_dir)/include/IceUtil/Handle.h $(ice_cpp_dir)/include/IceUtil/Exception.h $(ice_cpp_dir)/include/Ice/Config.h $(ice_cpp_dir)/include/Ice/ProxyHandle.h $(ice_cpp_dir)/include/Ice/ProxyF.h $(ice_cpp_dir)/include/Ice/ObjectF.h $(ice_cpp_dir)/include/Ice/GCCountMap.h $(ice_cpp_dir)/include/Ice/GCShared.h $(ice_cpp_dir)/include/Ice/Exception.h $(ice_cpp_dir)/include/Ice/LocalObject.h $(ice_cpp_dir)/include/Ice/UndefSysMacros.h $(ice_cpp_dir)/include/Ice/PropertiesF.h $(ice_cpp_dir)/include/Ice/Proxy.h $(ice_cpp_dir)/include/IceUtil/Mutex.h $(ice_cpp_dir)/include/IceUtil/Lock.h $(ice_cpp_dir)/include/IceUtil/ThreadException.h $(ice_cpp_dir)/include/IceUtil/Time.h $(ice_cpp_dir)/include/IceUtil/MutexProtocol.h $(ice_cpp_dir)/include/Ice/ProxyFactoryF.h $(ice_cpp_dir)/include/Ice/ConnectionIF.h $(ice_cpp_dir)/include/Ice/RequestHandlerF.h $(ice_cpp_dir)/include/Ice/EndpointIF.h $(ice_cpp_dir)/include/Ice/EndpointF.h $(ice_cpp_dir)/include/Ice/EndpointTypes.h $(ice_cpp_dir)/include/Ice/ObjectAdapterF.h $(ice_cpp_dir)/include/Ice/ReferenceF.h $(ice_cpp_dir)/include/Ice/OutgoingAsyncF.h $(ice_cpp_dir)/include/Ice/Current.h $(ice_cpp_dir)/include/Ice/ConnectionF.h $(ice_cpp_dir)/include/Ice/Identity.h $(ice_cpp_dir)/include/Ice/StreamF.h $(ice_cpp_dir)/include/Ice/Object.h $(ice_cpp_dir)/include/Ice/IncomingAsyncF.h $(ice_cpp_dir)/include/Ice/InstanceF.h $(ice_cpp_dir)/include/Ice/LoggerF.h $(ice_cpp_dir)/include/Ice/StatsF.h $(ice_cpp_dir)/include/Ice/StringConverter.h $(ice_cpp_dir)/include/Ice/Plugin.h $(ice_cpp_dir)/include/Ice/BuiltinSequences.h $(ice_cpp_dir)/include/IceUtil/Unicode.h $(ice_cpp_dir)/include/Ice/LocalException.h $(ice_cpp_dir)/include/Ice/Properties.h $(ice_cpp_dir)/include/Ice/Outgoing.h $(ice_cpp_dir)/include/IceUtil/Monitor.h $(ice_cpp_dir)/include/IceUtil/Cond.h $(ice_cpp_dir)/include/Ice/BasicStream.h $(ice_cpp_dir)/include/Ice/ObjectFactoryF.h $(ice_cpp_dir)/include/Ice/Buffer.h $(ice_cpp_dir)/include/Ice/Protocol.h $(ice_cpp_dir)/include/Ice/OutgoingAsync.h $(ice_cpp_dir)/include/IceUtil/Timer.h $(ice_cpp_dir)/include/IceUtil/Thread.h $(ice_cpp_dir)/include/Ice/Incoming.h $(ice_cpp_dir)/include/Ice/ServantLocatorF.h $(ice_cpp_dir)/include/Ice/ServantManagerF.h $(ice_cpp_dir)/include/Ice/Direct.h $(ice_cpp_dir)/include/Ice/Logger.h $(ice_cpp_dir)/include/Ice/LoggerUtil.h $(ice_cpp_dir)/include/Ice/Stats.h $(ice_cpp_dir)/include/Ice/Communicator.h $(ice_cpp_dir)/include/Ice/RouterF.h $(ice_cpp_dir)/include/Ice/LocatorF.h $(ice_cpp_dir)/include/Ice/PluginF.h $(ice_cpp_dir)/include/Ice/ImplicitContextF.h $(ice_cpp_dir)/include/Ice/ObjectFactory.h $(ice_cpp_dir)/include/Ice/ObjectAdapter.h $(ice_cpp_dir)/include/Ice/FacetMap.h $(ice_cpp_dir)/include/Ice/Endpoint.h $(ice_cpp_dir)/include/Ice/ServantLocator.h $(ice_cpp_dir)/include/Ice/IncomingAsync.h $(ice_cpp_dir)/include/Ice/Process.h $(ice_cpp_dir)/include/Ice/Application.h $(ice_cpp_dir)/include/Ice/Connection.h $(ice_cpp_dir)/include/Ice/Functional.h $(ice_cpp_dir)/include/IceUtil/Functional.h $(ice_cpp_dir)/include/Ice/Stream.h $(ice_cpp_dir)/include/Ice/ImplicitContext.h $(ice_cpp_dir)/include/Ice/Locator.h $(ice_cpp_dir)/include/Ice/FactoryTableInit.h $(ice_cpp_dir)/include/Ice/FactoryTable.h $(ice_cpp_dir)/include/IceUtil/StaticMutex.h $(ice_cpp_dir)/include/Ice/UserExceptionFactory.h $(ice_cpp_dir)/include/Ice/ProcessF.h $(ice_cpp_dir)/include/Ice/Router.h $(ice_cpp_dir)/include/Ice/DispatchInterceptor.h $(ice_cpp_dir)/include/Ice/IconvStringConverter.h $(ice_cpp_dir)/include/IceUtil/UUID.h $(ice_cpp_dir)/include/Slice/PHPUtil.h $(ice_cpp_dir)/include/Slice/Parser.h diff --git a/py/modules/IcePy/Connection.cpp b/py/modules/IcePy/Connection.cpp index 3bf3e761639..e373f1c1f17 100644 --- a/py/modules/IcePy/Connection.cpp +++ b/py/modules/IcePy/Connection.cpp @@ -11,6 +11,7 @@ # include <IceUtil/Config.h> #endif #include <Connection.h> +#include <ConnectionInfo.h> #include <ObjectAdapter.h> #include <Proxy.h> #include <Util.h> @@ -281,6 +282,25 @@ connectionToString(ConnectionObject* self) return createString(str); } +#ifdef WIN32 +extern "C" +#endif +static PyObject* +connectionGetInfo(ConnectionObject* self) +{ + assert(self->connection); + try + { + Ice::ConnectionInfoPtr info = (*self->connection)->getInfo(); + return createConnectionInfo(info); + } + catch(const Ice::Exception& ex) + { + setPythonException(ex); + return 0; + } +} + static PyMethodDef ConnectionMethods[] = { { STRCAST("close"), reinterpret_cast<PyCFunction>(connectionClose), METH_VARARGS, @@ -299,6 +319,8 @@ static PyMethodDef ConnectionMethods[] = PyDoc_STR(STRCAST("timeout() -> int")) }, { STRCAST("toString"), reinterpret_cast<PyCFunction>(connectionToString), METH_NOARGS, PyDoc_STR(STRCAST("toString() -> string")) }, + { STRCAST("getInfo"), reinterpret_cast<PyCFunction>(connectionGetInfo), METH_NOARGS, + PyDoc_STR(STRCAST("getInfo() -> Ice.ConnectionInfo")) }, { 0, 0 } /* sentinel */ }; diff --git a/py/modules/IcePy/ConnectionInfo.cpp b/py/modules/IcePy/ConnectionInfo.cpp new file mode 100644 index 00000000000..5220728a5ea --- /dev/null +++ b/py/modules/IcePy/ConnectionInfo.cpp @@ -0,0 +1,363 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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. +// +// ********************************************************************** + +#ifdef _WIN32 +# include <IceUtil/Config.h> +#endif +#include <ConnectionInfo.h> +#include <EndpointInfo.h> +#include <Util.h> +#include <structmember.h> + +using namespace std; +using namespace IcePy; + +namespace IcePy +{ + +struct ConnectionInfoObject +{ + PyObject_HEAD + + // Ice::ConnectionInfo + PyObject* endpoint; + + // Ice::TcpConnectionInfo + // Ice::UdpConnectionInfo + PyObject* localAddress; + int localPort; + PyObject* remoteAddress; + int remotePort; + + // Ice::UdpConnectionInfo + PyObject* mcastAddress; + int mcastPort; + + Ice::ConnectionInfoPtr* connectionInfo; +}; + +extern PyTypeObject TcpConnectionInfoType; +extern PyTypeObject UdpConnectionInfoType; + +} + +#ifdef WIN32 +extern "C" +#endif +static ConnectionInfoObject* +connectionInfoNew(PyObject* /*arg*/) +{ + PyErr_Format(PyExc_RuntimeError, STRCAST("An connection info cannot be created directly")); + return 0; +} + +#ifdef WIN32 +extern "C" +#endif +static void +connectionInfoDealloc(ConnectionInfoObject* self) +{ + if(Ice::TcpConnectionInfoPtr::dynamicCast(*self->connectionInfo)) + { + Py_DECREF(self->localAddress); + Py_DECREF(self->remoteAddress); + } + else if(Ice::UdpConnectionInfoPtr::dynamicCast(*self->connectionInfo)) + { + Py_DECREF(self->localAddress); + Py_DECREF(self->remoteAddress); + Py_DECREF(self->mcastAddress); + } + + delete self->connectionInfo; + Py_DECREF(self->endpoint); + PyObject_Del(self); +} + +static PyMemberDef ConnectionInfoMembers[] = +{ + { STRCAST("endpoint"), T_OBJECT, offsetof(ConnectionInfoObject, endpoint), READONLY, + PyDoc_STR(STRCAST("endpoint used to establish the connection")) }, + { 0, 0 } /* sentinel */ +}; + +static PyMemberDef TcpConnectionInfoMembers[] = +{ + { STRCAST("localAddress"), T_OBJECT, offsetof(ConnectionInfoObject, localAddress), READONLY, + PyDoc_STR(STRCAST("local address")) }, + { STRCAST("localPort"), T_INT, offsetof(ConnectionInfoObject, localPort), READONLY, + PyDoc_STR(STRCAST("local port")) }, + { STRCAST("remoteAddress"), T_OBJECT, offsetof(ConnectionInfoObject, remoteAddress), READONLY, + PyDoc_STR(STRCAST("remote address")) }, + { STRCAST("remotePort"), T_INT, offsetof(ConnectionInfoObject, remotePort), READONLY, + PyDoc_STR(STRCAST("remote port")) }, + { 0, 0 } /* sentinel */ +}; + +static PyMemberDef UdpConnectionInfoMembers[] = +{ + { STRCAST("localAddress"), T_OBJECT, offsetof(ConnectionInfoObject, localAddress), READONLY, + PyDoc_STR(STRCAST("local address")) }, + { STRCAST("localPort"), T_INT, offsetof(ConnectionInfoObject, localPort), READONLY, + PyDoc_STR(STRCAST("local port")) }, + { STRCAST("remoteAddress"), T_OBJECT, offsetof(ConnectionInfoObject, remoteAddress), READONLY, + PyDoc_STR(STRCAST("remote address")) }, + { STRCAST("remotePort"), T_INT, offsetof(ConnectionInfoObject, remotePort), READONLY, + PyDoc_STR(STRCAST("remote port")) }, + { STRCAST("mcastAddress"), T_OBJECT, offsetof(ConnectionInfoObject, mcastAddress), READONLY, + PyDoc_STR(STRCAST("multicast address")) }, + { STRCAST("mcastPort"), T_INT, offsetof(ConnectionInfoObject, mcastPort), READONLY, + PyDoc_STR(STRCAST("multicast port")) }, + { 0, 0 } /* sentinel */ +}; + +namespace IcePy +{ + +PyTypeObject ConnectionInfoType = +{ + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyObject_HEAD_INIT(0) + 0, /* ob_size */ + STRCAST("IcePy.ConnectionInfo"), /* tp_name */ + sizeof(ConnectionInfoObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + /* methods */ + (destructor)connectionInfoDealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_compare */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + 0, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ + 0, /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + ConnectionInfoMembers, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + (newfunc)connectionInfoNew, /* tp_new */ + 0, /* tp_free */ + 0, /* tp_is_gc */ +}; + +PyTypeObject TcpConnectionInfoType = +{ + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyObject_HEAD_INIT(0) + 0, /* ob_size */ + STRCAST("IcePy.TcpConnectionInfo"),/* tp_name */ + sizeof(ConnectionInfoObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + /* methods */ + (destructor)connectionInfoDealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_compare */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + 0, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ + 0, /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + TcpConnectionInfoMembers, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + (newfunc)connectionInfoNew, /* tp_new */ + 0, /* tp_free */ + 0, /* tp_is_gc */ +}; + +PyTypeObject UdpConnectionInfoType = +{ + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyObject_HEAD_INIT(0) + 0, /* ob_size */ + STRCAST("IcePy.UdpConnectionInfo"),/* tp_name */ + sizeof(ConnectionInfoObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + /* methods */ + (destructor)connectionInfoDealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_compare */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + 0, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ + 0, /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + UdpConnectionInfoMembers, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + (newfunc)connectionInfoNew, /* tp_new */ + 0, /* tp_free */ + 0, /* tp_is_gc */ +}; + +} + +bool +IcePy::initConnectionInfo(PyObject* module) +{ + if(PyType_Ready(&ConnectionInfoType) < 0) + { + return false; + } + PyTypeObject* type = &ConnectionInfoType; // Necessary to prevent GCC's strict-alias warnings. + if(PyModule_AddObject(module, STRCAST("ConnectionInfo"), reinterpret_cast<PyObject*>(type)) < 0) + { + return false; + } + + TcpConnectionInfoType.tp_base = &ConnectionInfoType; // Force inheritance from ConnectionInfoType. + if(PyType_Ready(&TcpConnectionInfoType) < 0) + { + return false; + } + type = &TcpConnectionInfoType; // Necessary to prevent GCC's strict-alias warnings. + if(PyModule_AddObject(module, STRCAST("TcpConnectionInfo"), reinterpret_cast<PyObject*>(type)) < 0) + { + return false; + } + + UdpConnectionInfoType.tp_base = &ConnectionInfoType; // Force inheritance from ConnectionType. + if(PyType_Ready(&UdpConnectionInfoType) < 0) + { + return false; + } + type = &UdpConnectionInfoType; // Necessary to prevent GCC's strict-alias warnings. + if(PyModule_AddObject(module, STRCAST("UdpConnectionInfo"), reinterpret_cast<PyObject*>(type)) < 0) + { + return false; + } + + return true; +} + +Ice::ConnectionInfoPtr +IcePy::getConnectionInfo(PyObject* obj) +{ + assert(PyObject_IsInstance(obj, reinterpret_cast<PyObject*>(&ConnectionInfoType))); + ConnectionInfoObject* eobj = reinterpret_cast<ConnectionInfoObject*>(obj); + return *eobj->connectionInfo; +} + +PyObject* +IcePy::createConnectionInfo(const Ice::ConnectionInfoPtr& connectionInfo) +{ + ConnectionInfoObject* obj; + if(Ice::TcpConnectionInfoPtr::dynamicCast(connectionInfo)) + { + obj = PyObject_New(ConnectionInfoObject, &TcpConnectionInfoType); + if(!obj) + { + return 0; + } + + Ice::TcpConnectionInfoPtr tcpConnectionInfo = Ice::TcpConnectionInfoPtr::dynamicCast(connectionInfo); + obj->localAddress = IcePy::createString(tcpConnectionInfo->localAddress); + obj->localPort = static_cast<int>(tcpConnectionInfo->localPort); + obj->remoteAddress = IcePy::createString(tcpConnectionInfo->remoteAddress); + obj->remotePort = static_cast<int>(tcpConnectionInfo->remotePort); + } + else if(Ice::UdpConnectionInfoPtr::dynamicCast(connectionInfo)) + { + obj = PyObject_New(ConnectionInfoObject, &UdpConnectionInfoType); + if(!obj) + { + return 0; + } + + Ice::UdpConnectionInfoPtr udpConnectionInfo = Ice::UdpConnectionInfoPtr::dynamicCast(connectionInfo); + obj->localAddress = IcePy::createString(udpConnectionInfo->localAddress); + obj->localPort = static_cast<int>(udpConnectionInfo->localPort); + obj->remoteAddress = IcePy::createString(udpConnectionInfo->remoteAddress); + obj->remotePort = static_cast<int>(udpConnectionInfo->remotePort); + obj->mcastAddress = IcePy::createString(udpConnectionInfo->mcastAddress); + obj->mcastPort = static_cast<int>(udpConnectionInfo->mcastPort); + } + else + { + obj = PyObject_New(ConnectionInfoObject, &ConnectionInfoType); + if(!obj) + { + return 0; + } + } + + obj->connectionInfo = new Ice::ConnectionInfoPtr(connectionInfo); + Ice::EndpointInfoPtr info = connectionInfo->endpoint; + obj->endpoint = IcePy::createEndpointInfo(connectionInfo->endpoint); + + return (PyObject*)obj; +} diff --git a/py/modules/IcePy/ConnectionInfo.h b/py/modules/IcePy/ConnectionInfo.h new file mode 100644 index 00000000000..db30b23345d --- /dev/null +++ b/py/modules/IcePy/ConnectionInfo.h @@ -0,0 +1,28 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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. +// +// ********************************************************************** + +#ifndef ICEPY_CONNECTION_INFO_H +#define ICEPY_CONNECTION_INFO_H + +#include <Config.h> +#include <Ice/Connection.h> + +namespace IcePy +{ + +extern PyTypeObject ConnectionInfoType; + +bool initConnectionInfo(PyObject*); + +PyObject* createConnectionInfo(const Ice::ConnectionInfoPtr&); +Ice::ConnectionInfoPtr getConnectionInfo(PyObject*); + +} + +#endif diff --git a/py/modules/IcePy/Endpoint.cpp b/py/modules/IcePy/Endpoint.cpp index 3dee6fae2d4..1c9eefd52ad 100644 --- a/py/modules/IcePy/Endpoint.cpp +++ b/py/modules/IcePy/Endpoint.cpp @@ -11,6 +11,7 @@ # include <IceUtil/Config.h> #endif #include <Endpoint.h> +#include <EndpointInfo.h> #include <Util.h> using namespace std; @@ -75,10 +76,31 @@ endpointRepr(EndpointObject* self) return endpointToString(self); } +#ifdef WIN32 +extern "C" +#endif +static PyObject* +endpointGetInfo(EndpointObject* self) +{ + assert(self->endpoint); + try + { + Ice::EndpointInfoPtr info = (*self->endpoint)->getInfo(); + return createEndpointInfo(info); + } + catch(const Ice::Exception& ex) + { + setPythonException(ex); + return 0; + } +} + static PyMethodDef EndpointMethods[] = { { STRCAST("toString"), reinterpret_cast<PyCFunction>(endpointToString), METH_NOARGS, PyDoc_STR(STRCAST("toString() -> string")) }, + { STRCAST("getInfo"), reinterpret_cast<PyCFunction>(endpointGetInfo), METH_NOARGS, + PyDoc_STR(STRCAST("getInfo() -> Ice.EndpointInfo")) }, { 0, 0 } /* sentinel */ }; @@ -91,7 +113,7 @@ PyTypeObject EndpointType = * to be portable to Windows without using C++. */ PyObject_HEAD_INIT(0) 0, /* ob_size */ - STRCAST("Ice.Endpoint"), /* tp_name */ + STRCAST("IcePy.Endpoint"), /* tp_name */ sizeof(EndpointObject), /* tp_basicsize */ 0, /* tp_itemsize */ /* methods */ diff --git a/py/modules/IcePy/EndpointInfo.cpp b/py/modules/IcePy/EndpointInfo.cpp new file mode 100644 index 00000000000..52ebd1175fc --- /dev/null +++ b/py/modules/IcePy/EndpointInfo.cpp @@ -0,0 +1,534 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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. +// +// ********************************************************************** + +#ifdef _WIN32 +# include <IceUtil/Config.h> +#endif +#include <EndpointInfo.h> +#include <Util.h> +#include <structmember.h> + +using namespace std; +using namespace IcePy; + +namespace IcePy +{ + +struct EndpointInfoObject +{ + PyObject_HEAD + + // Ice::EndpointInfo + int timeout; + PyObject* compress; + + // Ice::TcpEndpointInfo + // Ice::UdpEndpointInfo + PyObject* host; + int port; + + // Ice::UdpEndpointInfo + unsigned char protocolMajor; + unsigned char protocolMinor; + unsigned char encodingMajor; + unsigned char encodingMinor; + PyObject* mcastInterface; + int mcastTtl; + + // Ice::OpaqueEndpointInfo + PyObject* rawBytes; + + Ice::EndpointInfoPtr* endpointInfo; +}; + +extern PyTypeObject TcpEndpointInfoType; +extern PyTypeObject UdpEndpointInfoType; +extern PyTypeObject OpaqueEndpointInfoType; + +} + +#ifdef WIN32 +extern "C" +#endif +static EndpointInfoObject* +endpointInfoNew(PyObject* /*arg*/) +{ + PyErr_Format(PyExc_RuntimeError, STRCAST("An endpoint info cannot be created directly")); + return 0; +} + +#ifdef WIN32 +extern "C" +#endif +static void +endpointInfoDealloc(EndpointInfoObject* self) +{ + if(Ice::TcpEndpointInfoPtr::dynamicCast(*self->endpointInfo)) + { + Py_DECREF(self->host); + } + else if(Ice::UdpEndpointInfoPtr::dynamicCast(*self->endpointInfo)) + { + Py_DECREF(self->host); + Py_DECREF(self->mcastInterface); + } + else if(Ice::OpaqueEndpointInfoPtr::dynamicCast(*self->endpointInfo)) + { + Py_DECREF(self->rawBytes); + } + + delete self->endpointInfo; + Py_DECREF(self->compress); + PyObject_Del(self); +} + +// +// Ice::EndpointInfo::type +// +#ifdef WIN32 +extern "C" +#endif +static PyObject* +endpointInfoType(EndpointInfoObject* self) +{ + assert(self->endpointInfo); + try + { + Ice::Short type = (*self->endpointInfo)->type(); + return PyInt_FromLong(type); + } + catch(const Ice::Exception& ex) + { + setPythonException(ex); + return 0; + } +} + +// +// Ice::EndpointInfo::datagram +// +#ifdef WIN32 +extern "C" +#endif +static PyObject* +endpointInfoDatagram(EndpointInfoObject* self) +{ + assert(self->endpointInfo); + PyObject* b; + try + { + b = (*self->endpointInfo)->datagram() ? getTrue() : getFalse(); + } + catch(const Ice::Exception& ex) + { + setPythonException(ex); + return 0; + } + + Py_INCREF(b); + return b; +} + +// +// Ice::EndpointInfo::datagram +// +#ifdef WIN32 +extern "C" +#endif +static PyObject* +endpointInfoSecure(EndpointInfoObject* self) +{ + assert(self->endpointInfo); + PyObject* b; + try + { + b = (*self->endpointInfo)->secure() ? getTrue() : getFalse(); + } + catch(const Ice::Exception& ex) + { + setPythonException(ex); + return 0; + } + + Py_INCREF(b); + return b; +} + +static PyMethodDef EndpointInfoMethods[] = +{ + { STRCAST("type"), reinterpret_cast<PyCFunction>(endpointInfoType), METH_NOARGS, + PyDoc_STR(STRCAST("type() -> int")) }, + { STRCAST("datagram"), reinterpret_cast<PyCFunction>(endpointInfoDatagram), METH_NOARGS, + PyDoc_STR(STRCAST("datagram() -> bool")) }, + { STRCAST("secure"), reinterpret_cast<PyCFunction>(endpointInfoSecure), METH_NOARGS, + PyDoc_STR(STRCAST("secure() -> bool")) }, + { 0, 0 } /* sentinel */ +}; + +static PyMemberDef EndpointInfoMembers[] = +{ + { STRCAST("timeout"), T_INT, offsetof(EndpointInfoObject, timeout), READONLY, + PyDoc_STR(STRCAST("timeout in milliseconds")) }, + { STRCAST("compress"), T_OBJECT, offsetof(EndpointInfoObject, compress), READONLY, + PyDoc_STR(STRCAST("compression status")) }, + { 0, 0 } /* sentinel */ +}; + +static PyMemberDef TcpEndpointInfoMembers[] = +{ + { STRCAST("host"), T_OBJECT, offsetof(EndpointInfoObject, host), READONLY, + PyDoc_STR(STRCAST("host name or ip address")) }, + { STRCAST("port"), T_INT, offsetof(EndpointInfoObject, port), READONLY, + PyDoc_STR(STRCAST("tcp port number")) }, + { 0, 0 } /* sentinel */ +}; + +static PyMemberDef UdpEndpointInfoMembers[] = +{ + { STRCAST("host"), T_OBJECT, offsetof(EndpointInfoObject, host), READONLY, + PyDoc_STR(STRCAST("host name or ip address")) }, + { STRCAST("port"), T_INT, offsetof(EndpointInfoObject, port), READONLY, + PyDoc_STR(STRCAST("udp port number")) }, + { STRCAST("protocolMajor"), T_BYTE, offsetof(EndpointInfoObject, protocolMajor), READONLY, + PyDoc_STR(STRCAST("protocol major version")) }, + { STRCAST("protocolMinor"), T_BYTE, offsetof(EndpointInfoObject, protocolMinor), READONLY, + PyDoc_STR(STRCAST("protocol minor version")) }, + { STRCAST("encodingMajor"), T_BYTE, offsetof(EndpointInfoObject, encodingMajor), READONLY, + PyDoc_STR(STRCAST("encoding major version")) }, + { STRCAST("encodingMinor"), T_BYTE, offsetof(EndpointInfoObject, encodingMinor), READONLY, + PyDoc_STR(STRCAST("encoding minor version")) }, + { STRCAST("mcastInterface"), T_OBJECT, offsetof(EndpointInfoObject, mcastInterface), READONLY, + PyDoc_STR(STRCAST("multicast interface")) }, + { STRCAST("mcastTtl"), T_INT, offsetof(EndpointInfoObject, mcastTtl), READONLY, + PyDoc_STR(STRCAST("mulitcast time-to-live")) }, + { 0, 0 } /* sentinel */ +}; + +static PyMemberDef OpaqueEndpointInfoMembers[] = +{ + { STRCAST("rawBytes"), T_OBJECT, offsetof(EndpointInfoObject, rawBytes), READONLY, + PyDoc_STR(STRCAST("raw encoding")) }, + { 0, 0 } /* sentinel */ +}; + +namespace IcePy +{ + +PyTypeObject EndpointInfoType = +{ + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyObject_HEAD_INIT(0) + 0, /* ob_size */ + STRCAST("IcePy.EndpointInfo"), /* tp_name */ + sizeof(EndpointInfoObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + /* methods */ + (destructor)endpointInfoDealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_compare */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + 0, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ + 0, /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + EndpointInfoMethods, /* tp_methods */ + EndpointInfoMembers, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + (newfunc)endpointInfoNew, /* tp_new */ + 0, /* tp_free */ + 0, /* tp_is_gc */ +}; + +PyTypeObject TcpEndpointInfoType = +{ + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyObject_HEAD_INIT(0) + 0, /* ob_size */ + STRCAST("IcePy.TcpEndpointInfo"),/* tp_name */ + sizeof(EndpointInfoObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + /* methods */ + (destructor)endpointInfoDealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_compare */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + 0, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ + 0, /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + TcpEndpointInfoMembers, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + (newfunc)endpointInfoNew, /* tp_new */ + 0, /* tp_free */ + 0, /* tp_is_gc */ +}; + +PyTypeObject UdpEndpointInfoType = +{ + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyObject_HEAD_INIT(0) + 0, /* ob_size */ + STRCAST("IcePy.UdpEndpointInfo"),/* tp_name */ + sizeof(EndpointInfoObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + /* methods */ + (destructor)endpointInfoDealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_compare */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + 0, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ + 0, /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + UdpEndpointInfoMembers, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + (newfunc)endpointInfoNew, /* tp_new */ + 0, /* tp_free */ + 0, /* tp_is_gc */ +}; + +PyTypeObject OpaqueEndpointInfoType = +{ + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyObject_HEAD_INIT(0) + 0, /* ob_size */ + STRCAST("IcePy.OpaqueEndpointInfo"),/* tp_name */ + sizeof(EndpointInfoObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + /* methods */ + (destructor)endpointInfoDealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_compare */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + 0, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ + 0, /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + OpaqueEndpointInfoMembers, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + (newfunc)endpointInfoNew, /* tp_new */ + 0, /* tp_free */ + 0, /* tp_is_gc */ +}; + +} + +bool +IcePy::initEndpointInfo(PyObject* module) +{ + if(PyType_Ready(&EndpointInfoType) < 0) + { + return false; + } + PyTypeObject* type = &EndpointInfoType; // Necessary to prevent GCC's strict-alias warnings. + if(PyModule_AddObject(module, STRCAST("EndpointInfo"), reinterpret_cast<PyObject*>(type)) < 0) + { + return false; + } + + TcpEndpointInfoType.tp_base = &EndpointInfoType; // Force inheritance from EndpointInfoType. + if(PyType_Ready(&TcpEndpointInfoType) < 0) + { + return false; + } + type = &TcpEndpointInfoType; // Necessary to prevent GCC's strict-alias warnings. + if(PyModule_AddObject(module, STRCAST("TcpEndpointInfo"), reinterpret_cast<PyObject*>(type)) < 0) + { + return false; + } + + UdpEndpointInfoType.tp_base = &EndpointInfoType; // Force inheritance from EndpointType. + if(PyType_Ready(&UdpEndpointInfoType) < 0) + { + return false; + } + type = &UdpEndpointInfoType; // Necessary to prevent GCC's strict-alias warnings. + if(PyModule_AddObject(module, STRCAST("UdpEndpointInfo"), reinterpret_cast<PyObject*>(type)) < 0) + { + return false; + } + + OpaqueEndpointInfoType.tp_base = &EndpointInfoType; // Force inheritance from EndpointType. + if(PyType_Ready(&OpaqueEndpointInfoType) < 0) + { + return false; + } + type = &OpaqueEndpointInfoType; // Necessary to prevent GCC's strict-alias warnings. + if(PyModule_AddObject(module, STRCAST("OpaqueEndpointInfo"), reinterpret_cast<PyObject*>(type)) < 0) + { + return false; + } + + return true; +} + +Ice::EndpointInfoPtr +IcePy::getEndpointInfo(PyObject* obj) +{ + assert(PyObject_IsInstance(obj, reinterpret_cast<PyObject*>(&EndpointInfoType))); + EndpointInfoObject* eobj = reinterpret_cast<EndpointInfoObject*>(obj); + return *eobj->endpointInfo; +} + +PyObject* +IcePy::createEndpointInfo(const Ice::EndpointInfoPtr& endpointInfo) +{ + EndpointInfoObject* obj; + if(Ice::TcpEndpointInfoPtr::dynamicCast(endpointInfo)) + { + obj = PyObject_New(EndpointInfoObject, &TcpEndpointInfoType); + if(!obj) + { + return 0; + } + + Ice::TcpEndpointInfoPtr tcpEndpointInfo = Ice::TcpEndpointInfoPtr::dynamicCast(endpointInfo); + obj->host = IcePy::createString(tcpEndpointInfo->host); + obj->port = static_cast<int>(tcpEndpointInfo->port); + } + else if(Ice::UdpEndpointInfoPtr::dynamicCast(endpointInfo)) + { + obj = PyObject_New(EndpointInfoObject, &UdpEndpointInfoType); + if(!obj) + { + return 0; + } + + Ice::UdpEndpointInfoPtr udpEndpointInfo = Ice::UdpEndpointInfoPtr::dynamicCast(endpointInfo); + obj->host = IcePy::createString(udpEndpointInfo->host); + obj->port = static_cast<int>(udpEndpointInfo->port); + obj->protocolMajor = static_cast<unsigned char>(udpEndpointInfo->protocolMajor); + obj->protocolMinor = static_cast<unsigned char>(udpEndpointInfo->protocolMinor); + obj->encodingMajor = static_cast<unsigned char>(udpEndpointInfo->encodingMajor); + obj->encodingMinor = static_cast<unsigned char>(udpEndpointInfo->encodingMinor); + obj->mcastInterface = IcePy::createString(udpEndpointInfo->mcastInterface); + obj->mcastTtl = static_cast<int>(udpEndpointInfo->mcastTtl); + } + else if(Ice::OpaqueEndpointInfoPtr::dynamicCast(endpointInfo)) + { + obj = PyObject_New(EndpointInfoObject, &OpaqueEndpointInfoType); + if(!obj) + { + return 0; + } + + Ice::OpaqueEndpointInfoPtr opaqueEndpointInfo = Ice::OpaqueEndpointInfoPtr::dynamicCast(endpointInfo); + Ice::ByteSeq& b = opaqueEndpointInfo->rawBytes; + obj->rawBytes = PyString_FromStringAndSize(reinterpret_cast<const char*>(&b[0]), static_cast<int>(b.size())); + } + else + { + obj = PyObject_New(EndpointInfoObject, &EndpointInfoType); + if(!obj) + { + return 0; + } + } + + obj->endpointInfo = new Ice::EndpointInfoPtr(endpointInfo); + obj->timeout = static_cast<int>(endpointInfo->timeout); + obj->compress = endpointInfo->compress ? getTrue() : getFalse(); + + return (PyObject*)obj; +} diff --git a/py/modules/IcePy/EndpointInfo.h b/py/modules/IcePy/EndpointInfo.h new file mode 100644 index 00000000000..d769097eb66 --- /dev/null +++ b/py/modules/IcePy/EndpointInfo.h @@ -0,0 +1,28 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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. +// +// ********************************************************************** + +#ifndef ICEPY_ENDPOINT_INFO_H +#define ICEPY_ENDPOINT_INFO_H + +#include <Config.h> +#include <Ice/Endpoint.h> + +namespace IcePy +{ + +extern PyTypeObject EndpointInfoType; + +bool initEndpointInfo(PyObject*); + +PyObject* createEndpointInfo(const Ice::EndpointInfoPtr&); +Ice::EndpointInfoPtr getEndpointInfo(PyObject*); + +} + +#endif diff --git a/py/modules/IcePy/Init.cpp b/py/modules/IcePy/Init.cpp index 7dd2bf3329c..209a8e59c74 100644 --- a/py/modules/IcePy/Init.cpp +++ b/py/modules/IcePy/Init.cpp @@ -12,8 +12,10 @@ #endif #include <Communicator.h> #include <Connection.h> +#include <ConnectionInfo.h> #include <Current.h> #include <Endpoint.h> +#include <EndpointInfo.h> #include <ImplicitContext.h> #include <Logger.h> #include <ObjectAdapter.h> @@ -131,6 +133,10 @@ initIcePy(void) { return; } + if(!initConnectionInfo(module)) + { + return; + } if(!initImplicitContext(module)) { return; @@ -139,4 +145,8 @@ initIcePy(void) { return; } + if(!initEndpointInfo(module)) + { + return; + } } diff --git a/py/modules/IcePy/Makefile b/py/modules/IcePy/Makefile index 477530247cb..88f92ebba34 100644 --- a/py/modules/IcePy/Makefile +++ b/py/modules/IcePy/Makefile @@ -17,8 +17,10 @@ TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(li OBJS = Communicator.o \ Connection.o \ + ConnectionInfo.o \ Current.o \ Endpoint.o \ + EndpointInfo.o \ ImplicitContext.o \ Init.o \ Logger.o \ diff --git a/py/modules/IcePy/Makefile.mak b/py/modules/IcePy/Makefile.mak index 5617b4c8725..69e431522db 100644 --- a/py/modules/IcePy/Makefile.mak +++ b/py/modules/IcePy/Makefile.mak @@ -16,8 +16,10 @@ TARGETS = $(LIBNAME) $(DLLNAME) OBJS = Communicator.obj \
Connection.obj \
+ ConnectionInfo.obj \
Current.obj \
Endpoint.obj \
+ EndpointInfo.obj \
ImplicitContext.obj \
Init.obj \
Logger.obj \
diff --git a/py/python/Ice.py b/py/python/Ice.py index 39ca9d6ef50..872b37dbf55 100644 --- a/py/python/Ice.py +++ b/py/python/Ice.py @@ -250,18 +250,29 @@ import Ice_ObjectFactory_ice import Ice_Properties_ice import Ice_Router_ice import Ice_ServantLocator_ice +import Ice_Connection_ice # # Replace EndpointInfo with our implementation. # -#del EndpointInfo -#Endpoint = IcePy.EndpointInfo -#del TcpEndpointInfo -#TcpEndpointInfo = IcePy.TcpEndpointInfo -#del UdpEndpointInfo -#UdpEndpointInfo = IcePy.UdpEndpointInfo -#del OpaqueEndpointInfo -#OpaqueEndpointInfo = IcePy.OpaqueEndpointInfo +del EndpointInfo +EndpointInfo = IcePy.EndpointInfo +del TcpEndpointInfo +TcpEndpointInfo = IcePy.TcpEndpointInfo +del UdpEndpointInfo +UdpEndpointInfo = IcePy.UdpEndpointInfo +del OpaqueEndpointInfo +OpaqueEndpointInfo = IcePy.OpaqueEndpointInfo + +# +# Replace ConnectionInfo with our implementation. +# +del ConnectionInfo +ConnectionInfo = IcePy.ConnectionInfo +del TcpConnectionInfo +TcpConnectionInfo = IcePy.TcpConnectionInfo +del UdpConnectionInfo +UdpConnectionInfo = IcePy.UdpConnectionInfo class ThreadNotification(object): '''Base class for thread notification callbacks. A subclass must diff --git a/py/test/Ice/proxy/AllTests.py b/py/test/Ice/proxy/AllTests.py index 4402a7e49b7..fb4d47b847e 100644 --- a/py/test/Ice/proxy/AllTests.py +++ b/py/test/Ice/proxy/AllTests.py @@ -609,29 +609,30 @@ def allTests(communicator, collocated): print "ok" - #print "testing endpoint information...", - - #p1 = communicator.stringToProxy("test -t:tcp -h tcphost -p 10000 -t 1200 -z:udp -h udphost -p 10001 --interface eth0 --ttl 5:opaque -t 100 -v ABCD"); - #endps = p1.ice_getEndpoints(); - - #test(isinstance(endps[0], Ice.TcpEndpoint)); - #tcpEndpoint = endps[0]; - #test(tcpEndpoint.host() == "tcphost"); - #test(tcpEndpoint.port() == 10000); - #test(tcpEndpoint.timeout() == 1200); - #test(tcpEndpoint.compress()); - - #test(isinstance(endps[1], Ice.UdpEndpoint)); - #udpEndpoint = endps[1]; - #test(udpEndpoint.host() == "udphost"); - #test(udpEndpoint.port() == 10001); - #test(udpEndpoint.mcastInterface() == "eth0"); - #test(udpEndpoint.mcastTtl() == 5); - #test(udpEndpoint.timeout() == -1); - #test(not udpEndpoint.compress()); - - #test(isinstance(endps[2], Ice.OpaqueEndpoint)); - - #print "ok" + print "testing endpoint information...", + + p1 = communicator.stringToProxy("test -t:tcp -h tcphost -p 10000 -t 1200 -z:udp -h udphost -p 10001 --interface eth0 --ttl 5:opaque -t 100 -v ABCD"); + endps = p1.ice_getEndpoints(); + + info = endps[0].getInfo() + test(isinstance(info, Ice.TcpEndpointInfo)); + test(info.host == "tcphost"); + test(info.port == 10000); + test(info.timeout == 1200); + test(info.compress); + + info = endps[1].getInfo() + test(isinstance(info, Ice.UdpEndpointInfo)); + test(info.host == "udphost"); + test(info.port == 10001); + test(info.mcastInterface == "eth0"); + test(info.mcastTtl == 5); + test(info.timeout == -1); + test(not info.compress); + + info = endps[2].getInfo() + test(isinstance(info, Ice.OpaqueEndpointInfo)); + + print "ok" return cl diff --git a/slice/Ice/EndpointF.ice b/slice/Ice/EndpointF.ice index a4181126f11..e11c0eb70b9 100644 --- a/slice/Ice/EndpointF.ice +++ b/slice/Ice/EndpointF.ice @@ -15,8 +15,9 @@ module Ice { +local class TcpEndpointInfo; +local class UdpEndpointInfo; local interface Endpoint; - local sequence<Endpoint> EndpointSeq; }; diff --git a/slice/IceSSL/EndpointInfo.ice b/slice/IceSSL/EndpointInfo.ice index 7408105ea98..47b5cb1aad4 100644 --- a/slice/IceSSL/EndpointInfo.ice +++ b/slice/IceSSL/EndpointInfo.ice @@ -25,7 +25,7 @@ module IceSSL * Provides access to the address details of an SSL endpoint. * **/ -["cpp:virtual"] local class SSLEndpointInfo extends Ice::EndpointInfo +local class SSLEndpointInfo extends Ice::EndpointInfo { /** * |