From e9b961bf288b65ca71a694d5c5f176c13e44170a Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Thu, 5 Feb 1998 22:50:43 +0000 Subject: [PATCH] added caNetAddr assignment operator --- src/cas/generic/caNetAddr.h | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/cas/generic/caNetAddr.h b/src/cas/generic/caNetAddr.h index 741e141f9..e54a00bc5 100644 --- a/src/cas/generic/caNetAddr.h +++ b/src/cas/generic/caNetAddr.h @@ -52,6 +52,21 @@ public: return this->type == casnaSock; } + // + // This is specified so that compilers will not use one of + // the following assignment operators after converting to a + // sockaddr_in or a sockaddr first. + // + // caNetAddr caNetAddr::operator =(const struct sockaddr_in&) + // caNetAddr caNetAddr::operator =(const struct sockaddr&) + // + inline caNetAddr operator = (const caNetAddr &naIn) + { + this->addr = naIn.addr; + this->type = naIn.type; + return *this; + } + // // conditionally drag BSD socket headers into the server // and server tool @@ -77,7 +92,8 @@ public: inline void setSock(const struct sockaddr &sock) { this->type = casnaSock; - struct sockaddr_in *psip = (struct sockaddr_in *) &sock; + const struct sockaddr_in *psip = + (const struct sockaddr_in *) &sock; assert(sizeof(sock)==sizeof(this->addr.sock)); this->addr.sock = *psip; } @@ -140,11 +156,9 @@ private: // see checkDummySize() above // unsigned char dummy[16]; - }addr; + } addr; caNetAddrType type; - - static verifyCANetAddr verify; }; inline void verifyCANetAddr::checkSize()