Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1999 Microsoft Corporation
Module Name:
socket.c Abstract:
This module implements the user mode DAV miniredir routines pertaining to initialization and closing of the socket data structures.
Author:
Rohan Kumar [RohanK] 27-May-1999
Revision History:
--*/
#include "pch.h"
#pragma hdrstop
#include "ntumrefl.h"
#include "usrmddav.h"
#include "global.h"
//
// Implementation of functions begins here.
//
//
// Data structure that is to receive details of the WinSock implementation.
//
WSADATA g_wsaData; BOOLEAN g_socketinit = FALSE;
ULONG InitializeTheSocketInterface( VOID ) /*++
Routine Description:
This routine initializes the socket interface. This has to be done before any WinSock calls can be made.
Arguments:
none.
Return Value:
The return status for the operation
--*/ { ULONG WStatus = ERROR_SUCCESS; int err; WORD VersionRequested;
//
// Request version 2.0.
//
VersionRequested = MAKEWORD(2, 0);
//
// The WSAStartup function must be the first Windows Sockets function
// called.
//
err = WSAStartup(VersionRequested, &g_wsaData); if (err != 0) { //
// We could not find a suitable Winsock lib.
//
DavPrint((DEBUG_ERRORS, "InitializeTheSocketInterface/WSAStartup: Error Val = %d.\n", err)); WStatus = (ULONG)err; goto EXIT_THE_FUNCTION; }
//
// Confirm that the lib supports version 2.0. Only Winsock versions 1.1 or
// higher support the GetHostByName call.
//
if (LOBYTE(g_wsaData.wVersion) != 2 || HIBYTE(g_wsaData.wVersion) != 0) { DavPrint((DEBUG_ERRORS, "InitializeTheSocketInterface/WSAStartup: Ver not supported.\n")); //
// Cleanup and return error.
//
err = WSACleanup(); if (err == SOCKET_ERROR) { WStatus = (ULONG)WSAGetLastError(); DavPrint((DEBUG_ERRORS, "InitializeTheSocketInterface/WSACleanup: Error Val = " "%08lx.\n", WStatus)); } WStatus = ERROR_NOT_SUPPORTED; goto EXIT_THE_FUNCTION; }
EXIT_THE_FUNCTION:
if (WStatus == ERROR_SUCCESS) { g_socketinit = TRUE; }
return WStatus; }
NTSTATUS CleanupTheSocketInterface( VOID ) /*++
Routine Description:
This routine cleansup the data structures created during the initialization of the socket interface.
Arguments:
none.
Return Value:
The return status for the operation
--*/ { ULONG WStatus = ERROR_SUCCESS; int err; err = WSACleanup(); if (err == SOCKET_ERROR) { WStatus = (ULONG)WSAGetLastError(); DavPrint((DEBUG_ERRORS, "CleanupTheSocketInterface/WSACleanup: Error Val = " "%08lx.\n", WStatus)); }
return WStatus; }
|