From 2f39409dc1ef012a8a7d315572a489d15df186f7 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 16 Oct 1998 17:40:01 +0000 Subject: [PATCH] - use large buffers for netshareenum - handle errmoredata a bit better - fix dev type from tconx for smbw --- source/libsmb/clientgen.c | 49 +++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/source/libsmb/clientgen.c b/source/libsmb/clientgen.c index 3c2ad3e0eaa..3ed80eb7a67 100644 --- a/source/libsmb/clientgen.c +++ b/source/libsmb/clientgen.c @@ -489,12 +489,12 @@ BOOL cli_RNetShareEnum(struct cli_state *cli, void (*fn)(const char *, uint32, c pstrcpy(p,"B13BWz"); p = skip_string(p,1); SSVAL(p,0,1); - SSVAL(p,2,CLI_BUFFER_SIZE); + SSVAL(p,2,0xFFFF); p += 4; if (cli_api(cli, param, PTR_DIFF(p,param), 1024, /* Param, length, maxlen */ - NULL, 0, CLI_BUFFER_SIZE, /* data, length, maxlen */ + NULL, 0, 0xFFFF, /* data, length, maxlen */ &rparam, &rprcnt, /* return params, length */ &rdata, &rdrcnt)) /* return data, length */ { @@ -502,20 +502,22 @@ BOOL cli_RNetShareEnum(struct cli_state *cli, void (*fn)(const char *, uint32, c int converter=SVAL(rparam,2); int i; - if (res == 0) - { - count=SVAL(rparam,4); - p = rdata; - - for (i=0;ioutbuf,smb_vwv5,cli->sesskey); SSVAL(cli->outbuf,smb_vwv7,passlen); SSVAL(cli->outbuf,smb_vwv8,ntpasslen); - SSVAL(cli->outbuf,smb_vwv11,CAP_STATUS32); + SSVAL(cli->outbuf,smb_vwv11,0); p = smb_buf(cli->outbuf); memcpy(p,pword,passlen); p += SVAL(cli->outbuf,smb_vwv7); @@ -805,8 +807,17 @@ BOOL cli_send_tconX(struct cli_state *cli, return False; } - fstrcpy(cli->dev, smb_buf(cli->inbuf)); + fstrcpy(cli->dev, "A:"); + + if (cli->protocol >= PROTOCOL_NT1) { + fstrcpy(cli->dev, smb_buf(cli->inbuf)); + } + + if (strcasecmp(share,"IPC$")==0) { + fstrcpy(cli->dev, "IPC"); + } + /* only grab the device if we have a recent protocol level */ if (cli->protocol >= PROTOCOL_NT1 && smb_buflen(cli->inbuf) == 3) { /* almost certainly win95 - enable bug fixes */ -- 2.11.4.GIT