diff options
author | Mark Spruiell <mes@zeroc.com> | 2002-02-01 16:58:44 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2002-02-01 16:58:44 +0000 |
commit | 01532cd1240a67f1ea4f82916c1a45ca6585912a (patch) | |
tree | cfcc1e9db38fe2a53108e51e6ed19e01116bc5ce /cpp/src/Ice/Endpoint.cpp | |
parent | Updated to put proper exception in place for the byteSeqTo* routines. (diff) | |
download | ice-01532cd1240a67f1ea4f82916c1a45ca6585912a.tar.bz2 ice-01532cd1240a67f1ea4f82916c1a45ca6585912a.tar.xz ice-01532cd1240a67f1ea4f82916c1a45ca6585912a.zip |
fixing bug with unknown endpoint types
Diffstat (limited to 'cpp/src/Ice/Endpoint.cpp')
-rw-r--r-- | cpp/src/Ice/Endpoint.cpp | 64 |
1 files changed, 57 insertions, 7 deletions
diff --git a/cpp/src/Ice/Endpoint.cpp b/cpp/src/Ice/Endpoint.cpp index 8f748c9299a..71c6b6b94fc 100644 --- a/cpp/src/Ice/Endpoint.cpp +++ b/cpp/src/Ice/Endpoint.cpp @@ -110,23 +110,29 @@ IceInternal::Endpoint::streamRead(BasicStream* s, EndpointPtr& v) default: { - v = new UnknownEndpoint(s); + v = new UnknownEndpoint(type, s); break; } } } -IceInternal::UnknownEndpoint::UnknownEndpoint(BasicStream* s) : - _instance(s->instance()) +IceInternal::UnknownEndpoint::UnknownEndpoint(Short type, BasicStream* s) : + _instance(s->instance()), + _type(type) { - s->read(const_cast<vector<Byte>&>(_rawBytes)); + s->startReadEncaps(); + Int sz = s->getReadEncapsSize(); + s->readBlob(const_cast<vector<Byte>&>(_rawBytes), sz); + s->endReadEncaps(); } void IceInternal::UnknownEndpoint::streamWrite(BasicStream* s) const { - s->write(UnknownEndpointType); - s->write(_rawBytes); + s->write(_type); + s->startWriteEncaps(); + s->writeBlob(_rawBytes); + s->endWriteEncaps(); } string @@ -138,7 +144,7 @@ IceInternal::UnknownEndpoint::toString() const Short IceInternal::UnknownEndpoint::type() const { - return UnknownEndpointType; + return _type; } Int @@ -165,6 +171,12 @@ IceInternal::UnknownEndpoint::secure() const return false; } +bool +IceInternal::UnknownEndpoint::unknown() const +{ + return true; +} + TransceiverPtr IceInternal::UnknownEndpoint::clientTransceiver() const { @@ -217,6 +229,11 @@ IceInternal::UnknownEndpoint::operator==(const Endpoint& r) const return true; } + if (_type != p->_type) + { + return false; + } + if (_rawBytes != p->_rawBytes) { return false; @@ -245,6 +262,15 @@ IceInternal::UnknownEndpoint::operator<(const Endpoint& r) const return false; } + if (_type < p->_type) + { + return true; + } + else if (p->_type < _type) + { + return false; + } + if (_rawBytes < p->_rawBytes) { return true; @@ -425,6 +451,12 @@ IceInternal::TcpEndpoint::secure() const return false; } +bool +IceInternal::TcpEndpoint::unknown() const +{ + return false; +} + TransceiverPtr IceInternal::TcpEndpoint::clientTransceiver() const { @@ -759,6 +791,12 @@ IceInternal::SslEndpoint::secure() const return true; } +bool +IceInternal::SslEndpoint::unknown() const +{ + return false; +} + TransceiverPtr IceInternal::SslEndpoint::clientTransceiver() const { @@ -1088,6 +1126,12 @@ IceInternal::UdpEndpoint::secure() const return false; } +bool +IceInternal::UdpEndpoint::unknown() const +{ + return false; +} + TransceiverPtr IceInternal::UdpEndpoint::clientTransceiver() const { @@ -1417,6 +1461,12 @@ IceInternal::SUdpEndpoint::secure() const return true; } +bool +IceInternal::SUdpEndpoint::unknown() const +{ + return false; +} + TransceiverPtr IceInternal::SUdpEndpoint::clientTransceiver() const { |