summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Endpoint.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2002-02-01 16:58:44 +0000
committerMark Spruiell <mes@zeroc.com>2002-02-01 16:58:44 +0000
commit01532cd1240a67f1ea4f82916c1a45ca6585912a (patch)
treecfcc1e9db38fe2a53108e51e6ed19e01116bc5ce /cpp/src/Ice/Endpoint.cpp
parentUpdated to put proper exception in place for the byteSeqTo* routines. (diff)
downloadice-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.cpp64
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
{