52 #ifdef STRCASECMP_IN_STRINGS_H
71 #define LIBDNS_INTERNAL
79 static DNS_RR dns_rr_filter_error[1];
81 #define STR vstring_str
87 if (dns_rr_filter_maps != 0)
95 static DNS_RR *dns_rr_action(
const char *cmd,
DNS_RR *rr,
const char *rr_text)
97 const char *cmd_args = cmd + strcspn(cmd,
" \t");
98 int cmd_len = cmd_args - cmd;
100 while (*cmd_args &&
ISSPACE(*cmd_args))
103 #define STREQUAL(x,y,l) (strncasecmp((x), (y), (l)) == 0 && (y)[l] == 0)
105 if (
STREQUAL(cmd,
"IGNORE", cmd_len)) {
106 msg_info(
"ignoring DNS RR: %s", rr_text);
109 msg_warn(
"%s: unknown DNS filter action: \"%s\"",
110 dns_rr_filter_maps->
title, cmd);
111 return (dns_rr_filter_error);
132 for (rrp = rrlist; (rr = *rrp) != 0; ) {
136 if ((act_res = dns_rr_action(map_res, rr,
STR(buf))) == 0) {
141 }
else if (act_res == dns_rr_filter_error) {
144 }
else if (dns_rr_filter_maps->
error) {
#define STREQUAL(x, y, l)
#define DICT_FLAG_FOLD_FIX
MAPS * dns_rr_filter_maps
MAPS * maps_create(const char *title, const char *map_names, int dict_flags)
void dns_rr_filter_compile(const char *title, const char *map_names)
void msg_warn(const char *fmt,...)
VSTRING * vstring_alloc(ssize_t len)
MAPS * maps_free(MAPS *maps)
int dns_rr_filter_execute(DNS_RR **rrlist)
char * dns_strrecord(VSTRING *, DNS_RR *)
const char * maps_find(MAPS *maps, const char *name, int flags)
void dns_rr_free(DNS_RR *)
void msg_info(const char *fmt,...)