didg [Sat, 1 Feb 2003 19:34:55 +0000 (19:34 +0000)]
bugfix: renamefile() various bugs with concurrent access, open file, and
permission, fewer case where the job is half done, eg return an error but the
data fork is moved or the ressource fork is lost.
code cleaning: deletefile() ad_open, ad_lock already deal with read only file
didg [Sun, 26 Jan 2003 10:42:40 +0000 (10:42 +0000)]
bugfix file.c directory.c: open directory descriptor leak, buffer overflow if
path > MAX_PATH.
fork.c rename a function, keep afp_xxx only for AFP calls.
didg [Fri, 24 Jan 2003 07:08:42 +0000 (07:08 +0000)]
bugfix: dirlookup() return dirsearch error if any (AFPERR_PARAM).
cname():
we always need to call movecwd, even if we extended the cache eg:
cname dir1\0dir2\0\0 have to chdir to dir1. It wasn't the case if dir2 was not
in the cache.
do the right stuff when the user don't have right access to a directory. Some
calls are unfixable (afp_xxxcomment) or will always fail (afp_delete) but it'd
be ok.
didg [Fri, 24 Jan 2003 06:58:23 +0000 (06:58 +0000)]
improvement: add a SUIDDIR (aka BSD like) for admin user, files create by an admin
(euid root) are now owned by their parent directory owner. TODO configure option?,
security?
didg [Thu, 16 Jan 2003 21:18:15 +0000 (21:18 +0000)]
BUGFIX: deny mode, tmp lock, byte lock when length is -1, setforkparams,
AFP3 large file support
deny mode: make it works with more than 2 openers
tmp lock: check conflicting locks with files open multiple times by the same
process, was only check locks held by other afpd.
byte lock: -1 means to the maximum size of a fork, was always error EOVERFLOW,
because we don't start from offset 0 and we can't use the POSIX way ie length 0.
setforparams: only conflicting locks if it's a truncate and it removes a locked
range, was any lock return an error.
AFP3: check for negative values with 32 bits calls, setforparams for size >2GBytes,
read and write with offset > 2GBytes.
didg [Sun, 12 Jan 2003 14:39:57 +0000 (14:39 +0000)]
stupid stuff, replace
if ((a = b) == c)
with
if (c == (a = b))
for '==' and '!=' operators. the form ((a = b) == c) is confusing for some, not
smart enough, data-flow analyser.
jmarcus [Sat, 11 Jan 2003 17:26:05 +0000 (17:26 +0000)]
* Add Apple II boot support for Appl IIe (with workstation card) and
Apple IIgs using built-in LocalTalk [1]
* Fix some ProDOS file attribute problems
* Fix the RedHat RPM build for RH 7.3 and 8.0
* Fix a few other build nits
Submitted by: Steven N. Hirsch <shirsch@adelphia.net>
Obtained from: Marsha Jackson [1]
rlewczuk [Tue, 7 Jan 2003 15:55:21 +0000 (15:55 +0000)]
Moving things between two folders on the same volume but different group ownership bugfix.
If destination directory has SGID, group ownership for is changed while renam()ing.
This is very ugly hack, IMO should be implemented along with force gid/uid stuff.
jmarcus [Sat, 4 Jan 2003 22:14:03 +0000 (22:14 +0000)]
Add a README.cnid which talks about what CNID is, and what it means to
Netatalk. It also includes Adrian's old developer notes for a rough
understanding of the whole process.
jmarcus [Sat, 4 Jan 2003 21:53:39 +0000 (21:53 +0000)]
* Remove some more references to DB3, and mention exactly which versions of BDB
we support as well as what is the current recommended version.
* Clean up the PAM documentation some to make it less Linux specific.
jmarcus [Sat, 4 Jan 2003 21:41:48 +0000 (21:41 +0000)]
Change all references to db3/DB3 to BDB. We now support Berkeley DB
3.0.17, 3.2.9, 3.3.11, 4.0.14, and 4.1.25. This means that --with-db3 is
now --with-bdb.
didg [Mon, 14 Oct 2002 06:30:49 +0000 (06:30 +0000)]
bugfix cname() don't invalidate directory if it's the root parent (did == 1).
Some client makes bogus request eg:
FPGetfileDirParam(did = 1, name = Disk 1). I believe with did == 1 only the
volume name is valid.