diff options
author | Bo Yang <boyang@samba.org> | 2009-05-14 10:13:12 +0800 |
---|---|---|
committer | Bo Yang <boyang@samba.org> | 2009-05-13 18:47:00 +0800 |
commit | 05379f01252fc8b449f36130bcf00c321d7a1c37 (patch) | |
tree | b13cff0de029da42f251e6ecec4e31763b0e3fbc /source3/libsmb/cliconnect.c | |
parent | 42e0cb8c0a1b8470ac8e9ad1c5a741e299debb8f (diff) | |
download | samba-05379f01252fc8b449f36130bcf00c321d7a1c37.tar.gz samba-05379f01252fc8b449f36130bcf00c321d7a1c37.tar.bz2 samba-05379f01252fc8b449f36130bcf00c321d7a1c37.zip |
s3: return proper error code in cli_smb_req_send
Signed-off-by: Bo Yang <boyang@samba.org>
Diffstat (limited to 'source3/libsmb/cliconnect.c')
-rw-r--r-- | source3/libsmb/cliconnect.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 38985363c2..16c15ce7db 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -238,12 +238,18 @@ struct tevent_req *cli_session_setup_guest_send(TALLOC_CTX *mem_ctx, struct cli_state *cli) { struct tevent_req *req, *subreq; + NTSTATUS status; req = cli_session_setup_guest_create(mem_ctx, ev, cli, &subreq); - if ((req == NULL) || !cli_smb_req_send(subreq)) { - TALLOC_FREE(req); + if (req == NULL) { return NULL; } + + status = cli_smb_req_send(subreq); + if (NT_STATUS_IS_OK(status)) { + tevent_req_nterror(req, status); + return tevent_req_post(req, ev); + } return req; } @@ -1392,13 +1398,18 @@ struct tevent_req *cli_tcon_andx_send(TALLOC_CTX *mem_ctx, const char *pass, int passlen) { struct tevent_req *req, *subreq; + NTSTATUS status; req = cli_tcon_andx_create(mem_ctx, ev, cli, share, dev, pass, passlen, &subreq); - if ((req == NULL) || !cli_smb_req_send(subreq)) { - TALLOC_FREE(req); + if (req == NULL) { return NULL; } + status = cli_smb_req_send(subreq); + if (!NT_STATUS_IS_OK(status)) { + tevent_req_nterror(req, status); + return tevent_req_post(req, ev); + } return req; } |