dn_comp() — リゾルバー・ドメイン・ネームの圧縮
標準
| 標準/拡張機能 | 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 dn_comp(const char *exp_dn, u_char *comp_dn, int length,
u_char **dnptrs, u_char **lastdnptr);
機能説明
dn_comp() 関数は、ドメイン・ネーム exp_dn を圧縮し、comp_dn に格納します。圧縮された名前のサイズが戻されますが、エラーの場合は -1 が戻されます。comp_dn が指す配列のサイズは、length により与えられます。圧縮では、現行メッセージ内の以前に圧縮された名前を指す、ポインターの配列 dnptrs が使用されます。最初のポインターは、メッセージの先頭を指し、リストは NULL で終わります。配列の限界は、lastdnptr で指定します。
dn_comp() の副次作用は、名前が圧縮されるときに、メッセージに挿入されるラベルのポインターのリストが更新されることです。dnptr が NULL の場合、名前は圧縮されていません。lastdnptr が NULL の場合、ラベルのリストは更新されていません。
注: dn_comp() 関数は、拡張 ASCII の拡張機能のレベルに依存します。詳細は、拡張 ASCII サポートを参照してください。
戻り値
正常に終了した場合、dn_comp() は、圧縮名のサイズを戻します。
正常に終了しなかった場合、dn_comp() は -1 を戻してエラーを報告します。このエラーは、圧縮する名前が、バッファーの最後に達するまでに検出されなかった場合です。
文書化された errno 値はありません。
関連情報
- arpa/nameser.h — DNS 要求の作成および検査
- netinet/in.h — インターネット・プロトコル・ファミリー
- resolv.h — IP アドレス解決
- sys/types.h — typedef シンボルおよび構造体
- dn_expand() — リゾルバー・ドメイン・ネームの展開
- dn_find() — リゾルバー・ドメイン・ネームの検出
- dn_skipname() — リゾルバー・ドメイン・ネームのスキップ
- res_init() - ドメイン・ネーム・リゾルバーの初期化
- res_mkquery() - ドメイン・ネーム・サーバー用のリゾルバー照会の作成
- res_query() - ドメイン・ネーム・サーバー用のリゾルバー照会
- res_querydomain() - ドメイン・ネームとリゾルバー照会の作成
- res_search() - ドメイン・ネーム・サーバー用のリゾルバー照会
- res_send() - ドメイン・ネーム・サーバー用のリゾルバー照会の送信