diff options
Diffstat (limited to 'source3/smbd/password.c')
-rw-r--r-- | source3/smbd/password.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/source3/smbd/password.c b/source3/smbd/password.c index 36e3fb4738..10c6aadb1f 100644 --- a/source3/smbd/password.c +++ b/source3/smbd/password.c @@ -250,17 +250,21 @@ int register_vuid(auth_serversupplied_info *server_info, DATA_BLOB session_key, return -1; } - /* Register a home dir service for this user */ - if ((!vuser->guest) && vuser->unix_homedir && *(vuser->unix_homedir)) { - DEBUG(3, ("Adding/updating homes service for user '%s' using home directory: '%s'\n", - vuser->user.unix_name, vuser->unix_homedir)); + /* Register a home dir service for this user iff + (a) This is not a guest connection, + (b) we have a home directory defined, and + (c) there s not an existing static share by that name */ + + if ( (!vuser->guest) + && vuser->unix_homedir + && *(vuser->unix_homedir) + && (lp_servicenumber(vuser->user.unix_name) == -1) ) + { + DEBUG(3, ("Adding/updating homes service for user '%s' using home directory: '%s'\n", + vuser->user.unix_name, vuser->unix_homedir)); - /* only add the home directory if there doesn't exist a static share by that name */ - if ( lp_servicenumber(vuser->user.unix_name) == -1 ) { vuser->homes_snum = add_home_service(vuser->user.unix_name, vuser->user.unix_name, vuser->unix_homedir); - } - } else { vuser->homes_snum = -1; } |