Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

92 lines
1.5 KiB

/**********************************************************************/
/** Microsoft Windows **/
/** Copyright(c) Microsoft Corp., 1995 **/
/**********************************************************************/
/*
sockutil.c
This file emulates socket calls made by the helper code.
Under NT, helper code is in a DLL, and may make calls defined
in "winsock.h" directly. Under Windows 95, the code is in
a VxD and has to emulate the call itself.
FILE HISTORY:
EarleH 20-Jan-1995 Created
*/
#include "wshtcpp.h"
DWORD
WshGetPeerName(
LPSOCK_INFO Socket,
LPVOID Address,
INT *AddressLength
)
{
DWORD Status;
//
// Validate socket type & state.
//
if( Socket->si_state == SI_STATE_NO_PROVIDER )
{
Status = WSAENETDOWN;
goto Cleanup;
}
if( ( Socket->si_state != SI_STATE_CONNECTED ) &&
( Socket->si_state != SI_STATE_DISCONNECTED ) )
{
Status = WSAENOTCONN;
goto Cleanup;
}
//
// Validate address length.
//
if( *AddressLength < Socket->si_remoteaddrlen )
{
Status = WSAEFAULT;
goto Cleanup;
}
if( Address == NULL )
{
Status = WSAEFAULT;
goto Cleanup;
}
//
// Copy the address to the user's buffer.
//
memcpy( Address,
Socket->si_remoteaddr,
Socket->si_remoteaddrlen );
*AddressLength = Socket->si_remoteaddrlen;
//
// Success.
//
Status = 0;
Cleanup:
IF_DEBUG( SOCKET )
{
VXD_PRINT(( "WshGetPeerName: returning %lu\n",
Status ));
}
return Status;
}