From: Stefan Metzmacher Date: Mon, 7 Jul 2008 16:01:28 +0000 (+0200) Subject: dcerpc_smb: trans->in.max_data should not depend on the smb max size X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6813e22e9d300696a40993476629227d5cc4d35f;p=thirdparty%2Fsamba.git dcerpc_smb: trans->in.max_data should not depend on the smb max size We now support async multi fragment SMBtrans calls. metze --- diff --git a/source/librpc/rpc/dcerpc_smb.c b/source/librpc/rpc/dcerpc_smb.c index 26fe433b092..312a44a5f02 100644 --- a/source/librpc/rpc/dcerpc_smb.c +++ b/source/librpc/rpc/dcerpc_smb.c @@ -254,6 +254,7 @@ static NTSTATUS smb_send_trans_request(struct dcerpc_connection *c, DATA_BLOB *b struct smb_trans2 *trans; uint16_t setup[2]; struct smb_trans_state *state; + uint16_t max_data; state = talloc(smb, struct smb_trans_state); if (state == NULL) { @@ -270,8 +271,14 @@ static NTSTATUS smb_send_trans_request(struct dcerpc_connection *c, DATA_BLOB *b setup[0] = TRANSACT_DCERPCCMD; setup[1] = smb->fnum; + if (c->srv_max_xmit_frag > 0) { + max_data = MIN(UINT16_MAX, c->srv_max_xmit_frag); + } else { + max_data = UINT16_MAX; + } + trans->in.max_param = 0; - trans->in.max_data = smb_raw_max_trans_data(smb->tree, 0); + trans->in.max_data = max_data; trans->in.max_setup = 0; trans->in.setup_count = 2; trans->in.flags = 0;