mirror of
https://github.com/samba-team/samba.git
synced 2025-01-26 10:04:02 +03:00
idl/ioctl: change QAR response array to a DATA_BLOB
[MS-FSCC] specifies: The number of FILE_ALLOCATED_RANGE_BUFFER elements returned is computed by dividing the size of the returned output buffer (from either SMB or SMB2, the lower-layer protocol that carries the FSCTL) by the size of the FILE_ALLOCATED_RANGE_BUFFER element. Ideally, this requirement could be defined in idl with the following: [flag(NDR_REMAINING)] file_alloced_range_buf array[]; However, this is not currently supported by PIDL, so just use an opaque data blob for now. Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
1359e85932
commit
b5a635fb0a
@ -164,9 +164,13 @@ interface sparse
|
||||
* computed by dividing the size of the returned output buffer (from
|
||||
* either SMB or SMB2, the lower-layer protocol that carries the FSCTL)
|
||||
* by the size of the FILE_ALLOCATED_RANGE_BUFFER element.
|
||||
*
|
||||
* This logic can't (currently) be represented in pidl, so just use a
|
||||
* blob. Perhaps in future we'll support:
|
||||
* [flag(NDR_REMAINING)] file_alloced_range_buf array[];
|
||||
*/
|
||||
typedef [public] struct {
|
||||
file_alloced_range_buf *array;
|
||||
[flag(NDR_REMAINING)] DATA_BLOB far_buf_array;
|
||||
} fsctl_query_alloced_ranges_rsp;
|
||||
|
||||
/* 2.3.65 FSCTL_SET_ZERO_DATA Request */
|
||||
|
@ -2922,6 +2922,9 @@ static NTSTATUS test_ioctl_qar_req(struct torture_context *torture,
|
||||
status = NT_STATUS_UNSUCCESSFUL;
|
||||
goto err_out;
|
||||
}
|
||||
/* move to next buffer */
|
||||
ioctl.smb2.out.out.data += sizeof(far_buf);
|
||||
ioctl.smb2.out.out.length -= sizeof(far_buf);
|
||||
}
|
||||
|
||||
done:
|
||||
|
Loading…
x
Reference in New Issue
Block a user