diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/include/smb_interfaces.h | 19 | ||||
-rw-r--r-- | source4/libcli/raw/rawreadwrite.c | 4 |
2 files changed, 6 insertions, 17 deletions
diff --git a/source4/include/smb_interfaces.h b/source4/include/smb_interfaces.h index d7fb8ec6b3..771dce8803 100644 --- a/source4/include/smb_interfaces.h +++ b/source4/include/smb_interfaces.h @@ -726,7 +726,8 @@ union smb_setfileinfo { } in; } setattr; - /* RAW_SFILEINFO_SETATTRE (SMBsetattrE) interface - only via setfileinfo() */ + /* RAW_SFILEINFO_SETATTRE (SMBsetattrE) interface - only via setfileinfo() + also RAW_SFILEINFO_STANDARD */ struct { enum smb_setfileinfo_level level; union setfileinfo_file file; @@ -735,22 +736,10 @@ union smb_setfileinfo { time_t create_time; time_t access_time; time_t write_time; - } in; - } setattre; - - - /* RAW_SFILEINFO_STANDARD interface */ - struct { - enum smb_setfileinfo_level level; - union setfileinfo_file file; - struct { - time_t create_time; - time_t access_time; - time_t write_time; /* notice that size, alloc_size and attrib are not settable, unlike the corresponding qfileinfo level */ } in; - } standard; + } setattre, standard; /* RAW_SFILEINFO_EA_SET interface */ struct { @@ -1248,7 +1237,7 @@ union smb_read { uint16_t fnum; uint64_t offset; uint16_t mincnt; - uint16_t maxcnt; + uint32_t maxcnt; uint16_t remaining; } in; struct { diff --git a/source4/libcli/raw/rawreadwrite.c b/source4/libcli/raw/rawreadwrite.c index e145ff9c10..bc9730f33d 100644 --- a/source4/libcli/raw/rawreadwrite.c +++ b/source4/libcli/raw/rawreadwrite.c @@ -77,9 +77,9 @@ struct smbcli_request *smb_raw_read_send(struct smbcli_tree *tree, union smb_rea SSVAL(req->out.vwv, VWV(1), 0); SSVAL(req->out.vwv, VWV(2), parms->readx.in.fnum); SIVAL(req->out.vwv, VWV(3), parms->readx.in.offset); - SSVAL(req->out.vwv, VWV(5), parms->readx.in.maxcnt); + SSVAL(req->out.vwv, VWV(5), parms->readx.in.maxcnt & 0xFFFF); SSVAL(req->out.vwv, VWV(6), parms->readx.in.mincnt); - SIVAL(req->out.vwv, VWV(7), 0); /* reserved */ + SIVAL(req->out.vwv, VWV(7), parms->readx.in.maxcnt >> 16); SSVAL(req->out.vwv, VWV(9), parms->readx.in.remaining); if (bigoffset) { SIVAL(req->out.vwv, VWV(10),parms->readx.in.offset>>32); |