InetAddr::InetAddr(const SysAddr &sa)
{
const sockaddr_in &sai = reinterpret_cast<const sockaddr_in &>(sa.addr);
InetAddr::InetAddr(const SysAddr &sa)
{
const sockaddr_in &sai = reinterpret_cast<const sockaddr_in &>(sa.addr);
- addr[0] = sai.sin_addr.s_addr>>24;
- addr[1] = sai.sin_addr.s_addr>>16;
- addr[2] = sai.sin_addr.s_addr>>8;
- addr[3] = sai.sin_addr.s_addr;
+ const char *ptr = reinterpret_cast<const char *>(&sai.sin_addr.s_addr);
+ std::copy(ptr, ptr+4, addr);
SockAddr::SysAddr InetAddr::to_sys() const
{
SysAddr sa;
sa.size = sizeof(sockaddr_in);
sockaddr_in &sai = reinterpret_cast<sockaddr_in &>(sa.addr);
sai.sin_family = AF_INET;
SockAddr::SysAddr InetAddr::to_sys() const
{
SysAddr sa;
sa.size = sizeof(sockaddr_in);
sockaddr_in &sai = reinterpret_cast<sockaddr_in &>(sa.addr);
sai.sin_family = AF_INET;