The branch, master has been updated
       via  884c3b301cef274e8cc0e3c2beecf9200f5cc564 (commit)
      from  7bd12a878bfa6f23522c71083b2d5565c43f5712 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 884c3b301cef274e8cc0e3c2beecf9200f5cc564
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Fri Oct 31 10:05:10 2008 +0100

    s3-build: rerun make samba3-idl.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/librpc/gen_ndr/cli_netlogon.c |    4 +-
 source3/librpc/gen_ndr/cli_netlogon.h |    4 +-
 source3/librpc/gen_ndr/misc.h         |    3 +
 source3/librpc/gen_ndr/ndr_netlogon.c |  216 ++++++++++++++++++++++++++++++---
 source3/librpc/gen_ndr/ndr_netlogon.h |    7 +
 source3/librpc/gen_ndr/netlogon.h     |   29 ++++-
 6 files changed, 240 insertions(+), 23 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/librpc/gen_ndr/cli_netlogon.c 
b/source3/librpc/gen_ndr/cli_netlogon.c
index 275c83a..1af3249 100644
--- a/source3/librpc/gen_ndr/cli_netlogon.c
+++ b/source3/librpc/gen_ndr/cli_netlogon.c
@@ -892,8 +892,8 @@ NTSTATUS rpccli_netr_DatabaseRedo(struct rpc_pipe_client 
*cli,
                                  const char *computername /* [in] 
[charset(UTF16)] */,
                                  struct netr_Authenticator *credential /* [in] 
[ref] */,
                                  struct netr_Authenticator 
*return_authenticator /* [in,out] [ref] */,
-                                 uint8_t *change_log_entry /* [in] 
[ref,size_is(change_log_entry_size)] */,
-                                 uint32_t change_log_entry_size /* [in]  */,
+                                 struct netr_ChangeLogEntry change_log_entry 
/* [in] [subcontext_size(change_log_entry_size),subcontext(4)] */,
+                                 uint32_t change_log_entry_size /* [in] 
[value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->flags))] */,
                                  struct netr_DELTA_ENUM_ARRAY 
**delta_enum_array /* [out] [ref] */)
 {
        struct netr_DatabaseRedo r;
diff --git a/source3/librpc/gen_ndr/cli_netlogon.h 
b/source3/librpc/gen_ndr/cli_netlogon.h
index 5adf8e8..9f5eac1 100644
--- a/source3/librpc/gen_ndr/cli_netlogon.h
+++ b/source3/librpc/gen_ndr/cli_netlogon.h
@@ -158,8 +158,8 @@ NTSTATUS rpccli_netr_DatabaseRedo(struct rpc_pipe_client 
*cli,
                                  const char *computername /* [in] 
[charset(UTF16)] */,
                                  struct netr_Authenticator *credential /* [in] 
[ref] */,
                                  struct netr_Authenticator 
*return_authenticator /* [in,out] [ref] */,
-                                 uint8_t *change_log_entry /* [in] 
[ref,size_is(change_log_entry_size)] */,
-                                 uint32_t change_log_entry_size /* [in]  */,
+                                 struct netr_ChangeLogEntry change_log_entry 
/* [in] [subcontext_size(change_log_entry_size),subcontext(4)] */,
+                                 uint32_t change_log_entry_size /* [in] 
[value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->flags))] */,
                                  struct netr_DELTA_ENUM_ARRAY 
**delta_enum_array /* [out] [ref] */);
 NTSTATUS rpccli_netr_LogonControl2Ex(struct rpc_pipe_client *cli,
                                     TALLOC_CTX *mem_ctx,
diff --git a/source3/librpc/gen_ndr/misc.h b/source3/librpc/gen_ndr/misc.h
index b3740fa..e439f7f 100644
--- a/source3/librpc/gen_ndr/misc.h
+++ b/source3/librpc/gen_ndr/misc.h
@@ -2,9 +2,12 @@
 
 #include <stdint.h>
 
+#define netr_SamDatabaseID8Bit netr_SamDatabaseID
 #ifndef _HEADER_misc
 #define _HEADER_misc
 
+enum netr_SamDatabaseID8Bit;
+
 struct GUID {
        uint32_t time_low;
        uint16_t time_mid;
diff --git a/source3/librpc/gen_ndr/ndr_netlogon.c 
b/source3/librpc/gen_ndr/ndr_netlogon.c
index 12ab98e..6575dbc 100644
--- a/source3/librpc/gen_ndr/ndr_netlogon.c
+++ b/source3/librpc/gen_ndr/ndr_netlogon.c
@@ -6232,6 +6232,192 @@ _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct 
ndr_print *ndr, const char *n
        ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_netr_ChangeLogFlags(struct ndr_push *ndr, 
int ndr_flags, uint16_t r)
+{
+       NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_netr_ChangeLogFlags(struct ndr_pull *ndr, 
int ndr_flags, uint16_t *r)
+{
+       uint16_t v;
+       NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_netr_ChangeLogFlags(struct ndr_print *ndr, const char 
*name, uint16_t r)
+{
+       ndr_print_uint16(ndr, name, r);
+       ndr->depth++;
+       ndr_print_bitmap_flag(ndr, sizeof(uint16_t), 
"NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", 
NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint16_t), 
"NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint16_t), 
"NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint16_t), 
"NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint16_t), 
"NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ, r);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_netr_ChangeLogObject(struct ndr_push *ndr, 
int ndr_flags, const union netr_ChangeLogObject *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               switch (level) {
+                       case NETR_CHANGELOG_SID_INCLUDED: {
+                               NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, 
&r->object_sid));
+                       break; }
+
+                       case NETR_CHANGELOG_NAME_INCLUDED: {
+                               {
+                                       uint32_t _flags_save_string = 
ndr->flags;
+                                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_NULLTERM);
+                                       NDR_CHECK(ndr_push_string(ndr, 
NDR_SCALARS, r->object_name));
+                                       ndr->flags = _flags_save_string;
+                               }
+                       break; }
+
+                       default: {
+                       break; }
+
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               switch (level) {
+                       case NETR_CHANGELOG_SID_INCLUDED:
+                               NDR_CHECK(ndr_push_dom_sid(ndr, NDR_BUFFERS, 
&r->object_sid));
+                       break;
+
+                       case NETR_CHANGELOG_NAME_INCLUDED:
+                       break;
+
+                       default:
+                       break;
+
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_netr_ChangeLogObject(struct ndr_pull *ndr, 
int ndr_flags, union netr_ChangeLogObject *r)
+{
+       int level;
+       level = ndr_pull_get_switch_value(ndr, r);
+       if (ndr_flags & NDR_SCALARS) {
+               switch (level) {
+                       case NETR_CHANGELOG_SID_INCLUDED: {
+                               NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, 
&r->object_sid));
+                       break; }
+
+                       case NETR_CHANGELOG_NAME_INCLUDED: {
+                               {
+                                       uint32_t _flags_save_string = 
ndr->flags;
+                                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_NULLTERM);
+                                       NDR_CHECK(ndr_pull_string(ndr, 
NDR_SCALARS, &r->object_name));
+                                       ndr->flags = _flags_save_string;
+                               }
+                       break; }
+
+                       default: {
+                       break; }
+
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               switch (level) {
+                       case NETR_CHANGELOG_SID_INCLUDED:
+                               NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_BUFFERS, 
&r->object_sid));
+                       break;
+
+                       case NETR_CHANGELOG_NAME_INCLUDED:
+                       break;
+
+                       default:
+                       break;
+
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_netr_ChangeLogObject(struct ndr_print *ndr, const char 
*name, const union netr_ChangeLogObject *r)
+{
+       int level;
+       level = ndr_print_get_switch_value(ndr, r);
+       ndr_print_union(ndr, name, level, "netr_ChangeLogObject");
+       switch (level) {
+               case NETR_CHANGELOG_SID_INCLUDED:
+                       ndr_print_dom_sid(ndr, "object_sid", &r->object_sid);
+               break;
+
+               case NETR_CHANGELOG_NAME_INCLUDED:
+                       ndr_print_string(ndr, "object_name", r->object_name);
+               break;
+
+               default:
+               break;
+
+       }
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_netr_ChangeLogEntry(struct ndr_push *ndr, 
int ndr_flags, const struct netr_ChangeLogEntry *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number1));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number2));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_rid));
+               NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr, NDR_SCALARS, 
r->flags));
+               NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, 
r->db_index));
+               NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, 
r->delta_type));
+               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, r->flags & 
(NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
+               NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_SCALARS, 
&r->object));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_BUFFERS, 
&r->object));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_netr_ChangeLogEntry(struct ndr_pull *ndr, 
int ndr_flags, struct netr_ChangeLogEntry *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, 
&r->serial_number1));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, 
&r->serial_number2));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_rid));
+               NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr, NDR_SCALARS, 
&r->flags));
+               NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, 
&r->db_index));
+               NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, 
&r->delta_type));
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->flags & 
(NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
+               NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_SCALARS, 
&r->object));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_BUFFERS, 
&r->object));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_netr_ChangeLogEntry(struct ndr_print *ndr, const char 
*name, const struct netr_ChangeLogEntry *r)
+{
+       ndr_print_struct(ndr, name, "netr_ChangeLogEntry");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "serial_number1", r->serial_number1);
+       ndr_print_uint32(ndr, "serial_number2", r->serial_number2);
+       ndr_print_uint32(ndr, "object_rid", r->object_rid);
+       ndr_print_netr_ChangeLogFlags(ndr, "flags", r->flags);
+       ndr_print_netr_SamDatabaseID8Bit(ndr, "db_index", r->db_index);
+       ndr_print_netr_DeltaEnum8Bit(ndr, "delta_type", r->delta_type);
+       ndr_print_set_switch_value(ndr, &r->object, r->flags & 
(NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED));
+       ndr_print_netr_ChangeLogObject(ndr, "object", &r->object);
+       ndr->depth--;
+}
+
+_PUBLIC_ size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry 
*r, int flags)
+{
+       return ndr_size_struct(r, flags, 
(ndr_push_flags_fn_t)ndr_push_netr_ChangeLogEntry);
+}
+
 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int 
