標準
標準/拡張機能 |
C/C++ |
依存項目 |
BSD 4.3
|
両方 |
OS/390 V2R8 |
形式
#define _XOPEN_SOURCE_EXTENDED 1
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
int res_init(void);
struct __res_state _res;
機能説明
res_init() 関数は、他のリゾルバー関数が使用できるように、__res_state 構造体を初期化するリゾルバー関数です。初期化は通常、一般に XL C/C++ ランタイム・ライブラリー・リゾルバーと呼ばれている IP
アドレスの変換ルーチンのいずれかを、初めて呼び出したときに行われます。
res_init() ルーチンは、__res_state 構造体を
z/OS® リゾルバーの CS に渡すことによって、初期化します。リゾルバーは "TCPIP.DATA" 構成ファイルを読み取り、__res_state 構造体を更新します。__res_state 構造体のデータは、"TCPIP.DATA" 構成ファイルの内容に基づいて埋められ、その後は、
_res 変数で参照できます。resolver ルーチンが使用するグローバル構成および状態情報は、構造体
_res に保持されます。ほとんどの値には適切なデフォルトがあるため、変更せずにそのまま使用することができます。
- 値
- 説明
- _res.retrans
- 再送時間間隔は、"TCPIP.DATA" 構成ファイルにある、ResolverTimeOut ステートメントから取得されます。
- _res.retry
- 要求再送の回数。これは、"TCPIP.DATA" 構成ファイルにある ResolverUDPRetries ステートメントから取得されます。
- _res.options
- _res.options に格納されているオプションを以下にリストします。これらは、<resolv.h> に定義されています。オプションは、有効にされたオプションのビット単位の OR を含む、単純なビット・マスクとして格納されています。
- オプション
- 説明
- RES_INIT
- res_init() が呼び出されたために、初期ネーム・サーバー・アドレスとデフォルトのドメイン・ネームが初期化された後、真になります。このオプションは、検査だけに使用し、res_init() 関数によってのみ設定するようにすべきです。
- RES_DEBUG
- デバッグ・メッセージを印刷します。
- RES_AAONLY
- 信頼できる応答だけを受け入れます。このオプションを指定すると、res_send() は、信頼できる応答を検出するか、エラーを検出するまで継続します。通常、これはインプリメントされていません。
- RES_USEVC
- UDP データグラムの代わりに、照会のために TCP 接続を使用します。
- RES_STAYOPEN
- RES_USEVC と共に使用し、TCP 接続を、複数の照会の間オープンに保ちます。これは、常に多数の照会を行うプログラムで有効です。UDP は、使用されている通常モードにしておく必要があります。
- RES_IGNTC
- 打ち切り誤差を無視します。つまり、TCP で再試行しません。現在は、使用されていません。
- RES_RECURSE
- 照会に再帰希望ビットを設定します。これはデフォルトです。(res_send() は、反復照会を実行せず、再帰については、ネーム・サーバーが対処することを想定しています。)
- RES_DEFNAMES
- 設定された場合、res_search() は、デフォルトのドメイン・ネームを
(ドットを含まない) 単一コンポーネント名に追加します。このオプションは、デフォルトで使用可能になります。
- RES_DNSRCH
- このオプションを設定すると、res_search() は、現行ドメインと親ドメインでホスト名を検索します。これは、標準ホスト・ルックアップ・ルーチン gethostbyname() によって使用されます。このオプションは、デフォルトで使用可能になります。
- RES_NOALIASES
- このオプションは、"HOSTALIASES" 環境変数によって制御される、ユーザー・レベルの別名割り当てフィーチャーをオフにします。ネットワーク・デーモンは、このオプションを設定する必要があります。
- _res.nscount
- "TCPIP.DATA" 構成ファイルに指定されたネーム・サーバーの数です。
- _res.*nsaddr_list[0]
- "TCPIP.DATA" 構成ファイル内の NSINTERADDR または NameServer ステートメントによって指定された、ネーム・サーバーのアドレスです。
- _res.dnsrch[0]
- 検索するドメイン・リストの先頭を示します。"TCPIP.DATA" 構成ファイル内の
SEARCH ステートメントで指定されます。この構造体には、デフォルトの DOMAIN か SEARCH が入ります。
- _res.defdname[0]
- "TCPIP.DATA" 構成ファイル内の Domain または DomainOrigin
ステートメントに指定されたデフォルトのドメイン・ネームです。この構造体には、デフォルトの DOMAIN か SEARCH が入ります。
- _res.pfcode
- 通常、これはインプリメントされていません。
- _res.ndots
- ドメイン・ネームのドット数のしきい値です。"TCPIP.DATA" 構成ファイル内の OPTIONS ステートメント値 ndots:n に指定されます。デフォルトは、1 です。
- _res.nsort
- "TCPIP.DATA" 構成ファイル内の SORTLIST ステートメントにリストされた
sort_list[] のエレメント数です。
- _res.sort_list[0]
- "TCPIP.DATA" 構成ファイル内の SORTLIST
ステートメントに指定されたネットワーク・アドレスとサブネット・マスクです。
戻り値
正常に実行された場合、res_init() は 0 を戻します。
正常に実行されなかった場合、res_init() は -1 を戻して、h_errno を次のいずれかの
値に設定します。
- エラー・コード
- 説明
- NO_RECOVERY
- 再試行すると、連続して失敗するエラーが発生しました。このスレッドが _res 構造体を入れるためのストレージが獲得できませんでした。
- TRY_AGAIN
- 選択された __res_state 構造体名を初期化しているときにエラーが発生しました。この処理は再試行できます。
正常に実行された場合、_res は、__res_state 構造体のアドレスを戻します。
正常に実行されなかった場合、
_res は NULL を戻して、errno を次のいずれかの
値に設定します。
- エラー・コード
- 説明
- ENOMEM
- _res 構造体を定義するために必要なストレージを、獲得できませんでした。