return false;
}
-Ip::Address&
-Ip::Address::operator =(const Ip::Address &s)
-{
- memcpy(this, &s, sizeof(Ip::Address));
- return *this;
-};
-
Ip::Address::Address(const char*s)
{
setEmpty();
{
/* some AF_* magic to tell socket types apart and what we need to do */
if (s.ss_family == AF_INET6) {
- memcpy(&mSocketAddr_, &s, sizeof(struct sockaddr_in6));
+ memmove(&mSocketAddr_, &s, sizeof(struct sockaddr_in6));
} else { // convert it to our storage mapping.
struct sockaddr_in *sin = (struct sockaddr_in*)&s;
mSocketAddr_.sin6_port = sin->sin_port;
Ip::Address &
Ip::Address::operator =(struct sockaddr_in6 const &s)
{
- memcpy(&mSocketAddr_, &s, sizeof(struct sockaddr_in6));
-
+ memmove(&mSocketAddr_, &s, sizeof(struct sockaddr_in6));
return *this;
};
Ip::Address &
Ip::Address::operator =(struct in6_addr const &s)
{
-
- memcpy(&mSocketAddr_.sin6_addr, &s, sizeof(struct in6_addr));
+ memmove(&mSocketAddr_.sin6_addr, &s, sizeof(struct in6_addr));
mSocketAddr_.sin6_family = AF_INET6;
return *this;
};
-Ip::Address::Address(const Ip::Address &s)
-{
- setEmpty();
- operator=(s);
-}
-
Ip::Address::Address(const struct hostent &s)
{
setEmpty();
void
Ip::Address::getSockAddr(struct sockaddr_in6 &buf) const
{
- memcpy(&buf, &mSocketAddr_, sizeof(struct sockaddr_in6));
+ memmove(&buf, &mSocketAddr_, sizeof(struct sockaddr_in6));
/* maintain address family. It may have changed inside us. */
buf.sin6_family = AF_INET6;
void
Ip::Address::getInAddr(struct in6_addr &buf) const
{
- memcpy(&buf, &mSocketAddr_.sin6_addr, sizeof(struct in6_addr));
+ memmove(&buf, &mSocketAddr_.sin6_addr, sizeof(struct in6_addr));
}
bool
/** @name Constructors and Destructor */
/*@{*/
Address() { setEmpty(); }
- Address(const Ip::Address &);
Address(const struct in_addr &);
Address(const struct sockaddr_in &);
Address(const struct in6_addr &);
/** @name Assignment Operators */
/*@{*/
- Address& operator =(const Address &s);
Address& operator =(struct sockaddr_in const &s);
Address& operator =(struct sockaddr_storage const &s);
Address& operator =(struct in_addr const &s);