The branch, master has been updated
       via  be5c79cbeca6e0671e0e210087cf06645be4194e (commit)
       via  9dd4abd780db9f6a219bd01b774836ea37b08221 (commit)
      from  2efacde8c4346130227728f11a98481ed1e01515 (commit)

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


- Log -----------------------------------------------------------------
commit be5c79cbeca6e0671e0e210087cf06645be4194e
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Tue Nov 4 02:46:41 2008 +0100

    s3-build: re-run make samba3-idl.
    
    Guenther

commit 9dd4abd780db9f6a219bd01b774836ea37b08221
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Thu Oct 30 09:29:17 2008 +0100

    netlogon: fix IDL for netr_DatabaseRedo.
    
    Guenther

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

Summary of changes:
 librpc/idl/netlogon.idl               |    6 +-
 source3/librpc/gen_ndr/cli_netlogon.c |    6 +-
 source3/librpc/gen_ndr/cli_netlogon.h |    6 +-
 source3/librpc/gen_ndr/ndr_netlogon.c |   75 +++++++++++++++++++++------------
 source3/librpc/gen_ndr/netlogon.h     |    6 +-
 source3/librpc/gen_ndr/srv_netlogon.c |    2 +-
 6 files changed, 61 insertions(+), 40 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/idl/netlogon.idl b/librpc/idl/netlogon.idl
index c89cf37..0561f5b 100644
--- a/librpc/idl/netlogon.idl
+++ b/librpc/idl/netlogon.idl
@@ -961,11 +961,11 @@ interface netlogon
        NTSTATUS netr_DatabaseRedo(
                [in]     [string,charset(UTF16)] uint16 logon_server[],
                [in]     [string,charset(UTF16)] uint16 computername[],
-               [in]     netr_Authenticator credential,
+               [in]     netr_Authenticator *credential,
                [in,out,ref] netr_Authenticator *return_authenticator,
-               [in,unique][size_is(change_log_entry_size)] uint8 
*change_log_entry,
+               [in,ref][size_is(change_log_entry_size)] uint8 
*change_log_entry,
                [in]     uint32 change_log_entry_size,
-               [out,ref]    netr_DELTA_ENUM_ARRAY *delta_enum_array
+               [out,ref]    netr_DELTA_ENUM_ARRAY **delta_enum_array
                );
 
 
