
AFS - Perl interface to AFS programming APIs

This document describes the AFS module bundle (Version 2.4.0)

In version 2, all functions and special variables have been resorted into separate submodules according to their affiliations to different AFS command suites. These resorted functions and variables are not exported by default anymore but they are exported only on request.
All old features and interfaces from version 1 are still available for compatibility, but are deprecated. These cases have been marked in the POD documentations.
You must not intermix names or interfaces from version 1 with names or interfaces from version 2. You either stick with version 1 or version 2.

The AFS module bundle is a dynamically loadable (where available) extension to Perl. It gives the AFS user and administrator access to most of the AFS programming APIs, allowing you to make these calls directly from Perl, rather than processing the output of a command.
The AFS module bundle is a thin layer above the low-level AFS APIs. When possible, function names are similar to the actual API names, or to the AFS command suite names. The ordering of function parameters is not always the same though.
The AFS module bundle includes the following features:
Methods that deal with the Basic Overseer Server (i.e, the bos command suite). See afsperlbos.
Methods that deal with the Volume Server (i.e, part of the vos command suite). See afsperlvos.
Methods that deal with the Volume Location Server (i.e, part of the vos command suite). See afsperlvos.
Functions that deal with the File Server (i.e, part of the fs command suite). See afsperlfs.
Functions that deal with the Cache Manager (i.e, part of the fs command suite). See afsperlcm.
Methods to control access to directories and all of their files. (i.e, part of the fs command suite). See afsperlacl.
Functions that deal with Cell Configurations (i.e, part of the fs command suite). See afsperlcell.
Methods that deal with the Protection Server (i.e, the pts command suite). See afsperlpts.
Methods that deal with the Authentication Server (i.e, the kas command suite). See afsperlkas.
Methods that deal with token management in the Kernel Token Cache (KTC) (i.e, the tokens command). See afsperlktct.
Methods that deal with principals related to tokens. See afsperlktcp.
Methods that deal with encryption keys related to tokens. See afsperlktck.
Utility functions for the AFS module bundle which are not part of any AFS command suite (i.e, the setpag command). See afsperlutils.
Basic functions like raising a Perl exception when any AFS function call fails (useful for debugging) or retrieving the status value of the last AFS function call. See afsperlbase.



These modules and their POD documentations have been written with the help of the AFS source code, the AFS manuals, and the 'ancient' AFS Programmer's Reference documentation. Unfortunately nearly no documentation was available for the interfaces to the AFS structures ktc_token, ktc_principal, and ktc_encryptionkey. Therefore these modules are not very well documented.

Norbert E. Gruener <nog@MPA-Garching.MPG.de>.

Roland Schemers <schemers@slapshot.stanford.edu>.

Thank you to (in chronological order):
Lawrence Greenfield - for his update in the AFS.xs file
Alf Wachsmann - for his bug report on the function "setquota"
Gerhard Gonter - for his configuration report for rs_aix32
Peter Scott - for his improvement on ACL->keys and ACL->nkeys
Thomas M. Payerle - for his configuration report for alpha_dux40
Wolfgang Friebel - for his bug report on the functions "lsmount" and "rmmount"
Alf Wachsmann - for his patches for the XS code and his excellent ideas about the Makefile.PL
Wolfgang Friebel - for his bug reports on version 2.0
James E. Flemer - for his new method AFS::KTC_TOKEN->FromString
Phil Moore - for his improvements of the Makefile.PL
Peter Scott - for his bug report on the method "pts->id" and for his "Sun" patches for the Makefile.PL
Nathan Neulinger - for his improvements of the Makefile.PL
Bernard Antoine - for his bug report about a memory leak in the method "AFS::ACL->retrieve".
Peter Scott - for his bug report about a memory leak in the function "getvolstats"
Peter Scott - for his bug report about the function AFS::constant
Venkata Phani Achanta - for his improved test drivers for several modules
David R. Boldt - for his bug report about an undefined "typemap" entry
Alf Wachsmann and Venkata Phani Achanta - for their implementation of the BOS, VOS, and VLDB modules
Phil Moore - for his bug report on Itanium ia64 platform
Frank Burkhardt and David Miller - for their problem reports connected to Perl "unthreaded" version with the Debian "unstable" distribution
Pierre-Yves Fontaniere - for his configuration report for rs_aix51
Chaskiel M Grundman and Derrick J Brashear - for their valuable information about threaded OpenAFS libraries
Russ Allbery - for his improvements of the threaded case Makefile.PL
Yannick Bergeron - for his corrections for the AFS::KTC_TOKEN documentation
Mike Polek - for his patch for the AFS::FS::getquota function
Peter Scott - for his problem report about AFS::VOS->listvolume

© 2001-2006 Norbert E. Gruener <nog@MPA-Garching.MPG.de>. All rights reserved. © 1994 Board of Trustees, Leland Stanford Jr. University. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Copyright (c) 1994 Board of Trustees, Leland Stanford Jr. University
Redistribution and use in source and binary forms are permitted provided that the above copyright notice and this paragraph are duplicated in all such forms and that any documentation, advertising materials, and other materials related to such distribution and use acknowledge that the software was developed by Stanford University. The name of the University may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Revision $Rev: 773 $