XAUTH(3X11) — NEWS-OS Programmer’s Manual
名称
XauFileName, XauReadAuth, XauLockAuth, XauUnlockAuth, XauWriteAuth, XauGetAuthByAddr - 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;
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 は、 XAUTHROTIY 環境変数がセットされていれば、まずチェックし、それに よってデフォルトのオーソリゼーションファイル名を作成し、セットされて いなければ、 $HOME/.Xauthority を返します。 この名前は静的に割り当てられ、決して解放されません。
XauReadAuth は、 auth_file から、 次のエントリを読み込みます。 そのエントリは、静的に割り当てられず XauDisposeAuth をコールすることにより、解放しなければなりません。
XuWriteAuth は、 auth_file へオーソリゼーションを書き込みます。 成功の場合は 1 を、失敗の場合は 0 を返します。
XauGetAuthByAddr は、与えられたネットワークのアドレス/ディスプレイ番号のペアと一致する エントリを検索します。 そのエントリは、 静的に割当てられず、 XauDisposeAuth をコールすることによって、解放しなければなりません。
XauLockAuth は、同時にオーソリゼーションファイルを、更新するのに必要な作業をしま す。 まず初めに、 XauLockAuth は、 2 つのファイル名を作成します。 1 つは、 “-c” を file_name に付加したもの、 もう 1 つは、 “-l” を file_name に付加したものです。 “-c” ファイルがすでに存在し、 dead 秒以上時間のたっているものである場合は、 XauLockAuth は、 “-c” ファイルと、それに対応する、 “-l” ファイル を削除します。 NFS との起こりえる同期化トラブルを防ぐために、 dead 値 0 は、ファイルを強制的に削除させます。 XauLockAuth は、 ファイル名の作成、およびリンクを retries 回試み、各処理の間、 timeout 秒ポーズします。 XauLockAuth は、その結果により値のコレクションを返します。
LOCK_ERROR システムエラーが発生した。
file_name が長すぎたか、またはシステム
コールで、予期せぬエラーが発生したかの
いずれかである。
errno が利用できます。
LOCK_TIMEOUT retries 回失敗した。
LOCK_SUCCESS ロックが成功した。
XauUnlockAuth は、 “-c” と “-l” のファイル名の両方を、アンリンクすることによって、 XauLockAuth の作業をアンドゥします。
XauDisposeAuth は、オーソリゼーションエントリを保持するために、割り当てられた記憶領域 を解放します。
関連事項
著作権
Copyright 1988, Massachusetts Institute of Technology. 権利と許可の声明文については、 X(1) を参照のこと。
See X(1) for a full statement of rights and permissions.
著者
Keith Packard, MIT X Consortium
NEWS-OSRelease 4.1C