ndr_flags, const struct netr_Blob *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -11307,12 +11493,13 @@ static enum ndr_err_code 
ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int fl
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, 
"NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, 
r->in.return_authenticator));
-               if (r->in.change_log_entry == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, 
"NULL [ref] pointer");
+               {
+                       struct ndr_push *_ndr_change_log_entry;
+                       NDR_CHECK(ndr_push_subcontext_start(ndr, 
&_ndr_change_log_entry, 4, 
ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags)));
+                       
NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry, 
NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
+                       NDR_CHECK(ndr_push_subcontext_end(ndr, 
_ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, 
ndr->flags)));
                }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 
r->in.change_log_entry_size));
-               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, 
r->in.change_log_entry, r->in.change_log_entry_size));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 
r->in.change_log_entry_size));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 
ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags)));
        }
        if (flags & NDR_OUT) {
                if (r->out.return_authenticator == NULL) {
@@ -11369,19 +11556,17 @@ static enum ndr_err_code 
ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int fl
                NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 
LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, 
r->in.return_authenticator));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 
LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, 
ndr_get_array_size(ndr, &r->in.change_log_entry));
+               {
+                       struct ndr_pull *_ndr_change_log_entry;
+                       NDR_CHECK(ndr_pull_subcontext_start(ndr, 
&_ndr_change_log_entry, 4, r->in.change_log_entry_size));
+                       
NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry, 
NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
+                       NDR_CHECK(ndr_pull_subcontext_end(ndr, 
_ndr_change_log_entry, 4, r->in.change_log_entry_size));
                }
