From: Stefan Metzmacher Date: Mon, 7 Jul 2008 17:37:14 +0000 (+0200) Subject: smb_server/smb: prepare multi fragmented nttrans requests X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=36a39b92d732a682e38ad4b3f733951fee4757ed;p=thirdparty%2Fsamba.git smb_server/smb: prepare multi fragmented nttrans requests metze --- diff --git a/source/smb_server/smb/trans2.c b/source/smb_server/smb/trans2.c index 6dd69de436c..0e820cfe0e9 100644 --- a/source/smb_server/smb/trans2.c +++ b/source/smb_server/smb/trans2.c @@ -1036,7 +1036,7 @@ static NTSTATUS trans2_backend(struct smbsrv_request *req, struct trans_op *op) return NT_STATUS_FOOBAR; } -static int smbsrv_trans_partial_destructor(struct smbsrv_trans_partial *tp) +int smbsrv_trans_partial_destructor(struct smbsrv_trans_partial *tp) { DLIST_REMOVE(tp->req->smb_conn->trans_partial, tp); return 0; @@ -1063,7 +1063,7 @@ static void reply_trans_continue(struct smbsrv_request *req, uint8_t command, tp = talloc(req, struct smbsrv_trans_partial); tp->req = req; - tp->trans = trans; + tp->u.trans = trans; tp->command = command; DLIST_ADD(req->smb_conn->trans_partial, tp); @@ -1323,7 +1323,7 @@ static void reply_transs_generic(struct smbsrv_request *req, uint8_t command) return; } - trans = tp->trans; + trans = tp->u.trans; param_total = SVAL(req->in.vwv, VWV(0)); data_total = SVAL(req->in.vwv, VWV(1)); diff --git a/source/smb_server/smb_server.h b/source/smb_server/smb_server.h index ac3e0f3bd3d..dd4ec3281bd 100644 --- a/source/smb_server/smb_server.h +++ b/source/smb_server/smb_server.h @@ -355,8 +355,11 @@ struct smbsrv_connection { struct smbsrv_trans_partial { struct smbsrv_trans_partial *next, *prev; struct smbsrv_request *req; - struct smb_trans2 *trans; uint8_t command; + union { + struct smb_trans2 *trans; + struct smb_nttrans *nttrans; + } u; } *trans_partial; /* configuration parameters */