mirror of
https://github.com/samba-team/samba.git
synced 2025-02-26 21:57:41 +03:00
Revert "s3:libsmb: add an option to cli_push to let the caller provide the buffers"
This reverts commit 9579a6f193f570e4ce2af80f4aac7c2f25ae5b22. It's confusing to have a boolean to alter the behavior of cli_push and as the new feature isn't used yet I revert it. We can readd a extra function later. metze
This commit is contained in:
parent
a0a9c5d170
commit
2fdbafbf54
@ -220,9 +220,7 @@ struct push_state {
|
||||
SMB_OFF_T nread;
|
||||
};
|
||||
|
||||
static size_t push_source(uint8_t *inbuf, size_t n,
|
||||
const uint8_t **outbuf,
|
||||
void *priv)
|
||||
static size_t push_source(uint8_t *buf, size_t n, void *priv)
|
||||
{
|
||||
struct push_state *state = (struct push_state *)priv;
|
||||
int result;
|
||||
@ -231,7 +229,7 @@ static size_t push_source(uint8_t *inbuf, size_t n,
|
||||
return 0;
|
||||
}
|
||||
|
||||
result = readfile(inbuf, n, state->f);
|
||||
result = readfile(buf, n, state->f);
|
||||
state->nread += result;
|
||||
return result;
|
||||
}
|
||||
@ -1683,8 +1681,8 @@ static int do_put(const char *rname, const char *lname, bool reput)
|
||||
state.f = f;
|
||||
state.nread = 0;
|
||||
|
||||
status = cli_push(targetcli, fnum, 0, 0, io_bufsize,
|
||||
false, push_source, &state);
|
||||
status = cli_push(targetcli, fnum, 0, 0, io_bufsize, push_source,
|
||||
&state);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
d_fprintf(stderr, "cli_push returned %s\n", nt_errstr(status));
|
||||
}
|
||||
|
@ -2790,18 +2790,13 @@ struct async_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
|
||||
struct cli_state *cli,
|
||||
uint16_t fnum, uint16_t mode,
|
||||
off_t start_offset, size_t window_size,
|
||||
bool caller_buffers,
|
||||
size_t (*source)(uint8_t *inbuf, size_t n,
|
||||
const uint8_t **outbuf,
|
||||
size_t (*source)(uint8_t *buf, size_t n,
|
||||
void *priv),
|
||||
void *priv);
|
||||
NTSTATUS cli_push_recv(struct async_req *req);
|
||||
NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode,
|
||||
off_t start_offset, size_t window_size,
|
||||
bool caller_buffers,
|
||||
size_t (*source)(uint8_t *inbuf, size_t n,
|
||||
const uint8_t **outbuf,
|
||||
void *priv),
|
||||
size_t (*source)(uint8_t *buf, size_t n, void *priv),
|
||||
void *priv);
|
||||
|
||||
/* The following definitions come from libsmb/clisecdesc.c */
|
||||
|
@ -930,11 +930,8 @@ struct cli_push_state {
|
||||
uint16_t mode;
|
||||
off_t start_offset;
|
||||
size_t window_size;
|
||||
bool caller_buffers;
|
||||
|
||||
size_t (*source)(uint8_t *inbuf, size_t n,
|
||||
const uint8_t **outbuf,
|
||||
void *priv);
|
||||
size_t (*source)(uint8_t *buf, size_t n, void *priv);
|
||||
void *priv;
|
||||
|
||||
bool eof;
|
||||
@ -966,21 +963,13 @@ static bool cli_push_write_setup(struct async_req *req,
|
||||
substate->req = req;
|
||||
substate->idx = idx;
|
||||
substate->ofs = state->next_offset;
|
||||
if (state->caller_buffers) {
|
||||
substate->buf = NULL;
|
||||
} else {
|
||||
substate->buf = talloc_array(substate, uint8_t,
|
||||
state->chunk_size);
|
||||
substate->buf = talloc_array(substate, uint8_t, state->chunk_size);
|
||||
if (!substate->buf) {
|
||||
talloc_free(substate);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/* source function can overwrite substate->buf... */
|
||||
substate->size = state->source(substate->buf,
|
||||
state->chunk_size,
|
||||
(const uint8_t **)&substate->buf,
|
||||
state->priv);
|
||||
if (substate->size == 0) {
|
||||
state->eof = true;
|
||||
@ -1013,9 +1002,7 @@ struct async_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
|
||||
struct cli_state *cli,
|
||||
uint16_t fnum, uint16_t mode,
|
||||
off_t start_offset, size_t window_size,
|
||||
bool caller_buffers,
|
||||
size_t (*source)(uint8_t *inbuf, size_t n,
|
||||
const uint8_t **outbuf,
|
||||
size_t (*source)(uint8_t *buf, size_t n,
|
||||
void *priv),
|
||||
void *priv)
|
||||
{
|
||||
@ -1032,7 +1019,6 @@ struct async_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
|
||||
state->fnum = fnum;
|
||||
state->start_offset = start_offset;
|
||||
state->mode = mode;
|
||||
state->caller_buffers = caller_buffers;
|
||||
state->source = source;
|
||||
state->priv = priv;
|
||||
state->eof = false;
|
||||
@ -1122,10 +1108,7 @@ NTSTATUS cli_push_recv(struct async_req *req)
|
||||
|
||||
NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode,
|
||||
off_t start_offset, size_t window_size,
|
||||
bool caller_buffers,
|
||||
size_t (*source)(uint8_t *inbuf, size_t n,
|
||||
const uint8_t **outbuf,
|
||||
void *priv),
|
||||
size_t (*source)(uint8_t *buf, size_t n, void *priv),
|
||||
void *priv)
|
||||
{
|
||||
TALLOC_CTX *frame = talloc_stackframe();
|
||||
@ -1146,7 +1129,7 @@ NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode,
|
||||
}
|
||||
|
||||
req = cli_push_send(frame, ev, cli, fnum, mode, start_offset,
|
||||
window_size, caller_buffers, source, priv);
|
||||
window_size, source, priv);
|
||||
if (req == NULL) {
|
||||
goto nomem;
|
||||
}
|
||||
|
@ -5117,9 +5117,7 @@ static bool run_chain1(int dummy)
|
||||
return True;
|
||||
}
|
||||
|
||||
static size_t null_source(uint8_t *inbuf, size_t n,
|
||||
const uint8_t **outbuf,
|
||||
void *priv)
|
||||
static size_t null_source(uint8_t *buf, size_t n, void *priv)
|
||||
{
|
||||
size_t *to_pull = (size_t *)priv;
|
||||
size_t thistime = *to_pull;
|
||||
@ -5129,7 +5127,7 @@ static size_t null_source(uint8_t *inbuf, size_t n,
|
||||
return 0;
|
||||
}
|
||||
|
||||
memset(inbuf, 0, thistime);
|
||||
memset(buf, 0, thistime);
|
||||
*to_pull -= thistime;
|
||||
return thistime;
|
||||
}
|
||||
@ -5172,7 +5170,7 @@ static bool run_windows_write(int dummy)
|
||||
}
|
||||
|
||||
status = cli_push(cli1, fnum, 0, i * torture_blocksize, torture_blocksize,
|
||||
false, null_source, &to_pull);
|
||||
null_source, &to_pull);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("cli_push returned: %s\n", nt_errstr(status));
|
||||
goto fail;
|
||||
|
Loading…
x
Reference in New Issue
Block a user