diff options
author | Samba Release Account <samba-bugs@samba.org> | 1997-02-23 05:18:09 +0000 |
---|---|---|
committer | Samba Release Account <samba-bugs@samba.org> | 1997-02-23 05:18:09 +0000 |
commit | df42b0a7bcdaae96035ecb1d434a66735358fd95 (patch) | |
tree | a7d6b0e651b294a385b7524484beb54828bdf018 /source3/smbd/server.c | |
parent | f71717efd03611459b90b6939f53410ebbacc303 (diff) | |
download | samba-df42b0a7bcdaae96035ecb1d434a66735358fd95.tar.gz samba-df42b0a7bcdaae96035ecb1d434a66735358fd95.tar.bz2 samba-df42b0a7bcdaae96035ecb1d434a66735358fd95.zip |
Makefile: Added cleandir target.
chgpasswd.c: Added patch from Roland Haag <haag@think.de> to allow
password changes to be done more than once.
loadparm.c: Added entries for the "directory mode/directory mask parameters".
Changed default file mode to 644.
proto.h: Added sys_gethostbyname.
server.c: Added directory mode changes.
system.c: Added sys_gethostbyname.
trans2.c: Added NT_FILE_ATTRIBUTE_NORMAL patch from Roger Orr
<rorr@csfp.csfb.com>
trans2.h: Defined NT_FILE_ATTRIBUTE_NORMAL for above patch.
util.c: Changes calls to gethostbyname to sys_gethostbyname.
jra@cygnus.com
(This used to be commit d8d8a7ee00971fca7a8d079bfb547af107df35a4)
Diffstat (limited to 'source3/smbd/server.c')
-rw-r--r-- | source3/smbd/server.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 4f3ee0fd0b..09c8fccb5c 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -130,19 +130,21 @@ mode_t unix_mode(int cnum,int dosmode) if ( !IS_DOS_READONLY(dosmode) ) result |= (S_IWUSR | S_IWGRP | S_IWOTH); - if (IS_DOS_DIR(dosmode)) + if (IS_DOS_DIR(dosmode)) { result |= (S_IFDIR | S_IXUSR | S_IXGRP | S_IXOTH | S_IWUSR); - - if (MAP_ARCHIVE(cnum) && IS_DOS_ARCHIVE(dosmode)) - result |= S_IXUSR; + result &= (lp_dir_mode(SNUM(cnum)) | 0700); + } else { + if (MAP_ARCHIVE(cnum) && IS_DOS_ARCHIVE(dosmode)) + result |= S_IXUSR; - if (MAP_SYSTEM(cnum) && IS_DOS_SYSTEM(dosmode)) - result |= S_IXGRP; + if (MAP_SYSTEM(cnum) && IS_DOS_SYSTEM(dosmode)) + result |= S_IXGRP; - if (MAP_HIDDEN(cnum) && IS_DOS_HIDDEN(dosmode)) - result |= S_IXOTH; + if (MAP_HIDDEN(cnum) && IS_DOS_HIDDEN(dosmode)) + result |= S_IXOTH; - result &= CREATE_MODE(cnum); + result &= CREATE_MODE(cnum); + } return(result); } |