[SCM] Samba Shared Repository - branch master updated - 5772c73e84736fe6b74cbe5946cd05029d9c130b

Günther Deschner gd at samba.org
Wed Oct 29 10:37:21 GMT 2008


The branch, master has been updated
       via  5772c73e84736fe6b74cbe5946cd05029d9c130b (commit)
       via  8be9cefd98260e41615c45ec9ad94f6611ad885e (commit)
       via  524156333bc96f50fa11595fa569e3c46508fd15 (commit)
       via  556b5bb9eead7785fe0d2cdfe465239ccb4f60b9 (commit)
       via  1798e9d7ec259396e9188714c1b3742f24e3ecfd (commit)
       via  8e4c691c0aa406eedf52afb5cee33ff1540c0f8d (commit)
       via  8f52c33401f0cd12184335507271ae9141618679 (commit)
       via  ef37351f1846f042d132a3c54235291ed3311f11 (commit)
       via  cbc0b63a7727b24bcacde0f4865e213ac0edda23 (commit)
       via  f285af63676e4bafc9f136f8181c5856d2851d45 (commit)
       via  0de8811a59258774a1df3756b7071c0b4a2f2902 (commit)
       via  fccd5a4dfdd02881b4a95255e2ca19abfb4bcc42 (commit)
       via  6f2179b0884cb3f2e4a38516d050707384c8e5ff (commit)
       via  4f6264b66c0e9f8d863ee547cc5902d35a0826de (commit)
       via  359927dd34e83875acd197b1b3e232693d8c66f5 (commit)
       via  8a7937846947652223d94dbf26b0335c1678573c (commit)
       via  388952f82ced876abaed10aeed8c8266a443f05e (commit)
       via  f0697b0ad55fb1915541bf15adc8a4954462f005 (commit)
       via  f82a11783286abf30c8a36cc46a5098b3284d65d (commit)
       via  a674a3bbf3520cd8f93f35dcc8a4ec59c456e1ba (commit)
       via  2a329c496379d1b94fa9d83b4fc1fc1921636512 (commit)
       via  2a7de4e3f802f1a180132f766ce2c5effd971dc2 (commit)
       via  0992a9d987e521a76d267b2be1259810e1821406 (commit)
       via  532fd92bdb7f6bc81afa155e09c039549d689a3e (commit)
       via  bb3836a67f7b61f22b5ec036da52a0077d933343 (commit)
       via  98f8f891643d356eaf67206f5606aa2ed82c96ce (commit)
      from  67c5aca1e871ccd3675a0cc586753134f76239e9 (commit)

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


- Log -----------------------------------------------------------------
commit 5772c73e84736fe6b74cbe5946cd05029d9c130b
Author: Günther Deschner <gd at samba.org>
Date:   Wed Oct 29 02:44:59 2008 +0100

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

commit 8be9cefd98260e41615c45ec9ad94f6611ad885e
Author: Günther Deschner <gd at samba.org>
Date:   Wed Oct 29 01:42:05 2008 +0100

    netlogon: merge netlogon.idl between s3 and s4.
    
    Guenther

commit 524156333bc96f50fa11595fa569e3c46508fd15
Author: Günther Deschner <gd at samba.org>
Date:   Wed Oct 29 01:41:09 2008 +0100

    s4-netlogon: merge netr_ServerPasswordSet2 from s3 idl.
    
    Guenther

commit 556b5bb9eead7785fe0d2cdfe465239ccb4f60b9
Author: Günther Deschner <gd at samba.org>
Date:   Wed Oct 29 01:34:49 2008 +0100

    s4-netlogon: merge netr_ServerPasswordSet from s3 idl.
    
    Guenther

commit 1798e9d7ec259396e9188714c1b3742f24e3ecfd
Author: Günther Deschner <gd at samba.org>
Date:   Wed Oct 29 01:23:49 2008 +0100

    s4-netlogon: merge netr_ServerReqChallenge from s3 idl.
    
    Guenther

