diff options
Diffstat (limited to 'win/tclWinSock.c')
-rw-r--r-- | win/tclWinSock.c | 101 |
1 files changed, 9 insertions, 92 deletions
diff --git a/win/tclWinSock.c b/win/tclWinSock.c index de4c519..28dfef0 100644 --- a/win/tclWinSock.c +++ b/win/tclWinSock.c @@ -50,13 +50,6 @@ #include "tclWinInt.h" -/* - * Which version of the winsock API do we want? - */ - -#define WSA_VERSION_MAJOR 1 -#define WSA_VERSION_MINOR 1 - #ifdef _MSC_VER # pragma comment (lib, "ws2_32") #endif @@ -2289,22 +2282,15 @@ TcpAccept( * * InitSockets -- * - * Initialize the socket module. If winsock startup is successful, - * registers the event window for the socket notifier code. + * Registers the event window for the socket notifier code. * * Assumes socketMutex is held. * - * Warning: - * This check was useful in times of Windows98 where WinSock may - * not be available. This is not the case any more. - * This function may be removed with TCL 9.0. - * Any failures may be reported as panics. - * * Results: * None. * * Side effects: - * Initializes winsock, registers a new window class and creates a + * Register a new window class and creates a * window for use in asynchronous socket notification. * *---------------------------------------------------------------------- @@ -2313,8 +2299,7 @@ TcpAccept( static void InitSockets(void) { - DWORD id, err; - WSADATA wsaData; + DWORD id; ThreadSpecificData *tsdPtr = TclThreadDataKeyGet(&dataKey); if (!initialized) { @@ -2343,32 +2328,6 @@ InitSockets(void) TclWinConvertError(GetLastError()); goto initFailure; } - - /* - * Initialize the winsock library and check the interface version - * actually loaded. We only ask for the 1.1 interface and do require - * that it not be less than 1.1. - */ - - err = WSAStartup((WORD) MAKEWORD(WSA_VERSION_MAJOR,WSA_VERSION_MINOR), - &wsaData); - if (err != 0) { - TclWinConvertError(err); - goto initFailure; - } - - /* - * Note the byte positions ae swapped for the comparison, so that - * 0x0002 (2.0, MAKEWORD(2,0)) doesn't look less than 0x0101 (1.1). We - * want the comparison to be 0x0200 < 0x0101. - */ - - if (MAKEWORD(HIBYTE(wsaData.wVersion), LOBYTE(wsaData.wVersion)) - < MAKEWORD(WSA_VERSION_MINOR, WSA_VERSION_MAJOR)) { - TclWinConvertError(WSAVERNOTSUPPORTED); - WSACleanup(); - goto initFailure; - } } /* @@ -2466,7 +2425,7 @@ SocketsEnabled(void) * SocketExitHandler -- * * Callback invoked during exit clean up to delete the socket - * communication window and to release the WinSock DLL. + * communication window. * * Results: * None. @@ -2491,7 +2450,6 @@ SocketExitHandler( TclpFinalizeSockets(); UnregisterClass(classname, TclWinGetTclInstance()); - WSACleanup(); initialized = 0; Tcl_MutexUnlock(&socketMutex); } @@ -3243,11 +3201,8 @@ FindFDInList( * * TclWinGetSockOpt, et al. -- * - * These functions are wrappers that let us bind the WinSock API - * dynamically so we can run on systems that don't have the wsock32.dll. - * We need wrappers for these interfaces because they are called from the - * generic Tcl code. - * Those functions are exported by the stubs table. + * Those functions are historically exported by the stubs table and + * just use the original system calls now. * * Warning: * Those functions are depreciated and will be removed with TCL 9.0. @@ -3261,6 +3216,7 @@ FindFDInList( *---------------------------------------------------------------------- */ +#undef TclWinGetSockOpt int TclWinGetSockOpt( SOCKET s, @@ -3269,19 +3225,10 @@ TclWinGetSockOpt( char *optval, int *optlen) { - /* - * Check that WinSock is initialized; do not call it if not, to prevent - * system crashes. This can happen at exit time if the exit handler for - * WinSock ran before other exit handlers that want to use sockets. - */ - - if (!SocketsEnabled()) { - return SOCKET_ERROR; - } return getsockopt(s, level, optname, optval, optlen); } - +#undef TclWinSetSockOpt int TclWinSetSockOpt( SOCKET s, @@ -3290,16 +3237,6 @@ TclWinSetSockOpt( const char *optval, int optlen) { - /* - * Check that WinSock is initialized; do not call it if not, to prevent - * system crashes. This can happen at exit time if the exit handler for - * WinSock ran before other exit handlers that want to use sockets. - */ - - if (!SocketsEnabled()) { - return SOCKET_ERROR; - } - return setsockopt(s, level, optname, optval, optlen); } @@ -3308,34 +3245,14 @@ char * TclpInetNtoa( struct in_addr addr) { - /* - * Check that WinSock is initialized; do not call it if not, to prevent - * system crashes. This can happen at exit time if the exit handler for - * WinSock ran before other exit handlers that want to use sockets. - */ - - if (!SocketsEnabled()) { - return NULL; - } - return inet_ntoa(addr); } - +#undef TclWinGetServByName struct servent * TclWinGetServByName( const char *name, const char *proto) { - /* - * Check that WinSock is initialized; do not call it if not, to prevent - * system crashes. This can happen at exit time if the exit handler for - * WinSock ran before other exit handlers that want to use sockets. - */ - - if (!SocketsEnabled()) { - return NULL; - } - return getservbyname(name, proto); } |