ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid-7.2/include/irc_res.h
Revision: 912
Committed: Wed Nov 7 22:47:44 2007 UTC (17 years, 9 months ago) by michael
Content type: text/x-chdr
File size: 2818 byte(s)
Log Message:
- Implemented libtool-ltdl. Only shared modules are supported currently
- Several build fixes and cleanups. ircd now builds and runs without any problems
- Added back all files to SVN that are needed to built the daemon
  I really don't want to force other people that want to test the snapshots
  or svn versions to install yyacc, lex, automake, autoconf and libtool...
  No problem having required files in svn
- Removed some automake maintainer stuff which is kinda useless for us

File Contents

# Content
1 /*
2 * include/irc_res.h for referencing functions in src/irc_res.c
3 *
4 * $Id$
5 */
6
7 #ifndef INCLUDED_irc_res_h
8 #define INCLUDED_irc_res_h
9
10 #include "listener.h"
11 #include "config.h"
12
13 /* Here we define some values lifted from nameser.h */
14 #define NS_NOTIFY_OP 4
15 #define NS_INT16SZ 2
16 #define NS_IN6ADDRSZ 16
17 #define NS_INADDRSZ 4
18 #define NS_INT32SZ 4
19 #define NS_CMPRSFLGS 0xc0
20 #define NS_MAXCDNAME 255
21 #define QUERY 0
22 #define IQUERY 1
23 #define NO_ERRORS 0
24 #define SERVFAIL 2
25 #define NXDOMAIN 3
26 #define T_A 1
27 #define T_AAAA 28
28 #define T_PTR 12
29 #define T_CNAME 5
30 #define T_NULL 10
31 #define C_IN 1
32 #define QFIXEDSZ 4
33 #define RRFIXEDSZ 10
34 #define HFIXEDSZ 12
35
36 struct DNSReply
37 {
38 char *h_name;
39 struct irc_ssaddr addr;
40 };
41
42 struct DNSQuery
43 {
44 #ifdef _WIN32
45 dlink_node node;
46 HANDLE handle;
47 char reply[MAXGETHOSTSTRUCT];
48 #endif
49 void *ptr; /* pointer used by callback to identify request */
50 void (*callback)(void* vptr, struct DNSReply *reply); /* callback to call */
51 };
52
53 typedef struct
54 {
55 unsigned id :16; /* query identification number */
56 #ifdef WORDS_BIGENDIAN
57 /* fields in third byte */
58 unsigned qr: 1; /* response flag */
59 unsigned opcode: 4; /* purpose of message */
60 unsigned aa: 1; /* authoritive answer */
61 unsigned tc: 1; /* truncated message */
62 unsigned rd: 1; /* recursion desired */
63 /* fields in fourth byte */
64 unsigned ra: 1; /* recursion available */
65 unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */
66 unsigned ad: 1; /* authentic data from named */
67 unsigned cd: 1; /* checking disabled by resolver */
68 unsigned rcode :4; /* response code */
69 #else
70 /* fields in third byte */
71 unsigned rd :1; /* recursion desired */
72 unsigned tc :1; /* truncated message */
73 unsigned aa :1; /* authoritive answer */
74 unsigned opcode :4; /* purpose of message */
75 unsigned qr :1; /* response flag */
76 /* fields in fourth byte */
77 unsigned rcode :4; /* response code */
78 unsigned cd: 1; /* checking disabled by resolver */
79 unsigned ad: 1; /* authentic data from named */
80 unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */
81 unsigned ra :1; /* recursion available */
82 #endif
83 /* remaining bytes */
84 unsigned qdcount :16; /* number of question entries */
85 unsigned ancount :16; /* number of answer entries */
86 unsigned nscount :16; /* number of authority entries */
87 unsigned arcount :16; /* number of resource entries */
88 } HEADER;
89
90 extern void init_resolver(void);
91 extern void restart_resolver(void);
92 extern void delete_resolver_queries(const struct DNSQuery *);
93 extern void report_dns_servers(struct Client *);
94 extern void gethost_byname_type(const char *, struct DNSQuery *, int);
95 extern void gethost_byname(const char *, struct DNSQuery *);
96 extern void gethost_byaddr(const struct irc_ssaddr *, struct DNSQuery *);
97 extern void add_local_domain(char *, size_t);
98
99 #endif

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision