From 41b37207139b3cbfa293a84ab92113db8007afed Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 17 Sep 2004 00:49:41 +0000 Subject: r2371: Fix for talking to OS/2 clients (max_mux ignored) by Guenter Kukkukk . Bugid #1590. Jeremy. (This used to be commit 330025d1a669de927a3879a9c3a9fc20e1be464f) --- source3/libsmb/cliconnect.c | 1 + source3/libsmb/clireadwrite.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'source3/libsmb') diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 559538aac9..98656c119d 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -1133,6 +1133,7 @@ BOOL cli_negprot(struct cli_state *cli) cli->use_spnego = False; cli->sec_mode = SVAL(cli->inbuf,smb_vwv1); cli->max_xmit = SVAL(cli->inbuf,smb_vwv2); + cli->max_mux = SVAL(cli->inbuf, smb_vwv3); cli->sesskey = IVAL(cli->inbuf,smb_vwv6); cli->serverzone = SVALS(cli->inbuf,smb_vwv10); cli->serverzone *= 60; diff --git a/source3/libsmb/clireadwrite.c b/source3/libsmb/clireadwrite.c index 8eac7d07d8..60ac89aeb2 100644 --- a/source3/libsmb/clireadwrite.c +++ b/source3/libsmb/clireadwrite.c @@ -325,10 +325,16 @@ ssize_t cli_write(struct cli_state *cli, int bwritten = 0; int issued = 0; int received = 0; - int mpx = MAX(cli->max_mux-1, 1); + int mpx = 1; int block = cli->max_xmit - (smb_size+32); int blocks = (size + (block-1)) / block; + if(cli->max_mux == 0) { + mpx = 1; + } else { + mpx = cli->max_mux-1; + } + while (received < blocks) { while ((issued - received < mpx) && (issued < blocks)) { -- cgit