move winsock specific stuff into dllmain

This commit is contained in:
Anatol Belski 2017-02-11 16:46:17 +01:00
parent cefa8ddcc9
commit d94c2c796a
2 changed files with 11 additions and 19 deletions

View File

@ -2056,10 +2056,6 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod
char *php_os, *php_os_family;
zend_module_entry *module;
#ifdef PHP_WIN32
WORD wVersionRequested = MAKEWORD(2, 0);
WSADATA wsaData;
#endif
#ifdef PHP_WIN32
php_os = "WINNT";
@ -2146,14 +2142,6 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod
tzset();
#endif
#ifdef PHP_WIN32
/* start up winsock services */
if (WSAStartup(wVersionRequested, &wsaData) != 0) {
php_printf("\nwinsock.dll unusable. %d\n", WSAGetLastError());
return FAILURE;
}
#endif
le_index_ptr = zend_register_list_destructors_ex(NULL, NULL, "index pointer", 0);
/* Register constants */
@ -2416,11 +2404,6 @@ void php_module_shutdown(void)
zend_shutdown();
#ifdef PHP_WIN32
/*close winsock */
WSACleanup();
#endif
/* Destroys filter & transport registries too */
php_shutdown_stream_wrappers(module_number);

View File

@ -40,6 +40,9 @@ BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID dummy)
switch (reason)
{
case DLL_PROCESS_ATTACH:
WORD wVersionRequested = MAKEWORD(2, 0);
WSADATA wsaData;
/*
* We do not need to check the return value of php_win32_init_gettimeofday()
* because the symbol bare minimum symbol we need is always available on our
@ -59,12 +62,18 @@ BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID dummy)
fprintf(stderr, "ioutil initialization failed");
return ret;
}
ret = ret && (0 == WSAStartup(wVersionRequested, &wsaData));
if (!ret) {
fprintf(stderr, "winsock initialization failed %d", WSAGetLastError());
return ret;
}
break;
#if 0 /* prepared */
case DLL_PROCESS_DETACH:
/* pass */
WSACleanup();
break;
#if 0 /* prepared */
case DLL_THREAD_ATTACH:
/* pass */
break;