diff options
author | Volker Lendecke <vl@samba.org> | 2019-02-20 11:41:42 +0100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2019-02-22 21:48:11 +0100 |
commit | 529c61d0c9db5cf1ce852b06e14b7f1b2e72150e (patch) | |
tree | ceee6603ca59af91dfbf9e89dff797b91aa3896b /source3/libsmb | |
parent | 64176f00bfe78fb443216fadfece5d236dbe1f6c (diff) | |
download | samba-529c61d0c9db5cf1ce852b06e14b7f1b2e72150e.tar.gz |
libsmb: Pull up wire_flags calculation from open_internal
This avoids passing down a boolean
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/libsmb')
-rw-r--r-- | source3/libsmb/clifile.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c index d505fe517b1..61bc73effa2 100644 --- a/source3/libsmb/clifile.c +++ b/source3/libsmb/clifile.c @@ -5112,13 +5112,11 @@ static struct tevent_req *cli_posix_open_internal_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct cli_state *cli, const char *fname, - int flags, - mode_t mode, - bool is_dir) + uint32_t wire_flags, + mode_t mode) { struct tevent_req *req = NULL, *subreq = NULL; struct cli_posix_open_internal_state *state = NULL; - uint32_t wire_flags = open_flags_to_wire(flags); req = tevent_req_create( mem_ctx, &state, struct cli_posix_open_internal_state); @@ -5147,11 +5145,6 @@ static struct tevent_req *cli_posix_open_internal_send(TALLOC_CTX *mem_ctx, return tevent_req_post(req, ev); } - /* Setup data words. */ - if (is_dir) { - wire_flags |= SMB_O_DIRECTORY; - } - SIVAL(state->data,0,0); /* No oplock. */ SIVAL(state->data,4,wire_flags); SIVAL(state->data,8,unix_perms_to_wire(mode)); @@ -5244,6 +5237,7 @@ struct tevent_req *cli_posix_open_send(TALLOC_CTX *mem_ctx, { struct tevent_req *req = NULL, *subreq = NULL; struct cli_posix_open_state *state = NULL; + uint32_t wire_flags; req = tevent_req_create(mem_ctx, &state, struct cli_posix_open_state); @@ -5251,8 +5245,10 @@ struct tevent_req *cli_posix_open_send(TALLOC_CTX *mem_ctx, return NULL; } + wire_flags = open_flags_to_wire(flags); + subreq = cli_posix_open_internal_send( - mem_ctx, ev, cli, fname, flags, mode, false); + mem_ctx, ev, cli, fname, wire_flags, mode); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } @@ -5342,6 +5338,7 @@ struct tevent_req *cli_posix_mkdir_send(TALLOC_CTX *mem_ctx, { struct tevent_req *req = NULL, *subreq = NULL; struct cli_posix_mkdir_state *state = NULL; + uint32_t wire_flags; req = tevent_req_create( mem_ctx, &state, struct cli_posix_mkdir_state); @@ -5351,8 +5348,10 @@ struct tevent_req *cli_posix_mkdir_send(TALLOC_CTX *mem_ctx, state->ev = ev; state->cli = cli; + wire_flags = open_flags_to_wire(O_CREAT) | SMB_O_DIRECTORY; + subreq = cli_posix_open_internal_send( - mem_ctx, ev, cli, fname, O_CREAT, mode, true); + mem_ctx, ev, cli, fname, wire_flags, mode); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } |