Loading ndb/src/common/portlib/NdbTCP.cpp +14 −16 Original line number Diff line number Diff line Loading @@ -16,29 +16,27 @@ #include <ndb_global.h> #include <NdbMutex.h> #include <my_net.h> #include <NdbTCP.h> #if defined NDB_WIN32 || defined SCO static NdbMutex & LOCK_gethostbyname = * NdbMutex_Create(); #else static NdbMutex LOCK_gethostbyname = NDB_MUTEX_INITIALIZER; #endif extern "C" int Ndb_getInAddr(struct in_addr * dst, const char *address) { DBUG_ENTER("Ndb_getInAddr"); struct hostent * hostPtr; NdbMutex_Lock(&LOCK_gethostbyname); hostPtr = gethostbyname(address); if (hostPtr != NULL) { dst->s_addr = ((struct in_addr *) *hostPtr->h_addr_list)->s_addr; NdbMutex_Unlock(&LOCK_gethostbyname); { int tmp_errno; struct hostent tmp_hostent, *hp; char buff[GETHOSTBYNAME_BUFF_SIZE]; hp = my_gethostbyname_r(address,&tmp_hostent,buff,sizeof(buff), &tmp_errno); if (hp) { memcpy(dst, hp->h_addr, min(sizeof(*dst), (size_t) hp->h_length)); my_gethostbyname_r_free(); DBUG_RETURN(0); } NdbMutex_Unlock(&LOCK_gethostbyname); my_gethostbyname_r_free(); } /* Try it as aaa.bbb.ccc.ddd. */ dst->s_addr = inet_addr(address); if (dst->s_addr != Loading Loading
ndb/src/common/portlib/NdbTCP.cpp +14 −16 Original line number Diff line number Diff line Loading @@ -16,29 +16,27 @@ #include <ndb_global.h> #include <NdbMutex.h> #include <my_net.h> #include <NdbTCP.h> #if defined NDB_WIN32 || defined SCO static NdbMutex & LOCK_gethostbyname = * NdbMutex_Create(); #else static NdbMutex LOCK_gethostbyname = NDB_MUTEX_INITIALIZER; #endif extern "C" int Ndb_getInAddr(struct in_addr * dst, const char *address) { DBUG_ENTER("Ndb_getInAddr"); struct hostent * hostPtr; NdbMutex_Lock(&LOCK_gethostbyname); hostPtr = gethostbyname(address); if (hostPtr != NULL) { dst->s_addr = ((struct in_addr *) *hostPtr->h_addr_list)->s_addr; NdbMutex_Unlock(&LOCK_gethostbyname); { int tmp_errno; struct hostent tmp_hostent, *hp; char buff[GETHOSTBYNAME_BUFF_SIZE]; hp = my_gethostbyname_r(address,&tmp_hostent,buff,sizeof(buff), &tmp_errno); if (hp) { memcpy(dst, hp->h_addr, min(sizeof(*dst), (size_t) hp->h_length)); my_gethostbyname_r_free(); DBUG_RETURN(0); } NdbMutex_Unlock(&LOCK_gethostbyname); my_gethostbyname_r_free(); } /* Try it as aaa.bbb.ccc.ddd. */ dst->s_addr = inet_addr(address); if (dst->s_addr != Loading