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 <[email protected]>
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 <[email protected]>
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

Reply via email to