/*------------------------------------------------------------------
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;
}