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 の値が 0
ならばファイルを削除する。
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