djbdnscurve6  38
djbdnscurve6
parsetype.c
Go to the documentation of this file.
1 #include "scan.h"
2 #include "byte.h"
3 #include "case.h"
4 #include "dns.h"
5 #include "uint_t.h"
6 #include "parsetype.h"
7 
8 int parsetype(char *s,char type[2])
9 {
10  unsigned long u;
11 
12  if (!s[scan_ulong(s,&u)]) uint16_pack_big(type,u);
13  else if (case_equals(s,"any")) byte_copy(type,2,DNS_T_ANY);
14  else if (case_equals(s,"a")) byte_copy(type,2,DNS_T_A);
15  else if (case_equals(s,"ns")) byte_copy(type,2,DNS_T_NS);
16  else if (case_equals(s,"mx")) byte_copy(type,2,DNS_T_MX);
17  else if (case_equals(s,"ptr")) byte_copy(type,2,DNS_T_PTR);
18  else if (case_equals(s,"txt")) byte_copy(type,2,DNS_T_TXT);
19  else if (case_equals(s,"cname")) byte_copy(type,2,DNS_T_CNAME);
20  else if (case_equals(s,"soa")) byte_copy(type,2,DNS_T_SOA);
21  else if (case_equals(s,"hinfo")) byte_copy(type,2,DNS_T_HINFO);
22  else if (case_equals(s,"rp")) byte_copy(type,2,DNS_T_RP);
23  else if (case_equals(s,"sig")) byte_copy(type,2,DNS_T_SIG);
24  else if (case_equals(s,"key")) byte_copy(type,2,DNS_T_KEY);
25  else if (case_equals(s,"aaaa")) byte_copy(type,2,DNS_T_AAAA);
26  else if (case_equals(s,"axfr")) byte_copy(type,2,DNS_T_AXFR);
27 //
28  else if (case_equals(s,"naptr")) byte_copy(type,2,DNS_T_NAPTR);
29  else if (case_equals(s,"cert")) byte_copy(type,2,DNS_T_CERT);
30  else if (case_equals(s,"opt")) byte_copy(type,2,DNS_T_OPT);
31  else if (case_equals(s,"ds")) byte_copy(type,2,DNS_T_DS);
32  else if (case_equals(s,"srv")) byte_copy(type,2,DNS_T_SRV);
33  else if (case_equals(s,"sshfp")) byte_copy(type,2,DNS_T_SSHFP);
34  else if (case_equals(s,"ipseckey")) byte_copy(type,2,DNS_T_IPSECKEY);
35  else if (case_equals(s,"rrsig")) byte_copy(type,2,DNS_T_RRSIG);
36  else if (case_equals(s,"nsec")) byte_copy(type,2,DNS_T_NSEC);
37  else if (case_equals(s,"dnskey")) byte_copy(type,2,DNS_T_DNSKEY);
38  else if (case_equals(s,"nsec3")) byte_copy(type,2,DNS_T_NSEC3);
39  else if (case_equals(s,"nsec3param")) byte_copy(type,2,DNS_T_NSEC3PARAM);
40  else if (case_equals(s,"tlsa")) byte_copy(type,2,DNS_T_TLSA);
41  else if (case_equals(s,"hip")) byte_copy(type,2,DNS_T_HIP);
42  else if (case_equals(s,"openpgpkey")) byte_copy(type,2,DNS_T_OPENPGPKEY);
43  else if (case_equals(s,"spf")) byte_copy(type,2,DNS_T_SPF);
44  else if (case_equals(s,"caa")) byte_copy(type,2,DNS_T_CAA);
45  else
46  return 0;
47 
48  return 1;
49 }
#define DNS_T_OPENPGPKEY
Definition: dns.h:63
#define DNS_T_SRV
Definition: dns.h:49
#define DNS_T_NSEC3
Definition: dns.h:59
#define DNS_T_CERT
Definition: dns.h:51
#define DNS_T_A
Definition: dns.h:37
#define DNS_T_TLSA
Definition: dns.h:61
#define DNS_T_CAA
Definition: dns.h:67
#define DNS_T_AXFR
Definition: dns.h:65
#define DNS_T_HIP
Definition: dns.h:62
#define DNS_T_SSHFP
Definition: dns.h:54
#define DNS_T_RRSIG
Definition: dns.h:56
#define DNS_T_DS
Definition: dns.h:53
#define DNS_T_IPSECKEY
Definition: dns.h:55
#define DNS_T_ANY
Definition: dns.h:66
#define DNS_T_TXT
Definition: dns.h:44
#define DNS_T_RP
Definition: dns.h:45
#define DNS_T_OPT
Definition: dns.h:52
#define DNS_T_SIG
Definition: dns.h:46
#define DNS_T_PTR
Definition: dns.h:41
#define DNS_T_KEY
Definition: dns.h:47
#define DNS_T_SOA
Definition: dns.h:40
#define DNS_T_NS
Definition: dns.h:38
#define DNS_T_CNAME
Definition: dns.h:39
#define DNS_T_AAAA
Definition: dns.h:48
#define DNS_T_NAPTR
Definition: dns.h:50
#define DNS_T_DNSKEY
Definition: dns.h:58
#define DNS_T_MX
Definition: dns.h:43
#define DNS_T_HINFO
Definition: dns.h:42
#define DNS_T_NSEC3PARAM
Definition: dns.h:60
#define DNS_T_SPF
Definition: dns.h:64
#define DNS_T_NSEC
Definition: dns.h:57
char type[2]
Definition: dnsq.c:56
int parsetype(char *s, char type[2])
Definition: parsetype.c:8
unsigned long u
Definition: utime.c:10