-               NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, 
r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, 
&r->in.change_log_entry_size));
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
                *r->out.return_authenticator = *r->in.return_authenticator;
                NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
                ZERO_STRUCTP(r->out.delta_enum_array);
-               if (r->in.change_log_entry) {
-                       NDR_CHECK(ndr_check_array_size(ndr, 
(void*)&r->in.change_log_entry, r->in.change_log_entry_size));
-               }
        }
        if (flags & NDR_OUT) {
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
@@ -11434,11 +11619,8 @@ _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct 
ndr_print *ndr, const char *nam
                ndr->depth++;
                ndr_print_netr_Authenticator(ndr, "return_authenticator", 
r->in.return_authenticator);
                ndr->depth--;
-               ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
-               ndr->depth++;
-               ndr_print_array_uint8(ndr, "change_log_entry", 
r->in.change_log_entry, r->in.change_log_entry_size);
-               ndr->depth--;
-               ndr_print_uint32(ndr, "change_log_entry_size", 
r->in.change_log_entry_size);
+               ndr_print_netr_ChangeLogEntry(ndr, "change_log_entry", 
&r->in.change_log_entry);
+               ndr_print_uint32(ndr, "change_log_entry_size", (ndr->flags & 
LIBNDR_PRINT_SET_VALUES)?ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, 
ndr->flags):r->in.change_log_entry_size);
                ndr->depth--;
        }
        if (flags & NDR_OUT) {
diff --git a/source3/librpc/gen_ndr/ndr_netlogon.h 
b/source3/librpc/gen_ndr/ndr_netlogon.h
index 8561a5b..be20448 100644
--- a/source3/librpc/gen_ndr/ndr_netlogon.h
+++ b/source3/librpc/gen_ndr/ndr_netlogon.h
@@ -6,6 +6,7 @@
 #ifndef _HEADER_NDR_netlogon
 #define _HEADER_NDR_netlogon
 
+#include "../librpc/ndr/ndr_netlogon.h"
 #define NDR_NETLOGON_UUID "12345678-1234-abcd-ef00-01234567cffb"
 #define NDR_NETLOGON_VERSION 1.0
 #define NDR_NETLOGON_NAME "netlogon"
@@ -190,6 +191,12 @@ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct 
ndr_print *ndr, const char
 void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, 
enum netr_LogonControlCode r);
 void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char 
