diff options
author | madmaxoft <github@xoft.cz> | 2013-11-24 14:28:51 +0100 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2013-11-24 14:28:51 +0100 |
commit | 1f8399fae528f44e0543d1baca7d6ccbc2dd5f8b (patch) | |
tree | 26cda359a00074e82a7c7a4f4d0fd7ea2e5fafa3 | |
parent | APIDump: Moved projectiles' documentation to a separate file. (diff) | |
download | cuberite-1f8399fae528f44e0543d1baca7d6ccbc2dd5f8b.tar cuberite-1f8399fae528f44e0543d1baca7d6ccbc2dd5f8b.tar.gz cuberite-1f8399fae528f44e0543d1baca7d6ccbc2dd5f8b.tar.bz2 cuberite-1f8399fae528f44e0543d1baca7d6ccbc2dd5f8b.tar.lz cuberite-1f8399fae528f44e0543d1baca7d6ccbc2dd5f8b.tar.xz cuberite-1f8399fae528f44e0543d1baca7d6ccbc2dd5f8b.tar.zst cuberite-1f8399fae528f44e0543d1baca7d6ccbc2dd5f8b.zip |
-rw-r--r-- | source/OSSupport/Socket.cpp | 14 | ||||
-rw-r--r-- | source/OSSupport/Socket.h | 1 |
2 files changed, 8 insertions, 7 deletions
diff --git a/source/OSSupport/Socket.cpp b/source/OSSupport/Socket.cpp index 48b5d704d..c461d38a4 100644 --- a/source/OSSupport/Socket.cpp +++ b/source/OSSupport/Socket.cpp @@ -169,7 +169,7 @@ bool cSocket::SetReuseAddress(void) -int cSocket::WSAStartup() +int cSocket::WSAStartup(void) { #ifdef _WIN32 WSADATA wsaData; @@ -336,23 +336,23 @@ bool cSocket::ConnectIPv4(const AString & a_HostNameOrAddr, unsigned short a_Por { // First try IP Address string to hostent conversion, because it's faster unsigned long addr = inet_addr(a_HostNameOrAddr.c_str()); - hostent * hp = gethostbyaddr((char*)&addr, sizeof(addr), AF_INET); - if (hp == NULL) + if (addr == INADDR_NONE) { // It is not an IP Address string, but rather a regular hostname, resolve: - hp = gethostbyname(a_HostNameOrAddr.c_str()); + hostent * hp = gethostbyname(a_HostNameOrAddr.c_str()); if (hp == NULL) { - LOGWARN("cTCPLink: Could not resolve hostname \"%s\"", a_HostNameOrAddr.c_str()); + LOGWARNING("%s: Could not resolve hostname \"%s\"", __FUNCTION__, a_HostNameOrAddr.c_str()); CloseSocket(); return false; } + addr = *((unsigned long*)hp->h_addr); } sockaddr_in server; - server.sin_addr.s_addr = *((unsigned long*)hp->h_addr); + server.sin_addr.s_addr = addr; server.sin_family = AF_INET; - server.sin_port = htons( (unsigned short)a_Port ); + server.sin_port = htons((unsigned short)a_Port); return (connect(m_Socket, (sockaddr *)&server, sizeof(server)) == 0); } diff --git a/source/OSSupport/Socket.h b/source/OSSupport/Socket.h index 34f09cc74..81bfd28fc 100644 --- a/source/OSSupport/Socket.h +++ b/source/OSSupport/Socket.h @@ -38,6 +38,7 @@ public: /// Sets the address-reuse socket flag; returns true on success bool SetReuseAddress(void); + /// Initializes the network stack. Returns 0 on success, or another number as an error code. static int WSAStartup(void); static AString GetErrorString(int a_ErrNo); |