add CIp::GetAddr(), CIp::GetPort(), CIp::SetPort() implementation

original cip.h handles raw value from struct sockaddr_in/sockaddr_in6.
this code follows this, but they should use network byte converter
like ntohs().
pull/205/head
SASANO Takayoshi 4 years ago
parent 6ab8567a22
commit 9267497ac6

@ -93,6 +93,49 @@ struct sockaddr_storage *CIp::GetSockAddr(socklen_t &len)
return &m_Addr;
}
////////////////////////////////////////////////////////////////////////////////////////
// get and set
uint32 CIp::GetAddr(void) const
{
switch (m_Addr.ss_family)
{
case AF_INET:
return ((struct sockaddr_in *)&m_Addr)->sin_addr.s_addr;
default:
return 0; /* not supported */
}
}
uint16 CIp::GetPort(void) const
{
switch (m_Addr.ss_family)
{
case AF_INET:
return ((struct sockaddr_in *)&m_Addr)->sin_port;
case AF_INET6:
return ((struct sockaddr_in6 *)&m_Addr)->sin6_port;
default:
return 0; /* not supported */
}
}
void CIp::SetPort(uint16 port)
{
switch (m_Addr.ss_family)
{
case AF_INET:
((struct sockaddr_in *)&m_Addr)->sin_port = port;
break;
case AF_INET6:
((struct sockaddr_in6 *)&m_Addr)->sin6_port = port;
break;
default:
/* not supported, do nothing */
break;
}
}
////////////////////////////////////////////////////////////////////////////////////////
// operator

Loading…
Cancel
Save

Powered by TurnKey Linux.