Details
-
Task
-
Status: Resolved
-
Minor
-
Resolution: Won't Fix
-
None
-
None
-
None
Description
// Convenience struct for when you need a |struct sockaddr|. struct SockaddrStorage { SockaddrStorage() : addr_len(sizeof(addr_storage)), addr(reinterpret_cast<struct sockaddr*>(&addr_storage)) {} SockaddrStorage(const SockaddrStorage& other); void operator=(const SockaddrStorage& other); struct sockaddr_storage addr_storage; socklen_t addr_len; struct sockaddr* const addr; }; SockaddrStorage::SockaddrStorage(const SockaddrStorage& other) : addr_len(other.addr_len), addr(reinterpret_cast<struct sockaddr*>(&addr_storage)) { memcpy(addr, other.addr, addr_len); } void SockaddrStorage::operator=(const SockaddrStorage& other) { addr_len = other.addr_len; // addr is already set to &this->addr_storage by default ctor. memcpy(addr, other.addr, addr_len); }
(shamelessly borrowed from http://src.chromium.org/svn/trunk/src/net/base/net_util.h/cc)
Attachments
Issue Links
- is depended upon by
-
MESOS-1918 Add SockaddrStorage to IP, UPID, etc
- Resolved
- is superceded by
-
MESOS-2177 Create socket wrappers for different protocol families
- Resolved
-
MESOS-2178 Add a method from converting the hostname to an ip address and create initialization wrappers for sockaddr_in and addrinfo
- Resolved