u_result SocketAddress::setAddressFromString(const char * address_string, SocketAddress::address_type_t type) { int ans = 0; int prevPort = getPort(); switch (type) { case ADDRESS_TYPE_INET: reinterpret_cast<sockaddr_storage *>(_platform_data)->ss_family = AF_INET; ans = _inet_pton(AF_INET, address_string, &reinterpret_cast<sockaddr_in *>(_platform_data)->sin_addr); break; case ADDRESS_TYPE_INET6: reinterpret_cast<sockaddr_storage *>(_platform_data)->ss_family = AF_INET6; ans = _inet_pton(AF_INET6, address_string, &reinterpret_cast<sockaddr_in6 *>(_platform_data)->sin6_addr); break; default: return RESULT_INVALID_DATA; } setPort(prevPort); return ans<=0?RESULT_INVALID_DATA:RESULT_OK; }
bool CAddress::FromString(const std::string& Str) { if(Str.find(".") != string::npos) m_eAF = IPv4; else if(Str.find(":") != string::npos) m_eAF = IPv6; else return false; return _inet_pton(AF(), Str.c_str(), m_IP) == 1; }
address_v6(const std::string& str) { len_ = size(); _inet_pton(AF_INET6, str.c_str(), &ip_[0]); }
gboolean ws_inet_pton6(const gchar *src, struct e_in6_addr *dst) { return _inet_pton(AF_INET6, src, dst); }
gboolean ws_inet_pton4(const gchar *src, guint32 *dst) { return _inet_pton(AF_INET, src, dst); }