*name, const union netr_CONTROL_DATA_INFORMATION *r);
 void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, 
uint32_t r);
+void ndr_print_netr_ChangeLogFlags(struct ndr_print *ndr, const char *name, 
uint16_t r);
+void ndr_print_netr_ChangeLogObject(struct ndr_print *ndr, const char *name, 
const union netr_ChangeLogObject *r);
+enum ndr_err_code ndr_push_netr_ChangeLogEntry(struct ndr_push *ndr, int 
ndr_flags, const struct netr_ChangeLogEntry *r);
+enum ndr_err_code ndr_pull_netr_ChangeLogEntry(struct ndr_pull *ndr, int 
ndr_flags, struct netr_ChangeLogEntry *r);
+void ndr_print_netr_ChangeLogEntry(struct ndr_print *ndr, const char *name, 
const struct netr_ChangeLogEntry *r);
+size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry *r, int 
flags);
 void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct 
netr_Blob *r);
 void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char 
*name, uint32_t r);
 void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const 
char *name, enum netr_DsRGetDCNameInfo_AddressType r);
diff --git a/source3/librpc/gen_ndr/netlogon.h 
b/source3/librpc/gen_ndr/netlogon.h
index fd9e08b..e1dc69c 100644
--- a/source3/librpc/gen_ndr/netlogon.h
+++ b/source3/librpc/gen_ndr/netlogon.h
@@ -7,11 +7,14 @@
 #include "librpc/gen_ndr/samr.h"
 #include "librpc/gen_ndr/security.h"
 #include "librpc/gen_ndr/nbt.h"
