Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       res_init,   res_query,   res_search,   res_querydomain,  res_mkquery,  res_send,  dn_comp,
       dn_expand - レゾルバ・ルーチン

書式

       #include <netinet/in.h>
       #include <arpa/nameser.h>
       #include <resolv.h>
       extern struct state _res;

       int res_init(void);

       int res_query(const char *dname, int class, int type,
              unsigned char *answer, int anslen);

       int res_search(const char *dname, int class, int type,
              unsigned char *answer, int anslen);

       int res_querydomain(const char *name, const char *domain,
              int class, int type, unsigned char *answer,
              int anslen);

       int res_mkquery(int op, const char *dname, int class,
              int type, char *data, int datalen, struct rrec *newrr,
              char *buf, int buflen);

       int res_send(const char *msg, int msglen, char *answer,
              int anslen);

       int dn_comp(unsigned char *exp_dn, unsigned char *comp_dn,
              int length, unsigned char **dnptrs, unsigned char **lastdnptr);

       int dn_expand(unsigned char *msg, unsigned char *eomorig,
              unsigned char *comp_dn, char *exp_dn,
              int length);

       -lresolv でリンクする。

説明

       これらの関数はインターネットのドメインネームサーバーに問い合わせ、 その応答を解釈する。

       res_init()  関数は、デフォルトのドメイン名、検索順、ネームサーバー  アドレスを得るために設
       定ファイル (resolv.conf(5) 参照) を読む。 もしサーバーが示されていなければローカルホストを
       試す。  ドメインが示されていなければローカルホストに付けられたドメインを用いる。  環境変数
       LOCALDOMAIN  でオーバーライドできる。 res_init()  は、後述する関数のどれかが最初に呼び出さ
       れた時、その関数 から実行される。

       res_query()  関数は、指定された typeclass の 完全修飾ドメイン名 (FQDN) name を、ネーム
       サーバーへ問い合わせる。  応答は、呼び出した側によって用意される長さ anslenanswer バッ
       ファーに残される。

       res_search()  関数は、問い合わせを行い res_query()  同様その応答を  待つが、さらにデフォル
       トを実装しており RES_DEFNAMESRES_DNSRCH によって規定される検索ルールを適用する。 (下記
       _res オプションの説明を参照)

       res_querydomain()  関数は namedomain の結合に res_query() を用いて問い合わせを行う。

       次の関数は、 res_query()  で使われる下位ルーチンである。

       res_mkquery()  関数は、ドメイン名 dname の為に、長さ buflenbuf  に問い合わせるメッセー
       ジを作成する。 問い合わせの型 op は通常 QUERY だが、 <arpa/nameser.h> で定義された型のどれ
       でも良い。 newrr は現在使用されていない。

       res_send()  関数は、長さ msglenmsg に決められた書式 で問い合わせ、answer に長さ anslen
       の回答を返す。 まだ呼び出されていなければ res_init()  を呼び出す。

       dn_comp()   関数はドメイン名  exp_dn を圧縮して、長さ length のバッファー comp_dn に保存す
       る。 圧縮にはポインター配列 dnptrs を用いる。 これらのポインターは、現在のメッセージの中に
       ある以前に圧縮された名前を指す。    最初のポインターはメッセージの冒頭を指し、そのリストは
       NULL で終わる。 配列の範囲は lastdnptr で決められる。 dnptr が NULL ならばドメイン名は圧縮
       されない。 lastdnptr が NULL ならば、そのラベルのリストはアップデートされない。

       dn_expand()   関数は、圧縮されたドメイン名  comp_dn  からサイズ  が  lengthexp_dn バッ
       ファーに正式なドメイン名を展開する。  その圧縮された名前は、問い合わせ、または応答メッセー
       ジに含まれていて、 msg がメッセージの冒頭を指す。

       レゾルバ・ルーチンは、<resolv.h> に定義された _res 構造体に 含まれている全体的な設定と状態
       の情報を使用する。 通常ユーザーに操作できる項目は _res.options だけである。 この項目は以下
       のオプションのビット単位の論理和にできる。

       RES_INIT
              res_init()  が呼び出されていれば真。

       RES_DEBUG
              デバッグ情報を表示する。このオプションは、 glibc がデバッグを有効にしてコンパイルさ
              れている場合にのみ利用できる。  デフォルトでは  glibc  のデバッグは有効になっていな
              い。

       RES_AAONLY
              権威付けされた (authoritative) 回答のみ受け入れる。 res_send() は、最終的に権威付け
              された回答を得られるか、エラーが返される まで続行する。 [現在実装されていない]

       RES_USEVC
              問い合わせに UDP データグラムではなく TCP 接続を用いる。

       RES_PRIMARY
              プライマリ・ドメインネームサーバーのみ問い合わせる。

       RES_IGNTC
              切り詰めエラー (truncation error) を無視する。TCP でリトライしない。  [現在実装され
              ていない]

       RES_RECURSE
              再帰要求  (recursion desired) ビットを問い合わせに設定する。 再帰は res_send() では
              なくドメインネームサーバーによって行われる。 [デフォルトで有効]

       RES_DEFNAMES
              設定されていれば、  res_search()   はデフォルトのドメイン名を一部分  のみからなる名
              前、すなわちドットを含まない名前に付け加える。 [デフォルトで有効]

       RES_STAYOPEN
              問い合わせ中に TCP 接続を保つため RES_USEVC と共に用いられる。

       RES_DNSRCH
              設定されていれば、  res_search()   は現在のドメインおよび親ドメインの  ホスト名を探
              す。このオプションは gethostbyname(3)  で用いられる。 [デフォルトで有効]

       このリストは完全なものではない。 resolv.conf(5) には他にいくつかのフラグが記載されている。

返り値

       res_init()  関数は成功すれば 0 を、エラーが発生すれば -1 を返す。

       res_query(), res_search(), res_querydomain(), res_mkquery(), res_send()   関数は応答の長さ
       を返す。 また、エラーが発生すれば -1 を返す。

       dn_comp()  と dn_expand()  関数は圧縮されたドメイン名の長さを返す。 また、エラーが発生すれ
       ば -1 を返す。

ファイル

       /etc/resolv.conf          レゾルバ設定ファイル
       /etc/host.conf            レゾルバ設定ファイル

準拠

       4.3BSD.

関連項目

       gethostbyname(3), resolv.conf(5), resolver(5), hostname(7), named(8)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部  である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。