FsysSecurity.h
资源名称:warftpd.zip [点击查看]
上传用户:surprise9
上传日期:2007-01-04
资源大小:426k
文件大小:3k
源码类别:
Ftp客户端
开发平台:
Visual C++
- // This is part of the WAR SOFTWARE SERIES initiated by Jarle Aase
- // Copyright 1996 by Jarle Aase. All rights reserved.
- // See the "War Software Series Licende Agreement" for details concerning
- // use and distribution.
- // ---
- // This source code, executables and programs containing source code or
- // binaries or proprietetary technology from the War Software Series are
- // NOT alloed used, viewed or tested by any governmental agencies in
- // any countries. This includes the government, departments, police,
- // military etc.
- // ---
- // This file is intended for use with Tab space = 2
- // Created and maintained in MSVC Developer Studio
- // ---
- // NAME : FsysSecurity.h
- // PURPOSE : File System security
- // PROGRAM :
- // DATE : Oct. 9 1996
- // AUTHOR : Jarle Aase
- // ---
- // REVISION HISTORY
- //
- #ifndef _FSYSSECURITYH
- #define _FSYSSECURITYH
- #define SECFILE ".WarFsysPerms"
- struct SFsysSecurityExtra
- {
- int User; // User number this applies for
- int Perms; // NODE_AREAD NODE_AWRITE NODE_AEXEC
- };
- class DLL_WAR_SOFTWARE_ CFsysSecurityNode
- {
- public:
- DWORD Perms; // Basic file permissions
- USER Owner; // Owner user #
- USER Class; // Class user # (UNIX group)
- DWORD DlCnt; // Download counter
- CString Comment;
- CString FileName;
- DWORD SpecialNewFilePerms;
- public:
- ~CFsysSecurityNode();
- };
- class DLL_WAR_SOFTWARE_ CFsysSecurityGrp
- {
- public:
- CFsysSecurityGrp();
- DWORD DefaultPermFiles;
- DWORD DefaultPermDirs;
- CLinkedList m_Nodes;
- CString m_Path;
- FILE *m_fp; // Only used to update a directory
- public:
- ~CFsysSecurityGrp();
- void DeleteAllNodes();
- };
- class DLL_WAR_SOFTWARE_ CFsysSecurity
- {
- public:
- public:
- static BOOL GetFsysSecurityProperties(HANDLE hGrp, CFileInfo& FileInfo);
- static void LogMsg(int flag, LPCSTR Format, ...);
- static HANDLE LoadSecurityGroup(LPCSTR Path, BOOL DoScanNodes = TRUE);
- static HANDLE GetSecurityDescriptor(HANDLE pGrp, LPCSTR FileName);
- static HANDLE GetSecurityGroupFromPath(int User, int Class, LPCSTR Path);
- static BOOL CloseSecurityGroup(HANDLE pGrp);
- static int GetPermissions(int User, int Class,
- HANDLE pGrp, LPCSTR FileName, BOOL IsDir, int *Mask = NULL,
- CFsysSecurityNode **pFsn = NULL, BOOL ShowRealPerms = TRUE);
- static HANDLE CreateNode(int User, HANDLE pGrp,
- BOOL IsDir, LPCSTR FileName);
- static BOOL FlushGroup(HANDLE pGrp);
- static HANDLE OpenSecurityGroupForUpdate(
- LPCSTR Path,
- DWORD DefaultPermFiles = 0xffffffff,
- DWORD DefaultPermDirs = 0xffffffff);
- static void CFsysSecurity::FlushNode(
- HANDLE hSecGrp,
- LPCSTR FileName,
- DWORD Perms,
- int Owner,
- int Class,
- int DlCnt,
- LPCSTR Comment,
- DWORD SpecialNewFilePerms);
- protected:
- static FILE *OpenSecurityGroupFile(LPCSTR Path, LPCSTR Mode);
- static FILE *fopen(LPCSTR DosPath, LPCSTR Mode);
- };
- #endif _FSYSSECURITYH