You can now set the option `adns_ignoreunkcfg'. This is relevant to
Debian #411263.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
lwserver 127.0.0.1
options timeout:1 attempts:30 rotate no-check-names inet6 edns0 wombat
stoat
lwserver 127.0.0.1
options timeout:1 attempts:30 rotate no-check-names inet6 edns0 wombat
stoat
+options adns_ignoreunkcfg wombat2
+stoat2
* Lookups occur (logically) concurrently; use the `sortlist' directive to
* control the relative order of addresses in answers. This option
* overrides the corresponding init flags (covered by adns_if_afmask).
* Lookups occur (logically) concurrently; use the `sortlist' directive to
* control the relative order of addresses in answers. This option
* overrides the corresponding init flags (covered by adns_if_afmask).
+ *
+ * adns_ignoreunkcfg
+ * Ignore unknown options and configuration directives, rather than
+ * logging them. To be effective, appear in the configuration
+ * before the unknown options. ADNS_RES_OPTIONS is generally early
+ * enough.
*
* There are a number of environment variables which can modify the
* behaviour of adns. They take effect only if adns_init is used, and
*
* There are a number of environment variables which can modify the
* behaviour of adns. They take effect only if adns_init is used, and
adns_sockaddr base, mask;
} sortlist[MAXSORTLIST];
char **searchlist;
adns_sockaddr base, mask;
} sortlist[MAXSORTLIST];
char **searchlist;
+ unsigned config_report_unknown:1;
unsigned short rand48xsubi[3];
};
unsigned short rand48xsubi[3];
};
+ if (OPTION_IS("adns_ignoreunkcfg")) {
+ ads->config_report_unknown=0;
+ continue;
+ }
if (/* adns's query strategy is not configurable */
OPTION_STARTS("timeout:") ||
OPTION_STARTS("attempts:") ||
if (/* adns's query strategy is not configurable */
OPTION_STARTS("timeout:") ||
OPTION_STARTS("attempts:") ||
/* adns does not do edns0 and this is not a problem */
OPTION_IS("edns0"))
continue;
/* adns does not do edns0 and this is not a problem */
OPTION_IS("edns0"))
continue;
- adns__diag(ads,-1,0,"%s:%d: unknown option `%.*s'", fn,lno, l,word);
+ if (ads->config_report_unknown)
+ adns__diag(ads,-1,0,"%s:%d: unknown option `%.*s'", fn,lno, l,word);
adns__diag(ads,-1,0,"%s:%d: yp lookups not supported by adns", fn,lno);
found_bind=-1;
} else {
adns__diag(ads,-1,0,"%s:%d: yp lookups not supported by adns", fn,lno);
found_bind=-1;
} else {
- adns__diag(ads,-1,0,"%s:%d: unknown `lookup' database `%.*s'",
- fn,lno, l,word);
+ if (ads->config_report_unknown)
+ adns__diag(ads,-1,0,"%s:%d: unknown `lookup' database `%.*s'",
+ fn,lno, l,word);
!(strlen(ccip->name)==dirl && !memcmp(ccip->name,p,q-p));
ccip++);
if (!ccip->name) {
!(strlen(ccip->name)==dirl && !memcmp(ccip->name,p,q-p));
ccip++);
if (!ccip->name) {
- adns__diag(ads,-1,0,"%s:%d: unknown configuration directive `%.*s'",
- filename,lno,(int)(q-p),p);
+ if (ads->config_report_unknown)
+ adns__diag(ads,-1,0,"%s:%d: unknown configuration directive `%.*s'",
+ filename,lno,(int)(q-p),p);
continue;
}
while (ctype_whitespace(*q)) q++;
continue;
}
while (ctype_whitespace(*q)) q++;
ads->tcpstate= server_disconnected;
timerclear(&ads->tcptimeout);
ads->searchlist= 0;
ads->tcpstate= server_disconnected;
timerclear(&ads->tcptimeout);
ads->searchlist= 0;
+ ads->config_report_unknown=1;
pid= getpid();
ads->rand48xsubi[0]= pid;
pid= getpid();
ads->rand48xsubi[0]= pid;