summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2019-04-12 12:15:56 +0200
committerJeremy Allison <jra@samba.org>2019-08-08 20:24:31 +0000
commit66b8d86d71551ab8c615428211294ca110608645 (patch)
treec9fb1379ee82af8218673e57804fb9ffa87aede7 /source3/rpc_server
parent1ef96e09071458322845b4323fa59cf4e7475783 (diff)
downloadsamba-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.c8
-rw-r--r--source3/rpc_server/mdssvc/mdssvc.h12
-rw-r--r--source3/rpc_server/mdssvc/srv_mdssvc_nt.c9
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",