⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 general.h

📁 samba-3.0.22.tar.gz 编译smb服务器的源码
💻 H
字号:
#ifndef LINUX/* This is only needed by modules in the Sun implementation. */#include <security/pam_appl.h>#endif  /* LINUX */#include <security/pam_modules.h>#ifndef PAM_AUTHTOK_RECOVER_ERR  #define PAM_AUTHTOK_RECOVER_ERR PAM_AUTHTOK_RECOVERY_ERR#endif#include <stdio.h>#include <stdlib.h>#include <syslog.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/wait.h>/* * here is the string to inform the user that the new passwords they * typed were not the same. */#define MISTYPED_PASS "Sorry, passwords do not match"/* type definition for the control options */typedef struct {     const char *token;     unsigned int mask;            /* shall assume 32 bits of flags */     unsigned int flag;} SMB_Ctrls;#ifndef False#define False (0)#endif#ifndef True#define True (1)#endif/* macro to determine if a given flag is on */#define on(x,ctrl)  (smb_args[x].flag & ctrl)/* macro to determine that a given flag is NOT on */#define off(x,ctrl) (!on(x,ctrl))/* macro to turn on/off a ctrl flag manually */#define set(x,ctrl)   (ctrl = ((ctrl)&smb_args[x].mask)|smb_args[x].flag)#define unset(x,ctrl) (ctrl &= ~(smb_args[x].flag))#ifndef __linux__#define strncasecmp(s1,s2,n) StrnCaseCmp(s1,s2,n)#endif/* the generic mask */#define _ALL_ON_  (~0U)/* end of macro definitions definitions for the control flags *//* * These are the options supported by the smb password module, very * similar to the pwdb options */#define SMB__OLD_PASSWD		 0	/* internal */#define SMB__VERIFY_PASSWD	 1	/* internal */#define SMB_AUDIT		 2	/* print more things than debug..					   some information may be sensitive */#define SMB_USE_FIRST_PASS	 3#define SMB_TRY_FIRST_PASS	 4#define SMB_NOT_SET_PASS	 5	/* don't set the AUTHTOK items */#define SMB__NONULL		 6	/* internal */#define SMB__QUIET		 7	/* internal */#define SMB_USE_AUTHTOK		 8	/* insist on reading PAM_AUTHTOK */#define SMB__NULLOK		 9	/* Null token ok */#define SMB_DEBUG		10	/* send more info to syslog(3) */#define SMB_NODELAY		11	/* admin does not want a fail-delay */#define SMB_MIGRATE		12	/* Does no authentication, just					   updates the smb database. */#define SMB_CONF_FILE		13	/* Alternate location of smb.conf */#define SMB_CTRLS_		14	/* number of ctrl arguments defined */static const SMB_Ctrls smb_args[SMB_CTRLS_] = {/* symbol                 token name          ctrl mask      ctrl       * * ------------------     ------------------  -------------- ---------- *//* SMB__OLD_PASSWD */	 {  NULL,            _ALL_ON_,              01 },/* SMB__VERIFY_PASSWD */ {  NULL,            _ALL_ON_,              02 },/* SMB_AUDIT */		 { "audit",          _ALL_ON_,              04 },/* SMB_USE_FIRST_PASS */ { "use_first_pass", _ALL_ON_^(030),       010 },/* SMB_TRY_FIRST_PASS */ { "try_first_pass", _ALL_ON_^(030),       020 },/* SMB_NOT_SET_PASS */	 { "not_set_pass",   _ALL_ON_,             040 },/* SMB__NONULL */	 {  "nonull",        _ALL_ON_,            0100 },/* SMB__QUIET */	 {  NULL,            _ALL_ON_,            0200 },/* SMB_USE_AUTHTOK */	 { "use_authtok",    _ALL_ON_,            0400 },/* SMB__NULLOK */	 { "nullok",         _ALL_ON_^(0100),        0 },/* SMB_DEBUG */		 { "debug",          _ALL_ON_,           01000 },/* SMB_NODELAY */	 { "nodelay",        _ALL_ON_,           02000 },/* SMB_MIGRATE */	 { "migrate",        _ALL_ON_^(0100),	 04000 },/* SMB_CONF_FILE */	 { "smbconf=",       _ALL_ON_,		     0 },};#define SMB_DEFAULTS  (smb_args[SMB__NONULL].flag)/* * the following is used to keep track of the number of times a user fails * to authenticate themself. */#define FAIL_PREFIX			"-SMB-FAIL-"#define SMB_MAX_RETRIES			3struct _pam_failed_auth {    char *user;                 /* user that's failed to be authenticated */    int id;                     /* uid of requested user */    char *agent;                /* attempt from user with name */    int count;                  /* number of failures so far */};/* * General use functions go here  *//* from support.c */int make_remark(pam_handle_t *, unsigned int, int, const char *);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -