2 CNID back-end refactoring
4 This patch allows to compile all DID schemes into
5 afpd binary and then select desired schemes at runtime,
11 Libatalk/cnid directory as been restructured. Now it contains
12 subdirectories representing particular back-end types and a
13 simple cnid-object factory (cnid.c and cnid_init.c).
15 All CNID functions have been grouped into a structure which
16 contains function pointers and some data. Main afpd code uses
17 them in a object manner rather than structural: it calls cnid
18 functions through fields of cnid_db structure.
20 Actually there are standard backends: transactional db3, cdb,
21 last and mtab (I'm not sure how to call mtab - it does some magic
22 with dev/inode numbers, but mtab has been removed some time ago).
24 Changes in ./configure options:
26 Options --with-did=xxx, --with-cdb have been removed.
28 Instead, there are following options:
29 --with-cnid-cdb-backend - compile DB3 Concurrent Datastore backend
30 --with-cnid-db3-backend - compile DB3 transactional backend
31 --with-cnid-last-backend - compile LAST backend
32 --with-cnid-mtab-backend - compile MTAB backend
33 --with-cnid-default-backend={cdb|db3|last|mtab}
35 Some of the backend names should be (propably) changed (mtab? db3?).
37 AppleVolumes.default file has a new option: -cnidscheme:{db3|cdb|last|mtab}
39 Again, sorry for this weird naming. I didn't care about it while coding,
40 some cleanups have to be done later.
42 Was tested mainly against test-suite and against MacOS 9 client.
45 - some really reliable kind of backend should be developed
46 - file-name mangling should be runtime option
47 - naming- and code cleanups are still needed
48 - optional dynamic CNID backend loading - lower priority, static linking
49 option has still to be available