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

📄 includes.h

📁 samba-3.0.22.tar.gz 编译smb服务器的源码
💻 H
📖 第 1 页 / 共 3 页
字号:
/* forward declaration from printing.h to get around    header file dependencies */struct printjob;struct smb_ldap_privates;/* forward declarations from smbldap.c */#include "smbldap.h"#include "smb_ldap.h"/***** automatically generated prototypes *****/#ifndef NO_PROTO_H#include "proto.h"#endif/* String routines */#include "srvstr.h"#include "safe_string.h"#ifdef __COMPAR_FN_T#define QSORT_CAST (__compar_fn_t)#endif#ifndef QSORT_CAST#define QSORT_CAST (int (*)(const void *, const void *))#endif#ifndef DEFAULT_PRINTING#ifdef HAVE_CUPS#define DEFAULT_PRINTING PRINT_CUPS#define PRINTCAP_NAME "cups"#elif defined(SYSV)#define DEFAULT_PRINTING PRINT_SYSV#define PRINTCAP_NAME "lpstat"#else#define DEFAULT_PRINTING PRINT_BSD#define PRINTCAP_NAME "/etc/printcap"#endif#endif#ifndef PRINTCAP_NAME#define PRINTCAP_NAME "/etc/printcap"#endif#ifndef SIGCLD#define SIGCLD SIGCHLD#endif#ifndef SIGRTMIN#define SIGRTMIN 32#endif#ifndef MAP_FILE#define MAP_FILE 0#endif#if defined(HAVE_PUTPRPWNAM) && defined(AUTH_CLEARTEXT_SEG_CHARS)#define OSF1_ENH_SEC 1#endif#ifndef ALLOW_CHANGE_PASSWORD#if (defined(HAVE_TERMIOS_H) && defined(HAVE_DUP2) && defined(HAVE_SETSID))#define ALLOW_CHANGE_PASSWORD 1#endif#endif/* what is the longest significant password available on your system?  Knowing this speeds up password searches a lot */#ifndef PASSWORD_LENGTH#define PASSWORD_LENGTH 8#endif#ifdef REPLACE_INET_NTOA#define inet_ntoa rep_inet_ntoa#endif#ifndef HAVE_PIPE#define SYNC_DNS 1#endif#ifndef SEEK_SET#define SEEK_SET 0#endif#ifndef INADDR_LOOPBACK#define INADDR_LOOPBACK 0x7f000001#endif#ifndef INADDR_NONE#define INADDR_NONE 0xffffffff#endif#ifndef HAVE_CRYPT#define crypt ufc_crypt#endif#ifndef O_ACCMODE#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)#endif#if defined(HAVE_CRYPT16) && defined(HAVE_GETAUTHUID)#define ULTRIX_AUTH 1#endif#ifndef HAVE_STRDUPchar *strdup(const char *s);#endif#ifndef HAVE_STRNDUPchar *strndup(const char *s, size_t size);#endif#ifndef HAVE_MEMMOVEvoid *memmove(void *dest,const void *src,int size);#endif#ifndef HAVE_INITGROUPSint initgroups(char *name,gid_t id);#endif#ifndef HAVE_RENAMEint rename(const char *zfrom, const char *zto);#endif#ifndef HAVE_MKTIMEtime_t mktime(struct tm *t);#endif#ifndef HAVE_STRLCPYsize_t strlcpy(char *d, const char *s, size_t bufsize);#endif#ifndef HAVE_STRLCATsize_t strlcat(char *d, const char *s, size_t bufsize);#endif#ifndef HAVE_FTRUNCATEint ftruncate(int f,long l);#endif#ifndef HAVE_STRNDUPchar *strndup(const char *s, size_t n);#endif#ifndef HAVE_STRNLENsize_t strnlen(const char *s, size_t n);#endif#ifndef HAVE_STRTOULunsigned long strtoul(const char *nptr, char **endptr, int base);#endif#ifndef HAVE_SETENVint setenv(const char *name, const char *value, int overwrite); #endif#if (defined(USE_SETRESUID) && !defined(HAVE_SETRESUID_DECL))/* stupid glibc */int setresuid(uid_t ruid, uid_t euid, uid_t suid);#endif#if (defined(USE_SETRESUID) && !defined(HAVE_SETRESGID_DECL))int setresgid(gid_t rgid, gid_t egid, gid_t sgid);#endif#ifndef HAVE_VASPRINTF_DECLint vasprintf(char **ptr, const char *format, va_list ap);#endif#ifdef REPLACE_GETPASS#define getpass(prompt) getsmbpass((prompt))#endif/* * Some older systems seem not to have MAXHOSTNAMELEN * defined. */#ifndef MAXHOSTNAMELEN#define MAXHOSTNAMELEN 254#endif/* yuck, I'd like a better way of doing this */#define DIRP_SIZE (256 + 32)/* * glibc on linux doesn't seem to have MSG_WAITALL * defined. I think the kernel has it though.. */#ifndef MSG_WAITALL#define MSG_WAITALL 0#endif/* default socket options. Dave Miller thinks we should default to TCP_NODELAY   given the socket IO pattern that Samba uses */#ifdef TCP_NODELAY#define DEFAULT_SOCKET_OPTIONS "TCP_NODELAY"#else#define DEFAULT_SOCKET_OPTIONS ""#endif/* Load header file for dynamic linking stuff */#ifdef HAVE_DLFCN_H#include <dlfcn.h>#endif/* dmalloc -- free heap debugger (dmalloc.org).  This should be near * the *bottom* of include files so as not to conflict. */#ifdef ENABLE_DMALLOC#  include <dmalloc.h>#endif/* Some POSIX definitions for those without */ #ifndef S_IFDIR#define S_IFDIR         0x4000#endif#ifndef S_ISDIR#define S_ISDIR(mode)   ((mode & 0xF000) == S_IFDIR)#endif#ifndef S_IRWXU#define S_IRWXU 00700           /* read, write, execute: owner */#endif#ifndef S_IRUSR#define S_IRUSR 00400           /* read permission: owner */#endif#ifndef S_IWUSR#define S_IWUSR 00200           /* write permission: owner */#endif#ifndef S_IXUSR#define S_IXUSR 00100           /* execute permission: owner */#endif#ifndef S_IRWXG#define S_IRWXG 00070           /* read, write, execute: group */#endif#ifndef S_IRGRP#define S_IRGRP 00040           /* read permission: group */#endif#ifndef S_IWGRP#define S_IWGRP 00020           /* write permission: group */#endif#ifndef S_IXGRP#define S_IXGRP 00010           /* execute permission: group */#endif#ifndef S_IRWXO#define S_IRWXO 00007           /* read, write, execute: other */#endif#ifndef S_IROTH#define S_IROTH 00004           /* read permission: other */#endif#ifndef S_IWOTH#define S_IWOTH 00002           /* write permission: other */#endif#ifndef S_IXOTH#define S_IXOTH 00001           /* execute permission: other */#endif/* For sys_adminlog(). */#ifndef LOG_EMERG#define LOG_EMERG       0       /* system is unusable */#endif#ifndef LOG_ALERT#define LOG_ALERT       1       /* action must be taken immediately */#endif#ifndef LOG_CRIT#define LOG_CRIT        2       /* critical conditions */#endif#ifndef LOG_ERR#define LOG_ERR         3       /* error conditions */#endif#ifndef LOG_WARNING#define LOG_WARNING     4       /* warning conditions */#endif#ifndef LOG_NOTICE#define LOG_NOTICE      5       /* normal but significant condition */#endif#ifndef LOG_INFO#define LOG_INFO        6       /* informational */#endif#ifndef LOG_DEBUG#define LOG_DEBUG       7       /* debug-level messages */#endif#if HAVE_KERNEL_SHARE_MODES#ifndef LOCK_MAND #define LOCK_MAND	32	/* This is a mandatory flock */#define LOCK_READ	64	/* ... Which allows concurrent read operations */#define LOCK_WRITE	128	/* ... Which allows concurrent write operations */#define LOCK_RW		192	/* ... Which allows concurrent read & write ops */#endif#endifextern int DEBUGLEVEL;#define MAX_SEC_CTX_DEPTH 8    /* Maximum number of security contexts */#ifdef GLIBC_HACK_FCNTL64/* this is a gross hack. 64 bit locking is completely screwed up on   i386 Linux in glibc 2.1.95 (which ships with RedHat 7.0). This hack   "fixes" the problem with the current 2.4.0test kernels */#define fcntl fcntl64#undef F_SETLKW #undef F_SETLK #define F_SETLK 13#define F_SETLKW 14#endif/* Needed for sys_dlopen/sys_dlsym/sys_dlclose */#ifndef RTLD_GLOBAL#define RTLD_GLOBAL 0#endif#ifndef RTLD_LAZY#define RTLD_LAZY 0#endif#ifndef RTLD_NOW#define RTLD_NOW 0#endif/* needed for some systems without iconv. Doesn't really matter   what error code we use */#ifndef EILSEQ#define EILSEQ EIO#endif/* add varargs prototypes with printf checking *//*PRINTFLIKE2 */int fdprintf(int , const char *, ...) PRINTF_ATTRIBUTE(2,3);/*PRINTFLIKE1 */int d_printf(const char *, ...) PRINTF_ATTRIBUTE(1,2);/*PRINTFLIKE2 */int d_fprintf(FILE *f, const char *, ...) PRINTF_ATTRIBUTE(2,3);#ifndef HAVE_SNPRINTF_DECL/*PRINTFLIKE3 */int snprintf(char *,size_t ,const char *, ...) PRINTF_ATTRIBUTE(3,4);#endif#ifndef HAVE_ASPRINTF_DECL/*PRINTFLIKE2 */int asprintf(char **,const char *, ...) PRINTF_ATTRIBUTE(2,3);#endif/* Fix prototype problem with non-C99 compliant snprintf implementations, esp   HPUX 11.  Don't change the sense of this #if statement.  Read the comments   in lib/snprint.c if you think you need to.  See also bugzilla bug 174. */#if !defined(HAVE_SNPRINTF) || !defined(HAVE_C99_VSNPRINTF)#define snprintf smb_snprintf#define vsnprintf smb_vsnprintf/* PRINTFLIKE3 */int smb_snprintf(char *str,size_t count,const char *fmt,...);int smb_vsnprintf (char *str, size_t count, const char *fmt, va_list args);#endif/* PRINTFLIKE2 */void sys_adminlog(int priority, const char *format_str, ...) PRINTF_ATTRIBUTE(2,3);/* PRINTFLIKE2 */int pstr_sprintf(pstring s, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);/* PRINTFLIKE2 */int fstr_sprintf(fstring s, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);int d_vfprintf(FILE *f, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);int smb_xvasprintf(char **ptr, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);/* we used to use these fns, but now we have good replacements   for snprintf and vsnprintf */#define slprintf snprintf#define vslprintf vsnprintf/* we need to use __va_copy() on some platforms */#ifdef HAVE_VA_COPY#define VA_COPY(dest, src) va_copy(dest, src)#else#ifdef HAVE___VA_COPY#define VA_COPY(dest, src) __va_copy(dest, src)#else#define VA_COPY(dest, src) (dest) = (src)#endif#endif#ifndef HAVE_TIMEGMtime_t timegm(struct tm *tm);#endif/* * Veritas File System.  Often in addition to native. * Quotas different. */#if defined(HAVE_SYS_FS_VX_QUOTA_H)#define VXFS_QUOTA#endif#if defined(HAVE_KRB5)#ifndef HAVE_KRB5_SET_REAL_TIMEkrb5_error_code krb5_set_real_time(krb5_context context, int32_t seconds, int32_t microseconds);#endif#ifndef HAVE_KRB5_SET_DEFAULT_TGS_KTYPESkrb5_error_code krb5_set_default_tgs_ktypes(krb5_context ctx, const krb5_enctype *enc);#endif#if defined(HAVE_KRB5_AUTH_CON_SETKEY) && !defined(HAVE_KRB5_AUTH_CON_SETUSERUSERKEY)krb5_error_code krb5_auth_con_setuseruserkey(krb5_context context, krb5_auth_context auth_context, krb5_keyblock *keyblock);#endif#ifndef HAVE_KRB5_FREE_UNPARSED_NAMEvoid krb5_free_unparsed_name(krb5_context ctx, char *val);#endif/* Samba wrapper function for krb5 functionality. */void setup_kaddr( krb5_address *pkaddr, struct sockaddr *paddr);int create_kerberos_key_from_string(krb5_context context, krb5_principal host_princ, krb5_data *password, krb5_keyblock *key, krb5_enctype enctype);int create_kerberos_key_from_string_direct(krb5_context context, krb5_principal host_princ, krb5_data *password, krb5_keyblock *key, krb5_enctype enctype);BOOL get_auth_data_from_tkt(TALLOC_CTX *mem_ctx, DATA_BLOB *auth_data, krb5_ticket *tkt);krb5_const_principal get_principal_from_tkt(krb5_ticket *tkt);krb5_error_code krb5_locate_kdc(krb5_context ctx, const krb5_data *realm, struct sockaddr **addr_pp, int *naddrs, int get_masters);krb5_error_code get_kerberos_allowed_etypes(krb5_context context, krb5_enctype **enctypes);void free_kerberos_etypes(krb5_context context, krb5_enctype *enctypes);BOOL get_krb5_smb_session_key(krb5_context context, krb5_auth_context auth_context, DATA_BLOB *session_key, BOOL remote);krb5_error_code smb_krb5_kt_free_entry(krb5_context context, krb5_keytab_entry *kt_entry);krb5_principal kerberos_fetch_salt_princ_for_host_princ(krb5_context context, krb5_principal host_princ, int enctype);void kerberos_set_creds_enctype(krb5_creds *pcreds, int enctype);BOOL kerberos_compatible_enctypes(krb5_context context, krb5_enctype enctype1, krb5_enctype enctype2);void kerberos_free_data_contents(krb5_context context, krb5_data *pdata);NTSTATUS decode_pac_data(TALLOC_CTX *mem_ctx,			 DATA_BLOB *pac_data_blob,			 krb5_context context, 			 krb5_keyblock *service_keyblock,			 krb5_const_principal client_principal,			 time_t tgs_authtime,			 PAC_DATA **pac_data);void smb_krb5_checksum_from_pac_sig(krb5_checksum *cksum, 				    PAC_SIGNATURE_DATA *sig);krb5_error_code smb_krb5_verify_checksum(krb5_context context,					 krb5_keyblock *keyblock,					 krb5_keyusage usage,					 krb5_checksum *cksum,					 uint8 *data,					 size_t length);time_t get_authtime_from_tkt(krb5_ticket *tkt);void smb_krb5_free_ap_req(krb5_context context, 			  krb5_ap_req *ap_req);krb5_error_code smb_krb5_get_keyinfo_from_ap_req(krb5_context context, 						 const krb5_data *inbuf, 						 krb5_kvno *kvno, 						 krb5_enctype *enctype);krb5_error_code krb5_rd_req_return_keyblock_from_keytab(krb5_context context,							krb5_auth_context *auth_context,							const krb5_data *inbuf,							krb5_const_principal server,							krb5_keytab keytab,							krb5_flags *ap_req_options,							krb5_ticket **ticket, 							krb5_keyblock **keyblock);krb5_error_code smb_krb5_parse_name_norealm(krb5_context context, 					    const char *name, 					    krb5_principal *principal);BOOL smb_krb5_principal_compare_any_realm(krb5_context context, 					  krb5_const_principal princ1, 					  krb5_const_principal princ2);int cli_krb5_get_ticket(const char *principal, time_t time_offset, 			DATA_BLOB *ticket, DATA_BLOB *session_key_krb5, uint32 extra_ap_opts);PAC_LOGON_INFO *get_logon_info_from_pac(PAC_DATA *pac_data);#endif /* HAVE_KRB5 */#ifdef HAVE_LDAP/* function declarations not included in proto.h */LDAP *ldap_open_with_timeout(const char *server, int port, unsigned int to);#endif	/* HAVE_LDAP *//* TRUE and FALSE are part of the C99 standard and gcc, but   unfortunately many vendor compilers don't support them.  Use True   and False instead. */#ifdef TRUE#undef TRUE#endif#define TRUE __ERROR__XX__DONT_USE_TRUE#ifdef FALSE#undef FALSE#endif#define FALSE __ERROR__XX__DONT_USE_FALSE/* If we have blacklisted mmap() try to avoid using it accidentally by   undefining the HAVE_MMAP symbol. */#ifdef MMAP_BLACKLIST#undef HAVE_MMAP#endif#define CONST_DISCARD(type, ptr)      ((type) ((void *) (ptr)))#define CONST_ADD(type, ptr)          ((type) ((const void *) (ptr)))#endif /* _INCLUDES_H */

⌨️ 快捷键说明

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