Browse Source

move WSAStartup to init

WSAStartup should be called before using any other socket
functions. BindListenPort is not called if not listening.

Closes #2585.
0.8
Wladimir J. van der Laan 12 years ago
parent
commit
d23fa49c52
  1. 8
      src/init.cpp
  2. 12
      src/net.cpp

8
src/init.cpp

@ -453,6 +453,14 @@ bool AppInit2(boost::thread_group& threadGroup)
typedef BOOL (WINAPI *PSETPROCDEPPOL)(DWORD); typedef BOOL (WINAPI *PSETPROCDEPPOL)(DWORD);
PSETPROCDEPPOL setProcDEPPol = (PSETPROCDEPPOL)GetProcAddress(GetModuleHandleA("Kernel32.dll"), "SetProcessDEPPolicy"); PSETPROCDEPPOL setProcDEPPol = (PSETPROCDEPPOL)GetProcAddress(GetModuleHandleA("Kernel32.dll"), "SetProcessDEPPolicy");
if (setProcDEPPol != NULL) setProcDEPPol(PROCESS_DEP_ENABLE); if (setProcDEPPol != NULL) setProcDEPPol(PROCESS_DEP_ENABLE);
// Initialize Windows Sockets
WSADATA wsadata;
int ret = WSAStartup(MAKEWORD(2,2), &wsadata);
if (ret != NO_ERROR)
{
return InitError(strprintf("Error: TCP/IP socket library failed to start (WSAStartup returned error %d)", ret));
}
#endif #endif
#ifndef WIN32 #ifndef WIN32
umask(077); umask(077);

12
src/net.cpp

@ -1653,18 +1653,6 @@ bool BindListenPort(const CService &addrBind, string& strError)
strError = ""; strError = "";
int nOne = 1; int nOne = 1;
#ifdef WIN32
// Initialize Windows Sockets
WSADATA wsadata;
int ret = WSAStartup(MAKEWORD(2,2), &wsadata);
if (ret != NO_ERROR)
{
strError = strprintf("Error: TCP/IP socket library failed to start (WSAStartup returned error %d)", ret);
printf("%s\n", strError.c_str());
return false;
}
#endif
// Create socket for listening for incoming connections // Create socket for listening for incoming connections
#ifdef USE_IPV6 #ifdef USE_IPV6
struct sockaddr_storage sockaddr; struct sockaddr_storage sockaddr;

Loading…
Cancel
Save