commit 8e4c691c0aa406eedf52afb5cee33ff1540c0f8d
Author: Günther Deschner <gd at samba.org>
Date:   Wed Oct 29 01:14:08 2008 +0100

    s4-netlogon: merge netr_ServerAuthenticate{2,3} from s3 idl.
    
    Guenther

commit 8f52c33401f0cd12184335507271ae9141618679
Author: Günther Deschner <gd at samba.org>
Date:   Wed Oct 29 00:16:08 2008 +0100

    s4-netlogon: merge netr_DatabaseRedo from s3 idl.
    
    Guenther

commit ef37351f1846f042d132a3c54235291ed3311f11
Author: Günther Deschner <gd at samba.org>
Date:   Wed Oct 29 00:07:12 2008 +0100

    s4-netlogon: merge netr_DatabaseSync2 from s3 idl.
    
    Guenther

commit cbc0b63a7727b24bcacde0f4865e213ac0edda23
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 23:13:58 2008 +0100

    s4-netlogon: merge netr_DatabaseSync from s3 idl.
    
    Guenther

commit f285af63676e4bafc9f136f8181c5856d2851d45
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 19:03:50 2008 +0100

    s4-netlogon: merge netr_LogonSamLogon{Ex,WithFlags} from s3 idl.
    
    Guenther

commit 0de8811a59258774a1df3756b7071c0b4a2f2902
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 02:37:43 2008 +0100

    s4-netlogon: merge netr_AccountSync from s3 idl.
    
    Guenther

commit fccd5a4dfdd02881b4a95255e2ca19abfb4bcc42
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 02:34:02 2008 +0100

    s4-netlogon: merge netr_AccountDeltas from s3 idl.
    
    Guenther

commit 6f2179b0884cb3f2e4a38516d050707384c8e5ff
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 00:38:44 2008 +0100

    s4-netlogon: merge netr_DatabaseDeltas from s3 idl.
    
    Guenther

commit 4f6264b66c0e9f8d863ee547cc5902d35a0826de
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 02:25:30 2008 +0100

    s4-netlogon: merge netr_LogonGetDomainInfo from s3 idl.
    
    Guenther

commit 359927dd34e83875acd197b1b3e232693d8c66f5
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 02:19:26 2008 +0100

    s4-netlogon: merge netr_LogonControl2Ex from s3 idl.
    
    Guenther

commit 8a7937846947652223d94dbf26b0335c1678573c
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 01:02:06 2008 +0100

    s4-netlogon: merge netr_LogonControl2 from s3 idl.
    
    Guenther

commit 388952f82ced876abaed10aeed8c8266a443f05e
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 02:15:51 2008 +0100

    s4-netlogon: merge netr_LogonControl from s3 idl.
    
    Guenther

commit f0697b0ad55fb1915541bf15adc8a4954462f005
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 01:43:06 2008 +0100

    s4-netlogon: merge netr_DsRGetDCName{Ex,Ex2} from s3 idl.
    
    Guenther

commit f82a11783286abf30c8a36cc46a5098b3284d65d
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 01:27:12 2008 +0100

    s4-netlogon: merge netr_GetDcName from s3 idl.
    
    Guenther

commit a674a3bbf3520cd8f93f35dcc8a4ec59c456e1ba
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 01:23:04 2008 +0100

    s4-netlogon: merge netr_GetAnyDCName from s3 idl (untested).
    
    Guenther

commit 2a329c496379d1b94fa9d83b4fc1fc1921636512
Author: Günther Deschner <gd at samba.org>
Date:   Mon Oct 27 16:14:28 2008 +0100

    s4-netlogon: merge netr_DsRGetSiteName from s3 idl.
    
    Guenther

commit 2a7de4e3f802f1a180132f766ce2c5effd971dc2
Author: Günther Deschner <gd at samba.org>
Date:   Mon Oct 27 16:07:33 2008 +0100

    s4-netlogon: merge netr_DsrEnumerateDomainTrusts from s3 idl.
    
    Guenther

commit 0992a9d987e521a76d267b2be1259810e1821406
Author: Günther Deschner <gd at samba.org>
Date:   Mon Oct 27 14:58:28 2008 +0100

    s4-netlogon: merge netr_DsrGetDcSiteCoverageW from s3 idl.
    
    Guenther

commit 532fd92bdb7f6bc81afa155e09c039549d689a3e
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 15:19:05 2008 +0100

    s4-smbtorture: fix test_LogonUasLogoff.
    
    Guenther

commit bb3836a67f7b61f22b5ec036da52a0077d933343
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 15:18:53 2008 +0100

    s4-smbtorture: fix test_LogonUasLogon.
    
    Guenther

commit 98f8f891643d356eaf67206f5606aa2ed82c96ce
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 01:06:31 2008 +0100

    s4-netlogon: merge misc stuff.
    
    Guenther

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

Summary of changes:
 {source3/librpc => librpc}/idl/netlogon.idl   |   21 +-
 source3/Makefile.in                           |    2 +-
 source3/librpc/gen_ndr/cli_netlogon.c         |   15 +-
 source3/librpc/gen_ndr/cli_netlogon.h         |   13 +-
 source3/librpc/gen_ndr/ndr_netlogon.c         |  163 +++-
 source3/librpc/gen_ndr/ndr_netlogon.h         |    4 +
 source3/librpc/gen_ndr/netlogon.h             |   10 +-
 source3/librpc/gen_ndr/srv_netlogon.c         |   11 +-
 source4/libnet/libnet_samsync.c               |   31 +-
 source4/librpc/idl/netlogon.idl               | 1470 -------------------------
 source4/librpc/rpc/dcerpc_schannel.c          |    6 +-
 source4/rpc_server/netlogon/dcerpc_netlogon.c |  178 ++--
 source4/torture/ndr/netlogon.c                |    4 +-
 source4/torture/rpc/netlogon.c                |  267 ++++--
 source4/torture/rpc/remote_pac.c              |   34 +-
 source4/torture/rpc/samba3rpc.c               |   46 +-
 source4/torture/rpc/samlogon.c                |   72 +-
 source4/torture/rpc/samsync.c                 |  103 ++-
 source4/torture/rpc/schannel.c                |   35 +-
 source4/winbind/wb_cmd_getdcname.c            |    3 +-
 source4/winbind/wb_dom_info_trusted.c         |   11 +-
 source4/winbind/wb_sam_logon.c                |   11 +-
 22 files changed, 704 insertions(+), 1806 deletions(-)
 rename {source3/librpc => librpc}/idl/netlogon.idl (98%)
 delete mode 100644 source4/librpc/idl/netlogon.idl


Changeset truncated at 500 lines:

diff --git a/source3/librpc/idl/netlogon.idl b/librpc/idl/netlogon.idl
similarity index 98%
rename from source3/librpc/idl/netlogon.idl
rename to librpc/idl/netlogon.idl
index 06e0c32..c89cf37 100644
--- a/source3/librpc/idl/netlogon.idl
+++ b/librpc/idl/netlogon.idl
@@ -46,7 +46,7 @@ interface netlogon
 		[in,unique] [string,charset(UTF16)] uint16 *server_name,
 		[in]   [string,charset(UTF16)] uint16 account_name[],
 		[in]   [string,charset(UTF16)] uint16 workstation[],
-		[out,ref]  netr_UasInfo *info
+		[out,ref]  netr_UasInfo **info
 		);
 
 
@@ -313,7 +313,7 @@ interface netlogon
 	/*****************/
 	/* Function 0x04 */
 
