DNSユーティリティー関数

libuvは、getaddrinfoとgetnameinfoの非同期版を提供します。

データ型

type uv_getaddrinfo_t

getaddrinfoリクエストの型です。

typedef void (*uv_getaddrinfo_cb)(uv_getaddrinfo_t *req, int status, struct addrinfo *res)

getaddrinfoリクエストが完了すると、その結果とともに呼び出されるコールバックです。キャンセルされた場合、statusの値はUV_ECANCELEDになります。

type uv_getnameinfo_t

getnameinfoリクエストの型です。

typedef void (*uv_getnameinfo_cb)(uv_getnameinfo_t *req, int status, const char *hostname, const char *service)

getnameinfoリクエストが完了すると、その結果とともに呼び出されるコールバックです。キャンセルされた場合、statusの値はUV_ECANCELEDになります。

公開メンバー

uv_loop_t *uv_getaddrinfo_t.loop

このgetaddrinfoリクエストを開始したループであり、完了の報告先です。読み取り専用です。

struct addrinfo *uv_getaddrinfo_t.addrinfo

結果を含むstruct addrinfoへのポインターです。ユーザーがuv_freeaddrinfo()で解放する必要があります。

バージョン1.3.0での変更: このフィールドを公開メンバーとして宣言しました。

uv_loop_t *uv_getnameinfo_t.loop

このgetnameinfoリクエストを開始したループであり、完了の報告先です。読み取り専用です。

char[NI_MAXHOST] uv_getnameinfo_t.host

結果のホストを含む文字配列です。ヌル終端します。

バージョン1.3.0での変更: このフィールドを公開メンバーとして宣言しました。

char[NI_MAXSERV] uv_getnameinfo_t.service

結果のサービスを含む文字配列です。ヌル終端します。

バージョン1.3.0での変更: このフィールドを公開メンバーとして宣言しました。

関連項目

次の型のuv_req_tメンバーも適用されます。

API

int uv_getaddrinfo(uv_loop_t *loop, uv_getaddrinfo_t *req, uv_getaddrinfo_cb getaddrinfo_cb, const char *node, const char *service, const struct addrinfo *hints)

次の関数の非同期版です: getaddrinfo(3)。

nodeとserviceのどちらか一方はNULLでも構いませんが、両方をNULLにはできません。

hintsは、アドレスの型に追加の制約を指定するstruct addrinfoへのポインター、またはNULLです。詳しくは、man -s 3 getaddrinfoを参照してください。

成功時は0、失敗時は0未満のエラーコードを返します。成功した場合、後でコールバックを呼び出し、次のいずれかの検索結果を渡します。

  • status == 0の場合、res引数は有効なstruct addrinfoを指します。

  • status < 0の場合、res引数はNULLです。UV_EAI_*定数を参照してください。

addrinfo構造体を解放するには、uv_freeaddrinfo()を呼び出してください。

バージョン1.3.0での変更: コールバックパラメーターにNULLを指定できるようになりました。その場合、リクエストは同期的に実行します。

void uv_freeaddrinfo(struct addrinfo *ai)

struct addrinfoを解放します。NULLを渡しても構いません。その場合は何もしません。

int uv_getnameinfo(uv_loop_t *loop, uv_getnameinfo_t *req, uv_getnameinfo_cb getnameinfo_cb, const struct sockaddr *addr, int flags)

次の関数の非同期版です: getnameinfo(3)。

成功時は0、失敗時は0未満のエラーコードを返します。成功した場合、後でコールバックを呼び出し、検索結果を渡します。詳しくは、man -s 3 getnameinfoを参照してください。

バージョン1.3.0での変更: コールバックパラメーターにNULLを指定できるようになりました。その場合、リクエストは同期的に実行します。

関連項目

次の型のuv_req_tAPI関数も適用されます。