svn commit: samba r21293 - in branches/SAMBA_4_0/source/libnet: .

metze at samba.org metze at samba.org
Mon Feb 12 10:58:07 GMT 2007


Author: metze
Date: 2007-02-12 10:58:06 +0000 (Mon, 12 Feb 2007)
New Revision: 21293

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21293

Log:
store the gensec session key for each drsuapi connection

metze 
Modified:
   branches/SAMBA_4_0/source/libnet/libnet_become_dc.c


Changeset:
Modified: branches/SAMBA_4_0/source/libnet/libnet_become_dc.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_become_dc.c	2007-02-12 09:53:52 UTC (rev 21292)
+++ branches/SAMBA_4_0/source/libnet/libnet_become_dc.c	2007-02-12 10:58:06 UTC (rev 21293)
@@ -32,6 +32,7 @@
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "librpc/gen_ndr/ndr_security.h"
 #include "librpc/gen_ndr/ndr_drsuapi.h"
+#include "auth/gensec/gensec.h"
 
 struct libnet_BecomeDC_state {
 	struct composite_context *creq;
@@ -55,6 +56,7 @@
 		struct libnet_BecomeDC_state *s;
 		struct dcerpc_binding *binding;
 		struct dcerpc_pipe *pipe;
+		DATA_BLOB gensec_skey;
 		struct drsuapi_DsBind bind_r;
 		struct GUID bind_guid;
 		struct drsuapi_DsBindInfoCtr bind_info_ctr;
@@ -895,6 +897,10 @@
 	c->status = dcerpc_pipe_connect_b_recv(req, s, &s->drsuapi1.pipe);
 	if (!composite_is_ok(c)) return;
 
+	c->status = gensec_session_key(s->drsuapi1.pipe->conn->security_state.generic_state,
+				       &s->drsuapi1.gensec_skey);
+	if (!composite_is_ok(c)) return;
+
 	becomeDC_drsuapi_bind_send(s, &s->drsuapi1, becomeDC_drsuapi1_bind_recv);
 }
 
@@ -1585,6 +1591,10 @@
 	c->status = dcerpc_pipe_connect_b_recv(req, s, &s->drsuapi2.pipe);
 	if (!composite_is_ok(c)) return;
 
+	c->status = gensec_session_key(s->drsuapi2.pipe->conn->security_state.generic_state,
+				       &s->drsuapi2.gensec_skey);
+	if (!composite_is_ok(c)) return;
+
 	becomeDC_drsuapi_bind_send(s, &s->drsuapi2, becomeDC_drsuapi2_bind_recv);
 }
 
@@ -1639,6 +1649,10 @@
 	c->status = dcerpc_pipe_connect_b_recv(req, s, &s->drsuapi3.pipe);
 	if (!composite_is_ok(c)) return;
 
+	c->status = gensec_session_key(s->drsuapi3.pipe->conn->security_state.generic_state,
+				       &s->drsuapi3.gensec_skey);
+	if (!composite_is_ok(c)) return;
+
 	becomeDC_drsuapi3_pull_schema_send(s);
 }
 



More information about the samba-cvs mailing list