mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-26 08:10:02 +02:00
replaced gethostbyname with getaddrinfo as it is not thread safe
This commit is contained in:
parent
fb0afc282d
commit
739187943d
@ -6316,13 +6316,15 @@ int slsDetector::setUDPConnection(){
|
|||||||
strcpy(thisDetector->receiverUDPIP,thisDetector->receiver_hostname);
|
strcpy(thisDetector->receiverUDPIP,thisDetector->receiver_hostname);
|
||||||
//if hostname not ip, convert it to ip
|
//if hostname not ip, convert it to ip
|
||||||
else{
|
else{
|
||||||
struct hostent *he = gethostbyname(thisDetector->receiver_hostname);
|
struct addrinfo *result;
|
||||||
if (he == NULL){
|
if (!dataSocket->ConvertHostnameToInternetAddress(thisDetector->receiver_hostname, &result)) {
|
||||||
cout<<"rx_hostname:"<<thisDetector->receiver_hostname<<endl;
|
// on success
|
||||||
std::cout << "no rx_udpip given and could not convert receiver hostname to ip" << endl;
|
memset(thisDetector->receiverUDPIP, 0, MAX_STR_LENGTH);
|
||||||
return FAIL;
|
// on failure, back to none
|
||||||
}else
|
if (dataSocket->ConvertInternetAddresstoIpString(result, thisDetector->receiverUDPIP, MAX_STR_LENGTH)) {
|
||||||
strcpy(thisDetector->receiverUDPIP,inet_ntoa(*(struct in_addr*)he->h_addr));
|
strcpy(thisDetector->receiverUDPIP, "none");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6379,7 +6381,6 @@ int slsDetector::configureMAC(){
|
|||||||
char arg[6][50]={"","","","","",""};
|
char arg[6][50]={"","","","","",""};
|
||||||
int retval=-1;
|
int retval=-1;
|
||||||
|
|
||||||
|
|
||||||
//if udpip wasnt initialized in config file
|
//if udpip wasnt initialized in config file
|
||||||
if(!(strcmp(thisDetector->receiverUDPIP,"none"))){
|
if(!(strcmp(thisDetector->receiverUDPIP,"none"))){
|
||||||
//hostname is an ip address
|
//hostname is an ip address
|
||||||
@ -6387,13 +6388,14 @@ int slsDetector::configureMAC(){
|
|||||||
strcpy(thisDetector->receiverUDPIP,thisDetector->receiver_hostname);
|
strcpy(thisDetector->receiverUDPIP,thisDetector->receiver_hostname);
|
||||||
//if hostname not ip, convert it to ip
|
//if hostname not ip, convert it to ip
|
||||||
else{
|
else{
|
||||||
struct hostent *he = gethostbyname(thisDetector->receiver_hostname);
|
struct addrinfo *result;
|
||||||
if (he != NULL)
|
if (!dataSocket->ConvertHostnameToInternetAddress(thisDetector->receiver_hostname, &result)) {
|
||||||
strcpy(thisDetector->receiverUDPIP,inet_ntoa(*(struct in_addr*)he->h_addr));
|
// on success
|
||||||
else{
|
memset(thisDetector->receiverUDPIP, 0, MAX_STR_LENGTH);
|
||||||
std::cout << "configure mac failed. no rx_udpip given and invalid receiver hostname" << endl;
|
// on failure, back to none
|
||||||
setErrorMask((getErrorMask())|(COULD_NOT_CONFIGURE_MAC));
|
if (dataSocket->ConvertInternetAddresstoIpString(result, thisDetector->receiverUDPIP, MAX_STR_LENGTH)) {
|
||||||
return FAIL;
|
strcpy(thisDetector->receiverUDPIP, "none");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user