diff options
Diffstat (limited to 'net/samba3/files/patch-jerry-homes-reuse_v2')
-rw-r--r-- | net/samba3/files/patch-jerry-homes-reuse_v2 | 69 |
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); + } |