Xau(3)

名前
Xau library: XauFileName, XauReadAuth, XauLockAuth, XauUnlockAuth, XauWriteAuth, XauDisposeAuth, XauGetAuthByAddr, XauGetBestAuthByAddr - X 認証データベースルーチン

書式
#include <X11/Xauth.h>

typedef struct xauth {
	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;
} Xauth;
char *XauFileName ()
Xauth *XauReadAuth (auth_file)
	FILE *auth_file;
int XauWriteAuth (auth_file, auth)
	FILE *auth_file;
	Xauth *auth;
Xauth *XauGetAuthByAddr (family,
address_length, address,
number_length, number)
	unsigned short family;
	unsigned short address_length;
	char *address;
	unsigned short number_length;
	char *number;
Xauth *XauGetBestAuthByAddr (family,
address_length, address,
number_length, number,
types_length, types, type_lengths)
	unsigned short family;
	unsigned short address_length;
	char *address;
	unsigned short number_length;
	char *number;
	int types_length;
	char **types;
	int *type_lengths;
int XauLockAuth (file_name, retries, timeout, dead)
	char *file_name;
	int retries;
	int timeout;
	long dead;
int XauUnlockAuth (file_name)
	char *file_name;
XauDisposeAuth (auth)
	Xauth *auth;

説明

XauFileName はデフォルトの認証ファイル名を生成する。 まず最初に環境変数 XAUTHORITY がセットされていればこれを調べ、なければ $HOME/.Xauthority を返す。この名前は静的にアロケートされているので、解 放してはならない。

XauReadAuth は auth_file から次のエントリを取得する。エン トリが静的にはアロケートされていないので、XauDisposeAuth を呼び出して解放しなければならない。

XuWriteAuth は認証エントリを auth_file に書き出す。この関 数は成功時には1を、失敗時には0を返す。

XauGetAuthByAddr は与えられたネットワークアドレス/ディスプレイ番 号のペアに一致するエントリを検索する。エントリは静的にアロケート されないので、XauDisposeAuth を呼んで解放しなければならな い。

XauGetBestAuthByAddr は、許される認証方法のリストが指定される点 が異なる点を除き、 XauGetAuthByAddr とほぼ同じである。Xau は、こ のリスト中で最も早いエントリに一致したファイルエントリを選択する(例え ば、最も安全な認証方法)。引き数 types は文字列の配列であり、一つの 文字列がそれぞれの認証方法に対応する。types_length は、配列 types にいくつ要素があるかを指定する。 types_lengths はそれぞれの文字列の長さを表す整数の配列である。

XauLockAuth は、認証ファイルを同期して更新するために必要な仕事を 行う。この関数はまず2つのファイル名を生成する。1つは file_name に ``-c'' を追加したものであり、もう1つは ``-l'' を追加したものである。 もし ``-c'' が追加されたファイルが存在し、これが dead 秒以上古い 場合には、XauLockAuth はこのファイルとこれに対応する ``-l'' が追 加されたファイルを削除する。NFS による同期の問題を避けるため、 dead の値がゼロならばファイルを削除する。XauLockAuth は ファイル名の生成とリンク作成を retries 回試みる。この試行の間に は timeout 秒休止する。XauLockAuth は結果によって決まる値 の集合を返す。
 	LOCK_ERROR	システムエラーが発生した。ファイル名が長すぎる
		か、システムコールが予期しない失敗をした。errno が役に
		立つと思われる。
 	LOCK_TIMEOUT	retries 回試みが失敗した
 	LOCK_SUCCESS	ロックに成功した。

XauUnlockAuth は、``-c'' と ``-l'' が加えられたファイル名を両方 削除することにより、 XauLockAuth の結果を取り消す。

XauDisposeAuth は、認証エントリを格納している、アロケートされた メモリを解放する。

関連項目
xauth(1), xdm(1)

著者
Keith Packard, MIT X Consortium