r4650: - make more use of bitmap and enum's
authorStefan Metzmacher <metze@samba.org>
Mon, 10 Jan 2005 17:28:36 +0000 (17:28 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:08:39 +0000 (13:08 -0500)
- move some structs out of misc.idl

metze
(This used to be commit b6543a6e3057b5588ec50a2ebf6c7c932209efe6)

source4/dsdb/samdb/samdb.c
source4/include/structs.h
source4/libcli/auth/credentials.h
source4/libcli/auth/ntlmssp.h
source4/librpc/idl/misc.idl
source4/librpc/idl/netlogon.idl
source4/librpc/idl/samr.idl
source4/param/loadparm.c
source4/rpc_server/dssetup/dcesrv_dssetup.c
source4/rpc_server/samr/samr_password.c

index 9dbf1f98822fdd1f8676dcc9ce5e844d57f8c4be..52ffb0a3d1f188c73d4251f61620664c6d3c8f9d 100644 (file)
@@ -837,11 +837,11 @@ int samdb_msg_add_uint64(void *ctx, TALLOC_CTX *mem_ctx, struct ldb_message *msg
   add a samr_Password element to a message
 */
 int samdb_msg_add_hash(void *ctx, TALLOC_CTX *mem_ctx, struct ldb_message *msg,
-                      const char *attr_name, struct samr_Password hash)
+                      const char *attr_name, struct samr_Password *hash)
 {
        struct ldb_wrap *sam_ctx = ctx;
        struct ldb_val val;
-       val.data = talloc_memdup(mem_ctx, hash.hash, 16);
+       val.data = talloc_memdup(mem_ctx, hash->hash, 16);
        if (!val.data) {
                return -1;
        }
index 006446b4b15e2295b1377fbc851ee6bcd1bb8dd4..06aa8ea2cfaf55112324faa6c6d6a67b7d77ea75 100644 (file)
@@ -42,10 +42,12 @@ struct samr_ChangePasswordUser;
 struct samr_OemChangePasswordUser2;
 struct samr_ChangePasswordUser3;
 struct samr_ChangePasswordUser2;
+struct samr_Password;
 struct samr_CryptPassword;
 struct samr_CryptPasswordEx;
 struct samr_LogonHours;
 
+struct netr_Credential;
 struct netr_Authenticator;
 union netr_Validation;
 
index 01206bc282cc660bab5c6e94217086933712e80e..ffefcc03056c16b623e253ca960cc7955058cf53 100644 (file)
@@ -20,6 +20,8 @@
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+#include "librpc/gen_ndr/ndr_netlogon.h"
+
 struct creds_CredentialState {
        uint32_t negotiate_flags;
        uint8_t session_key[16];
@@ -32,8 +34,6 @@ struct creds_CredentialState {
        char *account_name;
 };
 
-
-
 /* for the timebeing, use the same neg flags as Samba3. */
 /* The 7 here seems to be required to get Win2k not to downgrade us
    to NT4.  Actually, anything other than 1ff would seem to do... */
index a6d1510450aa253acc5c88939cf5c6d7f4f4df09..e8a2356e2c89890d6c6cdcf3338b4af519d54d55 100644 (file)
@@ -20,6 +20,8 @@
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+#include "librpc/gen_ndr/ndr_samr.h"
+
 /* NTLMSSP mode */
 enum ntlmssp_role
 {
index 61adf04630a997faf35a2622c2d80e892c359711..13306b687627637047e481e464bb36694d52dd60 100644 (file)
@@ -6,15 +6,6 @@
 
 interface misc
 {
-       /* server roles */
-       typedef enum {
-               ROLE_STANDALONE    = 0,
-               ROLE_DOMAIN_MEMBER = 1,
-               ROLE_DOMAIN_BDC    = 2,
-               ROLE_DOMAIN_PDC    = 3
-       } samr_Role;
-
-
        typedef [public,noprint,gensize] struct {
                uint32 time_low;
                uint16 time_mid;
@@ -27,18 +18,4 @@ interface misc
                uint32 handle_type;
                GUID   uuid;
        } policy_handle;
-
-       typedef [public, flag(NDR_PAHEX)] struct {
-               uint8 hash[16];
-       } samr_Password;
-
-       typedef [public, flag(NDR_PAHEX)] struct {
-               uint8 data[8];
-       } netr_Credential;
-
-       typedef [public] struct {
-               netr_Credential cred;
-               time_t timestamp;
-       } netr_Authenticator;
-
 }
index 85ff0b714c5dd50e6de67efe69b8bff2d5e737a9..3b4f299d7cb3402987f7a76f37feaee72f5a711a 100644 (file)
@@ -216,6 +216,15 @@ interface netlogon
                [case(6)] netr_SamInfo6 *sam6;
        } netr_Validation;
 
+       typedef [public, flag(NDR_PAHEX)] struct {
+               uint8 data[8];
+       } netr_Credential;
+
+       typedef [public] struct {
+               netr_Credential cred;
+               time_t timestamp;
+       } netr_Authenticator;
+
        NTSTATUS netr_LogonSamLogon(
                [in] unistr *server_name,
                [in] unistr *workstation,
@@ -259,14 +268,16 @@ interface netlogon
        /* secure channel types */
        /* Only SEC_CHAN_WKSTA can forward requests to other domains. */
 
-       const int SEC_CHAN_WKSTA   = 2;
-       const int SEC_CHAN_DOMAIN  = 4;
-       const int SEC_CHAN_BDC     = 6;
+       typedef enum {
+               SEC_CHAN_WKSTA   = 2,
+               SEC_CHAN_DOMAIN  = 4,
+               SEC_CHAN_BDC     = 6
+       } netr_SchannelType;
 
        NTSTATUS netr_ServerAuthenticate(
                [in]         unistr *server_name,
                [in]         unistr account_name,
-               [in]         uint16 secure_channel_type,
+               [in]         netr_SchannelType secure_channel_type,
                [in]         unistr computer_name,
                [in,out,ref] netr_Credential *credentials
                );
@@ -278,7 +289,7 @@ interface netlogon
        NTSTATUS netr_ServerPasswordSet(
                [in]  unistr *server_name,
                [in]  unistr account_name,
-               [in]  uint16 secure_channel_type,
+               [in]  netr_SchannelType secure_channel_type,
                [in]  unistr computer_name,
                [in]  netr_Authenticator credential,
                [in]  samr_Password new_password,
@@ -290,9 +301,11 @@ interface netlogon
        /* Function 0x07 */
 
        /* SAM database types */
-       const int SAM_DATABASE_DOMAIN  = 0x00; /* Domain users and groups */
-       const int SAM_DATABASE_BUILTIN = 0x01; /* BUILTIN users and groups */
-       const int SAM_DATABASE_PRIVS   = 0x02; /* Privileges */
+       typedef [v1_enum] enum {
+               SAM_DATABASE_DOMAIN  = 0, /* Domain users and groups */
+               SAM_DATABASE_BUILTIN = 1, /* BUILTIN users and groups */
+               SAM_DATABASE_PRIVS   = 2 /* Privileges */
+       } netr_SamDatabaseID;
 
        typedef struct {
                unistr *account_name;
@@ -656,7 +669,7 @@ interface netlogon
                [in]      unistr computername,
                [in]      netr_Authenticator credential,
                [in,out]  netr_Authenticator return_authenticator,
-               [in]      uint32 database_id,
+               [in]      netr_SamDatabaseID database_id,
                [in,out]  uint64 sequence_num,
                [in]      uint32 preferredmaximumlength,
                [out]     netr_DELTA_ENUM_ARRAY *delta_enum_array
@@ -671,7 +684,7 @@ interface netlogon
                [in]     unistr computername,
                [in]     netr_Authenticator credential,
                [in,out] netr_Authenticator return_authenticator,
-               [in]     uint32 database_id,
+               [in]     netr_SamDatabaseID database_id,
                [in,out] uint32 sync_context,
                [in]     uint32 preferredmaximumlength,
                [out]    netr_DELTA_ENUM_ARRAY *delta_enum_array
@@ -737,8 +750,6 @@ interface netlogon
                [out] unistr *dcname
                );
 
-
-
        /*****************/
        /* Function 0x0C */
 
@@ -771,14 +782,16 @@ interface netlogon
        } netr_CONTROL_QUERY_INFORMATION;
 
        /* function_code values */
-       const int NETLOGON_CONTROL_REDISCOVER       = 5;
-       const int NETLOGON_CONTROL_TC_QUERY         = 6;
-       const int NETLOGON_CONTROL_TRANSPORT_NOTIFY = 7;
-       const int NETLOGON_CONTROL_SET_DBFLAG       = 65534;
+       typedef [v1_enum] enum {
+               NETLOGON_CONTROL_REDISCOVER       = 5,
+               NETLOGON_CONTROL_TC_QUERY         = 6,
+               NETLOGON_CONTROL_TRANSPORT_NOTIFY = 7,
+               NETLOGON_CONTROL_SET_DBFLAG       = 65534
+       } netr_LogonControlCode;
 
        WERROR netr_LogonControl(
                [in]   unistr *logon_server,
-               [in]   uint32 function_code,
+               [in]   netr_LogonControlCode function_code,
                [in]   uint32 level,
                [out,switch_is(level)]  netr_CONTROL_QUERY_INFORMATION info
                );
@@ -826,7 +839,7 @@ interface netlogon
        NTSTATUS netr_ServerAuthenticate2(
                [in]         unistr *server_name,
                [in]         unistr account_name,
-               [in]         uint16 secure_channel_type,
+               [in]         netr_SchannelType secure_channel_type,
                [in]         unistr computer_name,
                [in,out,ref] netr_Credential *credentials,
                [in,out,ref] uint32 *negotiate_flags
@@ -841,7 +854,7 @@ interface netlogon
                [in]     unistr computername,
                [in]     netr_Authenticator credential,
                [in,out] netr_Authenticator return_authenticator,
-               [in]     uint32 database_id,
+               [in]     netr_SamDatabaseID database_id,
                [in]     uint16 restart_state,
                [in,out] uint32 sync_context,
                [in]     uint32 preferredmaximumlength,
@@ -909,7 +922,7 @@ interface netlogon
        NTSTATUS netr_ServerAuthenticate3(
                [in]         unistr *server_name,
                [in]         unistr account_name,
-               [in]         uint16 secure_channel_type,
+               [in]         netr_SchannelType secure_channel_type,
                [in]         unistr computer_name,
                [in,out,ref] netr_Credential *credentials,
                [in,out,ref] uint32 *negotiate_flags,
@@ -1064,17 +1077,19 @@ interface netlogon
        /****************/
        /* Function 0x28 */
 
-       const int NETR_TRUST_FLAG_IN_FOREST = 0x01;
-       const int NETR_TRUST_FLAG_OUTBOUND  = 0x02;
-       const int NETR_TRUST_FLAG_TREEROOT  = 0x04;
-       const int NETR_TRUST_FLAG_PRIMARY   = 0x08;
-       const int NETR_TRUST_FLAG_NATIVE    = 0x10;
-       const int NETR_TRUST_FLAG_INBOUND   = 0x20;
+       typedef bitmap {
+               NETR_TRUST_FLAG_IN_FOREST = 0x00000001,
+               NETR_TRUST_FLAG_OUTBOUND  = 0x00000002,
+               NETR_TRUST_FLAG_TREEROOT  = 0x00000004,
+               NETR_TRUST_FLAG_PRIMARY   = 0x00000008,
+               NETR_TRUST_FLAG_NATIVE    = 0x00000010,
+               NETR_TRUST_FLAG_INBOUND   = 0x00000020
+       } netr_TrustFlags;
 
        typedef struct {
                unistr *netbios_name;
                unistr *dns_name;
-               uint32 trust_flags;
+               netr_TrustFlags trust_flags;
                uint32 parent_index;
                uint32 trust_type;
                uint32 trust_attributes;
index 41414b1abe1e3b758b968556ffe952cf9b1fb35c..56387936c7a91b066c2784cd37d689122acd5973 100644 (file)
 
        /************************/
        /* Function    0x08     */
+       /* server roles */
+       typedef [v1_enum] enum {
+               ROLE_STANDALONE    = 0,
+               ROLE_DOMAIN_MEMBER = 1,
+               ROLE_DOMAIN_BDC    = 2,
+               ROLE_DOMAIN_PDC    = 3
+       } samr_Role;
 
        typedef struct {
                uint16 min_password_length;
                samr_String primary; /* PDC name if this is a BDC */
                uint64 sequence_num;
                uint32 unknown2;
-               uint32 role;
+               samr_Role role;
                uint32 unknown3;
                uint32 num_users;
                uint32 num_groups;
        } samr_DomInfo6;
 
        typedef struct {
-               uint32 role;
+               samr_Role role;
        } samr_DomInfo7;
 
        typedef struct {
 
        /************************/
        /* Function    0x26     */
-       
+       typedef [public, flag(NDR_PAHEX)] struct {
+               uint8 hash[16];
+       } samr_Password;
+
        /*
          this is a password change interface that doesn't give
          the server the plaintext password. Depricated.
index 526ec8b85b0e53cd566308c13e31aff97624e7a4..eed10fb44c8cd1d82ec494694060264f37c4b180 100644 (file)
@@ -59,6 +59,7 @@
 #include "system/network.h"
 #include "system/printing.h"
 #include "librpc/gen_ndr/ndr_svcctl.h"
+#include "librpc/gen_ndr/ndr_samr.h"
 #include "dlinklist.h"
 
 BOOL in_client = False;                /* Not in the client by default */
index 64f67b28f9183af3dc37798bf411bf675a54f8d7..dd6554b9f7136fa7859bf962dcaaddeb1a0390c3 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "includes.h"
 #include "rpc_server/dcerpc_server.h"
+#include "librpc/gen_ndr/ndr_samr.h"
 #include "librpc/gen_ndr/ndr_dssetup.h"
 #include "rpc_server/common/common.h"
 
index faf542baa2b2cf7254ddd1e0055a18a29a92e360..0e009f7b02dae29c25b5ead146f5f54838b20122 100644 (file)
@@ -648,13 +648,13 @@ NTSTATUS samdb_set_password(void *ctx, TALLOC_CTX *mem_ctx,
 
        /* the password is acceptable. Start forming the new fields */
        if (lmNewHash) {
-               CHECK_RET(samdb_msg_add_hash(ctx, mem_ctx, mod, "lmPwdHash", *lmNewHash));
+               CHECK_RET(samdb_msg_add_hash(ctx, mem_ctx, mod, "lmPwdHash", lmNewHash));
        } else {
                CHECK_RET(samdb_msg_add_delete(ctx, mem_ctx, mod, "lmPwdHash"));
        }
 
        if (ntNewHash) {
-               CHECK_RET(samdb_msg_add_hash(ctx, mem_ctx, mod, "ntPwdHash", *ntNewHash));
+               CHECK_RET(samdb_msg_add_hash(ctx, mem_ctx, mod, "ntPwdHash", ntNewHash));
        } else {
                CHECK_RET(samdb_msg_add_delete(ctx, mem_ctx, mod, "ntPwdHash"));
        }