smbdotconf: mark "logfile" with substitution="1"
authorRalph Boehme <slow@samba.org>
Tue, 5 Nov 2019 09:34:11 +0000 (10:34 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 27 Nov 2019 10:25:35 +0000 (10:25 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
docs-xml/smbdotconf/logging/logfile.xml
lib/util/debug_s3.c
source3/lib/popt_common.c
source3/nmbd/nmbd.c
source3/printing/spoolssd.c
source3/rpc_server/epmd.c
source3/rpc_server/fssd.c
source3/rpc_server/lsasd.c
source3/smbd/server.c
source3/winbindd/winbindd.c
source3/winbindd/winbindd_dual.c

index eb751cb9732bc09b9f1fb3d9cdc0c46e0f0e51e9..07762ee06e0d219b7e4fbf46ee39c32343778a97 100644 (file)
@@ -3,6 +3,7 @@
                  type="string"
                  function="logfile"
                  handler="handle_logfile"
+                 substitution="1"
                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
 <description>
     <para>
index 5384ac1718ae8f5988b0846868a9f8053d65b4f7..82e8ef7fa7d8d82ec47e9d3749423cf16ddb988f 100644 (file)
@@ -40,8 +40,10 @@ bool reopen_logs(void)
                        .debug_uid = lp_debug_uid(),
                        .debug_class = lp_debug_class(),
                };
+               const struct loadparm_substitution *lp_sub =
+                       loadparm_s3_global_substitution();
 
-               debug_set_logfile(lp_logfile(talloc_tos()));
+               debug_set_logfile(lp_logfile(talloc_tos(), lp_sub));
                debug_parse_levels(lp_log_level(talloc_tos()));
                debug_set_settings(&settings,
                                   lp_logging(talloc_tos()),
index fa21668000e6816750c2457b9cfca26fa0ff430e..d5b60c69ef7f9691627065edf1e6965ae60a2850 100644 (file)
@@ -101,7 +101,9 @@ static void popt_common_callback(poptContext con,
                }
 
                if (override_logfile) {
-                       char *logfile = lp_logfile(mem_ctx);
+                       const struct loadparm_substitution *lp_sub =
+                               loadparm_s3_global_substitution();
+                       char *logfile = lp_logfile(mem_ctx, lp_sub);
                        if (logfile == NULL) {
                                talloc_free(mem_ctx);
                                exit(1);
index b4097d1dc577475652bd3db9ff91c992422724a5..0b881d13f7b2180d872a92ff87c734954a80484f 100644 (file)
@@ -851,6 +851,8 @@ static bool open_sockets(bool isdaemon, int port)
                POPT_COMMON_SAMBA
                POPT_TABLEEND
        };
+       const struct loadparm_substitution *lp_sub =
+               loadparm_s3_global_substitution();
        TALLOC_CTX *frame;
        NTSTATUS status;
        bool ok;
@@ -916,7 +918,7 @@ static bool open_sockets(bool isdaemon, int port)
        }
 
        fault_setup();
-       dump_core_setup("nmbd", lp_logfile(talloc_tos()));
+       dump_core_setup("nmbd", lp_logfile(talloc_tos(), lp_sub));
 
        /* POSIX demands that signals are inherited. If the invoking process has
         * these signals masked, we will have problems, as we won't receive them. */
index 427e31e0122ca8dde157caf5f56002ff7ea7f745..ebfeea4f76daa91af8fd49b462a16db9accc07b3 100644 (file)
@@ -59,7 +59,9 @@ static struct pf_daemon_config pf_spoolss_cfg = { 0 };
 
 static void spoolss_reopen_logs(int child_id)
 {
-       char *lfile = lp_logfile(talloc_tos());
+       const struct loadparm_substitution *lp_sub =
+               loadparm_s3_global_substitution();
+       char *lfile = lp_logfile(talloc_tos(), lp_sub);
        char *ext;
        int rc;
 
@@ -81,11 +83,11 @@ static void spoolss_reopen_logs(int child_id)
                if (strstr(lfile, ext) == NULL) {
                        if (child_id) {
                                rc = asprintf(&lfile, "%s.%d",
-                                             lp_logfile(talloc_tos()),
+                                             lp_logfile(talloc_tos(), lp_sub),
                                              child_id);
                        } else {
                                rc = asprintf(&lfile, "%s.%s",
-                                             lp_logfile(talloc_tos()),
+                                             lp_logfile(talloc_tos(), lp_sub),
                                              ext);
                        }
                }
@@ -580,14 +582,16 @@ static void print_queue_forward(struct messaging_context *msg,
 
 static char *get_bq_logfile(void)
 {
-       char *lfile = lp_logfile(talloc_tos());
+       const struct loadparm_substitution *lp_sub =
+               loadparm_s3_global_substitution();
+       char *lfile = lp_logfile(talloc_tos(), lp_sub);
        int rc;
 
        if (lfile == NULL || lfile[0] == '\0') {
                rc = asprintf(&lfile, "%s/log.%s.bq",
                                        get_dyn_LOGFILEBASE(), DAEMON_NAME);
        } else {
-               rc = asprintf(&lfile, "%s.bq", lp_logfile(talloc_tos()));
+               rc = asprintf(&lfile, "%s.bq", lp_logfile(talloc_tos(), lp_sub));
        }
        if (rc == -1) {
                lfile = NULL;
index 2f41d22c97bee3ae1fb0137810302a0b842c9672..3e3bc6b4049505b9050428f58e480a3a890b39e8 100644 (file)
@@ -38,7 +38,9 @@
 
 static void epmd_reopen_logs(void)
 {
-       char *lfile = lp_logfile(talloc_tos());
+       const struct loadparm_substitution *lp_sub =
+               loadparm_s3_global_substitution();
+       char *lfile = lp_logfile(talloc_tos(), lp_sub);
        int rc;
 
        if (lfile == NULL || lfile[0] == '\0') {
@@ -50,7 +52,7 @@ static void epmd_reopen_logs(void)
        } else {
                if (strstr(lfile, DAEMON_NAME) == NULL) {
                        rc = asprintf(&lfile, "%s.%s",
-                                     lp_logfile(talloc_tos()), DAEMON_NAME);
+                                     lp_logfile(talloc_tos(), lp_sub), DAEMON_NAME);
                        if (rc > 0) {
                                lp_set_logfile(lfile);
                                SAFE_FREE(lfile);
index 9e5a6110ebc1c240dc248231152616a6d9208856..8dc8b0e8e64e0f74d691abdff0aef11c2724acdd 100644 (file)
@@ -42,7 +42,9 @@ void start_fssd(struct tevent_context *ev_ctx,
 
 static void fssd_reopen_logs(void)
 {
-       char *lfile = lp_logfile(NULL);
+       const struct loadparm_substitution *lp_sub =
+               loadparm_s3_global_substitution();
+       char *lfile = lp_logfile(NULL, lp_sub);
        int rc;
 
        if (lfile == NULL || lfile[0] == '\0') {
@@ -53,7 +55,7 @@ static void fssd_reopen_logs(void)
                }
        } else {
                if (strstr(lfile, DAEMON_NAME) == NULL) {
-                       rc = asprintf(&lfile, "%s.%s", lp_logfile(NULL), DAEMON_NAME);
+                       rc = asprintf(&lfile, "%s.%s", lp_logfile(NULL, lp_sub), DAEMON_NAME);
                        if (rc > 0) {
                                lp_set_logfile(lfile);
                                SAFE_FREE(lfile);
index 850ee26036f8b62ff5b5893b4937a1b6a7450f87..0d8ba304f67b685dd5e9c6aaaf60a57ec52864ff 100644 (file)
@@ -62,7 +62,9 @@ static struct pf_daemon_config pf_lsasd_cfg = { 0 };
 
 static void lsasd_reopen_logs(int child_id)
 {
-       char *lfile = lp_logfile(talloc_tos());
+       const struct loadparm_substitution *lp_sub =
+               loadparm_s3_global_substitution();
+       char *lfile = lp_logfile(talloc_tos(), lp_sub);
        char *extension;
        int rc;
 
@@ -83,11 +85,11 @@ static void lsasd_reopen_logs(int child_id)
                if (strstr(lfile, extension) == NULL) {
                        if (child_id) {
                                rc = asprintf(&lfile, "%s.%d",
-                                               lp_logfile(talloc_tos()),
+                                               lp_logfile(talloc_tos(), lp_sub),
                                                child_id);
                        } else {
                                rc = asprintf(&lfile, "%s.%s",
-                                               lp_logfile(talloc_tos()),
+                                               lp_logfile(talloc_tos(), lp_sub),
                                                extension);
                        }
                }
index 38fc36881f44671d3c9f8af4960710ac73213871..6e7292079c6d6a3352408265b72d49999b42875a 100644 (file)
@@ -1628,6 +1628,8 @@ extern void build_options(bool screen);
        struct tevent_signal *se;
        int profiling_level;
        char *np_dir = NULL;
+       const struct loadparm_substitution *lp_sub =
+               loadparm_s3_global_substitution();
        static const struct smbd_shim smbd_shim_fns =
        {
                .send_stat_cache_delete_message = smbd_send_stat_cache_delete_message,
@@ -1741,7 +1743,7 @@ extern void build_options(bool screen);
        gain_root_group_privilege();
 
        fault_setup();
-       dump_core_setup("smbd", lp_logfile(talloc_tos()));
+       dump_core_setup("smbd", lp_logfile(talloc_tos(), lp_sub));
 
        /* we are never interested in SIGPIPE */
        BlockSignals(True,SIGPIPE);
index e839f0d19e349ad5211a67234ac2a3912efefaca..57d93f5a7693cb3ff7fa4ffc475d8e392bbb387a 100644 (file)
@@ -1652,6 +1652,8 @@ int main(int argc, const char **argv)
                POPT_COMMON_SAMBA
                POPT_TABLEEND
        };
+       const struct loadparm_substitution *lp_sub =
+               loadparm_s3_global_substitution();
        poptContext pc;
        int opt;
        TALLOC_CTX *frame;
@@ -1681,7 +1683,7 @@ int main(int argc, const char **argv)
        CatchSignal(SIGUSR2, SIG_IGN);
 
        fault_setup();
-       dump_core_setup("winbindd", lp_logfile(talloc_tos()));
+       dump_core_setup("winbindd", lp_logfile(talloc_tos(), lp_sub));
 
        smb_init_locale();
 
@@ -1741,7 +1743,7 @@ int main(int argc, const char **argv)
         * is often not related to the path where winbindd is actually run
         * in production.
         */
-       dump_core_setup("winbindd", lp_logfile(talloc_tos()));
+       dump_core_setup("winbindd", lp_logfile(talloc_tos(), lp_sub));
        if (is_daemon && interactive) {
                d_fprintf(stderr,"\nERROR: "
                          "Option -i|--interactive is not allowed together with -D|--daemon\n\n");
@@ -1785,7 +1787,7 @@ int main(int argc, const char **argv)
         * as the log file might have been set in the configuration and cores's
         * path is by default basename(lp_logfile()).
         */
-       dump_core_setup("winbindd", lp_logfile(talloc_tos()));
+       dump_core_setup("winbindd", lp_logfile(talloc_tos(), lp_sub));
 
        if (lp_server_role() == ROLE_ACTIVE_DIRECTORY_DC
            && !lp_parm_bool(-1, "server role check", "inhibit", false)) {
index 6e3277e5529d14f4a2e6787e8bbef1e144cfb66d..8188ed097df03dda9d8231ea5301981e6d23e8ae 100644 (file)
@@ -757,13 +757,16 @@ void setup_child(struct winbindd_domain *domain, struct winbindd_child *child,
                 const char *logprefix,
                 const char *logname)
 {
+       const struct loadparm_substitution *lp_sub =
+               loadparm_s3_global_substitution();
+
        if (logprefix && logname) {
                char *logbase = NULL;
 
-               if (*lp_logfile(talloc_tos())) {
+               if (*lp_logfile(talloc_tos(), lp_sub)) {
                        char *end = NULL;
 
-                       if (asprintf(&logbase, "%s", lp_logfile(talloc_tos())) < 0) {
+                       if (asprintf(&logbase, "%s", lp_logfile(talloc_tos(), lp_sub)) < 0) {
                                smb_panic("Internal error: asprintf failed");
                        }