AFAUTH(1) .SH AFAUTH(1)
NAME NAME
AFauFileName, AFauFileName,
AFauReadAuth, AFauLockAuth, AFauUnlockAuth, AFauWriteAuth, AFauGetAuth-
ByAddr - AF authority database routines .SH SYNOPSIS .B "#include
<AF/AFauth.h>"
typedef struct xauth {
unsigned short family;
unsigned short address_length;
const char *address;
unsigned short number_length;
const char *number;
unsigned short name_length;
const char *name;
unsigned short data_length;
const char *data;
} AFauth;
char *AFauFileName ()
AFauth *AFauReadAuth (auth_file)
FILE *auth_file;
int AFauWriteAuth (auth_file, auth)
FILE *auth_file;
AFauth *auth;
AFauth *AFauGetAuthByAddr (family,
address_length, address,
number_length, number)
unsigned short family;
unsigned short address_length;
char *address;
unsigned short number_length;
char *number;
int AFauLockAuth (file_name, retries, timeout, dead)
char *file_name;
int retries;
int timeout;
long dead;
int AFauUnlockAuth (file_name)
char *file_name;
AFauDisposeAuth (auth)
AFauth *auth;
DESCRIPTION
AFauFileName generates the default authorization file name by first check-
ing the AFauTHROTIY environment variable if set, else it returns
$HOME/.AFauthority. This name is statically allocated and should not be
freed.
AFauReadAuth reads the next entry from auth_file. The entry is not stati-
cally allocated and should be freed by calling AFauDisposeAuth.
XuWriteAuth writes an authorization entry to auth_file. It returns 1 on
success, 0 on failure.
AFauGetAuthByAddr searches for an entry which matches the given network
address/display number pair. The entry is not statically allocated and
should be freed by calling AFauDisposeAuth
AFauLockAuth does the work necessary to synchronously update an authoriza-
tion file. First it makes to file names, one with ``-c'' appended to
file_name, the other with ``-l'' appended. If the ``-c'' file already
exists and is more than dead seconds old, AFauLockAuth removes it and the
associated ``-l'' file. To prevent possible synchronization troubles with
NFS, a dead value of zero forces the files to be removed. AFauLockAuth
makes retries attempts to create and link the file names, pausing timeout
seconds between each attempt. AFauLockAuth returns a collection of values
depending on the results:
LOCK_ERROR A system error occurred, either a file_name
which is too long, or an unexpected failure from
a system call. errno may prove useful.
LOCK_TIMEOUT retries attempts failed
LOCK_SUCCESS The lock succeeded.
AFauUnlockAuth undoes the work of AFauLockAuth by unlinking both the ``-c''
and ``-l'' file names.
AFauDisposeAuth frees storage allocated to hold an authorization entry.
SEE ALSO
COPYRIGHT
Copyright 1988, Massachusetts Institute of Technology, 1993, Digital Equip-
ment Corporation
See AF(1) for a full statement of rights and permissions.
AUTHOR
Keith Packard, MIT X Consortium