- now uses getaddrinfo in socket_linux.c

pull/6/head
Michael Zillgith 11 years ago
parent c1c60b6a24
commit f9d673dcf3

@ -135,24 +135,35 @@ activateKeepAlive(int sd)
static bool static bool
prepareServerAddress(const char* address, int port, struct sockaddr_in* sockaddr) prepareServerAddress(const char* address, int port, struct sockaddr_in* sockaddr)
{ {
bool retVal = true;
memset((char *) sockaddr , 0, sizeof(struct sockaddr_in)); memset((char *) sockaddr, 0, sizeof(struct sockaddr_in));
if (address != NULL) { if (address != NULL) {
struct hostent *server; struct addrinfo addr_hints;
server = gethostbyname(address); struct addrinfo *lookup_result;
int result;
if (server == NULL) return false; memset(&addr_hints, 0, sizeof(struct addrinfo));
addr_hints.ai_family = AF_INET;
result = getaddrinfo(address, NULL, &addr_hints, &lookup_result);
memcpy((char *) &sockaddr->sin_addr.s_addr, (char *) server->h_addr, server->h_length); if (result != 0) {
} retVal = false;
else goto exit_function;
sockaddr->sin_addr.s_addr = htonl(INADDR_ANY); }
memcpy(sockaddr, lookup_result->ai_addr, sizeof(struct sockaddr_in));
freeaddrinfo(lookup_result);
}
else
sockaddr->sin_addr.s_addr = htonl(INADDR_ANY);
sockaddr->sin_family = AF_INET; sockaddr->sin_family = AF_INET;
sockaddr->sin_port = htons(port); sockaddr->sin_port = htons(port);
return true; exit_function:
return retVal;
} }
static void static void

@ -541,8 +541,6 @@ mmsServer_handleGetNamedVariableListAttributesRequest(
StringUtils_createStringFromBufferInBuffer(listName, request->choice.aaspecific.buf, StringUtils_createStringFromBufferInBuffer(listName, request->choice.aaspecific.buf,
request->choice.aaspecific.size); request->choice.aaspecific.size);
MmsDevice* mmsDevice = MmsServer_getDevice(connection->server);
MmsNamedVariableList varList = MmsServerConnection_getNamedVariableList(connection, listName); MmsNamedVariableList varList = MmsServerConnection_getNamedVariableList(connection, listName);
if (varList != NULL) if (varList != NULL)

Loading…
Cancel
Save