NTSTATUS status;
uint16_t protnum;
uint8_t *inbuf;
+ uint32_t client_capabilities = cli->conn.smb1.client.capabilities;
uint32_t both_capabilities;
uint32_t server_capabilities = 0;
+ uint32_t capabilities;
enum protocol_types protocol;
status = cli_smb_recv(subreq, state, &inbuf, 1, &wct, &vwv,
* - flags used in both directions
* - server only flags
*/
- both_capabilities = cli->capabilities & server_capabilities;
- cli->capabilities = cli->capabilities & SMB_CAP_CLIENT_MASK;
- cli->capabilities |= both_capabilities & SMB_CAP_BOTH_MASK;
- cli->capabilities |= server_capabilities & SMB_CAP_SERVER_MASK;
+ both_capabilities = client_capabilities & server_capabilities;
+ capabilities = client_capabilities & SMB_CAP_CLIENT_MASK;
+ capabilities |= both_capabilities & SMB_CAP_BOTH_MASK;
+ capabilities |= server_capabilities & SMB_CAP_SERVER_MASK;
cli->conn.protocol = protocol;
+ cli->conn.smb1.server.capabilities = server_capabilities;
+ cli->conn.smb1.capabilities = capabilities;
+
tevent_req_done(req);
}
goto error;
}
- cli->capabilities = 0;
- cli->capabilities |= CAP_LARGE_FILES;
- cli->capabilities |= CAP_NT_SMBS | CAP_RPC_REMOTE_APIS;
- cli->capabilities |= CAP_LOCK_AND_READ | CAP_NT_FIND;
- cli->capabilities |= CAP_DFS | CAP_W2K_SMBS;
- cli->capabilities |= CAP_LARGE_READX|CAP_LARGE_WRITEX;
- cli->capabilities |= CAP_LWIO;
+ cli->conn.smb1.client.capabilities = 0;
+ cli->conn.smb1.client.capabilities |= CAP_LARGE_FILES;
+ cli->conn.smb1.client.capabilities |= CAP_NT_SMBS | CAP_RPC_REMOTE_APIS;
+ cli->conn.smb1.client.capabilities |= CAP_LOCK_AND_READ | CAP_NT_FIND;
+ cli->conn.smb1.client.capabilities |= CAP_DFS | CAP_W2K_SMBS;
+ cli->conn.smb1.client.capabilities |= CAP_LARGE_READX|CAP_LARGE_WRITEX;
+ cli->conn.smb1.client.capabilities |= CAP_LWIO;
if (!force_dos_errors) {
- cli->capabilities |= CAP_STATUS32;
+ cli->conn.smb1.client.capabilities |= CAP_STATUS32;
}
if (!force_ascii) {
- cli->capabilities |= CAP_UNICODE;
+ cli->conn.smb1.client.capabilities |= CAP_UNICODE;
}
if (use_spnego) {
- cli->capabilities |= CAP_EXTENDED_SECURITY;
+ cli->conn.smb1.client.capabilities |= CAP_EXTENDED_SECURITY;
}
if (use_level_II_oplocks) {
- cli->capabilities |= CAP_LEVEL_II_OPLOCKS;
+ cli->conn.smb1.client.capabilities |= CAP_LEVEL_II_OPLOCKS;
}
+ cli->conn.smb1.capabilities = cli->conn.smb1.client.capabilities;
+
cli->conn.outgoing = tevent_queue_create(cli, "cli_outgoing");
if (cli->conn.outgoing == NULL) {
goto error;
uint32_t cli_state_capabilities(struct cli_state *cli)
{
- return cli->capabilities;
+ return cli->conn.smb1.capabilities;
}
uint32_t cli_state_available_size(struct cli_state *cli, uint32_t ofs)