+#define netr_DeltaEnum8Bit netr_DeltaEnum
 #ifndef _HEADER_netlogon
 #define _HEADER_netlogon
 
 #define DSGETDC_VALID_FLAGS    ( 
(DS_FORCE_REDISCOVERY|DS_DIRECTORY_SERVICE_REQUIRED|DS_DIRECTORY_SERVICE_PREFERRED|DS_GC_SERVER_REQUIRED|DS_PDC_REQUIRED|DS_BACKGROUND_ONLY|DS_IP_REQUIRED|DS_KDC_REQUIRED|DS_TIMESERV_REQUIRED|DS_WRITABLE_REQUIRED|DS_GOOD_TIMESERV_PREFERRED|DS_AVOID_SELF|DS_ONLY_LDAP_NEEDED|DS_IS_FLAT_NAME|DS_IS_DNS_NAME|DS_RETURN_FLAT_NAME|DS_RETURN_DNS_NAME)
 )
 #define DS_GFTI_UPDATE_TDO     ( 0x1 )
+enum netr_DeltaEnum8Bit;
+
 struct netr_UasInfo {
        const char *account_name;/* [unique,charset(UTF16)] */
        uint32_t priv;
@@ -712,6 +715,28 @@ union netr_CONTROL_DATA_INFORMATION {
 #define NETLOGON_NEG_AUTHENTICATED_RPC_LSASS ( 0x20000000 )
 #define NETLOGON_NEG_SCHANNEL ( 0x40000000 )
 
+/* bitmap netr_ChangeLogFlags */
+#define NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED ( 0x0001 )
+#define NETR_CHANGELOG_CHANGED_PASSWORD ( 0x0002 )
+#define NETR_CHANGELOG_SID_INCLUDED ( 0x0004 )
+#define NETR_CHANGELOG_NAME_INCLUDED ( 0x0008 )
+#define NETR_CHANGELOG_FIRST_PROMOTION_OBJ ( 0x0010 )
+
+union netr_ChangeLogObject {
+       struct dom_sid object_sid;/* [case(NETR_CHANGELOG_SID_INCLUDED)] */
+       const char * object_name;/* 
[flag(LIBNDR_FLAG_STR_NULLTERM),case(NETR_CHANGELOG_NAME_INCLUDED)] */
+}/* [nodiscriminant] */;
+
+struct netr_ChangeLogEntry {
+       uint32_t serial_number1;
+       uint32_t serial_number2;
+       uint32_t object_rid;
+       uint16_t flags;
+       enum netr_SamDatabaseID8Bit db_index;
+       enum netr_DeltaEnum8Bit delta_type;
+       union netr_ChangeLogObject object;/* 
[switch_is(flags&(NETR_CHANGELOG_SID_INCLUDED|NETR_CHANGELOG_NAME_INCLUDED))] */
+}/* [gensize,public] */;
+
 struct netr_Blob {
        uint32_t length;
        uint8_t *data;/* [unique,size_is(length)] */
@@ -1252,8 +1277,8 @@ struct netr_DatabaseRedo {
                const char *logon_server;/* [charset(UTF16)] */
                const char *computername;/* [charset(UTF16)] */
                struct netr_Authenticator *credential;/* [ref] */
-               uint8_t *change_log_entry;/* 
[ref,size_is(change_log_entry_size)] */
-               uint32_t change_log_entry_size;
+               struct netr_ChangeLogEntry change_log_entry;/* 
[subcontext_size(change_log_entry_size),subcontext(4)] */
+               uint32_t change_log_entry_size;/* 
[value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->flags))] */
                struct netr_Authenticator *return_authenticator;/* [ref] */
        } in;
 


-- 
Samba Shared Repository

Reply via email to