s3:mdssvc: make use of lp_parm_const_string()
authorStefan Metzmacher <metze@samba.org>
Tue, 15 Oct 2019 11:38:16 +0000 (13:38 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 27 Nov 2019 10:25:31 +0000 (10:25 +0000)
We don't need any substitution for elasticsearch options.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
selftest/target/Samba3.pm
source3/rpc_server/mdssvc/es_parser_test.c
source3/rpc_server/mdssvc/mdssvc_es.c

index fab8bdda86e88c984bd55a1fc1aba72cb4fde164..41d439ea91a6637499509672f45b06ad9df32e32 100755 (executable)
@@ -965,7 +965,7 @@ sub setup_fileserver
        spotlight backend = elasticsearch
        elasticsearch:address = 127.0.0.35
        elasticsearch:port = 8080
-       elasticsearch:mappings = \"$srcdir_abs/source3/rpc_server/mdssvc/elasticsearch_mappings.json\"
+       elasticsearch:mappings = $srcdir_abs/source3/rpc_server/mdssvc/elasticsearch_mappings.json
 
        usershare path = $usershare_dir
        usershare max shares = 10
index 5751606fa1eac8d08b9b364dd94e19e6d31537a2..7d88c67abffc95a0d732d6dd75c05a3d6fafacb1 100644 (file)
@@ -39,7 +39,7 @@ int main(int argc, char **argv)
        json_t *mappings = NULL;
        json_error_t json_error;
        char *default_path = NULL;
-       char *path = NULL;
+       const char *path = NULL;
        const char *query_string = NULL;
        const char *path_scope = NULL;
        char *es_query = NULL;
@@ -67,12 +67,10 @@ int main(int argc, char **argv)
                return 1;
        }
 
-       path = lp_parm_talloc_string(mem_ctx,
-                                    GLOBAL_SECTION_SNUM,
-                                    "elasticsearch",
-                                    "mappings",
-                                    default_path);
-       TALLOC_FREE(default_path);
+       path = lp_parm_const_string(GLOBAL_SECTION_SNUM,
+                                   "elasticsearch",
+                                   "mappings",
+                                   default_path);
        if (path == NULL) {
                TALLOC_FREE(mem_ctx);
                return 1;
index 3c54abf01fde369c61bde40f90555a621ced9f28..aa169a80e1fe8f87bfb86a352937bba521663f7c 100644 (file)
@@ -55,7 +55,7 @@ static bool mdssvc_es_init(struct mdssvc_ctx *mdssvc_ctx)
        struct mdssvc_es_ctx *mdssvc_es_ctx = NULL;
        json_error_t json_error;
        char *default_path = NULL;
-       char *path = NULL;
+       const char *path = NULL;
 
        mdssvc_es_ctx = talloc_zero(mdssvc_ctx, struct mdssvc_es_ctx);
        if (mdssvc_es_ctx == NULL) {
@@ -78,12 +78,10 @@ static bool mdssvc_es_init(struct mdssvc_ctx *mdssvc_ctx)
                return false;
        }
 
-       path = lp_parm_talloc_string(mdssvc_es_ctx,
-                                    GLOBAL_SECTION_SNUM,
-                                    "elasticsearch",
-                                    "mappings",
-                                    default_path);
-       TALLOC_FREE(default_path);
+       path = lp_parm_const_string(GLOBAL_SECTION_SNUM,
+                                   "elasticsearch",
+                                   "mappings",
+                                   default_path);
        if (path == NULL) {
                TALLOC_FREE(mdssvc_es_ctx);
                return false;
@@ -93,11 +91,10 @@ static bool mdssvc_es_init(struct mdssvc_ctx *mdssvc_ctx)
        if (mdssvc_es_ctx->mappings == NULL) {
                DBG_ERR("Opening mapping file [%s] failed: %s\n",
                        path, json_error.text);
-               TALLOC_FREE(path);
                TALLOC_FREE(mdssvc_es_ctx);
                return false;
        }
-       TALLOC_FREE(path);
+       TALLOC_FREE(default_path);
 
        mdssvc_ctx->backend_private = mdssvc_es_ctx;
        return true;
@@ -187,6 +184,7 @@ static struct tevent_req *mds_es_connect_send(
        struct tevent_req *req = NULL;
        struct tevent_req *subreq = NULL;
        struct mds_es_connect_state *state = NULL;
+       const char *server_addr = NULL;
        bool use_tls;
        NTSTATUS status;
 
@@ -199,12 +197,16 @@ static struct tevent_req *mds_es_connect_send(
                .mds_es_ctx = mds_es_ctx,
        };
 
-       state->server_addr = lp_parm_talloc_string(
-               state,
+       server_addr = lp_parm_const_string(
                mds_es_ctx->mds_ctx->snum,
                "elasticsearch",
                "address",
                "localhost");
+       state->server_addr = talloc_strdup(state, server_addr);
+       if (tevent_req_nomem(state->server_addr, req)) {
+               return tevent_req_post(req, ev);
+       }
+
        state->server_port = lp_parm_int(
                mds_es_ctx->mds_ctx->snum,
                "elasticsearch",