Hi Jeffrey,
On Mon, 2008 Sep 01 20:25:11 -0400, Jeffrey Hutzelman wrote:
> --On Monday, September 01, 2008 11:12:31 PM +0000 "Daniel Richard G."
> <address@hidden> wrote:
>
> >If we use libafs, we may as well go all the way and have find(1) check
> >the permissions on each directory (if in AFS) and cue off of that.
>
> libafs is not the library you are looking for.
[remainder of AFS mind-trick elided]
I haven't worked with AFS programmatically before, so that was said only in
the most abstract sense. My thought was basically to trace through what "fs
la" does, and implement a similar codepath for find(1).
> If it's available, you're better off using libkrbafs or libkafs, which
> provide a more minimal interface consisting of k_hasafs() and k_pioctl(),
> plus a few things you don't need.
I'd be happy to avoid dealing with the OpenAFS bare-metal API. Searching
for those names gives ambiguous results as to what the libraries are, and
where their latest incarnations may be found, however; would you know
offhand where one should go to obtain them?
> Note that you cannot assume that AFS exists and AFS system calls will work
> just because you found AFS libraries. Some of the libraries mentioned
> above are included in a number of Linux distributions and may be included
> in other systems as well, and even if AFS is installed, the AFS kernel
> module may not yet be loaded. On some platforms, you will get SIGSYS if
> you try to make an AFS system call under these circumstances. The
> libkrbafs/libkafs interfaces will protect you from this; k_hasafs() is
> always safe to call, and if it succeeds, then you know you can call
> k_pioctl() safely.
Sounds like a win-win approach to me. James, would making use of one of
these libraries (contingent on a compile-time switch) be an acceptable way
to go?
--Daniel
--
NAME = Daniel Richard G. ## Remember, skunks _\|/_ meef?
EMAIL1 = address@hidden ## don't smell bad--- (/o|o\) /
EMAIL2 = address@hidden ## it's the people who < (^),>
WWW = http://www.******.org/ ## annoy them that do! / \
--
(****** = site not yet online)