in_addr CUDPReaderWriter::lookup(const wxString& hostname) { in_addr addr; #if defined(WIN32) unsigned long address = ::inet_addr(hostname.mb_str()); if (address != INADDR_NONE && address != INADDR_ANY) { addr.s_addr = address; return addr; } struct hostent* hp = ::gethostbyname(hostname.mb_str()); if (hp != NULL) { ::memcpy(&addr, hp->h_addr_list[0], sizeof(struct in_addr)); return addr; } wxLogError(wxT("Cannot find address for host %s"), hostname.c_str()); addr.s_addr = INADDR_NONE; return addr; #else in_addr_t address = ::inet_addr(hostname.mb_str()); if (address != in_addr_t(-1)) { addr.s_addr = address; return addr; } struct hostent* hp = ::gethostbyname(hostname.mb_str()); if (hp != NULL) { ::memcpy(&addr, hp->h_addr_list[0], sizeof(struct in_addr)); return addr; } wxLogError(wxT("Cannot find address for host %s"), hostname.c_str()); addr.s_addr = INADDR_NONE; return addr; #endif }
in_addr_t toInAddrT(char* addr) { return in_addr_t((unsigned long)addr); }