diff options
author | Ralph Boehme <slow@samba.org> | 2019-04-12 12:15:56 +0200 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2019-08-08 20:24:31 +0000 |
commit | 66b8d86d71551ab8c615428211294ca110608645 (patch) | |
tree | c9fb1379ee82af8218673e57804fb9ffa87aede7 /source3/rpc_server | |
parent | 1ef96e09071458322845b4323fa59cf4e7475783 (diff) | |
download | samba-66b8d86d71551ab8c615428211294ca110608645.tar.gz |
s3:mdssvc: pass down sharename and SNUM
Not used for now, will be needed in the upcoming Elasticsearch backend.
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/rpc_server')
-rw-r--r-- | source3/rpc_server/mdssvc/mdssvc.c | 8 | ||||
-rw-r--r-- | source3/rpc_server/mdssvc/mdssvc.h | 12 | ||||
-rw-r--r-- | source3/rpc_server/mdssvc/srv_mdssvc_nt.c | 9 |
3 files changed, 24 insertions, 5 deletions
diff --git a/source3/rpc_server/mdssvc/mdssvc.c b/source3/rpc_server/mdssvc/mdssvc.c index 42eb960bb26..d8dff563c1b 100644 --- a/source3/rpc_server/mdssvc/mdssvc.c +++ b/source3/rpc_server/mdssvc/mdssvc.c @@ -1607,6 +1607,8 @@ static int mds_ctx_destructor_cb(struct mds_ctx *mds_ctx) struct mds_ctx *mds_init_ctx(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct auth_session_info *session_info, + int snum, + const char *sharename, const char *path) { struct mds_ctx *mds_ctx; @@ -1623,11 +1625,17 @@ struct mds_ctx *mds_init_ctx(TALLOC_CTX *mem_ctx, goto error; } + mds_ctx->sharename = talloc_strdup(mds_ctx, sharename); + if (mds_ctx->sharename == NULL) { + goto error; + } + mds_ctx->spath = talloc_strdup(mds_ctx, path); if (mds_ctx->spath == NULL) { goto error; } + mds_ctx->snum = snum; mds_ctx->pipe_session_info = session_info; if (session_info->security_token->num_sids < 1) { diff --git a/source3/rpc_server/mdssvc/mdssvc.h b/source3/rpc_server/mdssvc/mdssvc.h index 1be07f4a40a..e6ed08709ed 100644 --- a/source3/rpc_server/mdssvc/mdssvc.h +++ b/source3/rpc_server/mdssvc/mdssvc.h @@ -122,6 +122,8 @@ struct mds_ctx { struct auth_session_info *pipe_session_info; struct dom_sid sid; uid_t uid; + int snum; + const char *sharename; const char *spath; struct sl_query *query_list; /* list of active queries */ struct db_context *ino_path_map; /* dbwrap rbt for storing inode->path mappings */ @@ -145,10 +147,12 @@ struct mdssvc_backend { */ extern bool mds_init(struct messaging_context *msg_ctx); extern bool mds_shutdown(void); -extern struct mds_ctx *mds_init_ctx(TALLOC_CTX *mem_ctx, - struct tevent_context *ev, - struct auth_session_info *session_info, - const char *path); +struct mds_ctx *mds_init_ctx(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct auth_session_info *session_info, + int snum, + const char *sharename, + const char *path); extern bool mds_dispatch(struct mds_ctx *query_ctx, struct mdssvc_blob *request_blob, struct mdssvc_blob *response_blob); diff --git a/source3/rpc_server/mdssvc/srv_mdssvc_nt.c b/source3/rpc_server/mdssvc/srv_mdssvc_nt.c index efdcd0c7c51..293d0659909 100644 --- a/source3/rpc_server/mdssvc/srv_mdssvc_nt.c +++ b/source3/rpc_server/mdssvc/srv_mdssvc_nt.c @@ -113,6 +113,8 @@ bool shutdown_service_mdssvc(void) static NTSTATUS create_mdssvc_policy_handle(TALLOC_CTX *mem_ctx, struct pipes_struct *p, + int snum, + const char *sharename, const char *path, struct policy_handle *handle) { @@ -123,6 +125,8 @@ static NTSTATUS create_mdssvc_policy_handle(TALLOC_CTX *mem_ctx, mds_ctx = mds_init_ctx(mem_ctx, messaging_tevent_context(p->msg_ctx), p->session_info, + snum, + sharename, path); if (mds_ctx == NULL) { DEBUG(1, ("error in mds_init_ctx for: %s\n", path)); @@ -163,7 +167,10 @@ void _mdssvc_open(struct pipes_struct *p, struct mdssvc_open *r) return; } - status = create_mdssvc_policy_handle(p->mem_ctx, p, path, + status = create_mdssvc_policy_handle(p->mem_ctx, p, + snum, + r->in.share_name, + path, r->out.handle); if (!NT_STATUS_IS_OK(status)) { DEBUG(1, ("Couldn't create policy handle for %s\n", |