[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-1161-g2840902

Günther Deschner gd at samba.org
Mon Aug 24 15:10:56 MDT 2009


The branch, master has been updated
       via  28409026928a6051f0d0c58da66f6904b98962fd (commit)
       via  4799020e9f1ab9bd811c9b5222af670db0705559 (commit)
      from  87d30a1968af66619dfd60f9bc7accde2ac22345 (commit)

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


- Log -----------------------------------------------------------------
commit 28409026928a6051f0d0c58da66f6904b98962fd
Author: Günther Deschner <gd at samba.org>
Date:   Mon Aug 24 23:02:20 2009 +0200

    netlogon: add (yet) undocumented netlogon negotiate bit to bitmap.
    
    This bit is set by the Win7 client while joining.
    
    Guenther

commit 4799020e9f1ab9bd811c9b5222af670db0705559
Author: Günther Deschner <gd at samba.org>
Date:   Mon Aug 24 23:00:47 2009 +0200

    s3-netlogon: Only hand out rid when netlogon credential chain has been setup sucessfully.
    
    Guenther

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

Summary of changes:
 librpc/gen_ndr/ndr_netlogon.c      |    1 +
 librpc/gen_ndr/netlogon.h          |    1 +
 librpc/idl/netlogon.idl            |    1 +
 source3/rpc_server/srv_netlog_nt.c |    6 +++++-
 4 files changed, 8 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/ndr_netlogon.c b/librpc/gen_ndr/ndr_netlogon.c
index 18969ec..8bb22d8 100644
--- a/librpc/gen_ndr/ndr_netlogon.c
+++ b/librpc/gen_ndr/ndr_netlogon.c
@@ -6508,6 +6508,7 @@ _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *n
 	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
 	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
 	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES_SHA2", NETLOGON_NEG_SUPPORTS_AES_SHA2, r);
+	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_0x01000000", NETLOGON_NEG_0x01000000, r);
 	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
 	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC", NETLOGON_NEG_AUTHENTICATED_RPC, r);
 	ndr->depth--;
diff --git a/librpc/gen_ndr/netlogon.h b/librpc/gen_ndr/netlogon.h
index 28307ff..bc8ff12 100644
--- a/librpc/gen_ndr/netlogon.h
+++ b/librpc/gen_ndr/netlogon.h
@@ -754,6 +754,7 @@ union netr_CONTROL_DATA_INFORMATION {
 #define NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION ( 0x00100000 )
 #define NETLOGON_NEG_RODC_PASSTHROUGH ( 0x00200000 )
 #define NETLOGON_NEG_SUPPORTS_AES_SHA2 ( 0x00400000 )
+#define NETLOGON_NEG_0x01000000 ( 0x01000000 )
 #define NETLOGON_NEG_AUTHENTICATED_RPC_LSASS ( 0x20000000 )
 #define NETLOGON_NEG_AUTHENTICATED_RPC ( 0x40000000 )
 
diff --git a/librpc/idl/netlogon.idl b/librpc/idl/netlogon.idl
index c34059a..2a2a6eb 100644
--- a/librpc/idl/netlogon.idl
+++ b/librpc/idl/netlogon.idl
@@ -961,6 +961,7 @@ interface netlogon
 		NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION	= 0x00100000,
 		NETLOGON_NEG_RODC_PASSTHROUGH		= 0x00200000,
 		NETLOGON_NEG_SUPPORTS_AES_SHA2		= 0x00400000,
+		NETLOGON_NEG_0x01000000			= 0x01000000,
 		NETLOGON_NEG_AUTHENTICATED_RPC_LSASS	= 0x20000000,
 		NETLOGON_NEG_AUTHENTICATED_RPC		= 0x40000000
 	} netr_NegotiateFlags;
diff --git a/source3/rpc_server/srv_netlog_nt.c b/source3/rpc_server/srv_netlog_nt.c
index 79ff7b1..8a93b20 100644
--- a/source3/rpc_server/srv_netlog_nt.c
+++ b/source3/rpc_server/srv_netlog_nt.c
@@ -513,6 +513,7 @@ NTSTATUS _netr_ServerAuthenticate3(pipes_struct *p,
 	uint32_t in_neg_flags = *r->in.negotiate_flags;
 	struct netr_Credential srv_chal_out;
 	const char *fn;
+	uint32_t rid;
 
 	/* According to Microsoft (see bugid #6099)
 	 * Windows 7 looks at the negotiate_flags
@@ -578,7 +579,7 @@ NTSTATUS _netr_ServerAuthenticate3(pipes_struct *p,
 	status = get_md4pw((char *)p->dc->mach_pw,
 			   r->in.account_name,
 			   r->in.secure_channel_type,
-			   r->out.rid);
+			   &rid);
 	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(0,("%s: failed to get machine password for "
 			"account %s: %s\n",
@@ -621,6 +622,9 @@ NTSTATUS _netr_ServerAuthenticate3(pipes_struct *p,
 					    r->in.computer_name,
 					    p->dc);
 	unbecome_root();
+
+	*r->out.rid = rid;
+
 	status = NT_STATUS_OK;
 
   out:


-- 
Samba Shared Repository


More information about the samba-cvs mailing list