windows-nt/Source/XPSP1/NT/inetsrv/iis/svcs/ftp/server/cons.hxx
2020-09-26 16:20:57 +08:00

113 lines
3.1 KiB
C++

/**********************************************************************/
/** Microsoft Windows NT **/
/** Copyright(c) Microsoft Corp., 1993 **/
/**********************************************************************/
/*
cons.hxx
This file contains the global constant definitions for the
FTPD Service.
FILE HISTORY:
KeithMo 07-Mar-1993 Created.
MuraliK 28-Mar-1995 Moved out the Behaviour flags to USER_DATA
definition
*/
#ifndef _CONS_HXX_
#define _CONS_HXX_
//
// Maximum length of command from control socket.
//
#define MAX_COMMAND_LENGTH 512 // characters
//
// Maximum length of a reply sent to the FTP client.
//
#define MAX_REPLY_LENGTH 1024 // characters
//
// Maximum length of a user name. This must be long enough to
// hold a name of the form domain\user, where "domain" is a maximum
// length domain name, and "user" is a maximum length user name.
//
#define MAX_USERNAME_LENGTH (DNLEN+UNLEN+1) // characters
//
// timeout for sends
//
#define FTP_DEF_SEND_TIMEOUT 30
#define FTP_DEF_RECV_TIMEOUT 600
//
// Valid bits for read/write access masks. There is
// one bit per dos drive (A-Z).
//
#define VALID_DOS_DRIVE_MASK ((DWORD)( ( 1 << 26 ) - 1 ))
//
// Make statistics a little easier.
//
#define INCREMENT_COUNTER(name) \
InterlockedIncrement((LPLONG)&name)
#define INCR_STAT_COUNTER( name) \
INCREMENT_COUNTER( g_FtpStatistics.name)
#define DECREMENT_COUNTER(name) \
InterlockedDecrement((LPLONG) &name)
#define DECR_STAT_COUNTER( name) \
DECREMENT_COUNTER( g_FtpStatistics.name)
#define UPDATE_LARGE_COUNTER(name,increment) \
if( 1 ) { \
EnterCriticalSection( &g_StatisticsLock ); \
g_FtpStatistics.name.QuadPart += (LONGLONG)(increment);\
LeaveCriticalSection( &g_StatisticsLock ); \
} else
//
// Make locking & unlocking the TSVC_INFO structure a bit prettier.
//
#define READ_LOCK_TSVC() g_pTsvcInfo->LockThisForRead()
#define WRITE_LOCK_TSVC() g_pTsvcInfo->LockThisForWrite()
#define UNLOCK_TSVC() g_pTsvcInfo->UnlockThis()
#define READ_LOCK_INST() g_pInstance->LockThisForRead()
#define WRITE_LOCK_INST() g_pInstance->LockThisForWrite()
#define UNLOCK_INST() g_pInstance->UnlockThis()
#define LockAdminForRead() READ_LOCK_TSVC()
#define LockAdminForWrite() WRITE_LOCK_TSVC()
#define UnlockAdmin() UNLOCK_TSVC()
//
// Map an FTP connection port number to the related data port number.
//
#define CONN_PORT_TO_DATA_PORT(port) \
(PORT)htons( (u_short)( ( (u_short) ntohs(port) ) - 1 ) )
#endif // _CONS_HXX_