Mercurial > dnsbl
comparison src/dnsbl.cpp @ 415:16451edcb962
spf code now handles mx,exists,ptr tags, multiple A records, %{i} macro
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Tue, 25 Apr 2017 15:23:33 -0700 |
parents | d5a1ed33d3ae |
children | 91f2a127ec69 |
comparison
equal
deleted
inserted
replaced
414:d5a1ed33d3ae | 415:16451edcb962 |
---|---|
433 if ((qtype == ns_t_mx) && (my_answer) && (my_size > 1)) { | 433 if ((qtype == ns_t_mx) && (my_answer) && (my_size > 1)) { |
434 uint32_t c = 0; | 434 uint32_t c = 0; |
435 while (ns_parserr(&handle, ns_s_an, rrnum++, &rr) == 0) { | 435 while (ns_parserr(&handle, ns_s_an, rrnum++, &rr) == 0) { |
436 if (ns_rr_type(rr) == qtype) { | 436 if (ns_rr_type(rr) == qtype) { |
437 char exchange[NS_MAXDNAME]; | 437 char exchange[NS_MAXDNAME]; |
438 size_t rdlen = ns_rr_rdlen(rr); | 438 //size_t rdlen = ns_rr_rdlen(rr); |
439 //const uint16_t pri = ns_get16(rdata); | |
439 const unsigned char *rdata = ns_rr_rdata(rr); | 440 const unsigned char *rdata = ns_rr_rdata(rr); |
440 const uint16_t pri = ns_get16(rdata); | |
441 int len = dn_expand(glom.answer, glom.answer+glom.length, rdata + 2, exchange, sizeof(exchange)); | 441 int len = dn_expand(glom.answer, glom.answer+glom.length, rdata + 2, exchange, sizeof(exchange)); |
442 if ((len > 0) && (my_size > len+2)) { | 442 if ((len > 0) && (my_size > (uint32_t)len+2)) { |
443 strcpy(my_answer, exchange); | 443 strcpy(my_answer, exchange); |
444 my_answer += len + 1; | 444 my_answer += len + 1; |
445 my_size -= len + 1; | 445 my_size -= len + 1; |
446 c++; | 446 c++; |
447 } | 447 } |
1731 my_syslog(&priv, buf); | 1731 my_syslog(&priv, buf); |
1732 } | 1732 } |
1733 } | 1733 } |
1734 | 1734 |
1735 CONTEXT *con = NULL; | 1735 CONTEXT *con = NULL; |
1736 const char *st; | 1736 const char *st = token_black; |
1737 for (context_map::iterator i=priv.env_to.begin(); i!=priv.env_to.end(); i++) { | 1737 for (context_map::iterator i=priv.env_to.begin(); i!=priv.env_to.end(); i++) { |
1738 const char *rcpt = (*i).first; | 1738 const char *rcpt = (*i).first; |
1739 CONTEXT *next = (*i).second; | 1739 CONTEXT *next = (*i).second; |
1740 if (con != next) { | 1740 if (con != next) { |
1741 con = next; | 1741 con = next; |