/*	
 *	clipdns.h
 *
 *	DNSクライアント
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2001-2005 Naoyuki Sawa
 *
 *	* Thu Sep 22 05:58:00 JST 2005 Naoyuki Sawa
 *	- 1st リリース。
 *	* Wed Nov 18 21:37:53 JST 2015 Naoyuki Sawa
 *	- 'extern "C" {'〜'}'で囲みました。.cppを含むWin32プロジェクトからもインクルード出来るようにするためです。
 */
#ifndef __CLIP_DNS_H__
#define __CLIP_DNS_H__

#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus

/****************************************************************************
 *	DNSクライアント
 ****************************************************************************/

/* DNSサーバのIPアドレスを設定します。
 * [in]
 *	ip_address	DNSサーバのIPアドレス。
 */
void dns_set_server(int ip_address);

/* DNSサーバのIPアドレスを取得します。
 * [out]
 *	戻り値		DNSサーバのIPアドレス。
 */
int dns_get_server();

/* DNSサーバに対し、指定したドメイン名に対応する、IPアドレスを要求します。
 * [in]
 *	qname		ドメイン名。
 *	timeout		タイムアウト時間。
 *			負数ならば、既定のタイムアウト時間を使用します。
 * [out]
 *	戻り値		成功ならば、IPアドレスを返します。
 *			失敗ならば、0を返します。
 * [note]
 *	* あらかじめ、dns_set_server()を呼んで、利用するDNSサーバのIPアドレスを設定しておいてください。
 *	  dns_set_server()を呼ばずに本関数を使ったり、DNSサーバが無効だった場合は、本関数は失敗します。
 * [interrupt]
 *	通常処理	割り込み許可状態での呼び出し	○
 *	通常処理	割り込み禁止状態での呼び出し	×
 *	割り込み処理	割り込み禁止状態での呼び出し	×
 */
int dns_query(const char* qname, int timeout);

#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus

#endif /*__CLIP_DNS_H__*/
