diff options
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/authdata.h | 2 | ||||
-rw-r--r-- | source3/include/byteorder.h | 2 | ||||
-rw-r--r-- | source3/include/charset.h | 6 | ||||
-rw-r--r-- | source3/include/client.h | 12 | ||||
-rw-r--r-- | source3/include/dynconfig.h | 2 | ||||
-rw-r--r-- | source3/include/idmap.h | 2 | ||||
-rw-r--r-- | source3/include/includes.h | 12 | ||||
-rw-r--r-- | source3/include/popt_common.h | 1 | ||||
-rw-r--r-- | source3/include/rpc_ds.h | 62 | ||||
-rw-r--r-- | source3/include/rpc_samr.h | 3 | ||||
-rw-r--r-- | source3/include/rpc_secdes.h | 20 | ||||
-rw-r--r-- | source3/include/smb.h | 26 | ||||
-rw-r--r-- | source3/include/smbldap.h | 3 | ||||
-rw-r--r-- | source3/include/sysquotas.h | 16 | ||||
-rw-r--r-- | source3/include/version.h | 2 | ||||
-rw-r--r-- | source3/include/vfs.h | 3 |
16 files changed, 131 insertions, 43 deletions
diff --git a/source3/include/authdata.h b/source3/include/authdata.h index 0798b72bdf..9d80745fb0 100644 --- a/source3/include/authdata.h +++ b/source3/include/authdata.h @@ -1,7 +1,7 @@ /* Unix SMB/CIFS implementation. Kerberos authorization data - Copyright (C) Jim McDonough 2003 + Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2003 This program is free software; you can redistribute it and/or modify diff --git a/source3/include/byteorder.h b/source3/include/byteorder.h index c262dd2d33..0eef557306 100644 --- a/source3/include/byteorder.h +++ b/source3/include/byteorder.h @@ -105,7 +105,7 @@ it also defines lots of intermediate macros, just ignore those :-) #define CAREFUL_ALIGNMENT 1 #endif -#define CVAL(buf,pos) (((const unsigned char *)(buf))[pos]) +#define CVAL(buf,pos) ((unsigned)(((const unsigned char *)(buf))[pos])) #define CVAL_NC(buf,pos) (((unsigned char *)(buf))[pos]) /* Non-const version of CVAL */ #define PVAL(buf,pos) (CVAL(buf,pos)) #define SCVAL(buf,pos,val) (CVAL_NC(buf,pos) = (val)) diff --git a/source3/include/charset.h b/source3/include/charset.h index c56984ca7b..f999a9cf72 100644 --- a/source3/include/charset.h +++ b/source3/include/charset.h @@ -24,9 +24,9 @@ typedef enum {CH_UCS2=0, CH_UNIX=1, CH_DISPLAY=2, CH_DOS=3, CH_UTF8=4} charset_t #define NUM_CHARSETS 5 -/* - * for each charset we have a function that pulls from that charset to - * a ucs2 buffer, and a function that pushes to a ucs2 buffer +/* + * for each charset we have a function that pushes from that charset to a ucs2 + * buffer, and a function that pulls from ucs2 buffer to that charset. * */ struct charset_functions { diff --git a/source3/include/client.h b/source3/include/client.h index fad2c099b9..598e6c0bda 100644 --- a/source3/include/client.h +++ b/source3/include/client.h @@ -57,18 +57,6 @@ struct print_job_info time_t t; }; -typedef struct smb_sign_info { - void (*sign_outgoing_message)(struct cli_state *cli); - BOOL (*check_incoming_message)(struct cli_state *cli); - void (*free_signing_context)(struct cli_state *cli); - void *signing_context; - - BOOL negotiated_smb_signing; - BOOL allow_smb_signing; - BOOL doing_signing; - BOOL mandatory_signing; -} smb_sign_info; - struct cli_state { int port; int fd; diff --git a/source3/include/dynconfig.h b/source3/include/dynconfig.h index ce256f0613..a74d77e41f 100644 --- a/source3/include/dynconfig.h +++ b/source3/include/dynconfig.h @@ -1,7 +1,7 @@ /* Unix SMB/CIFS implementation. Copyright (C) 2001 by Martin Pool <mbp@samba.org> - Copyright (C) 2003 by Anthony Liguori <aliguor@us.ibm.com> + Copyright (C) 2003 by Jim McDonough <jmcd@us.ibm.com> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/source3/include/idmap.h b/source3/include/idmap.h index ae7e4e5101..20b1015285 100644 --- a/source3/include/idmap.h +++ b/source3/include/idmap.h @@ -5,7 +5,7 @@ Idmap headers - Copyright (C) Anthony Liguori 2003 + Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2003 Copyright (C) Simo Sorce 2003 This library is free software; you can redistribute it and/or diff --git a/source3/include/includes.h b/source3/include/includes.h index edaeda3abe..eb7f73b9d3 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -835,6 +835,8 @@ extern int errno; #include "nsswitch/winbind_client.h" +#include "spnego.h" + /* * Type for wide character dirent structure. * Only d_name is defined by POSIX. @@ -1232,6 +1234,14 @@ int snprintf(char *,size_t ,const char *, ...) PRINTF_ATTRIBUTE(3,4); 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 +#endif + void sys_adminlog(int priority, const char *format_str, ...) PRINTF_ATTRIBUTE(2,3); int pstr_sprintf(pstring s, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3); @@ -1288,7 +1298,7 @@ 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, uint8 session_key[16]); +BOOL get_krb5_smb_session_key(krb5_context context, krb5_auth_context auth_context, uint8 session_key[16], BOOL remote); #endif /* HAVE_KRB5 */ /* TRUE and FALSE are part of the C99 standard and gcc, but diff --git a/source3/include/popt_common.h b/source3/include/popt_common.h index 57850bf682..6db30fbc0a 100644 --- a/source3/include/popt_common.h +++ b/source3/include/popt_common.h @@ -41,6 +41,7 @@ struct user_auth_info { pstring password; BOOL got_pass; BOOL use_kerberos; + int signing_state; }; extern struct user_auth_info cmdline_auth_info; diff --git a/source3/include/rpc_ds.h b/source3/include/rpc_ds.h index c01d10554e..7350fdba1f 100644 --- a/source3/include/rpc_ds.h +++ b/source3/include/rpc_ds.h @@ -28,6 +28,10 @@ #define DS_GETPRIMDOMINFO 0x00 +/* Opcodes available on PIPE_NETLOGON */ + +#define DS_ENUM_DOM_TRUSTS 0x28 + /* macros for RPC's */ @@ -50,10 +54,9 @@ typedef struct GUID domain_guid; UNISTR2 netbios_domain; - /* these 2 might be reversed in order. I can't tell from - my tests as both values are the same --jerry */ - UNISTR2 dns_domain; - UNISTR2 forest_domain; + + UNISTR2 dns_domain; /* our dns domain */ + UNISTR2 forest_domain; /* root domain of the forest to which we belong */ } DSROLE_PRIMARY_DOMAIN_INFO_BASIC; typedef struct @@ -85,7 +88,58 @@ typedef struct NTSTATUS status; } DS_R_GETPRIMDOMINFO; +typedef struct { + /* static portion of structure */ + uint32 netbios_ptr; + uint32 dns_ptr; + uint32 flags; + uint32 parent_index; + uint32 trust_type; + uint32 trust_attributes; + uint32 sid_ptr; + GUID guid; + + UNISTR2 netbios_domain; + UNISTR2 dns_domain; + DOM_SID2 sid; + +} DS_DOMAIN_TRUSTS; + +typedef struct { + + uint32 ptr; + uint32 max_count; + DS_DOMAIN_TRUSTS *trusts; + +} DS_DOMAIN_TRUSTS_CTR; + +#define DS_DOMAIN_IN_FOREST 0x0001 /* domains in the forest to which + we belong; even different domain trees */ +#define DS_DOMAIN_DIRECT_OUTBOUND 0x0002 /* trusted domains */ +#define DS_DOMAIN_TREE_ROOT 0x0004 /* root of our forest; also available in + DsRoleGetPrimaryDomainInfo() */ +#define DS_DOMAIN_PRIMARY 0x0008 /* our domain */ +#define DS_DOMAIN_NATIVE_MODE 0x0010 /* native mode AD servers */ +#define DS_DOMAIN_DIRECT_INBOUND 0x0020 /* trusting domains */ + +/* DS_Q_ENUM_DOM_TRUSTS - DsEnumerateDomainTrusts() request */ +typedef struct +{ + uint32 server_ptr; + UNISTR2 server; + uint32 flags; + +} DS_Q_ENUM_DOM_TRUSTS; + +/* DS_R_ENUM_DOM_TRUSTS - DsEnumerateDomainTrusts() response */ +typedef struct +{ + uint32 num_domains; + DS_DOMAIN_TRUSTS_CTR domains; + + NTSTATUS status; +} DS_R_ENUM_DOM_TRUSTS; #endif /* _RPC_DS_H */ diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h index 7d28a0f3a7..8ec274176a 100644 --- a/source3/include/rpc_samr.h +++ b/source3/include/rpc_samr.h @@ -5,8 +5,7 @@ Copyright (C) Luke Kenneth Casson Leighton 1996-2000 Copyright (C) Paul Ashton 1997-2000 Copyright (C) Jean François Micouleau 1998-2001 - Copyright (C) Anthony Liguori 2002 - Copyright (C) Jim McDonough 2002 + Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2002 This program is free software; you can redistribute it and/or modify diff --git a/source3/include/rpc_secdes.h b/source3/include/rpc_secdes.h index fb7060cde3..5e718f8167 100644 --- a/source3/include/rpc_secdes.h +++ b/source3/include/rpc_secdes.h @@ -305,12 +305,12 @@ typedef struct standard_mapping { SA_RIGHT_FILE_EXECUTE) -/* SAM Object specific access rights */ +/* SAM server specific access rights */ -#define SA_RIGHT_SAM_UNKNOWN_1 0x00000001 +#define SA_RIGHT_SAM_CONNECT_SERVER 0x00000001 #define SA_RIGHT_SAM_SHUTDOWN_SERVER 0x00000002 -#define SA_RIGHT_SAM_UNKNOWN_4 0x00000004 -#define SA_RIGHT_SAM_UNKNOWN_8 0x00000008 +#define SA_RIGHT_SAM_INITIALISE_SERVER 0x00000004 +#define SA_RIGHT_SAM_CREATE_DOMAIN 0x00000008 #define SA_RIGHT_SAM_ENUM_DOMAINS 0x00000010 #define SA_RIGHT_SAM_OPEN_DOMAIN 0x00000020 @@ -326,14 +326,14 @@ typedef struct standard_mapping { #define GENERIC_RIGHTS_SAM_WRITE \ (STANDARD_RIGHTS_WRITE_ACCESS | \ - SA_RIGHT_SAM_UNKNOWN_8 | \ - SA_RIGHT_SAM_UNKNOWN_4 | \ + SA_RIGHT_SAM_CREATE_DOMAIN | \ + SA_RIGHT_SAM_INITIALISE_SERVER | \ SA_RIGHT_SAM_SHUTDOWN_SERVER) #define GENERIC_RIGHTS_SAM_EXECUTE \ (STANDARD_RIGHTS_EXECUTE_ACCESS | \ SA_RIGHT_SAM_OPEN_DOMAIN | \ - SA_RIGHT_SAM_UNKNOWN_1) + SA_RIGHT_SAM_CONNECT_SERVER) /* Domain Object specific access rights */ @@ -388,8 +388,8 @@ typedef struct standard_mapping { #define SA_RIGHT_USER_CHANGE_PASSWORD 0x00000040 #define SA_RIGHT_USER_SET_PASSWORD 0x00000080 #define SA_RIGHT_USER_GET_GROUPS 0x00000100 -#define SA_RIGHT_USER_UNKNOWN_200 0x00000200 -#define SA_RIGHT_USER_UNKNOWN_400 0x00000400 +#define SA_RIGHT_USER_READ_GROUP_MEM 0x00000200 +#define SA_RIGHT_USER_CHANGE_GROUP_MEM 0x00000400 #define SA_RIGHT_USER_ALL_ACCESS 0x000007FF @@ -399,7 +399,7 @@ typedef struct standard_mapping { #define GENERIC_RIGHTS_USER_READ \ (STANDARD_RIGHTS_READ_ACCESS | \ - SA_RIGHT_USER_UNKNOWN_200 | \ + SA_RIGHT_USER_READ_GROUP_MEM | \ SA_RIGHT_USER_GET_GROUPS | \ SA_RIGHT_USER_ACCT_FLAGS_EXPIRY | \ SA_RIGHT_USER_GET_LOGONINFO | \ diff --git a/source3/include/smb.h b/source3/include/smb.h index d2714e78bc..deeb61034d 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -42,6 +42,7 @@ #define SMB_PORT2 139 #define SMB_PORTS "445 139" +#define Undefined (-1) #define False (0) #define True (1) #define Auto (2) @@ -79,9 +80,7 @@ typedef int BOOL; #define READ_TIMEOUT 1 #define READ_EOF 2 #define READ_ERROR 3 - -/* This error code can go into the client smb_rw_error. */ -#define WRITE_ERROR 4 +#define WRITE_ERROR 4 /* This error code can go into the client smb_rw_error. */ #define READ_BAD_SIG 5 #define DIR_STRUCT_SIZE 43 @@ -707,13 +706,14 @@ struct bitmap { unsigned int n; }; -#define FLAG_BASIC 0x0001 /* fundamental options */ +/* The following flags are used in SWAT */ +#define FLAG_BASIC 0x0001 /* Display only in BASIC view */ #define FLAG_SHARE 0x0002 /* file sharing options */ #define FLAG_PRINT 0x0004 /* printing options */ #define FLAG_GLOBAL 0x0008 /* local options that should be globally settable in SWAT */ #define FLAG_WIZARD 0x0010 /* Parameters that the wizard will operate on */ -#define FLAG_ADVANCED 0x0020 /* Parameters that the wizard will operate on */ -#define FLAG_DEVELOPER 0x0040 /* Parameters that the wizard will operate on */ +#define FLAG_ADVANCED 0x0020 /* Parameters that will be visible in advanced view */ +#define FLAG_DEVELOPER 0x0040 /* No longer used */ #define FLAG_DEPRECATED 0x1000 /* options that should no longer be used */ #define FLAG_HIDE 0x2000 /* options that should be hidden in SWAT */ #define FLAG_DOS_STRING 0x4000 /* convert from UNIX to DOS codepage when reading this string. */ @@ -1630,4 +1630,18 @@ struct ip_service { unsigned port; }; +/* Used by the SMB signing functions. */ + +typedef struct smb_sign_info { + void (*sign_outgoing_message)(char *outbuf, struct smb_sign_info *si); + BOOL (*check_incoming_message)(char *inbuf, struct smb_sign_info *si); + void (*free_signing_context)(struct smb_sign_info *si); + void *signing_context; + + BOOL negotiated_smb_signing; + BOOL allow_smb_signing; + BOOL doing_signing; + BOOL mandatory_signing; +} smb_sign_info; + #endif /* _SMB_H */ diff --git a/source3/include/smbldap.h b/source3/include/smbldap.h index 589d01aa6d..826fc3c55a 100644 --- a/source3/include/smbldap.h +++ b/source3/include/smbldap.h @@ -132,6 +132,9 @@ struct smbldap_state { char *bind_secret; unsigned int num_failures; + + time_t last_use; + smb_event_id_t event_id; }; #endif /* HAVE_LDAP */ diff --git a/source3/include/sysquotas.h b/source3/include/sysquotas.h index cfdac0609a..b803e6277a 100644 --- a/source3/include/sysquotas.h +++ b/source3/include/sysquotas.h @@ -189,6 +189,22 @@ #define SMB_QUOTAS_NO_LIMIT ((SMB_BIG_UINT)(0)) #define SMB_QUOTAS_NO_SPACE ((SMB_BIG_UINT)(1)) +#define SMB_QUOTAS_SET_NO_LIMIT(dp) \ +{\ + (dp)->softlimit = SMB_QUOTAS_NO_LIMIT;\ + (dp)->hardlimit = SMB_QUOTAS_NO_LIMIT;\ + (dp)->isoftlimit = SMB_QUOTAS_NO_LIMIT;\ + (dp)->ihardlimit = SMB_QUOTAS_NO_LIMIT;\ +} + +#define SMB_QUOTAS_SET_NO_SPACE(dp) \ +{\ + (dp)->softlimit = SMB_QUOTAS_NO_SPACE;\ + (dp)->hardlimit = SMB_QUOTAS_NO_SPACE;\ + (dp)->isoftlimit = SMB_QUOTAS_NO_SPACE;\ + (dp)->ihardlimit = SMB_QUOTAS_NO_SPACE;\ +} + typedef struct _SMB_DISK_QUOTA { enum SMB_QUOTA_TYPE qtype; SMB_BIG_UINT bsize; diff --git a/source3/include/version.h b/source3/include/version.h index 5e2d47e1de..68bc140daf 100644 --- a/source3/include/version.h +++ b/source3/include/version.h @@ -1 +1 @@ -#define VERSION "3.0.0beta3" +#define VERSION "3.0.0rc1" diff --git a/source3/include/vfs.h b/source3/include/vfs.h index 924d706321..452f4dc23b 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -466,6 +466,9 @@ typedef struct vfs_handle_struct { } \ } +/* Check whether module-specific data handle was already allocated or not */ +#define SMB_VFS_HANDLE_TEST_DATA(handle) ( !(handle) || !(handle)->data ? False : True ) + #define SMB_VFS_OP(x) ((void *) x) |