FILE FUNCTION DESCRIPTION
==================================================================
etc/afpd/main.c main set umask to 0! later we must apply requested umask
manually in any effected codepath
etc/afpd/directory.c afp_createdir new "vol" arg to netatalk_mkdir call
netatalk_mkdir changed prototype: must include volume;
call ad_mkdir with applied saved umask and volume umask
copydir add vol arg to netatalk_mkdir call
setdirparams in case DIRPBIT_UNIXPR test if request is for a POSIX
volumes (new volume option), only proceed if it is
etc/afpd/file.c afp_createfile apply saved umask and volume umask
setfilparams in case FILPBIT_UNIXPR test if request is for a POSIX
volumes (new volume option), only proceed if it is
etc/afpd/unix.c stickydirmode do not apply umask
setfilunixmode ignore if not a POSIX volume even if we have further callers
like FPExchangeFiles that want to apply modes. We rely
on the fact that files and dirs have to be created with
correct mode in the first place!
setfilmode do not apply umask
setdirunixmode if !POSIX vol: unchanged
if POSIX: no sticky stuff, chmod directly, preserve S_ISGID
etc/afpd/volume.c vol_opt_names[] new: {AFPVOL_POSIX, "POSIX"}
volset test volopt "noupriv" and "posix"
creatvol if AFPVOL_POSIX then volume->v_ad_options |= ADVOL_POSIX
readvolfile set default option AFPVOL_UNIX_PRIV
etc/afpd/volume.h - #define AFPVOL_POSIX (1 << 23)
include/atalk/adouble.h - #define ADVOL_POSIX (1 << 4)
libatalk/adouble/ad_open.c NEW: ad_chgrp change group to parameter stat->st_gid
Do I still need this?
ad_open change test for ad->ad_options & ADVOL_UNIXPRIV to
ad->ad_options & ADVOL_POSIX
Patch includes updated man pages. It is tested with OS 9, 10.4 and 10.5.
I'd be glad If others like to chime in as I'm running out of steam. Areas of further inspection should be perms of adouble files amongst probably others. Seasoned netatalkers please advise.