djbdnscurve6  38
djbdnscurve6
dns_nd.c
Go to the documentation of this file.
1 #include "byte.h"
2 #include "fmt.h"
3 #include "ip.h"
4 #include "dns.h"
5 
6 int dns_name4_domain(char name[DNS_NAME4_DOMAIN],const char ip[4])
7 {
8  unsigned int namelen;
9  unsigned int i;
10 
11  namelen = 0;
12  i = fmt_ulong(name + namelen + 1,(unsigned long) (unsigned char) ip[3]);
13  name[namelen++] = i;
14  namelen += i;
15  i = fmt_ulong(name + namelen + 1,(unsigned long) (unsigned char) ip[2]);
16  name[namelen++] = i;
17  namelen += i;
18  i = fmt_ulong(name + namelen + 1,(unsigned long) (unsigned char) ip[1]);
19  name[namelen++] = i;
20  namelen += i;
21  i = fmt_ulong(name + namelen + 1,(unsigned long) (unsigned char) ip[0]);
22  name[namelen++] = i;
23  namelen += i;
24  byte_copy(name + namelen,14,"\7in-addr\4arpa\0");
25  return namelen+14;
26 }
27 
28 int dns_name6_domain(char name[DNS_NAME6_DOMAIN],const char ip[16])
29 {
30  unsigned int j;
31 
32  for (j = 0; j < 16; j++) {
33  name[j*4] = 1;
34  name[j*4+1] = tohex(ip[15-j] & 15);
35  name[j*4+2] = 1;
36  name[j*4+3] = tohex((unsigned char)ip[15-j] >> 4);
37  }
38  byte_copy(name + 4*16,10,"\3ip6\4arpa\0");
39  return 4*16+10;
40 }
char ip[16]
Definition: axfrdns.c:126
#define DNS_NAME4_DOMAIN
Definition: dns.h:144
#define DNS_NAME6_DOMAIN
Definition: dns.h:157
int dns_name4_domain(char name[DNS_NAME4_DOMAIN], const char ip[4])
Definition: dns_nd.c:6
int dns_name6_domain(char name[DNS_NAME6_DOMAIN], const char ip[16])
Definition: dns_nd.c:28
char name[DNS_NAME6_DOMAIN]
Definition: dnsfilter.c:52