diff --git a/source3/librpc/gen_ndr/cli_netlogon.c 
b/source3/librpc/gen_ndr/cli_netlogon.c
index 2241d30..275c83a 100644
--- a/source3/librpc/gen_ndr/cli_netlogon.c
+++ b/source3/librpc/gen_ndr/cli_netlogon.c
@@ -890,11 +890,11 @@ NTSTATUS rpccli_netr_DatabaseRedo(struct rpc_pipe_client 
*cli,
                                  TALLOC_CTX *mem_ctx,
                                  const char *logon_server /* [in] 
[charset(UTF16)] */,
                                  const char *computername /* [in] 
[charset(UTF16)] */,
-                                 struct netr_Authenticator credential /* [in]  
*/,
+                                 struct netr_Authenticator *credential /* [in] 
[ref] */,
                                  struct netr_Authenticator 
*return_authenticator /* [in,out] [ref] */,
-                                 uint8_t *change_log_entry /* [in] 
[unique,size_is(change_log_entry_size)] */,
+                                 uint8_t *change_log_entry /* [in] 
[ref,size_is(change_log_entry_size)] */,
                                  uint32_t change_log_entry_size /* [in]  */,
-                                 struct netr_DELTA_ENUM_ARRAY 
*delta_enum_array /* [out] [ref] */)
+                                 struct netr_DELTA_ENUM_ARRAY 
**delta_enum_array /* [out] [ref] */)
 {
        struct netr_DatabaseRedo r;
        NTSTATUS status;
diff --git a/source3/librpc/gen_ndr/cli_netlogon.h 
b/source3/librpc/gen_ndr/cli_netlogon.h
index 09484c8..5adf8e8 100644
--- a/source3/librpc/gen_ndr/cli_netlogon.h
+++ b/source3/librpc/gen_ndr/cli_netlogon.h
@@ -156,11 +156,11 @@ NTSTATUS rpccli_netr_DatabaseRedo(struct rpc_pipe_client 
*cli,
                                  TALLOC_CTX *mem_ctx,
                                  const char *logon_server /* [in] 
[charset(UTF16)] */,
                                  const char *computername /* [in] 
[charset(UTF16)] */,
-                                 struct netr_Authenticator credential /* [in]  
*/,
+                                 struct netr_Authenticator *credential /* [in] 
[ref] */,
                                  struct netr_Authenticator 
*return_authenticator /* [in,out] [ref] */,
-                                 uint8_t *change_log_entry /* [in] 
[unique,size_is(change_log_entry_size)] */,
+                                 uint8_t *change_log_entry /* [in] 
[ref,size_is(change_log_entry_size)] */,
                                  uint32_t change_log_entry_size /* [in]  */,
-                                 struct netr_DELTA_ENUM_ARRAY 
*delta_enum_array /* [out] [ref] */);
+                                 struct netr_DELTA_ENUM_ARRAY 
**delta_enum_array /* [out] [ref] */);
 NTSTATUS rpccli_netr_LogonControl2Ex(struct rpc_pipe_client *cli,
                                     TALLOC_CTX *mem_ctx,
                                     const char *logon_server /* [in] 
[unique,charset(UTF16)] */,
diff --git a/source3/librpc/gen_ndr/ndr_netlogon.c 
b/source3/librpc/gen_ndr/ndr_netlogon.c
index 290d0fd..12ab98e 100644
--- a/source3/librpc/gen_ndr/ndr_netlogon.c
+++ b/source3/librpc/gen_ndr/ndr_netlogon.c
@@ -11299,17 +11299,20 @@ static enum ndr_err_code 
ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int fl
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 
ndr_charset_length(r->in.computername, CH_UTF16)));
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, 
r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), 
sizeof(uint16_t), CH_UTF16));
-               NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, 
&r->in.credential));
+               if (r->in.credential == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, 
"NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, 
r->in.credential));
                if (r->in.return_authenticator == NULL) {
                        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));
-               NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
-               if (r->in.change_log_entry) {
-                       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));
+               if (r->in.change_log_entry == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, 
"NULL [ref] pointer");
                }
                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));
        }
        if (flags & NDR_OUT) {
                if (r->out.return_authenticator == NULL) {
@@ -11319,7 +11322,10 @@ static enum ndr_err_code 
ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int fl
                if (r->out.delta_enum_array == NULL) {
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, 
"NULL [ref] pointer");
                }
-               NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, 
NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
+               if (*r->out.delta_enum_array) {
+                       NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, 
NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
+               }
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
        }
        return NDR_ERR_SUCCESS;
@@ -11327,10 +11333,11 @@ static enum ndr_err_code 
ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int fl
 
 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int 
flags, struct netr_DatabaseRedo *r)
 {
-       uint32_t _ptr_change_log_entry;
+       uint32_t _ptr_delta_enum_array;
+       TALLOC_CTX *_mem_save_credential_0;
        TALLOC_CTX *_mem_save_return_authenticator_0;
-       TALLOC_CTX *_mem_save_change_log_entry_0;
        TALLOC_CTX *_mem_save_delta_enum_array_0;
+       TALLOC_CTX *_mem_save_delta_enum_array_1;
        if (flags & NDR_IN) {
                ZERO_STRUCT(r->out);
 
@@ -11348,7 +11355,13 @@ static enum ndr_err_code 
ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int fl
                }
                NDR_CHECK(ndr_check_string_terminator(ndr, 
ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, 
&r->in.computername, ndr_get_array_length(ndr, &r->in.computername), 
sizeof(uint16_t), CH_UTF16));
-               NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, 
&r->in.credential));
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.credential);
+               }
+               _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 
LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, 
r->in.credential));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 
LIBNDR_FLAG_REF_ALLOC);
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
                }
