From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

/*------------------------------------------------------------------
These functions are to be called when the shared NLM starts and
stops. By using these functions instead of defining a main()
and calling ExitThread(TSR_THREAD, 0), the load time of the
shared NLM is faster and memory size reduced.
You may also want to override these in your own Apache module
to do any cleanup other than the mechanism Apache modules
provide.
------------------------------------------------------------------*/
#include "stddef.h"
#include "ws2nlm.h"
#ifdef __GNUC__
#include <string.h> /* memset */
extern char _edata, _end ; /* end of DATA (start of BSS), end of BSS */
#endif
int _lib_start_ws()
{
WSADATA wsaData;
#ifdef __GNUC__
memset (&_edata, 0, &_end - &_edata);
#endif
return WSAStartup((WORD) MAKEWORD(2, 0), &wsaData);
}
int _lib_stop_ws()
{
WSACleanup();
return 0;
}