2006-11-25 09:53:47 -07:00
|
|
|
.\" Copyright (c) 1994 X Consortium
|
2012-03-10 04:59:38 -07:00
|
|
|
.\"
|
2006-11-25 09:53:47 -07:00
|
|
|
.\" Permission is hereby granted, free of charge, to any person obtaining a
|
2012-03-10 04:59:38 -07:00
|
|
|
.\" copy of this software and associated documentation files (the "Software"),
|
|
|
|
.\" to deal in the Software without restriction, including without limitation
|
|
|
|
.\" the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
|
|
.\" and/or sell copies of the Software, and to permit persons to whom the
|
2006-11-25 09:53:47 -07:00
|
|
|
.\" Software furnished to do so, subject to the following conditions:
|
2012-03-10 04:59:38 -07:00
|
|
|
.\"
|
2006-11-25 09:53:47 -07:00
|
|
|
.\" The above copyright notice and this permission notice shall be included in
|
|
|
|
.\" all copies or substantial portions of the Software.
|
2012-03-10 04:59:38 -07:00
|
|
|
.\"
|
2006-11-25 09:53:47 -07:00
|
|
|
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
.\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
2012-03-10 04:59:38 -07:00
|
|
|
.\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
|
|
.\" THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
|
|
.\" WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
|
|
|
.\" OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
2006-11-25 09:53:47 -07:00
|
|
|
.\" SOFTWARE.
|
|
|
|
.\"
|
2012-03-10 04:59:38 -07:00
|
|
|
.\" Except as contained in this notice, the name of the X Consortium shall not
|
|
|
|
.\" be used in advertising or otherwise to promote the sale, use or other
|
|
|
|
.\" dealing in this Software without prior written authorization from the
|
|
|
|
.\" X Consortium.
|
2006-11-25 09:53:47 -07:00
|
|
|
.\"
|
2012-03-10 04:59:38 -07:00
|
|
|
.TH Xau __libmansuffix__ __xorgversion__
|
2006-11-25 09:53:47 -07:00
|
|
|
.SH NAME
|
|
|
|
Xau library: XauFileName, XauReadAuth, XauLockAuth, XauUnlockAuth,
|
|
|
|
XauWriteAuth, XauDisposeAuth,
|
|
|
|
XauGetAuthByAddr, XauGetBestAuthByAddr \- X authority database routines
|
|
|
|
.SH SYNOPSIS
|
2013-05-31 08:46:30 -06:00
|
|
|
.ft CW
|
2006-11-25 09:53:47 -07:00
|
|
|
.nf
|
2013-05-31 08:46:30 -06:00
|
|
|
#include <X11/Xauth.h>
|
|
|
|
|
2006-11-25 09:53:47 -07:00
|
|
|
typedef struct xauth {
|
2013-05-31 08:46:30 -06:00
|
|
|
unsigned short family;
|
|
|
|
unsigned short address_length;
|
|
|
|
char *address;
|
|
|
|
unsigned short number_length;
|
|
|
|
char *number;
|
|
|
|
unsigned short name_length;
|
|
|
|
char *name;
|
|
|
|
unsigned short data_length;
|
|
|
|
char *data;
|
2006-11-25 09:53:47 -07:00
|
|
|
} Xauth;
|
|
|
|
.HP
|
2012-03-10 04:59:38 -07:00
|
|
|
char *XauFileName (void);
|
2006-11-25 09:53:47 -07:00
|
|
|
.HP
|
2012-03-10 04:59:38 -07:00
|
|
|
Xauth *XauReadAuth (FILE *\fIauth_file\fP\^);
|
2006-11-25 09:53:47 -07:00
|
|
|
.HP
|
2012-03-10 04:59:38 -07:00
|
|
|
int XauWriteAuth (FILE *\fIauth_file\fP, Xauth *\fIauth\fP\^);
|
2006-11-25 09:53:47 -07:00
|
|
|
.HP
|
|
|
|
Xauth *XauGetAuthByAddr (unsigned short \fIfamily\fP\^, unsigned short
|
2010-08-21 10:11:03 -06:00
|
|
|
\fIaddress_length\fP\^, const char *\fIaddress\fP\^, unsigned short
|
|
|
|
\fInumber_length\fP\^, const char *\fInumber\fP\^, unsigned short
|
|
|
|
\fIname_length\fP\^, const char *\fIname\fP\^);
|
2006-11-25 09:53:47 -07:00
|
|
|
.HP
|
|
|
|
Xauth *XauGetBestAuthByAddr (unsigned short \fIfamily\fP\^, unsigned short
|
2010-08-21 10:11:03 -06:00
|
|
|
\fIaddress_length\fP\^, const char *\fIaddress\fP\^, unsigned short
|
|
|
|
\fInumber_length\fP\^, const char *\fInumber\fP\^, int \fItypes_length\fP\^,
|
2012-03-10 04:59:38 -07:00
|
|
|
char **\fItypes\fR\^, const int *\fItype_lengths\fR\^);
|
2006-11-25 09:53:47 -07:00
|
|
|
.HP
|
2010-08-21 10:11:03 -06:00
|
|
|
int XauLockAuth (const char *\fIfile_name\fP\^, int \fIretries\fP\^, int
|
2012-03-10 04:59:38 -07:00
|
|
|
\fItimeout\fP\^, long \fIdead\fP\^);
|
2006-11-25 09:53:47 -07:00
|
|
|
.HP
|
2012-03-10 04:59:38 -07:00
|
|
|
int XauUnlockAuth (const char *\fIfile_name\fP\^);
|
2006-11-25 09:53:47 -07:00
|
|
|
.HP
|
2012-03-10 04:59:38 -07:00
|
|
|
int XauDisposeAuth (Xauth *\fIauth\fP\^);
|
2013-05-31 08:46:30 -06:00
|
|
|
.fi
|
|
|
|
.ft
|
2006-11-25 09:53:47 -07:00
|
|
|
.SH DESCRIPTION
|
|
|
|
.PP
|
|
|
|
\fBXauFileName\fP generates the default authorization file name by first
|
|
|
|
checking the XAUTHORITY environment variable if set, else it returns
|
|
|
|
$HOME/.Xauthority. This name is statically allocated and should
|
|
|
|
not be freed.
|
|
|
|
.PP
|
|
|
|
\fBXauReadAuth\fP reads the next entry from \fIauth_file\fP. The entry is
|
|
|
|
\fBnot\fP statically allocated and should be freed by calling
|
|
|
|
\fIXauDisposeAuth\fP.
|
|
|
|
.PP
|
|
|
|
\fBXauWriteAuth\fP writes an authorization entry to \fIauth_file\fP. It
|
|
|
|
returns 1 on success, 0 on failure.
|
|
|
|
.PP
|
|
|
|
\fBXauGetAuthByAddr\fP searches for an entry which matches the given network
|
|
|
|
address/display number pair. The entry is \fBnot\fP statically allocated
|
|
|
|
and should be freed by calling \fIXauDisposeAuth\fP.
|
|
|
|
.PP
|
|
|
|
\fBXauGetBestAuthByAddr\fP is similar to \fBXauGetAuthByAddr\fP, except
|
|
|
|
that a list of acceptable authentication methods is specified. Xau will
|
|
|
|
choose the file entry which matches the earliest entry in this list (e.g., the
|
|
|
|
most secure authentication method). The \fItypes\fP argument is an array of
|
|
|
|
strings, one string for each authentication method. \fItypes_length\fP
|
|
|
|
specifies how many elements are in the \fItypes\fP array.
|
|
|
|
\fItypes_lengths\fP is an array of integers representing the length
|
|
|
|
of each string.
|
|
|
|
.PP
|
|
|
|
\fBXauLockAuth\fP does the work necessary to synchronously update an
|
|
|
|
authorization file. First it makes two file names, one with ``-c'' appended
|
|
|
|
to \fIfile_name\fP, the other with ``-l'' appended. If the ``-c'' file
|
|
|
|
already exists and is more than \fIdead\fP seconds old, \fIXauLockAuth\fP
|
|
|
|
removes it and the associated ``-l'' file. To prevent possible
|
|
|
|
synchronization troubles with NFS, a \fIdead\fP value of zero forces the
|
|
|
|
files to be removed. \fIXauLockAuth\fP makes \fIretries\fP attempts to
|
|
|
|
create and link the file names, pausing \fItimeout\fP seconds between each
|
|
|
|
attempt. \fIXauLockAuth\fP returns a collection of values depending on the
|
|
|
|
results:
|
2013-05-31 08:46:30 -06:00
|
|
|
.TP
|
|
|
|
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.
|
|
|
|
.TP
|
|
|
|
LOCK_TIMEOUT
|
|
|
|
\fIretries\fP attempts failed
|
|
|
|
.TP
|
|
|
|
LOCK_SUCCESS
|
|
|
|
The lock succeeded.
|
2006-11-25 09:53:47 -07:00
|
|
|
.PP
|
2012-03-10 04:59:38 -07:00
|
|
|
\fBXauUnlockAuth\fP undoes the work of \fIXauLockAuth\fP by unlinking both
|
2006-11-25 09:53:47 -07:00
|
|
|
the ``-c'' and ``-l'' file names.
|
|
|
|
.PP
|
|
|
|
\fBXauDisposeAuth\fP frees storage allocated to hold an authorization entry.
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
xauth(1), xdm(1)
|
|
|
|
.SH AUTHOR
|
|
|
|
Keith Packard, MIT X Consortium
|