@@ -11356,20 +11369,11 @@ 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_generic_ptr(ndr, &_ptr_change_log_entry));
-               if (_ptr_change_log_entry) {
-                       NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
-               } else {
-                       r->in.change_log_entry = NULL;
-               }
-               if (r->in.change_log_entry) {
-                       _mem_save_change_log_entry_0 = 
NDR_PULL_GET_MEM_CTX(ndr);
-                       NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
-                       NDR_CHECK(ndr_pull_array_size(ndr, 
&r->in.change_log_entry));
+               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));
-                       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_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 
0);
                }
+               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;
@@ -11392,7 +11396,18 @@ static enum ndr_err_code 
ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int fl
                }
                _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
                NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 
LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, 
NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
+               if (_ptr_delta_enum_array) {
+                       NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
+               } else {
+                       *r->out.delta_enum_array = NULL;
+               }
+               if (*r->out.delta_enum_array) {
+                       _mem_save_delta_enum_array_1 = 
NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
+                       NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, 
NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 
0);
+               }
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 
LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
        }
@@ -11411,16 +11426,17 @@ _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct 
ndr_print *ndr, const char *nam
                ndr->depth++;
                ndr_print_string(ndr, "logon_server", r->in.logon_server);
                ndr_print_string(ndr, "computername", r->in.computername);
-               ndr_print_netr_Authenticator(ndr, "credential", 
&r->in.credential);
+               ndr_print_ptr(ndr, "credential", r->in.credential);
+               ndr->depth++;
+               ndr_print_netr_Authenticator(ndr, "credential", 
r->in.credential);
+               ndr->depth--;
                ndr_print_ptr(ndr, "return_authenticator", 
r->in.return_authenticator);
                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++;
-               if (r->in.change_log_entry) {
-                       ndr_print_array_uint8(ndr, "change_log_entry", 
r->in.change_log_entry, r->in.change_log_entry_size);
-               }
+               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->depth--;
@@ -11434,7 +11450,12 @@ _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct 
ndr_print *ndr, const char *nam
                ndr->depth--;
                ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
                ndr->depth++;
-               ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", 
r->out.delta_enum_array);
+               ndr_print_ptr(ndr, "delta_enum_array", 
*r->out.delta_enum_array);
+               ndr->depth++;
+               if (*r->out.delta_enum_array) {
+                       ndr_print_netr_DELTA_ENUM_ARRAY(ndr, 
"delta_enum_array", *r->out.delta_enum_array);
+               }
+               ndr->depth--;
                ndr->depth--;
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
                ndr->depth--;
diff --git a/source3/librpc/gen_ndr/netlogon.h 
b/source3/librpc/gen_ndr/netlogon.h
index 9f5d28a..fd9e08b 100644
--- a/source3/librpc/gen_ndr/netlogon.h
+++ b/source3/librpc/gen_ndr/netlogon.h
@@ -1251,14 +1251,14 @@ struct netr_DatabaseRedo {
        struct {
                const char *logon_server;/* [charset(UTF16)] */
                const char *computername;/* [charset(UTF16)] */
-               struct netr_Authenticator credential;
-               uint8_t *change_log_entry;/* 
[unique,size_is(change_log_entry_size)] */
+               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_Authenticator *return_authenticator;/* [ref] */
        } in;
 
        struct {
-               struct netr_DELTA_ENUM_ARRAY *delta_enum_array;/* [ref] */
+               struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
                struct netr_Authenticator *return_authenticator;/* [ref] */
                NTSTATUS result;
        } out;
diff --git a/source3/librpc/gen_ndr/srv_netlogon.c 
b/source3/librpc/gen_ndr/srv_netlogon.c
index b740e7b..9546b25 100644
--- a/source3/librpc/gen_ndr/srv_netlogon.c
+++ b/source3/librpc/gen_ndr/srv_netlogon.c
@@ -1454,7 +1454,7 @@ static bool api_netr_DatabaseRedo(pipes_struct *p)
 
        ZERO_STRUCT(r->out);
        r->out.return_authenticator = r->in.return_authenticator;
-       r->out.delta_enum_array = talloc_zero(r, struct netr_DELTA_ENUM_ARRAY);
+       r->out.delta_enum_array = talloc_zero(r, struct netr_DELTA_ENUM_ARRAY 
*);
        if (r->out.delta_enum_array == NULL) {
                talloc_free(r);
                return false;


-- 
Samba Shared Repository

Reply via email to