Commit | Line | Data |
---|---|---|
dc0d77d7 CE |
1 | #include "scan.h" |
2 | #include "byte.h" | |
3 | #include "case.h" | |
4 | #include "dns.h" | |
5 | #include "uint16.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 | else | |
28 | return 0; | |
29 | ||
30 | return 1; | |
31 | } |