📄 htaaprot.h
字号:
/* PROTECTION SETUP FILE */#ifndef HTAAPROT_H#define HTAAPROT_H#include <HTGroup.h>#include <HTAssoc.h>/*Server's Representation of Document (Tree) Protections */typedef struct { char * template; /* Template for this protection */ char * filename; /* Current document file */ char * uid_name; /* Effective uid (name of it) */ char * gid_name; /* Effective gid (name of it) */ GroupDef * mask_group; /* Allowed users and IP addresses */ HTList * valid_schemes;/* Valid authentication schemes */ HTAssocList * values; /* Association list for scheme specific */ /* parameters. */} HTAAProt;/*Callbacks for rule system The following three functioncs are called by the rule system: HTAA_clearProtections() when starting to translate a filename HTAA_setDefaultProtection() when "defprot" rule is matched HTAA_setCurrentProtection() when "protect" rule is matched Protection setup files are cached by these functions. *//* PUBLIC HTAA_setDefaultProtection()** SET THE DEFAULT PROTECTION MODE** (called by rule system when a** "defprot" rule is matched)** ON ENTRY:** cur_docname is the current result of rule translations.** prot_filename is the protection setup file (second argument** for "defprot" rule, optional)** eff_ids contains user and group names separated by** a dot, corresponding to the effective uid** gid under which the server should run,** default is "nobody.nogroup" (third argument** for "defprot" rule, optional; can be given** only if protection setup file is also given).**** ON EXIT:** returns nothing.** Sets the module-wide variable default_prot.*/extern void HTAA_setDefaultProtection PARAMS((CONST char * cur_docname, CONST char * prot_filename, CONST char * eff_ids));/* PUBLIC HTAA_setCurrentProtection()** SET THE CURRENT PROTECTION MODE** (called by rule system when a** "protect" rule is matched)** ON ENTRY:** cur_docname is the current result of rule translations.** prot_filename is the protection setup file (second argument** for "protect" rule, optional)** eff_ids contains user and group names separated by** a dot, corresponding to the effective uid** gid under which the server should run,** default is "nobody.nogroup" (third argument** for "protect" rule, optional; can be given** only if protection setup file is also given).**** ON EXIT:** returns nothing.** Sets the module-wide variable current_prot.*/extern void HTAA_setCurrentProtection PARAMS((CONST char * cur_docname, CONST char * prot_filename, CONST char * eff_ids));/* SERVER INTERNAL HTAA_clearProtections()** CLEAR DOCUMENT PROTECTION MODE** (ALSO DEFAULT PROTECTION)** (called by the rule system)** ON ENTRY:** No arguments.**** ON EXIT:** returns nothing.** Frees the memory used by protection information.*/extern void HTAA_clearProtections NOPARAMS;/*Getting Protection Settings HTAA_getCurrentProtection() returns the current protection mode (if there was a "protect" rule). NULL, if no "protect" rule has been matched. HTAA_getDefaultProtection() sets the current protection mode to what it was set to by "defprot" rule and also returns it (therefore after this call also HTAA_getCurrentProtection() returns the same structure. *//* PUBLIC HTAA_getCurrentProtection()** GET CURRENT PROTECTION SETUP STRUCTURE** (this is set up by callbacks made from** the rule system when matching "protect"** (and "defprot") rules)** ON ENTRY:** HTTranslate() must have been called before calling** this function.**** ON EXIT:** returns a HTAAProt structure representing the** protection setup of the HTTranslate()'d file.** This must not be free()'d.*/extern HTAAProt *HTAA_getCurrentProtection NOPARAMS;/* PUBLIC HTAA_getDefaultProtection()** GET DEFAULT PROTECTION SETUP STRUCTURE** (this is set up by callbacks made from** the rule system when matching "defprot"** rules)** ON ENTRY:** HTTranslate() must have been called before calling** this function.**** ON EXIT:** returns a HTAAProt structure representing the** default protection setup of the HTTranslate()'d** file (if HTAA_getCurrentProtection() returned** NULL, i.e., if there is no "protect" rule** but ACL exists, and we need to know default** protection settings).** This must not be free()'d.*/extern HTAAProt *HTAA_getDefaultProtection NOPARAMS;/*Get User and Group IDs to Which Set to */#ifndef VMS/* PUBLIC HTAA_getUid()** GET THE USER ID TO CHANGE THE PROCESS UID TO** ON ENTRY:** No arguments.**** ON EXIT:** returns the uid number to give to setuid() system call.** Default is 65534 (nobody).*/extern int HTAA_getUid NOPARAMS;/* PUBLIC HTAA_getGid()** GET THE GROUP ID TO CHANGE THE PROCESS GID TO** ON ENTRY:** No arguments.**** ON EXIT:** returns the uid number to give to setgid() system call.** Default is 65534 (nogroup).*/extern int HTAA_getGid NOPARAMS;#endif /* not VMS *//* For VMS: */#ifdef VMS/* PUBLIC HTAA_getUidName()** GET THE USER ID NAME (VMS ONLY)** ON ENTRY:** No arguments.**** ON EXIT:** returns the user name** Default is "" (nobody).*/extern char * HTAA_getUidName NOPARAMS;/* PUBLIC HTAA_getFileName** GET THE FILENAME (VMS ONLY)** ON ENTRY:** No arguments.**** ON EXIT:** returns the filename*/extern char * HTAA_getFileName NOPARAMS;#endif /* VMS *//* PUBLIC HTAA_UidToName** GET THE USER NAME** ON ENTRY:** The user-id**** ON EXIT:** returns the user name*/extern char * HTAA_UidToName PARAMS((int uid));/* PUBLIC HTAA_NameToUid** GET THE USER ID** ON ENTRY:** The user-name**** ON EXIT:** returns the user id*/extern int HTAA_NameToUid PARAMS((char *name));/* PUBLIC HTAA_GidToName** GET THE GROUP NAME** ON ENTRY:** The group-id**** ON EXIT:** returns the group name*/extern char * HTAA_GidToName PARAMS((int gid));/* PUBLIC HTAA_NameToGid** GET THE GROUP ID** ON ENTRY:** The group-name**** ON EXIT:** returns the group id*/extern int HTAA_NameToGid PARAMS((char *name));/* */#endif /* not HTAAPROT_H *//* End of file HTAAProt.h. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -