The Samba-Bugzilla – Attachment 16994 Details for
Bug 14897
samba process doesn't log to logfile
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for 4.15 cherry-picked from master
bug14897-v415.patch (text/plain), 32.76 KB, created by
Ralph Böhme
on 2021-11-16 05:22:53 UTC
(
hide
)
Description:
Patch for 4.15 cherry-picked from master
Filename:
MIME Type:
Creator:
Ralph Böhme
Created:
2021-11-16 05:22:53 UTC
Size:
32.76 KB
patch
obsolete
>From 3beff89fd108e060dd1b671e70e19984191fc951 Mon Sep 17 00:00:00 2001 >From: Ralph Boehme <slow@samba.org> >Date: Wed, 10 Nov 2021 20:18:07 +0100 >Subject: [PATCH 1/8] source3: move lib/substitute.c functions out of proto.h > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=14897 > >Signed-off-by: Ralph Boehme <slow@samba.org> >Reviewed-by: Andreas Schneider <asn@samba.org> >(cherry picked from commit 25043ebb2e6f74592e802f78d327f844e615a442) >--- > source3/auth/auth_generic.c | 1 + > source3/auth/auth_ntlmssp.c | 1 + > source3/auth/auth_util.c | 1 + > source3/include/proto.h | 33 ----------- > source3/lib/substitute.c | 1 + > source3/lib/substitute.h | 63 +++++++++++++++++++++ > source3/modules/vfs_expand_msdfs.c | 1 + > source3/modules/vfs_full_audit.c | 1 + > source3/modules/vfs_recycle.c | 1 + > source3/modules/vfs_unityed_media.c | 1 + > source3/modules/vfs_virusfilter_utils.c | 1 + > source3/nmbd/nmbd.c | 1 + > source3/nmbd/nmbd_synclists.c | 1 + > source3/param/loadparm.c | 1 + > source3/passdb/passdb.c | 1 + > source3/passdb/pdb_ldap.c | 1 + > source3/printing/print_generic.c | 1 + > source3/printing/printing.c | 1 + > source3/rpc_server/lsa/srv_lsa_nt.c | 1 + > source3/rpc_server/netlogon/srv_netlog_nt.c | 1 + > source3/rpc_server/srvsvc/srv_srvsvc_nt.c | 1 + > source3/smbd/ipc.c | 1 + > source3/smbd/lanman.c | 1 + > source3/smbd/message.c | 1 + > source3/smbd/msdfs.c | 1 + > source3/smbd/process.c | 1 + > source3/smbd/reply.c | 1 + > source3/smbd/server.c | 1 + > source3/smbd/service.c | 1 + > source3/smbd/sesssetup.c | 1 + > source3/smbd/share_access.c | 1 + > source3/smbd/smb2_server.c | 1 + > source3/smbd/smb2_sesssetup.c | 1 + > source3/smbd/trans2.c | 1 + > source3/smbd/uid.c | 1 + > source3/torture/torture.c | 1 + > source3/utils/net_sam.c | 1 + > source3/winbindd/wb_getpwsid.c | 1 + > source3/winbindd/winbindd.c | 1 + > 39 files changed, 100 insertions(+), 33 deletions(-) > create mode 100644 source3/lib/substitute.h > >diff --git a/source3/auth/auth_generic.c b/source3/auth/auth_generic.c >index fc7a7549e8e5..ff51307e43a1 100644 >--- a/source3/auth/auth_generic.c >+++ b/source3/auth/auth_generic.c >@@ -36,6 +36,7 @@ > #include "auth/credentials/credentials.h" > #include "lib/param/loadparm.h" > #include "librpc/gen_ndr/dcerpc.h" >+#include "source3/lib/substitute.h" > > static NTSTATUS auth3_generate_session_info_pac(struct auth4_context *auth_ctx, > TALLOC_CTX *mem_ctx, >diff --git a/source3/auth/auth_ntlmssp.c b/source3/auth/auth_ntlmssp.c >index 676aa9d892c4..f2deca09aa68 100644 >--- a/source3/auth/auth_ntlmssp.c >+++ b/source3/auth/auth_ntlmssp.c >@@ -25,6 +25,7 @@ > #include "auth.h" > #include "libcli/security/security.h" > #include "lib/util/tevent_ntstatus.h" >+#include "source3/lib/substitute.h" > > NTSTATUS auth3_generate_session_info(struct auth4_context *auth_context, > TALLOC_CTX *mem_ctx, >diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c >index dec854d85c34..4527dedc49d9 100644 >--- a/source3/auth/auth_util.c >+++ b/source3/auth/auth_util.c >@@ -38,6 +38,7 @@ > #include "rpc_client/util_netlogon.h" > #include "source4/auth/auth.h" > #include "auth/auth_util.h" >+#include "source3/lib/substitute.h" > > #undef DBGC_CLASS > #define DBGC_CLASS DBGC_AUTH >diff --git a/source3/include/proto.h b/source3/include/proto.h >index eb45179aebbb..a96c2c8d1102 100644 >--- a/source3/include/proto.h >+++ b/source3/include/proto.h >@@ -139,39 +139,6 @@ int smbrun_no_sanitize(const char *cmd, int *outfd, char * const *env); > int smbrun(const char *cmd, int *outfd, char * const *env); > int smbrunsecret(const char *cmd, const char *secret); > >-/* The following definitions come from lib/substitute.c */ >- >-bool set_local_machine_name(const char *local_name, bool perm); >-const char *get_local_machine_name(void); >-bool set_remote_machine_name(const char *remote_name, bool perm); >-const char *get_remote_machine_name(void); >-void sub_set_smb_name(const char *name); >-void set_current_user_info(const char *smb_name, const char *unix_name, >- const char *domain); >-void sub_set_socket_ids(const char *peeraddr, const char *peername, >- const char *sockaddr); >-const char *get_current_username(void); >-void standard_sub_basic(const char *smb_name, const char *domain_name, >- char *str, size_t len); >-char *talloc_sub_basic(TALLOC_CTX *mem_ctx, const char *smb_name, >- const char *domain_name, const char *str); >-char *talloc_sub_specified(TALLOC_CTX *mem_ctx, >- const char *input_string, >- const char *username, >- const char *grpname, >- const char *domain, >- uid_t uid, >- gid_t gid); >-char *talloc_sub_advanced(TALLOC_CTX *mem_ctx, >- const char *servicename, const char *user, >- const char *connectpath, gid_t gid, >- const char *str); >-char *talloc_sub_full(TALLOC_CTX *mem_ctx, >- const char *servicename, const char *user, >- const char *connectpath, gid_t gid, >- const char *smb_name, const char *domain_name, >- const char *str); >- > /* The following definitions come from lib/sysquotas.c */ > > int sys_get_quota(const char *path, enum SMB_QUOTA_TYPE qtype, unid_t id, SMB_DISK_QUOTA *dp); >diff --git a/source3/lib/substitute.c b/source3/lib/substitute.c >index b98a0acf1cbd..a941b89f82a6 100644 >--- a/source3/lib/substitute.c >+++ b/source3/lib/substitute.c >@@ -20,6 +20,7 @@ > > > #include "includes.h" >+#include "substitute.h" > #include "system/passwd.h" > #include "secrets.h" > #include "auth.h" >diff --git a/source3/lib/substitute.h b/source3/lib/substitute.h >new file mode 100644 >index 000000000000..2056d163dd7d >--- /dev/null >+++ b/source3/lib/substitute.h >@@ -0,0 +1,63 @@ >+/* >+ Unix SMB/CIFS implementation. >+ string substitution functions >+ Copyright (C) Andrew Tridgell 1992-2000 >+ Copyright (C) Gerald Carter 2006 >+ >+ This program is free software; you can redistribute it and/or modify >+ it under the terms of the GNU General Public License as published by >+ the Free Software Foundation; either version 3 of the License, or >+ (at your option) any later version. >+ >+ This program is distributed in the hope that it will be useful, >+ but WITHOUT ANY WARRANTY; without even the implied warranty of >+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+ GNU General Public License for more details. >+ >+ You should have received a copy of the GNU General Public License >+ along with this program. If not, see <http://www.gnu.org/licenses/>. >+*/ >+ >+#ifndef SUBSTITUTE_H >+#define SUBSTITUTE_H >+ >+bool set_local_machine_name(const char *local_name, bool perm); >+const char *get_local_machine_name(void); >+bool set_remote_machine_name(const char *remote_name, bool perm); >+const char *get_remote_machine_name(void); >+void sub_set_socket_ids(const char *peeraddr, const char *peername, >+ const char *sockaddr); >+void set_current_user_info(const char *smb_name, >+ const char *unix_name, >+ const char *domain); >+const char *get_current_username(void); >+void standard_sub_basic(const char *smb_name, >+ const char *domain_name, >+ char *str, >+ size_t len); >+char *talloc_sub_basic(TALLOC_CTX *mem_ctx, >+ const char *smb_name, >+ const char *domain_name, >+ const char *str); >+char *talloc_sub_specified(TALLOC_CTX *mem_ctx, >+ const char *input_string, >+ const char *username, >+ const char *grpname, >+ const char *domain, >+ uid_t uid, >+ gid_t gid); >+char *talloc_sub_advanced(TALLOC_CTX *ctx, >+ const char *servicename, >+ const char *user, >+ const char *connectpath, >+ gid_t gid, >+ const char *str); >+char *talloc_sub_full(TALLOC_CTX *ctx, >+ const char *servicename, >+ const char *user, >+ const char *connectpath, >+ gid_t gid, >+ const char *smb_name, >+ const char *domain_name, >+ const char *str); >+#endif >diff --git a/source3/modules/vfs_expand_msdfs.c b/source3/modules/vfs_expand_msdfs.c >index 34e7051dca5f..fe3c6f47462c 100644 >--- a/source3/modules/vfs_expand_msdfs.c >+++ b/source3/modules/vfs_expand_msdfs.c >@@ -25,6 +25,7 @@ > #include "auth.h" > #include "../lib/tsocket/tsocket.h" > #include "msdfs.h" >+#include "source3/lib/substitute.h" > > #undef DBGC_CLASS > #define DBGC_CLASS DBGC_VFS >diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c >index ceda99d4568a..c8dbc8c07bbc 100644 >--- a/source3/modules/vfs_full_audit.c >+++ b/source3/modules/vfs_full_audit.c >@@ -73,6 +73,7 @@ > #include "passdb/machine_sid.h" > #include "lib/util/tevent_ntstatus.h" > #include "lib/util/string_wrappers.h" >+#include "source3/lib/substitute.h" > > static int vfs_full_audit_debug_level = DBGC_VFS; > >diff --git a/source3/modules/vfs_recycle.c b/source3/modules/vfs_recycle.c >index 1c18f232c32f..7cbc938a57cd 100644 >--- a/source3/modules/vfs_recycle.c >+++ b/source3/modules/vfs_recycle.c >@@ -27,6 +27,7 @@ > #include "system/filesys.h" > #include "../librpc/gen_ndr/ndr_netlogon.h" > #include "auth.h" >+#include "source3/lib/substitute.h" > > #define ALLOC_CHECK(ptr, label) do { if ((ptr) == NULL) { DEBUG(0, ("recycle.bin: out of memory!\n")); errno = ENOMEM; goto label; } } while(0) > >diff --git a/source3/modules/vfs_unityed_media.c b/source3/modules/vfs_unityed_media.c >index 62a1456b9963..fbd4d968172a 100644 >--- a/source3/modules/vfs_unityed_media.c >+++ b/source3/modules/vfs_unityed_media.c >@@ -62,6 +62,7 @@ > #include "../lib/tsocket/tsocket.h" > #include "lib/util/smb_strtox.h" > #include <libgen.h> >+#include "source3/lib/substitute.h" > > #define UM_PARAM_TYPE_NAME "unityed_media" > >diff --git a/source3/modules/vfs_virusfilter_utils.c b/source3/modules/vfs_virusfilter_utils.c >index c7f8089ffc73..b8b44eb203b9 100644 >--- a/source3/modules/vfs_virusfilter_utils.c >+++ b/source3/modules/vfs_virusfilter_utils.c >@@ -25,6 +25,7 @@ struct iovec; > #include "lib/util/iov_buf.h" > #include <tevent.h> > #include "lib/tsocket/tsocket.h" >+#include "source3/lib/substitute.h" > > int virusfilter_debug_class = DBGC_VFS; > >diff --git a/source3/nmbd/nmbd.c b/source3/nmbd/nmbd.c >index 44121e9915ca..7470897587ea 100644 >--- a/source3/nmbd/nmbd.c >+++ b/source3/nmbd/nmbd.c >@@ -29,6 +29,7 @@ > #include "util_cluster.h" > #include "lib/gencache.h" > #include "lib/global_contexts.h" >+#include "source3/lib/substitute.h" > > int ClientNMB = -1; > int ClientDGRAM = -1; >diff --git a/source3/nmbd/nmbd_synclists.c b/source3/nmbd/nmbd_synclists.c >index a65cbb87e0e2..d291927fbc88 100644 >--- a/source3/nmbd/nmbd_synclists.c >+++ b/source3/nmbd/nmbd_synclists.c >@@ -33,6 +33,7 @@ > #include "libsmb/clirap.h" > #include "../libcli/smb/smbXcli_base.h" > #include "lib/util/string_wrappers.h" >+#include "source3/lib/substitute.h" > > struct sync_record { > struct sync_record *next, *prev; >diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c >index f54c08cc4a51..b56fd20e410c 100644 >--- a/source3/param/loadparm.c >+++ b/source3/param/loadparm.c >@@ -76,6 +76,7 @@ > #include "lib/crypto/gnutls_helpers.h" > #include "lib/util/string_wrappers.h" > #include "auth/credentials/credentials.h" >+#include "source3/lib/substitute.h" > > #ifdef HAVE_SYS_SYSCTL_H > #include <sys/sysctl.h> >diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c >index 068c5a5ea70c..863f260ea902 100644 >--- a/source3/passdb/passdb.c >+++ b/source3/passdb/passdb.c >@@ -33,6 +33,7 @@ > #include "auth/credentials/credentials.h" > #include "lib/param/param.h" > #include "lib/util/string_wrappers.h" >+#include "source3/lib/substitute.h" > > #undef DBGC_CLASS > #define DBGC_CLASS DBGC_PASSDB >diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c >index e6d8a84c60fa..93da28b19414 100644 >--- a/source3/passdb/pdb_ldap.c >+++ b/source3/passdb/pdb_ldap.c >@@ -56,6 +56,7 @@ > #include "lib/util_sid_passdb.h" > #include "lib/util/smb_strtox.h" > #include "lib/util/string_wrappers.h" >+#include "source3/lib/substitute.h" > > #undef DBGC_CLASS > #define DBGC_CLASS DBGC_PASSDB >diff --git a/source3/printing/print_generic.c b/source3/printing/print_generic.c >index 743c311bbd5f..8798a4cf34a3 100644 >--- a/source3/printing/print_generic.c >+++ b/source3/printing/print_generic.c >@@ -20,6 +20,7 @@ > #include "includes.h" > #include "printing.h" > #include "smbd/proto.h" >+#include "source3/lib/substitute.h" > > extern userdom_struct current_user_info; > >diff --git a/source3/printing/printing.c b/source3/printing/printing.c >index 499334df03f0..67d798fbb214 100644 >--- a/source3/printing/printing.c >+++ b/source3/printing/printing.c >@@ -40,6 +40,7 @@ > #include "lib/util/string_wrappers.h" > #include "lib/global_contexts.h" > #include "source3/printing/rap_jobid.h" >+#include "source3/lib/substitute.h" > > extern userdom_struct current_user_info; > >diff --git a/source3/rpc_server/lsa/srv_lsa_nt.c b/source3/rpc_server/lsa/srv_lsa_nt.c >index 36774be3e32c..81d4129224d3 100644 >--- a/source3/rpc_server/lsa/srv_lsa_nt.c >+++ b/source3/rpc_server/lsa/srv_lsa_nt.c >@@ -53,6 +53,7 @@ > #include "librpc/rpc/dcesrv_core.h" > #include "librpc/rpc/dcerpc_helper.h" > #include "lib/param/loadparm.h" >+#include "source3/lib/substitute.h" > > #include "lib/crypto/gnutls_helpers.h" > #include <gnutls/gnutls.h> >diff --git a/source3/rpc_server/netlogon/srv_netlog_nt.c b/source3/rpc_server/netlogon/srv_netlog_nt.c >index eaacd8dbc6ab..2906fa3f30f9 100644 >--- a/source3/rpc_server/netlogon/srv_netlog_nt.c >+++ b/source3/rpc_server/netlogon/srv_netlog_nt.c >@@ -49,6 +49,7 @@ > #include "lib/param/param.h" > #include "libsmb/dsgetdcname.h" > #include "lib/util/util_str_escape.h" >+#include "source3/lib/substitute.h" > > extern userdom_struct current_user_info; > >diff --git a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c >index 8576e9d2ce24..fc27a459634b 100644 >--- a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c >+++ b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c >@@ -42,6 +42,7 @@ > #include "messages.h" > #include "serverid.h" > #include "lib/global_contexts.h" >+#include "source3/lib/substitute.h" > > extern const struct generic_mapping file_generic_mapping; > >diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c >index f1c8ea0c2ed4..cf3b7c91c221 100644 >--- a/source3/smbd/ipc.c >+++ b/source3/smbd/ipc.c >@@ -29,6 +29,7 @@ > #include "smbd/globals.h" > #include "smbprofile.h" > #include "rpc_server/srv_pipe_hnd.h" >+#include "source3/lib/substitute.h" > > #define NERR_notsupported 50 > >diff --git a/source3/smbd/lanman.c b/source3/smbd/lanman.c >index 9194113e7686..eb8148753b90 100644 >--- a/source3/smbd/lanman.c >+++ b/source3/smbd/lanman.c >@@ -45,6 +45,7 @@ > #include "rpc_server/rpc_ncacn_np.h" > #include "lib/util/string_wrappers.h" > #include "source3/printing/rap_jobid.h" >+#include "source3/lib/substitute.h" > > #ifdef CHECK_TYPES > #undef CHECK_TYPES >diff --git a/source3/smbd/message.c b/source3/smbd/message.c >index b97289468893..7185bec1289e 100644 >--- a/source3/smbd/message.c >+++ b/source3/smbd/message.c >@@ -27,6 +27,7 @@ > #include "smbd/smbd.h" > #include "smbd/globals.h" > #include "smbprofile.h" >+#include "source3/lib/substitute.h" > > extern userdom_struct current_user_info; > >diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c >index 995ed815d908..fd002e98071e 100644 >--- a/source3/smbd/msdfs.c >+++ b/source3/smbd/msdfs.c >@@ -34,6 +34,7 @@ > #include "librpc/gen_ndr/ndr_dfsblobs.h" > #include "lib/tsocket/tsocket.h" > #include "lib/global_contexts.h" >+#include "source3/lib/substitute.h" > > /********************************************************************** > Parse a DFS pathname of the form \hostname\service\reqpath >diff --git a/source3/smbd/process.c b/source3/smbd/process.c >index 03409742752d..5015c143a042 100644 >--- a/source3/smbd/process.c >+++ b/source3/smbd/process.c >@@ -46,6 +46,7 @@ > #include "libcli/smb/smbXcli_base.h" > #include "lib/util/time_basic.h" > #include "smb1_utils.h" >+#include "source3/lib/substitute.h" > > /* Internal message queue for deferred opens. */ > struct pending_message_list { >diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c >index 042e7f2329eb..f85d1122a076 100644 >--- a/source3/smbd/reply.c >+++ b/source3/smbd/reply.c >@@ -50,6 +50,7 @@ > #include "libcli/smb/smb2_posix.h" > #include "lib/util/string_wrappers.h" > #include "source3/printing/rap_jobid.h" >+#include "source3/lib/substitute.h" > > /**************************************************************************** > Ensure we check the path in *exactly* the same way as W2K for a findfirst/findnext >diff --git a/source3/smbd/server.c b/source3/smbd/server.c >index d7f5b4b73c0f..d02ff1bd8834 100644 >--- a/source3/smbd/server.c >+++ b/source3/smbd/server.c >@@ -60,6 +60,7 @@ > #include "rpc_server/fssd.h" > #include "rpc_server/mdssd.h" > #include "lib/global_contexts.h" >+#include "source3/lib/substitute.h" > > #ifdef CLUSTER_SUPPORT > #include "ctdb_protocol.h" >diff --git a/source3/smbd/service.c b/source3/smbd/service.c >index afdea38b0161..ef7c14d92d0e 100644 >--- a/source3/smbd/service.c >+++ b/source3/smbd/service.c >@@ -34,6 +34,7 @@ > #include "lib/afs/afs_funcs.h" > #include "lib/util_path.h" > #include "lib/util/string_wrappers.h" >+#include "source3/lib/substitute.h" > > bool canonicalize_connect_path(connection_struct *conn) > { >diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c >index 2bd527ce80e4..1705b8920b6c 100644 >--- a/source3/smbd/sesssetup.c >+++ b/source3/smbd/sesssetup.c >@@ -34,6 +34,7 @@ > #include "auth/gensec/gensec.h" > #include "../libcli/smb/smb_signing.h" > #include "lib/util/string_wrappers.h" >+#include "source3/lib/substitute.h" > > /**************************************************************************** > Add the standard 'Samba' signature to the end of the session setup. >diff --git a/source3/smbd/share_access.c b/source3/smbd/share_access.c >index debe4fc6385c..c44c4bd8c694 100644 >--- a/source3/smbd/share_access.c >+++ b/source3/smbd/share_access.c >@@ -23,6 +23,7 @@ > #include "../libcli/security/security.h" > #include "passdb/lookup_sid.h" > #include "auth.h" >+#include "source3/lib/substitute.h" > > /* > * We dropped NIS support in 2021, but need to keep configs working. >diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c >index f359db0729d8..f6b376e5a07a 100644 >--- a/source3/smbd/smb2_server.c >+++ b/source3/smbd/smb2_server.c >@@ -33,6 +33,7 @@ > #include "lib/util/iov_buf.h" > #include "auth.h" > #include "libcli/smb/smbXcli_base.h" >+#include "source3/lib/substitute.h" > > #if defined(LINUX) > /* SIOCOUTQ TIOCOUTQ are the same */ >diff --git a/source3/smbd/smb2_sesssetup.c b/source3/smbd/smb2_sesssetup.c >index 38049e8535f2..14b806bc007d 100644 >--- a/source3/smbd/smb2_sesssetup.c >+++ b/source3/smbd/smb2_sesssetup.c >@@ -28,6 +28,7 @@ > #include "../lib/tsocket/tsocket.h" > #include "../libcli/security/security.h" > #include "../lib/util/tevent_ntstatus.h" >+#include "source3/lib/substitute.h" > > #include "lib/crypto/gnutls_helpers.h" > #include <gnutls/gnutls.h> >diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c >index cd6b61429c54..a86ac3228e35 100644 >--- a/source3/smbd/trans2.c >+++ b/source3/smbd/trans2.c >@@ -45,6 +45,7 @@ > #include "smb1_utils.h" > #include "libcli/smb/smb2_posix.h" > #include "lib/util/string_wrappers.h" >+#include "source3/lib/substitute.h" > > #define DIR_ENTRY_SAFETY_MARGIN 4096 > >diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c >index b0d7f21c200f..52918c4f1819 100644 >--- a/source3/smbd/uid.c >+++ b/source3/smbd/uid.c >@@ -26,6 +26,7 @@ > #include "passdb/lookup_sid.h" > #include "auth.h" > #include "../auth/auth_util.h" >+#include "source3/lib/substitute.h" > > /* what user is current? */ > extern struct current_user current_user; >diff --git a/source3/torture/torture.c b/source3/torture/torture.c >index 79a9c65073c9..d3e0e3cf095b 100644 >--- a/source3/torture/torture.c >+++ b/source3/torture/torture.c >@@ -51,6 +51,7 @@ > #include "lib/param/param.h" > #include "auth/gensec/gensec.h" > #include "lib/util/string_wrappers.h" >+#include "source3/lib/substitute.h" > > #include <gnutls/gnutls.h> > #include <gnutls/crypto.h> >diff --git a/source3/utils/net_sam.c b/source3/utils/net_sam.c >index 6a2c6c861f9e..17cc47b2ddd1 100644 >--- a/source3/utils/net_sam.c >+++ b/source3/utils/net_sam.c >@@ -33,6 +33,7 @@ > #include "idmap.h" > #include "lib/util/smb_strtox.h" > #include "lib/util/string_wrappers.h" >+#include "source3/lib/substitute.h" > > /* > * Set a user's data >diff --git a/source3/winbindd/wb_getpwsid.c b/source3/winbindd/wb_getpwsid.c >index fb0351ec2010..7f168bdda7a5 100644 >--- a/source3/winbindd/wb_getpwsid.c >+++ b/source3/winbindd/wb_getpwsid.c >@@ -22,6 +22,7 @@ > #include "librpc/gen_ndr/ndr_winbind_c.h" > #include "../libcli/security/security.h" > #include "lib/util/string_wrappers.h" >+#include "source3/lib/substitute.h" > > struct wb_getpwsid_state { > struct tevent_context *ev; >diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c >index 25d8b7230101..290454619a4f 100644 >--- a/source3/winbindd/winbindd.c >+++ b/source3/winbindd/winbindd.c >@@ -51,6 +51,7 @@ > #include "lib/gencache.h" > #include "rpc_server/rpc_config.h" > #include "lib/global_contexts.h" >+#include "source3/lib/substitute.h" > > #undef DBGC_CLASS > #define DBGC_CLASS DBGC_WINBIND >-- >2.33.1 > > >From 5fe62833469385a7234362deaf056f9117942659 Mon Sep 17 00:00:00 2001 >From: Ralph Boehme <slow@samba.org> >Date: Thu, 11 Nov 2021 05:23:09 +0100 >Subject: [PATCH 2/8] samba-bgqd: fix startup and logging > >Let samba-bgqd use the new POPT_COMMON_DAEMON infrastructure. > >The calls to setup_logging() can safely be removed as this is already taken care >of by samba_cmdline_init(). > >To avoid a logfile basename of ".log" when using "%m", we add a call to >set_remote_machine_name(). > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=14897 > >Signed-off-by: Ralph Boehme <slow@samba.org> >Reviewed-by: Andreas Schneider <asn@samba.org> >(cherry picked from commit 54f54fc2627acbf5fac5e1fa86ab9f743741f3c4) >--- > source3/printing/samba-bgqd.c | 35 ++++++++++------------------------- > 1 file changed, 10 insertions(+), 25 deletions(-) > >diff --git a/source3/printing/samba-bgqd.c b/source3/printing/samba-bgqd.c >index 8ac6ec525b26..2cd6a8e007ac 100644 >--- a/source3/printing/samba-bgqd.c >+++ b/source3/printing/samba-bgqd.c >@@ -40,6 +40,7 @@ > #include "source3/lib/util_procid.h" > #include "source3/auth/proto.h" > #include "source3/printing/queue_process.h" >+#include "source3/lib/substitute.h" > > static void watch_handler(struct tevent_req *req) > { >@@ -235,6 +236,7 @@ static int closeall_except_fd_params( > > int main(int argc, const char *argv[]) > { >+ struct samba_cmdline_daemon_cfg *cmdline_daemon_cfg = NULL; > const struct loadparm_substitution *lp_sub = > loadparm_s3_global_substitution(); > const char *progname = getprogname(); >@@ -245,8 +247,6 @@ int main(int argc, const char *argv[]) > struct tevent_req *watch_req = NULL; > struct tevent_signal *sigterm_handler = NULL; > struct bq_state *bq = NULL; >- int foreground = 0; >- int no_process_group = 0; > int log_stdout = 0; > int ready_signal_fd = -1; > int watch_fd = -1; >@@ -259,21 +259,7 @@ int main(int argc, const char *argv[]) > struct poptOption long_options[] = { > POPT_AUTOHELP > POPT_COMMON_SAMBA >- { >- .longName = "foreground", >- .shortName = 'F', >- .argInfo = POPT_ARG_NONE, >- .arg = &foreground, >- .descrip = "Run daemon in foreground " >- "(for daemontools, etc.)", >- }, >- { >- .longName = "no-process-group", >- .shortName = '\0', >- .argInfo = POPT_ARG_NONE, >- .arg = &no_process_group, >- .descrip = "Don't create a new process group" , >- }, >+ POPT_COMMON_DAEMON > > /* > * File descriptor to write the PID of the helper >@@ -311,6 +297,7 @@ int main(int argc, const char *argv[]) > frame = talloc_stackframe(); > > umask(0); >+ set_remote_machine_name("smbd-bgqd", true); > > ok = samba_cmdline_init(frame, > SAMBA_CMDLINE_CONFIG_SERVER, >@@ -320,6 +307,8 @@ int main(int argc, const char *argv[]) > exit(ENOMEM); > } > >+ cmdline_daemon_cfg = samba_cmdline_get_daemon_cfg(); >+ > pc = samba_popt_get_context(progname, > argc, > argv, >@@ -340,16 +329,12 @@ int main(int argc, const char *argv[]) > > log_stdout = (debug_get_log_type() == DEBUG_STDOUT); > >- if (foreground) { >+ if (!cmdline_daemon_cfg->fork) { > daemon_status(progname, "Starting process ... "); > } else { >- become_daemon(true, no_process_group, log_stdout); >- } >- >- if (log_stdout) { >- setup_logging(progname, DEBUG_STDOUT); >- } else { >- setup_logging(progname, DEBUG_FILE); >+ become_daemon(true, >+ cmdline_daemon_cfg->no_process_group, >+ log_stdout); > } > > BlockSignals(true, SIGPIPE); >-- >2.33.1 > > >From 732c15981edd6393d3860b65715e188ed6f403fb Mon Sep 17 00:00:00 2001 >From: Ralph Boehme <slow@samba.org> >Date: Wed, 10 Nov 2021 18:27:08 +0100 >Subject: [PATCH 3/8] winbindd: remove is_default_dyn_LOGFILEBASE() logic > >Handling of -l commandline parameter is already implemented by lib/cmdline/. > >is_default_dyn_LOGFILEBASE() == true is the default case and this causes us to >temporarily overwrite the configured logfile with LOGFILEBASE/log.winbindd until >winbindd_reload_services_file() restores it. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=14897 > >Signed-off-by: Ralph Boehme <slow@samba.org> >Reviewed-by: Andreas Schneider <asn@samba.org> >(cherry picked from commit 117d45df47a1f3206bc38aaeaa11f2b327e43530) >--- > source3/winbindd/winbindd.c | 9 --------- > 1 file changed, 9 deletions(-) > >diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c >index 290454619a4f..58c5ffbced47 100644 >--- a/source3/winbindd/winbindd.c >+++ b/source3/winbindd/winbindd.c >@@ -1717,15 +1717,6 @@ int main(int argc, const char **argv) > > poptFreeContext(pc); > >- if (is_default_dyn_LOGFILEBASE()) { >- char *lfile = NULL; >- if (asprintf(&lfile,"%s/log.winbindd", >- get_dyn_LOGFILEBASE()) > 0) { >- lp_set_logfile(lfile); >- SAFE_FREE(lfile); >- } >- } >- > reopen_logs(); > > DEBUG(0,("winbindd version %s started.\n", samba_version_string())); >-- >2.33.1 > > >From cc96aa2c698a2bff0504a497ae7d7c85fe121645 Mon Sep 17 00:00:00 2001 >From: Ralph Boehme <slow@samba.org> >Date: Wed, 10 Nov 2021 14:13:11 +0100 >Subject: [PATCH 4/8] lib/debug: fix fd check before dup'ing to stderr > >Before I added per-class logfile and we had only one fd for the logfile the code >looked like this: > > /* Take over stderr to catch output into logs */ > if (state.fd > 0) { > if (dup2(state.fd, 2) == -1) { > /* Close stderr too, if dup2 can't point it - > at the logfile. There really isn't much > that can be done on such a fundamental > failure... */ > close_low_fd(2); > } > } > >In the current code the equivalent to state.fd is dbgc_config[DBGC_ALL].fd. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=14897 > >Signed-off-by: Ralph Boehme <slow@samba.org> >Reviewed-by: Andreas Schneider <asn@samba.org> >(cherry picked from commit 948a82bd2651e73e4e669a89dc77ba93abbb9b2f) >--- > lib/util/debug.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > >diff --git a/lib/util/debug.c b/lib/util/debug.c >index 4fd176792273..b271608621ae 100644 >--- a/lib/util/debug.c >+++ b/lib/util/debug.c >@@ -1125,7 +1125,6 @@ bool reopen_logs_internal(void) > { > struct debug_backend *b = NULL; > mode_t oldumask; >- int new_fd = 0; > size_t i; > bool ok; > >@@ -1190,7 +1189,7 @@ bool reopen_logs_internal(void) > * If log file was opened or created successfully, take over stderr to > * catch output into logs. > */ >- if (new_fd != -1) { >+ if (dbgc_config[DBGC_ALL].fd > 0) { > if (dup2(dbgc_config[DBGC_ALL].fd, 2) == -1) { > /* Close stderr too, if dup2 can't point it - > at the logfile. There really isn't much >-- >2.33.1 > > >From 85a843fb4f02e09cf6222e7851376c5071d78689 Mon Sep 17 00:00:00 2001 >From: Ralph Boehme <slow@samba.org> >Date: Mon, 8 Nov 2021 19:41:50 +0100 >Subject: [PATCH 5/8] lib/debug: in debug_set_logfile() call > reopen_logs_internal() > >This simplifies the logging API for callers that typically would want to set >logging by just setup_logging() once without bothering that typically >configuration is loaded (via some lpcfg_load*() or lp_load*() varient) which >will only then pick up the configured logfile from smb.conf without actually >applying the new logifle to the logging subsytem. > >Therefor our daemons will additionally call reopen_logs() explicitly in their >startup code after config is loaded, eg > > setup_logging(getprogname(), DEBUG_FILE); > ... > lpcfg_load(lp_ctx, config_file); > ... > reopen_logs(); > >By calling reopen_logs_internal() implicitly from debug_set_logfile() there's no >need to call reopen_logs() explicitly anymore to apply the logfile. > >As reopen_logs() will also apply other logging configuration options, we have to >keep the explicit calls in the daemon code. But at least this allows consistent >logging setup wrt to the logfile in the new cmdline library. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=14897 > >Signed-off-by: Ralph Boehme <slow@samba.org> >Reviewed-by: Andreas Schneider <asn@samba.org> >(cherry picked from commit fa9d9974d068897d35539e5316f606a15e8b38de) >--- > lib/util/debug.c | 2 ++ > 1 file changed, 2 insertions(+) > >diff --git a/lib/util/debug.c b/lib/util/debug.c >index b271608621ae..171b5e150088 100644 >--- a/lib/util/debug.c >+++ b/lib/util/debug.c >@@ -1018,6 +1018,8 @@ void debug_set_logfile(const char *name) > } > TALLOC_FREE(dbgc_config[DBGC_ALL].logfile); > dbgc_config[DBGC_ALL].logfile = talloc_strdup(NULL, name); >+ >+ reopen_logs_internal(); > } > > static void debug_close_fd(int fd) >-- >2.33.1 > > >From c30fab12c606ee862dc0e6ee5dd887960636f702 Mon Sep 17 00:00:00 2001 >From: Ralph Boehme <slow@samba.org> >Date: Mon, 8 Nov 2021 12:08:47 +0100 >Subject: [PATCH 6/8] lib/cmdline: fix indentation > >s/whitespace/tab/ > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=14897 > >Signed-off-by: Ralph Boehme <slow@samba.org> >Reviewed-by: Andreas Schneider <asn@samba.org> >(cherry picked from commit 120a598e53173aacc0994318223bdac33dac4fbd) >--- > lib/cmdline/cmdline_s3.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/lib/cmdline/cmdline_s3.c b/lib/cmdline/cmdline_s3.c >index 1f8d9ed5eb50..639d403aed3a 100644 >--- a/lib/cmdline/cmdline_s3.c >+++ b/lib/cmdline/cmdline_s3.c >@@ -55,7 +55,7 @@ static bool _samba_cmdline_load_config_s3(void) > case SAMBA_CMDLINE_CONFIG_CLIENT: > ok = lp_load_client(config_file); > break; >- case SAMBA_CMDLINE_CONFIG_SERVER: >+ case SAMBA_CMDLINE_CONFIG_SERVER: > { > const struct samba_cmdline_daemon_cfg *cmdline_daemon_cfg = > samba_cmdline_get_daemon_cfg(); >-- >2.33.1 > > >From 8be9f23a8b289fa244f503ecb33940dde77fb394 Mon Sep 17 00:00:00 2001 >From: Ralph Boehme <slow@samba.org> >Date: Mon, 8 Nov 2021 12:09:16 +0100 >Subject: [PATCH 7/8] lib/cmdline: remember config_type in samba_cmdline_init() > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=14897 > >Signed-off-by: Ralph Boehme <slow@samba.org> >Reviewed-by: Andreas Schneider <asn@samba.org> >(cherry picked from commit 97592f16bfb8590efbd2ed31fc9883d747ec650f) >--- > lib/cmdline/cmdline_s4.c | 2 ++ > 1 file changed, 2 insertions(+) > >diff --git a/lib/cmdline/cmdline_s4.c b/lib/cmdline/cmdline_s4.c >index 61c1b96ba8d6..6ef6f59db498 100644 >--- a/lib/cmdline/cmdline_s4.c >+++ b/lib/cmdline/cmdline_s4.c >@@ -25,6 +25,7 @@ > #include "cmdline_private.h" > > static bool _require_smbconf; >+static enum samba_cmdline_config_type _config_type; > > static bool _samba_cmdline_load_config_s4(void) > { >@@ -81,6 +82,7 @@ bool samba_cmdline_init(TALLOC_CTX *mem_ctx, > return false; > } > _require_smbconf = require_smbconf; >+ _config_type = config_type; > > creds = cli_credentials_init(mem_ctx); > if (creds == NULL) { >-- >2.33.1 > > >From d0ab3b74dba8541c033b0ba48e098f3dc20eba71 Mon Sep 17 00:00:00 2001 >From: Ralph Boehme <slow@samba.org> >Date: Mon, 8 Nov 2021 12:09:43 +0100 >Subject: [PATCH 8/8] lib/cmdline: setup default file logging for servers >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=14897 >RN: samba process doesn't log to logfile > >Signed-off-by: Ralph Boehme <slow@samba.org> >Reviewed-by: Andreas Schneider <asn@samba.org> > >Autobuild-User(master): Ralph Böhme <slow@samba.org> >Autobuild-Date(master): Thu Nov 11 14:42:13 UTC 2021 on sn-devel-184 > >(cherry picked from commit 06ed4ccba6cfe08aef061866f98b1d1da26682b8) >--- > lib/cmdline/cmdline_s4.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > >diff --git a/lib/cmdline/cmdline_s4.c b/lib/cmdline/cmdline_s4.c >index 6ef6f59db498..29e9f34bbe24 100644 >--- a/lib/cmdline/cmdline_s4.c >+++ b/lib/cmdline/cmdline_s4.c >@@ -44,6 +44,20 @@ static bool _samba_cmdline_load_config_s4(void) > } > } > >+ switch (_config_type) { >+ case SAMBA_CMDLINE_CONFIG_SERVER: { >+ const struct samba_cmdline_daemon_cfg *cmdline_daemon_cfg = >+ samba_cmdline_get_daemon_cfg(); >+ >+ if (!cmdline_daemon_cfg->interactive) { >+ setup_logging(getprogname(), DEBUG_FILE); >+ } >+ break; >+ } >+ default: >+ break; >+ } >+ > config_file = get_dyn_CONFIGFILE(); > ok = lpcfg_load(lp_ctx, config_file); > if (!ok) { >-- >2.33.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
asn
:
review+
Actions:
View
Attachments on
bug 14897
: 16994