The Samba-Bugzilla – Attachment 4147 Details for
Bug 6320
Changing global share default options in registry require smbd restart
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch for 3.3.4+
config_source.patch (text/plain), 3.35 KB, created by
Michael Adam
on 2009-05-12 15:47:13 UTC
(
hide
)
Description:
patch for 3.3.4+
Filename:
MIME Type:
Creator:
Michael Adam
Created:
2009-05-12 15:47:13 UTC
Size:
3.35 KB
patch
obsolete
>From 65c0d86d18cb9b71d21c5018e8a6e50fde487d1e Mon Sep 17 00:00:00 2001 >From: Michael Adam <obnox@samba.org> >Date: Wed, 6 May 2009 02:08:33 +0200 >Subject: [PATCH] s3:loadparm: handle registry config source in file_list - fixes bug #6320 > >I.e. does not require smbd restart after changing share default options >in the global registry section with "include = registry". > >Michael >--- > source/param/loadparm.c | 78 ++++++++++++++++++++++++++-------------------- > 1 files changed, 44 insertions(+), 34 deletions(-) > >diff --git a/source/param/loadparm.c b/source/param/loadparm.c >index c7b06a4..3908aef 100644 >--- a/source/param/loadparm.c >+++ b/source/param/loadparm.c >@@ -670,6 +670,8 @@ static void set_server_role(void); > static void set_default_server_announce_type(void); > static void set_allowed_client_auth(void); > >+static void add_to_file_list(const char *fname, const char *subfname); >+ > static const struct enum_list enum_protocol[] = { > {PROTOCOL_NT1, "NT1"}, > {PROTOCOL_LANMAN2, "LANMAN2"}, >@@ -6606,6 +6608,8 @@ static bool process_registry_globals(void) > goto done; > } > >+ add_to_file_list(INCLUDE_REGISTRY_NAME, INCLUDE_REGISTRY_NAME); >+ > ret = do_parameter("registry shares", "yes", NULL); > if (!ret) { > goto done; >@@ -6751,45 +6755,51 @@ bool lp_file_list_changed(void) > > DEBUG(6, ("lp_file_list_changed()\n")); > >- if (lp_config_backend_is_registry()) { >- struct smbconf_ctx *conf_ctx = lp_smbconf_ctx(); >- >- if (conf_ctx == NULL) { >- return false; >- } >- if (smbconf_changed(conf_ctx, &conf_last_csn, NULL, NULL)) { >- DEBUGADD(6, ("registry config changed\n")); >- return true; >- } >- } >- > while (f) { > char *n2 = NULL; > time_t mod_time; > >- n2 = alloc_sub_basic(get_current_username(), >- current_user_info.domain, >- f->name); >- if (!n2) { >- return false; >- } >- DEBUGADD(6, ("file %s -> %s last mod_time: %s\n", >- f->name, n2, ctime(&f->modtime))); >- >- mod_time = file_modtime(n2); >- >- if (mod_time && ((f->modtime != mod_time) || (f->subfname == NULL) || (strcmp(n2, f->subfname) != 0))) { >- DEBUGADD(6, >- ("file %s modified: %s\n", n2, >- ctime(&mod_time))); >- f->modtime = mod_time; >- SAFE_FREE(f->subfname); >- f->subfname = n2; /* Passing ownership of >- return from alloc_sub_basic >- above. */ >- return true; >+ if (strequal(f->name, INCLUDE_REGISTRY_NAME)) { >+ struct smbconf_ctx *conf_ctx = lp_smbconf_ctx(); >+ >+ if (conf_ctx == NULL) { >+ return false; >+ } >+ if (smbconf_changed(conf_ctx, &conf_last_csn, NULL, >+ NULL)) >+ { >+ DEBUGADD(6, ("registry config changed\n")); >+ return true; >+ } >+ } else { >+ n2 = alloc_sub_basic(get_current_username(), >+ current_user_info.domain, >+ f->name); >+ if (!n2) { >+ return false; >+ } >+ DEBUGADD(6, ("file %s -> %s last mod_time: %s\n", >+ f->name, n2, ctime(&f->modtime))); >+ >+ mod_time = file_modtime(n2); >+ >+ if (mod_time && >+ ((f->modtime != mod_time) || >+ (f->subfname == NULL) || >+ (strcmp(n2, f->subfname) != 0))) >+ { >+ DEBUGADD(6, >+ ("file %s modified: %s\n", n2, >+ ctime(&mod_time))); >+ f->modtime = mod_time; >+ SAFE_FREE(f->subfname); >+ f->subfname = n2; /* Passing ownership of >+ return from alloc_sub_basic >+ above. */ >+ return true; >+ } >+ SAFE_FREE(n2); > } >- SAFE_FREE(n2); > f = f->next; > } > return (False); >-- >1.6.0.2 >
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
Actions:
View
Attachments on
bug 6320
: 4147