164 lines
3.5 KiB
C
164 lines
3.5 KiB
C
/*************************************************************************
|
|
*
|
|
* NTNW.C
|
|
*
|
|
* Dos NetWare to NT NetWare translation
|
|
*
|
|
* Copyright (c) 1995 Microsoft Corporation
|
|
*
|
|
* $Log: N:\NT\PRIVATE\NW4\NWSCRIPT\VCS\NTNW.C $
|
|
*
|
|
* Rev 1.1 22 Dec 1995 14:25:28 terryt
|
|
* Add Microsoft headers
|
|
*
|
|
* Rev 1.0 15 Nov 1995 18:07:24 terryt
|
|
* Initial revision.
|
|
*
|
|
* Rev 1.2 25 Aug 1995 16:23:08 terryt
|
|
* Capture support
|
|
*
|
|
* Rev 1.1 23 May 1995 19:37:10 terryt
|
|
* Spruce up source
|
|
*
|
|
* Rev 1.0 15 May 1995 19:10:44 terryt
|
|
* Initial revision.
|
|
*
|
|
*************************************************************************/
|
|
|
|
#include <stdio.h>
|
|
#include <direct.h>
|
|
#include <time.h>
|
|
#include "common.h"
|
|
|
|
extern int CONNECTION_ID;
|
|
|
|
/********************************************************************
|
|
|
|
NTGetCurrentDirectory
|
|
|
|
Routine Description:
|
|
|
|
Return the current directory.
|
|
|
|
Arguments:
|
|
|
|
DriveNumber = The drive to get the directory from.
|
|
(0 = A, 1 = B, 2 = C, etc)
|
|
pPath = A pointer to a 64 byte buffer to return the
|
|
current directory.
|
|
|
|
Return Value:
|
|
|
|
0 Success
|
|
else Error
|
|
|
|
********************************************************************/
|
|
|
|
unsigned int
|
|
NTGetCurrentDirectory(
|
|
unsigned char DriveNumber,
|
|
unsigned char *pPath
|
|
)
|
|
{
|
|
char * CurPath;
|
|
int currentDrive = _getdrive() ;
|
|
|
|
//
|
|
// Change to the drive and get its current working directory.
|
|
// Default to root if fail to get cwd. DriveNumber is from 0.
|
|
//
|
|
|
|
_chdrive (DriveNumber+1);
|
|
|
|
CurPath = _getcwd(NULL,MAX_PATH) ;
|
|
|
|
if ( CurPath != NULL ) {
|
|
|
|
strcpy( pPath, CurPath );
|
|
free(CurPath) ;
|
|
}
|
|
else {
|
|
|
|
strcpy( pPath, "A:\\" );
|
|
pPath[0] += DriveNumber;
|
|
}
|
|
|
|
_chdrive (currentDrive);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/********************************************************************
|
|
|
|
AttachToFileServer
|
|
|
|
Routine Description:
|
|
|
|
Attach to a named file server
|
|
|
|
Arguments:
|
|
|
|
pServerName - Name of server
|
|
pNewConnectionId - returned connection handle
|
|
|
|
Return Value:
|
|
0 = success
|
|
else NetWare error
|
|
|
|
*******************************************************************/
|
|
unsigned int
|
|
AttachToFileServer(
|
|
unsigned char *pServerName,
|
|
unsigned int *pNewConnectionId
|
|
)
|
|
{
|
|
unsigned int Result;
|
|
|
|
if ( NTIsConnected( pServerName ) ) {
|
|
return 0x8800; // Already atached.
|
|
}
|
|
|
|
Result = NTAttachToFileServer( pServerName, pNewConnectionId );
|
|
|
|
return Result;
|
|
}
|
|
|
|
/********************************************************************
|
|
|
|
GetConnectionHandle
|
|
|
|
Routine Description:
|
|
|
|
Given a server name, return the connection handle.
|
|
The server should already be attached
|
|
Note that this is not called for 4X servers. It's used
|
|
for attaches and bindery connections.
|
|
|
|
Arguments:
|
|
|
|
pServerName - Name of server
|
|
pConnectionHandle - pointer to returned connection handle
|
|
|
|
Return Value:
|
|
0 = success
|
|
else NetWare error
|
|
|
|
*******************************************************************/
|
|
unsigned int
|
|
GetConnectionHandle(
|
|
unsigned char *pServerName,
|
|
unsigned int *pConnectionHandle
|
|
)
|
|
{
|
|
unsigned int Result;
|
|
|
|
if ( !NTIsConnected( pServerName ) ) {
|
|
return 0xFFFF; // not already connected
|
|
}
|
|
|
|
Result = NTAttachToFileServer( pServerName, pConnectionHandle );
|
|
|
|
return Result;
|
|
}
|
|
|