MeterLogger
mdns.h
Go to the documentation of this file.
1 /**
2  * lwip MDNS resolver header file.
3  *
4  * Created on: Jul 29, 2010
5  * Author: Daniel Toma
6 
7 
8  * ported from uIP resolv.c Copyright (c) 2002-2003, Adam Dunkels.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in the
17  * documentation and/or other materials provided with the distribution.
18  * 3. The name of the author may not be used to endorse or promote
19  * products derived from this software without specific prior
20  * written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
23  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
24  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
26  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
28  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
30  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
31  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33  */
34 
35 #ifndef __LWIP_DNS_H__
36 #define __LWIP_DNS_H__
37 
38 #include "lwip/opt.h"
39 
40 #if LWIP_MDNS /* don't build if not configured for use in lwipopts.h */
41 
42 /** DNS timer period */
43 #define DNS_TMR_INTERVAL 1000
44 
45 /** mDNS Address offset flag*/
46 #define DNS_OFFSET_FLAG 0xC0 /* the offset flag in the DNS message */
47 #define DNS_DEFAULT_OFFSET 0x0C /* the offset is set at the beginning of the DNS message */
48 
49 #define DNS_IP_ADDR_LEN 4
50 
51 
52 /** DNS field TYPE used for "Resource Records" */
53 #define DNS_RRTYPE_A 1 /* a host address */
54 #define DNS_RRTYPE_NS 2 /* an authoritative name server */
55 #define DNS_RRTYPE_MD 3 /* a mail destination (Obsolete - use MX) */
56 #define DNS_RRTYPE_MF 4 /* a mail forwarder (Obsolete - use MX) */
57 #define DNS_RRTYPE_CNAME 5 /* the canonical name for an alias */
58 #define DNS_RRTYPE_SOA 6 /* marks the start of a zone of authority */
59 #define DNS_RRTYPE_MB 7 /* a mailbox domain name (EXPERIMENTAL) */
60 #define DNS_RRTYPE_MG 8 /* a mail group member (EXPERIMENTAL) */
61 #define DNS_RRTYPE_MR 9 /* a mail rename domain name (EXPERIMENTAL) */
62 #define DNS_RRTYPE_NULL 10 /* a null RR (EXPERIMENTAL) */
63 #define DNS_RRTYPE_WKS 11 /* a well known service description */
64 #define DNS_RRTYPE_PTR 12 /* a domain name pointer */
65 #define DNS_RRTYPE_HINFO 13 /* host information */
66 #define DNS_RRTYPE_MINFO 14 /* mailbox or mail list information */
67 #define DNS_RRTYPE_MX 15 /* mail exchange */
68 #define DNS_RRTYPE_TXT 16 /* text strings */
69 #define DNS_RRTYPE_SRV 33 /* Service record */
70 #define DNS_RRTYPE_OPT 41 /* EDNS0 OPT record */
71 #define DNS_RRTYPE_TSIG 250 /* Transaction Signature */
72 #define DNS_RRTYPE_ANY 255 /*Not a DNS type, but a DNS query type, meaning "all types"*/
73 
74 /* DNS field CLASS used for "Resource Records" */
75 #define DNS_RRCLASS_IN 1 /* the Internet */
76 #define DNS_RRCLASS_CS 2 /* the CSNET class (Obsolete - used only for examples in some obsolete RFCs) */
77 #define DNS_RRCLASS_CH 3 /* the CHAOS class */
78 #define DNS_RRCLASS_HS 4 /* Hesiod [Dyer 87] */
79 #define DNS_RRCLASS_FLUSH 0x800 /* Flush bit */
80 #define DNS_RRCLASS_FLUSH_IN 0x8001/* Flush bit and Internet*/
81 
82 /** Callback which is invoked when a hostname is found.
83  * A function of this type must be implemented by the application using the DNS resolver.
84  * @param name pointer to the name that was looked up.
85  * @param ipaddr pointer to a struct ip_addr containing the IP address of the hostname,
86  * or NULL if the name could not be found (or on any other error).
87  * @param callback_arg a user-specified callback argument passed to dns_gethostbyname
88 */
89 #ifndef _MDNS_INFO
90 #define _MDNS_INFO
91 struct mdns_info {
92  char *host_name;
93  char *server_name;
95  unsigned long ipAddr;
96  char *txt_data[10];
97 };
98 #endif
99 //void mdns_enable(void);
100 //void mdns_disable(void);
101 //void mdns_init(struct mdns_info *info);
102 //void mdns_close(void);
103 //char* mdns_get_hostname(void);
104 //void mdns_set_hostname(char *name);
105 //void mdns_set_servername(const char *name);
106 //char* mdns_get_servername(void);
107 //void mdns_server_unregister(void);
108 //void mdns_server_register(void) ;
109 //void mdns_tmr(void);
110 //void Delay(unsigned long ulSeconds);
111 
112 #endif /* LWIP_DNS */
113 
114 #endif /* __LWIP_DNS_H__ */
unsigned short uint16
Definition: c_types.h:50
char * host_name
Definition: espconn.h:185
unsigned long ipAddr
Definition: espconn.h:188
uint16 server_port
Definition: espconn.h:187
char * txt_data[10]
Definition: espconn.h:189
char * server_name
Definition: espconn.h:186