summaryrefslogtreecommitdiff
path: root/net/samba3/files/patch-jerry-homes-reuse_v2
diff options
context:
space:
mode:
Diffstat (limited to 'net/samba3/files/patch-jerry-homes-reuse_v2')
-rw-r--r--net/samba3/files/patch-jerry-homes-reuse_v269
1 files changed, 69 insertions, 0 deletions
diff --git a/net/samba3/files/patch-jerry-homes-reuse_v2 b/net/samba3/files/patch-jerry-homes-reuse_v2
new file mode 100644
index 000000000000..e8d39b60b4d7
--- /dev/null
+++ b/net/samba3/files/patch-jerry-homes-reuse_v2
@@ -0,0 +1,69 @@
+Index: smbd/password.c
+===================================================================
+--- smbd/password.c (revision 2069)
++++ smbd/password.c (working copy)
+@@ -252,27 +252,30 @@
+ }
+
+ /* Register a home dir service for this user iff
++
+ (a) This is not a guest connection,
+ (b) we have a home directory defined
+- If a share exists by this name (autoloaded or not) reuse it so
+- long as the home directory is the same as the share directory. */
++ (c) there s not an existing static share by that name
++
++ If a share exists by this name (autoloaded or not) reuse it . */
+
+- if ( (!vuser->guest) && vuser->unix_homedir && *(vuser->unix_homedir)) {
++ vuser->homes_snum = -1;
++
++ if ( (!vuser->guest) && vuser->unix_homedir && *(vuser->unix_homedir))
++ {
+ int servicenumber = lp_servicenumber(vuser->user.unix_name);
++
+ if ( servicenumber == -1 ) {
+ DEBUG(3, ("Adding homes service for user '%s' using home directory: '%s'\n",
+ vuser->user.unix_name, vuser->unix_homedir));
+ vuser->homes_snum = add_home_service(vuser->user.unix_name,
+ vuser->user.unix_name, vuser->unix_homedir);
+- } else if (strcmp(lp_pathname(servicenumber),vuser->unix_homedir) == 0) {
+- DEBUG(3, ("Reusing homes service for user '%s' using home directory: '%s'\n",
+- vuser->user.unix_name, vuser->unix_homedir));
+-
++ } else {
++ DEBUG(3, ("Using static (or previously created) service for user '%s'; path = '%s'\n",
++ vuser->user.unix_name, lp_pathname(servicenumber) ));
+ vuser->homes_snum = servicenumber;
+ }
+- } else {
+- vuser->homes_snum = -1;
+- }
++ }
+
+ if (srv_is_signing_negotiated() && !vuser->guest && !srv_signing_started()) {
+ /* Try and turn on server signing on the first non-guest sessionsetup. */
+Index: param/loadparm.c
+===================================================================
+--- param/loadparm.c (revision 2069)
++++ param/loadparm.c (working copy)
+@@ -2305,6 +2305,10 @@
+ copy_service(ServicePtrs[i], &tservice, NULL);
+ if (name)
+ string_set(&ServicePtrs[i]->szService, name);
++
++ DEBUG(8,("add_a_service: Creating snum = %d for %s\n",
++ i, ServicePtrs[i]->szService));
++
+ return (i);
+ }
+
+@@ -2344,7 +2348,7 @@
+ ServicePtrs[i]->autoloaded = True;
+
+ DEBUG(3, ("adding home's share [%s] for user '%s' at '%s'\n", pszHomename,
+- user, newHomedir));
++ user, ServicePtrs[i]->szPath ));
+
+ return (True);
+ }