mirror of
https://github.com/samba-team/samba.git
synced 2025-08-26 01:49:31 +03:00
r4936: moved to a convention where the completion function is only called in
one place. This makes the code more robust, and simpler (it would have prevented the error that volker found).
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
c4faceadc7
commit
420b53091e
@ -170,9 +170,6 @@ static NTSTATUS loadfile_close(struct smbcli_composite *c,
|
||||
NT_STATUS_NOT_OK_RETURN(status);
|
||||
|
||||
c->state = SMBCLI_REQUEST_DONE;
|
||||
if (c->async.fn) {
|
||||
c->async.fn(c);
|
||||
}
|
||||
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
@ -185,30 +182,30 @@ static void loadfile_handler(struct smbcli_request *req)
|
||||
{
|
||||
struct smbcli_composite *c = req->async.private;
|
||||
struct loadfile_state *state = talloc_get_type(c->private, struct loadfile_state);
|
||||
NTSTATUS status;
|
||||
|
||||
/* when this handler is called, the stage indicates what
|
||||
call has just finished */
|
||||
switch (state->stage) {
|
||||
case LOADFILE_OPEN:
|
||||
status = loadfile_open(c, state->io);
|
||||
c->status = loadfile_open(c, state->io);
|
||||
break;
|
||||
|
||||
case LOADFILE_READ:
|
||||
status = loadfile_read(c, state->io);
|
||||
c->status = loadfile_read(c, state->io);
|
||||
break;
|
||||
|
||||
case LOADFILE_CLOSE:
|
||||
status = loadfile_close(c, state->io);
|
||||
c->status = loadfile_close(c, state->io);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
c->status = status;
|
||||
if (!NT_STATUS_IS_OK(c->status)) {
|
||||
c->state = SMBCLI_REQUEST_ERROR;
|
||||
if (c->async.fn) {
|
||||
c->async.fn(c);
|
||||
}
|
||||
}
|
||||
|
||||
if (c->state >= SMBCLI_REQUEST_DONE &&
|
||||
c->async.fn) {
|
||||
c->async.fn(c);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -171,9 +171,6 @@ static NTSTATUS savefile_close(struct smbcli_composite *c,
|
||||
}
|
||||
|
||||
c->state = SMBCLI_REQUEST_DONE;
|
||||
if (c->async.fn) {
|
||||
c->async.fn(c);
|
||||
}
|
||||
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
@ -186,30 +183,30 @@ static void savefile_handler(struct smbcli_request *req)
|
||||
{
|
||||
struct smbcli_composite *c = req->async.private;
|
||||
struct savefile_state *state = talloc_get_type(c->private, struct savefile_state);
|
||||
NTSTATUS status;
|
||||
|
||||
/* when this handler is called, the stage indicates what
|
||||
call has just finished */
|
||||
switch (state->stage) {
|
||||
case SAVEFILE_OPEN:
|
||||
status = savefile_open(c, state->io);
|
||||
c->status = savefile_open(c, state->io);
|
||||
break;
|
||||
|
||||
case SAVEFILE_WRITE:
|
||||
status = savefile_write(c, state->io);
|
||||
c->status = savefile_write(c, state->io);
|
||||
break;
|
||||
|
||||
case SAVEFILE_CLOSE:
|
||||
status = savefile_close(c, state->io);
|
||||
c->status = savefile_close(c, state->io);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
c->status = status;
|
||||
if (!NT_STATUS_IS_OK(c->status)) {
|
||||
c->state = SMBCLI_REQUEST_ERROR;
|
||||
if (c->async.fn) {
|
||||
c->async.fn(c);
|
||||
}
|
||||
}
|
||||
|
||||
if (c->state >= SMBCLI_REQUEST_DONE &&
|
||||
c->async.fn) {
|
||||
c->async.fn(c);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user