Synchronous only.
***************************************************************/
-NTSTATUS cli_smb2_dskattr(struct cli_state *cli, int *bsize, int *total, int *avail)
+NTSTATUS cli_smb2_dskattr(struct cli_state *cli, uint64_t *bsize, uint64_t *total, uint64_t *avail)
{
NTSTATUS status;
uint16_t fnum = 0xffff;
bytes_per_sector = IVAL(outbuf.data, 20);
if (bsize) {
- *bsize = (int)(sectors_per_unit * bytes_per_sector);
+ *bsize = (uint64_t)sectors_per_unit * (uint64_t)bytes_per_sector;
}
if (total) {
- *total = (int)total_size;
+ *total = total_size;
}
if (avail) {
- *avail = (int)size_free;
+ *avail = size_free;
}
status = NT_STATUS_OK;
time_t access_time,
time_t write_time);
NTSTATUS cli_smb2_dskattr(struct cli_state *cli,
- int *bsize,
- int *total,
- int *avail);
+ uint64_t *bsize,
+ uint64_t *total,
+ uint64_t *avail);
NTSTATUS cli_smb2_query_security_descriptor(struct cli_state *cli,
uint16_t fnum,
uint32_t sec_info,
struct tevent_req *req = NULL;
NTSTATUS status = NT_STATUS_OK;
- if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
- return cli_smb2_dskattr(cli, bsize, total, avail);
- }
-
frame = talloc_stackframe();
if (smbXcli_conn_has_async_calls(cli->conn)) {
NTSTATUS status;
if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
- status = cli_smb2_dskattr(cli, &old_bsize, &old_total, &old_avail);
- } else {
- status = cli_dskattr(cli, &old_bsize, &old_total, &old_avail);
+ return cli_smb2_dskattr(cli, bsize, total, avail);
}
+ /* Old SMB1 core protocol fallback. */
+ status = cli_dskattr(cli, &old_bsize, &old_total, &old_avail);
if (!NT_STATUS_IS_OK(status)) {
return status;
}