-	NTSTATUS netr_ServerReqChallenge(
+	[public] NTSTATUS netr_ServerReqChallenge(
 		[in,unique,string,charset(UTF16)] uint16 *server_name,
 		[in,string,charset(UTF16)] uint16 computer_name[],
 		[in,ref] netr_Credential *credentials,
@@ -741,12 +741,12 @@ interface netlogon
 	NTSTATUS netr_DatabaseSync(
 		[in]     [string,charset(UTF16)] uint16 logon_server[],
 		[in]     [string,charset(UTF16)] uint16 computername[],
-		[in]     netr_Authenticator credential,
+		[in,ref] netr_Authenticator *credential,
 		[in,out,ref] netr_Authenticator *return_authenticator,
 		[in]     netr_SamDatabaseID database_id,
 		[in,out,ref] uint32 *sync_context,
-		[in]     uint32 preferredmaximumlength,
-		[out,ref]    netr_DELTA_ENUM_ARRAY *delta_enum_array
+		[out,ref]    netr_DELTA_ENUM_ARRAY **delta_enum_array,
+		[in]     uint32 preferredmaximumlength
 		);
 
 
@@ -943,7 +943,7 @@ interface netlogon
 	NTSTATUS netr_DatabaseSync2(
 		[in]     [string,charset(UTF16)] uint16 logon_server[],
 		[in]     [string,charset(UTF16)] uint16 computername[],
-		[in]     netr_Authenticator *credential,
+		[in,ref] netr_Authenticator *credential,
 		[in,out,ref] netr_Authenticator *return_authenticator,
 		[in]     netr_SamDatabaseID database_id,
 		[in]     uint16 restart_state,
@@ -1107,12 +1107,13 @@ interface netlogon
 
 	/****************/
 	/* Function 0x1a */
-	NTSTATUS netr_ServerAuthenticate3(
+	[public] NTSTATUS netr_ServerAuthenticate3(
 		[in,unique]  [string,charset(UTF16)] uint16 *server_name,
 		[in]         [string,charset(UTF16)] uint16 account_name[],
 		[in]         netr_SchannelType secure_channel_type,
 		[in]         [string,charset(UTF16)] uint16 computer_name[],
-		[in,out,ref] netr_Credential *credentials,
+		[in,ref]     netr_Credential *credentials,
+		[out,ref]    netr_Credential *return_credentials,
 		[in,out,ref] netr_NegotiateFlags *negotiate_flags,
 		[out,ref]    uint32 *rid
 		);
@@ -1129,6 +1130,7 @@ interface netlogon
 		[out,ref] netr_DsRGetDCNameInfo **info
 		);
 
+
 	/****************/
 	/* Function 0x1c */
 	WERROR netr_DsRGetSiteName(
@@ -1313,6 +1315,7 @@ interface netlogon
 
 	/****************/
 	/* Function 0x24 */
+
 	typedef [v1_enum] enum {
 		NETR_TRUST_TYPE_DOWNLEVEL	= 1,
 		NETR_TRUST_TYPE_UPLEVEL		= 2,
@@ -1458,7 +1461,7 @@ interface netlogon
 		[in,unique] netr_Authenticator *credential,
 		[in,out,unique] netr_Authenticator *return_authenticator,
 		[in]  netr_LogonInfoClass logon_level,
-		[in]  [switch_is(logon_level)] netr_LogonLevel logon,
+		[in,ref]  [switch_is(logon_level)] netr_LogonLevel *logon,
 		[in]  uint16 validation_level,
 		[out,ref] [switch_is(validation_level)] netr_Validation *validation,
 		[out,ref] uint8 *authoritative,
diff --git a/source3/Makefile.in b/source3/Makefile.in
index babd4f9..6bd72f8 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -1217,7 +1217,7 @@ samba3-idl::
 	 srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh ../librpc/idl/lsa.idl \
 	 	../librpc/idl/dfs.idl ../librpc/idl/echo.idl ../librpc/idl/winreg.idl \
 		../librpc/idl/initshutdown.idl librpc/idl/srvsvc.idl ../librpc/idl/svcctl.idl \
-		../librpc/idl/eventlog.idl ../librpc/idl/wkssvc.idl librpc/idl/netlogon.idl \
+		../librpc/idl/eventlog.idl ../librpc/idl/wkssvc.idl ../librpc/idl/netlogon.idl \
 		../librpc/idl/notify.idl ../librpc/idl/epmapper.idl librpc/idl/messaging.idl \
 		../librpc/idl/xattr.idl ../librpc/idl/misc.idl librpc/idl/samr.idl \
 		../librpc/idl/security.idl ../librpc/idl/dssetup.idl ../librpc/idl/krb5pac.idl \
diff --git a/source3/librpc/gen_ndr/cli_netlogon.c b/source3/librpc/gen_ndr/cli_netlogon.c
index 53c5041..2241d30 100644
--- a/source3/librpc/gen_ndr/cli_netlogon.c
+++ b/source3/librpc/gen_ndr/cli_netlogon.c
@@ -11,7 +11,7 @@ NTSTATUS rpccli_netr_LogonUasLogon(struct rpc_pipe_client *cli,
 				   const char *server_name /* [in] [unique,charset(UTF16)] */,
 				   const char *account_name /* [in] [charset(UTF16)] */,
 				   const char *workstation /* [in] [charset(UTF16)] */,
-				   struct netr_UasInfo *info /* [out] [ref] */,
+				   struct netr_UasInfo **info /* [out] [ref] */,
 				   WERROR *werror)
 {
 	struct netr_LogonUasLogon r;
@@ -412,12 +412,12 @@ NTSTATUS rpccli_netr_DatabaseSync(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] */,
 				  enum netr_SamDatabaseID database_id /* [in]  */,
 				  uint32_t *sync_context /* [in,out] [ref] */,
-				  uint32_t preferredmaximumlength /* [in]  */,
-				  struct netr_DELTA_ENUM_ARRAY *delta_enum_array /* [out] [ref] */)
+				  struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */,
+				  uint32_t preferredmaximumlength /* [in]  */)
 {
 	struct netr_DatabaseSync r;
 	NTSTATUS status;
@@ -1303,7 +1303,8 @@ NTSTATUS rpccli_netr_ServerAuthenticate3(struct rpc_pipe_client *cli,
 					 const char *account_name /* [in] [charset(UTF16)] */,
 					 enum netr_SchannelType secure_channel_type /* [in]  */,
 					 const char *computer_name /* [in] [charset(UTF16)] */,
-					 struct netr_Credential *credentials /* [in,out] [ref] */,
+					 struct netr_Credential *credentials /* [in] [ref] */,
+					 struct netr_Credential *return_credentials /* [out] [ref] */,
 					 uint32_t *negotiate_flags /* [in,out] [ref] */,
 					 uint32_t *rid /* [out] [ref] */)
 {
@@ -1341,7 +1342,7 @@ NTSTATUS rpccli_netr_ServerAuthenticate3(struct rpc_pipe_client *cli,
 	}
 
 	/* Return variables */
-	*credentials = *r.out.credentials;
+	*return_credentials = *r.out.return_credentials;
 	*negotiate_flags = *r.out.negotiate_flags;
 	*rid = *r.out.rid;
 
@@ -2242,7 +2243,7 @@ NTSTATUS rpccli_netr_LogonSamLogonWithFlags(struct rpc_pipe_client *cli,
 					    struct netr_Authenticator *credential /* [in] [unique] */,
 					    struct netr_Authenticator *return_authenticator /* [in,out] [unique] */,
 					    enum netr_LogonInfoClass logon_level /* [in]  */,
-					    union netr_LogonLevel logon /* [in] [switch_is(logon_level)] */,
+					    union netr_LogonLevel *logon /* [in] [ref,switch_is(logon_level)] */,
 					    uint16_t validation_level /* [in]  */,
 					    union netr_Validation *validation /* [out] [ref,switch_is(validation_level)] */,
 					    uint8_t *authoritative /* [out] [ref] */,
diff --git a/source3/librpc/gen_ndr/cli_netlogon.h b/source3/librpc/gen_ndr/cli_netlogon.h
index 72790e9..09484c8 100644
--- a/source3/librpc/gen_ndr/cli_netlogon.h
+++ b/source3/librpc/gen_ndr/cli_netlogon.h
@@ -6,7 +6,7 @@ NTSTATUS rpccli_netr_LogonUasLogon(struct rpc_pipe_client *cli,
 				   const char *server_name /* [in] [unique,charset(UTF16)] */,
 				   const char *account_name /* [in] [charset(UTF16)] */,
 				   const char *workstation /* [in] [charset(UTF16)] */,
-				   struct netr_UasInfo *info /* [out] [ref] */,
+				   struct netr_UasInfo **info /* [out] [ref] */,
 				   WERROR *werror);
 NTSTATUS rpccli_netr_LogonUasLogoff(struct rpc_pipe_client *cli,
 				    TALLOC_CTX *mem_ctx,
@@ -71,12 +71,12 @@ NTSTATUS rpccli_netr_DatabaseSync(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] */,
 				  enum netr_SamDatabaseID database_id /* [in]  */,
 				  uint32_t *sync_context /* [in,out] [ref] */,
-				  uint32_t preferredmaximumlength /* [in]  */,
-				  struct netr_DELTA_ENUM_ARRAY *delta_enum_array /* [out] [ref] */);
+				  struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */,
+				  uint32_t preferredmaximumlength /* [in]  */);
 NTSTATUS rpccli_netr_AccountDeltas(struct rpc_pipe_client *cli,
 				   TALLOC_CTX *mem_ctx,
 				   const char *logon_server /* [in] [unique,charset(UTF16)] */,
@@ -207,7 +207,8 @@ NTSTATUS rpccli_netr_ServerAuthenticate3(struct rpc_pipe_client *cli,
 					 const char *account_name /* [in] [charset(UTF16)] */,
 					 enum netr_SchannelType secure_channel_type /* [in]  */,
 					 const char *computer_name /* [in] [charset(UTF16)] */,
-					 struct netr_Credential *credentials /* [in,out] [ref] */,
+					 struct netr_Credential *credentials /* [in] [ref] */,
+					 struct netr_Credential *return_credentials /* [out] [ref] */,
 					 uint32_t *negotiate_flags /* [in,out] [ref] */,
 					 uint32_t *rid /* [out] [ref] */);
 NTSTATUS rpccli_netr_DsRGetDCNameEx(struct rpc_pipe_client *cli,
@@ -350,7 +351,7 @@ NTSTATUS rpccli_netr_LogonSamLogonWithFlags(struct rpc_pipe_client *cli,
 					    struct netr_Authenticator *credential /* [in] [unique] */,
 					    struct netr_Authenticator *return_authenticator /* [in,out] [unique] */,
 					    enum netr_LogonInfoClass logon_level /* [in]  */,
-					    union netr_LogonLevel logon /* [in] [switch_is(logon_level)] */,
+					    union netr_LogonLevel *logon /* [in] [ref,switch_is(logon_level)] */,
 					    uint16_t validation_level /* [in]  */,
 					    union netr_Validation *validation /* [out] [ref,switch_is(validation_level)] */,
 					    uint8_t *authoritative /* [out] [ref] */,
diff --git a/source3/librpc/gen_ndr/ndr_netlogon.c b/source3/librpc/gen_ndr/ndr_netlogon.c
index 36808c0..290d0fd 100644
--- a/source3/librpc/gen_ndr/ndr_netlogon.c
+++ b/source3/librpc/gen_ndr/ndr_netlogon.c
@@ -363,6 +363,8 @@ static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int nd
 	}
 	if (ndr_flags & NDR_BUFFERS) {
 		NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
+		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
+		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -377,6 +379,8 @@ static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int nd
 	}
 	if (ndr_flags & NDR_BUFFERS) {
 		NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
+		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
+		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -2208,6 +2212,7 @@ static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_
 		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
+		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -2222,6 +2227,7 @@ static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_
 		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
+		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -2299,6 +2305,8 @@ static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_
 		NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
+		NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
+		NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -2312,6 +2320,8 @@ static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_
 		NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
+		NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
+		NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -2333,6 +2343,7 @@ static enum ndr_err_code ndr_push_netr_USER_KEY_UNION(struct ndr_push *ndr, int
 		NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
+		NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -2344,6 +2355,7 @@ static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int
 		NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
+		NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -2364,6 +2376,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr
 		NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
+		NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -2376,6 +2389,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr
 		NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
+		NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -2523,6 +2537,8 @@ static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_
 		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
 		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
 		NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
+		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
+		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
 		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
 		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
 		NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
@@ -2586,6 +2602,8 @@ static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_
 		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
 		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
 		NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
+		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
+		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
 		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
 		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
 		NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
@@ -8454,7 +8472,10 @@ static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int f
 		if (r->out.info == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
-		NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
+		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
+		if (*r->out.info) {
+			NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
+		}
 		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 	}
 	return NDR_ERR_SUCCESS;
@@ -8463,8 +8484,10 @@ static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int f
 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
 {
 	uint32_t _ptr_server_name;
+	uint32_t _ptr_info;
 	TALLOC_CTX *_mem_save_server_name_0;
 	TALLOC_CTX *_mem_save_info_0;
+	TALLOC_CTX *_mem_save_info_1;
 	if (flags & NDR_IN) {
 		ZERO_STRUCT(r->out);
 
@@ -8509,7 +8532,18 @@ static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int f
 		}
 		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
+		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
+		if (_ptr_info) {
+			NDR_PULL_ALLOC(ndr, *r->out.info);
+		} else {
+			*r->out.info = NULL;
+		}
+		if (*r->out.info) {
+			_mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
+			NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
+			NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
+			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
+		}
 		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
 		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 	}
@@ -8541,7 +8575,12 @@ _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *na
 		ndr->depth++;
 		ndr_print_ptr(ndr, "info", r->out.info);
 		ndr->depth++;
-		ndr_print_netr_UasInfo(ndr, "info", r->out.info);
+		ndr_print_ptr(ndr, "info", *r->out.info);
+		ndr->depth++;
+		if (*r->out.info) {
+			ndr_print_netr_UasInfo(ndr, "info", *r->out.info);
+		}
+		ndr->depth--;
 		ndr->depth--;
 		ndr_print_WERROR(ndr, "result", r->out.result);
 		ndr->depth--;
@@ -9098,7 +9137,7 @@ _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *n
 	ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
+_PUBLIC_ enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
 {
 	if (flags & NDR_IN) {
 		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
@@ -9127,7 +9166,7 @@ static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr,
 	return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
+_PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
 {
 	uint32_t _ptr_server_name;
 	TALLOC_CTX *_mem_save_server_name_0;
@@ -9383,7 +9422,7 @@ static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, i
 		if (r->in.new_password == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
-		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
+		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
 	}
 	if (flags & NDR_OUT) {
 		if (r->out.return_authenticator == NULL) {
@@ -9450,7 +9489,7 @@ static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, i
 		}
 		_mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 		NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
+		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
 		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
 		NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 		ZERO_STRUCTP(r->out.return_authenticator);
@@ -9715,7 +9754,10 @@ static enum ndr_err_code ndr_push_netr_DatabaseSync(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");
 		}
@@ -9739,7 +9781,10 @@ static enum ndr_err_code ndr_push_netr_DatabaseSync(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;
@@ -9747,9 +9792,12 @@ static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int fl
 
 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
 {
+	uint32_t _ptr_delta_enum_array;
+	TALLOC_CTX *_mem_save_credential_0;
 	TALLOC_CTX *_mem_save_return_authenticator_0;
 	TALLOC_CTX *_mem_save_sync_context_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);
 
@@ -9767,7 +9815,13 @@ static enum ndr_err_code ndr_pull_netr_DatabaseSync(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);
 		}
@@ -9811,7 +9865,18 @@ static enum ndr_err_code ndr_pull_netr_DatabaseSync(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));
 	}
@@ -9830,7 +9895,10 @@ _PUBLIC_ void ndr_print_netr_DatabaseSync(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);
@@ -9856,7 +9924,12 @@ _PUBLIC_ void ndr_print_netr_DatabaseSync(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) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list