for(key_count = 0; key_count < ldns_rr_list_rr_count(key_verified);
key_count++) {
if (qdebug != -1) {
- mesg("VALIDATED by id = %d, owner = ",
+ printf("VALIDATED by id = %d, owner = ",
(int)ldns_calc_keytag(
ldns_rr_list_rr(key_verified, key_count)));
ldns_rdf_print(stdout, ldns_rr_owner(
for(key_count = 0; key_count < ldns_rr_list_rr_count(key_list);
key_count++) {
if (qdebug != -1) {
- mesg("BOGUS by id = %d, owner = ",
+ printf("BOGUS by id = %d, owner = ",
(int)ldns_calc_keytag(
ldns_rr_list_rr(key_list, key_count)));
ldns_rdf_print(stdout, ldns_rr_owner(
#define LDNS_RESOLV_CONF "/etc/resolv.conf"
#define LDNS_RESOLV_HOSTS "/etc/hosts"
-#define LDNS_RESOLV_KEYWORD 0
-#define LDNS_RESOLV_DEFDOMAIN 1
-#define LDNS_RESOLV_NAMESERVER 2
+#define LDNS_RESOLV_KEYWORD -1
+#define LDNS_RESOLV_DEFDOMAIN 0
+#define LDNS_RESOLV_NAMESERVER 1
+#define LDNS_RESOLV_SEARCH 2
+
+#define LDNS_RESOLV_KEYWORDS 3
#define LDNS_RESOLV_INETANY 0
#define LDNS_RESOLV_INET 1
void
ldns_resolver_push_searchlist(ldns_resolver *r, ldns_rdf *d)
{
+ ldns_rdf **searchlist;
+ uint16_t list_count;
+
+ if (ldns_rdf_get_type(d) != LDNS_RDF_TYPE_DNAME) {
+ return;
+ }
+
+ /* need functions XXX */
+ list_count = r->_searchlist_count;
+ searchlist = ldns_resolver_searchlist(r);
+
+ searchlist = LDNS_XREALLOC(searchlist, ldns_rdf *, (list_count + 1));
+ r->_searchlist = searchlist;
+
+ searchlist[list_count] = ldns_rdf_clone(d);
+ ldns_resolver_set_searchlist_count(r, list_count + 1);
+
r->_searchlist[++r->_searchlist_count] = ldns_rdf_clone(d);
}
ldns_resolver_new_frm_fp_l(FILE *fp, int *line_nr)
{
ldns_resolver *r;
- const char *keyword[2];
+ const char *keyword[LDNS_RESOLV_KEYWORDS];
char *word;
- uint8_t expect;
+ int8_t expect;
uint8_t i;
ldns_rdf *tmp;
ssize_t gtr;
*/
/* recognized keywords */
- keyword[0] = "domain";
- keyword[1] = "nameserver";
+ keyword[LDNS_RESOLV_DEFDOMAIN] = "domain";
+ keyword[LDNS_RESOLV_NAMESERVER] = "nameserver";
+ keyword[LDNS_RESOLV_SEARCH] = "search";
word = LDNS_XMALLOC(char, LDNS_MAX_LINELEN + 1);
expect = LDNS_RESOLV_KEYWORD;
switch(expect) {
case LDNS_RESOLV_KEYWORD:
/* keyword */
- for(i = 0; i < 2; i++) {
+ for(i = 0; i < LDNS_RESOLV_KEYWORDS; i++) {
if (strcasecmp(keyword[i], word) == 0) {
/* chosen the keyword and
* expect values carefully
*/
- expect = i + 1;
+ expect = i;
break;
}
}
/* no keyword recognized */
- if (expect == 0) {
+ if (expect == LDNS_RESOLV_KEYWORD) {
dprintf("[%s] unreg keyword\n", word);
}
break;
ldns_rdf_deep_free(tmp);
expect = LDNS_RESOLV_KEYWORD;
break;
+ case LDNS_RESOLV_SEARCH:
+ /* search list domain dname, will only work with 1 name! */
+ tmp = ldns_rdf_new_frm_str(LDNS_RDF_TYPE_DNAME, word);
+ if (!tmp) {
+ expect = LDNS_RESOLV_KEYWORD;
+ break;
+ }
+
+ ldns_resolver_push_searchlist(r, tmp);
+ ldns_rdf_deep_free(tmp);
+ expect = LDNS_RESOLV_KEYWORD;
+ break;
default:
/* huh?! */
dprintf("%s", "BIG FAT WARNING should never reach this\n");