1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

Add the cli_wct_ofs routine to calculate the offset for write&x

This commit is contained in:
Volker Lendecke 2008-12-19 18:12:44 +01:00
parent ae0c6cff25
commit fa5f11279b
2 changed files with 33 additions and 0 deletions

View File

@ -122,6 +122,8 @@ struct async_req *cli_request_send(TALLOC_CTX *mem_ctx,
size_t bytes_alignment,
uint32_t num_bytes, const uint8_t *bytes);
uint16_t cli_wct_ofs(const struct cli_state *cli);
bool cli_chain_cork(struct cli_state *cli, struct event_context *ev,
size_t size_hint);
void cli_chain_uncork(struct cli_state *cli);

View File

@ -638,6 +638,37 @@ struct async_req *cli_request_send(TALLOC_CTX *mem_ctx,
return result;
}
/**
* Calculate the current ofs to wct for requests like write&x
* @param[in] req The smb request we're currently building
* @retval how many bytes offset have we accumulated?
*/
uint16_t cli_wct_ofs(const struct cli_state *cli)
{
size_t buf_size;
if (cli->chain_accumulator == NULL) {
return smb_wct - 4;
}
buf_size = talloc_get_size(cli->chain_accumulator->outbuf);
if (buf_size == smb_wct) {
return smb_wct - 4;
}
/*
* Add alignment for subsequent requests
*/
if ((buf_size % 4) != 0) {
buf_size += (4 - (buf_size % 4));
}
return buf_size - 4;
}
/**
* Figure out if there is an andx command behind the current one
* @param[in] buf The smb buffer to look at