diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 4ee361794..cb2d2283e 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -6355,13 +6355,15 @@ int slsDetector::setUDPConnection(){ strcpy(thisDetector->receiverUDPIP,thisDetector->receiver_hostname); //if hostname not ip, convert it to ip else{ - struct hostent *he = gethostbyname(thisDetector->receiver_hostname); - if (he == NULL){ - cout<<"rx_hostname:"<receiver_hostname<receiverUDPIP,inet_ntoa(*(struct in_addr*)he->h_addr)); + struct addrinfo *result; + if (!dataSocket->ConvertHostnameToInternetAddress(thisDetector->receiver_hostname, &result)) { + // on success + memset(thisDetector->receiverUDPIP, 0, MAX_STR_LENGTH); + // on failure, back to none + if (dataSocket->ConvertInternetAddresstoIpString(result, thisDetector->receiverUDPIP, MAX_STR_LENGTH)) { + strcpy(thisDetector->receiverUDPIP, "none"); + } + } } } @@ -6435,6 +6437,7 @@ int slsDetector::configureMAC(){ } } + //if udpip wasnt initialized in config file if(!(strcmp(thisDetector->receiverUDPIP,"none"))){ //hostname is an ip address @@ -6442,13 +6445,14 @@ int slsDetector::configureMAC(){ strcpy(thisDetector->receiverUDPIP,thisDetector->receiver_hostname); //if hostname not ip, convert it to ip else{ - struct hostent *he = gethostbyname(thisDetector->receiver_hostname); - if (he != NULL) - strcpy(thisDetector->receiverUDPIP,inet_ntoa(*(struct in_addr*)he->h_addr)); - else{ - std::cout << "configure mac failed. no rx_udpip given and invalid receiver hostname" << endl; - setErrorMask((getErrorMask())|(COULD_NOT_CONFIGURE_MAC)); - return FAIL; + struct addrinfo *result; + if (!dataSocket->ConvertHostnameToInternetAddress(thisDetector->receiver_hostname, &result)) { + // on success + memset(thisDetector->receiverUDPIP, 0, MAX_STR_LENGTH); + // on failure, back to none + if (dataSocket->ConvertInternetAddresstoIpString(result, thisDetector->receiverUDPIP, MAX_STR_LENGTH)) { + strcpy(thisDetector->receiverUDPIP, "none"); + } } } }