375 lines
5.6 KiB
C++
375 lines
5.6 KiB
C++
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1995 Microsoft Corporation
|
|||
|
|
|||
|
Module Name :
|
|||
|
|
|||
|
ftpcmd.hxx
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
This module declares the data type and functions required for various
|
|||
|
FTP commands supported by this FTP server.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Murali R. Krishnan ( MuraliK ) 28-Mar-1995
|
|||
|
|
|||
|
Environment:
|
|||
|
|
|||
|
User Mode -- Win32
|
|||
|
|
|||
|
Project:
|
|||
|
|
|||
|
FTP Server DLL
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
# ifndef _FTPCMD_HXX_
|
|||
|
# define _FTPCMD_HXX_
|
|||
|
|
|||
|
/************************************************************
|
|||
|
* Include Headers
|
|||
|
************************************************************/
|
|||
|
|
|||
|
|
|||
|
/************************************************************
|
|||
|
* Type Definitions
|
|||
|
************************************************************/
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Pointer to an implemention of a server-side command.
|
|||
|
//
|
|||
|
|
|||
|
typedef BOOL (* LPFN_COMMAND)( USER_DATA * pUserData, CHAR * pszArg );
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// This enumerator indicates the type of argument accepted by a
|
|||
|
// command. This is used in the command table to do some
|
|||
|
// preliminary argument validation.
|
|||
|
//
|
|||
|
|
|||
|
typedef enum _ARG_TYPE
|
|||
|
{
|
|||
|
ArgTypeFirst = -1, // Must be first argument type!
|
|||
|
|
|||
|
ArgTypeNone, // Command cannot have arguments.
|
|||
|
ArgTypeOptional, // Command may have arguments.
|
|||
|
ArgTypeRequired, // Command must have arguments.
|
|||
|
|
|||
|
ArgTypeLast // Must be last argument type!
|
|||
|
|
|||
|
} ARG_TYPE;
|
|||
|
|
|||
|
#define IS_VALID_ARG_TYPE(x) (((x) > ArgTypeFirst) && ((x) < ArgTypeLast))
|
|||
|
|
|||
|
//
|
|||
|
// This structure represents an FTP server command. There is at
|
|||
|
// least one instance of this structure for each FTP command.
|
|||
|
// In some cases (for example, CWD and XCWD) multiple commands are
|
|||
|
// mapped to the same command token.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _FTPD_COMMAND
|
|||
|
{
|
|||
|
//
|
|||
|
// Name of the command, in UPPER case.
|
|||
|
//
|
|||
|
|
|||
|
LPSTR CommandName;
|
|||
|
|
|||
|
//
|
|||
|
// Help text for this command.
|
|||
|
//
|
|||
|
|
|||
|
LPSTR HelpText;
|
|||
|
|
|||
|
//
|
|||
|
// Pointer to the function that implements this command.
|
|||
|
//
|
|||
|
|
|||
|
LPFN_COMMAND Implementation;
|
|||
|
|
|||
|
//
|
|||
|
// Argument type for this command.
|
|||
|
//
|
|||
|
|
|||
|
ARG_TYPE ArgumentType;
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Valid User state for a command to be accepted.
|
|||
|
//
|
|||
|
|
|||
|
DWORD dwUserState; // bitflag consisting of user state.
|
|||
|
|
|||
|
|
|||
|
#ifdef KEEP_COMMAND_STATS
|
|||
|
|
|||
|
//
|
|||
|
// Usage statistics for this command.
|
|||
|
//
|
|||
|
|
|||
|
DWORD UsageCount;
|
|||
|
|
|||
|
|
|||
|
#endif // KEEP_COMMAND_STATS
|
|||
|
|
|||
|
} FTPD_COMMAND, * LPFTPD_COMMAND;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/************************************************************
|
|||
|
* Prototypes for functions
|
|||
|
************************************************************/
|
|||
|
|
|||
|
|
|||
|
BOOL
|
|||
|
MainUSER(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainPASS(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainACCT(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainCWD(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainCDUP(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainSIZE(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainMDTM(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainSMNT(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainQUIT(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainREIN(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainPORT(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainPASV(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainTYPE(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainSTRU(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainMODE(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainRETR(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainSTOR(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainSTOU(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainAPPE(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainALLO(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainREST(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainRNFR(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainRNTO(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainABOR(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainDELE(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainRMD(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainMKD(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainPWD(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainLIST(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainNLST(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainSITE(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainSYST(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainSTAT(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainHELP(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
MainNOOP(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
SiteDIRSTYLE(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
SiteCKM(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
BOOL
|
|||
|
SiteHELP(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
#ifdef KEEP_COMMAND_STATS
|
|||
|
|
|||
|
BOOL
|
|||
|
SiteSTATS(
|
|||
|
LPUSER_DATA pUserData,
|
|||
|
LPSTR pszArg
|
|||
|
);
|
|||
|
|
|||
|
#endif // KEEP_COMMAND_STATS
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# endif // _FTPCMD_HXX_
|
|||
|
|
|||
|
/************************ End of File ***********************/
|
|||
|
|