uIP 1.0
|
00001 /** 00002 * \addtogroup resolv 00003 * @{ 00004 */ 00005 /** 00006 * \file 00007 * Заголовочный файл для DNS resolver. 00008 * \author Adam Dunkels <adam@dunkels.com> 00009 */ 00010 00011 /* 00012 * Copyright (c) 2002-2003, Adam Dunkels. 00013 * Все права зарезервированы. * 00014 * Повторное распространение, использование в исходном и двоичном виде, 00015 * с модификацией или без - разрешается, если выполняются следующие 00016 * условия: 00017 * 1. Распространение исходного кода должно сохранить вышеуказанную пометку 00018 * копирайта, этот список условий и следующую правовую оговорку. 00019 * 2. Распространение исходного кода должно сохранить вышеуказанную пометку 00020 * копирайта, этот список условий и следующую правовую оговорку в 00021 * документации и/или других материалах, которые будут предоставлены 00022 * вместе с распространяемыми материалами. 00023 * 3. Имя автора не может использоваться, чтобы подтвердить или продвинуть 00024 * продукты, написанные с использованием этого программного обеспечения 00025 * без специального на то разрешения. 00026 * 00027 * ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ АВТОРОМ ``КАК ЕСТЬ'', БЕЗ 00028 * КАКОЙ-ЛИБО ЛЮБОЙ РАСШИРЕННОЙ ИЛИ ПОДРАЗУМЕВАЕМОЙ ГАРАНТИИ, ВКЛЮЧАЯ, 00029 * НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ГАРАНТИИ ВЫСОКОГО СПРОСА И ПРИГОДНОСТИ 00030 * ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. АВТОР НИ ПРИ КАКИХ УСЛОВИЯХ НЕ ОТВЕТСТВЕНЕН 00031 * ЗА ЛЮБЫЕ УБЫТКИ - ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ОБРАЗЦОВЫЕ 00032 * ИЛИ ПОСЛЕДОВАТЕЛЬНЫЕ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ТРЕБОВАНИЯ 00033 * ЗАМЕНЫ ТОВАРА ИЛИ СЕРВИСА; ПОТЕРИ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ВЫГОДЫ; 00034 * ИЛИ ПРЕКРАЩЕНИЕ БИЗНЕСА), ОДНАКО ВЫЗВАННЫЕ ПО ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, 00035 * ЛИБО В КОНТРАКТЕ, ПРЯМОЙ ОТВЕТСТВЕННОСТИ, ЛИБО В НАРУШЕНИИ ЗАКОННЫХ ПРАВ 00036 * (ВКЛЮЧАЯ ТАК ИЛИ ИНАЧЕ НЕБРЕЖНОСТЬ), ВОЗНИКАЮЩИЕ ВСЕГДА ИЗ ИСПОЛЬЗОВАНИЯ 00037 * ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ БЫЛО ПРЕДУПРЕЖДЕНИЕ О ВОЗМОЖНОСТИ 00038 * ТАКОГО ПОВРЕЖДЕНИЯ. 00039 * 00040 * Этот файл является частью стека uIP TCP/IP. 00041 * 00042 * $Id: resolv.h,v 1.4 2006/06/11 21:46:37 adam Exp $ 00043 * 00044 */ 00045 #ifndef __RESOLV_H__ 00046 #define __RESOLV_H__ 00047 00048 typedef int uip_udp_appstate_t; 00049 void resolv_appcall(void); 00050 #define UIP_UDP_APPCALL resolv_appcall 00051 00052 #include "uipopt.h" 00053 00054 /** 00055 * Функция обратного вызова (callback), которая будет вызвана, когда найдено 00056 * имя хоста. 00057 * 00058 * Эта функция должна быть релаизована модулем, который использует 00059 * DNS resolver. Она вызывается, когда имя хоста найдено, или когда не найдено. 00060 * 00061 * \param name Указатель на имя, которое ищется. 00062 * \param ipaddr Указатель на 4-байтный массив, содержащий адрес IP имени хоста 00063 * или NULL, если имя не было найдено. 00064 */ 00065 void resolv_found(char *name, u16_t *ipaddr); 00066 00067 /* Функции. */ 00068 void resolv_conf(u16_t *dnsserver); 00069 u16_t *resolv_getserver(void); 00070 void resolv_init(void); 00071 u16_t *resolv_lookup(char *name); 00072 void resolv_query(char *name); 00073 00074 #endif /* __RESOLV_H__ */ 00075 00076 /** @} */