DNSPod / dnspod-sr

A faster recursive dns server from DNSPod
Other
1.36k stars 328 forks source link

SOA记录是否要自己开发 #33

Closed cao19881125 closed 9 years ago

cao19881125 commented 9 years ago

看了看源码中不支持soa记录,是否要自己开发啊?

jfb8856606 commented 9 years ago

是支持SOA记录的 // //types we support at the moment const enum rrtype support_type[SUPPORT_TYPE_NUM] = { A, NS, CNAME, SOA, MX, TXT, AAAA, SRV, PTR };

cao19881125 commented 9 years ago

应该是不全支持吧,io.c中read_records_from_file函数只能解一下4种类型

if (strcmp((const char )tmptype, "NS") == 0) type = NS; else if (strcmp((const char )tmptype, "A") == 0) type = A; else if (strcmp((const char )tmptype, "AAAA") == 0) type = AAAA; else if (strcmp((const char )tmptype, "CNAME") == 0) type = CNAME;

fill_rrset_in_msg函数中也没有SOA

jfb8856606 commented 9 years ago

read_records_from_file函数只读取root.z中的内容,正常只需要支持NS/A/AAAA,为了方便劫持使用增加了CNAME,并不是实际解析支持的类型。 对SOA的解析时可以支持的,只是没有进行缓存,每次都是向授权重新请求的,然后将授权返回的SOA记录包直接透传到客户端。