mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
- Fixup ldns-testpkts, identical to ldns/examples.
git-svn-id: file:///svn/unbound/trunk@2779 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
c3f6ca3997
commit
4bc1bfeb20
5 changed files with 22 additions and 13 deletions
|
|
@ -1,3 +1,6 @@
|
||||||
|
7 November 2012: Wouter
|
||||||
|
- Fixup ldns-testpkts, identical to ldns/examples.
|
||||||
|
|
||||||
30 October 2012: Wouter
|
30 October 2012: Wouter
|
||||||
- Fix bug #477: unbound-anchor segfaults if EDNS is blocked.
|
- Fix bug #477: unbound-anchor segfaults if EDNS is blocked.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -426,7 +426,7 @@ get_origin(const char* name, int lineno, ldns_rdf** origin, char* parse)
|
||||||
/* Reads one entry from file. Returns entry or NULL on error. */
|
/* Reads one entry from file. Returns entry or NULL on error. */
|
||||||
struct entry*
|
struct entry*
|
||||||
read_entry(FILE* in, const char* name, int *lineno, uint32_t* default_ttl,
|
read_entry(FILE* in, const char* name, int *lineno, uint32_t* default_ttl,
|
||||||
ldns_rdf** origin, ldns_rdf** prev_rr)
|
ldns_rdf** origin, ldns_rdf** prev_rr, int skip_whitespace)
|
||||||
{
|
{
|
||||||
struct entry* current = NULL;
|
struct entry* current = NULL;
|
||||||
char line[MAX_LINE];
|
char line[MAX_LINE];
|
||||||
|
|
@ -507,14 +507,17 @@ read_entry(FILE* in, const char* name, int *lineno, uint32_t* default_ttl,
|
||||||
/* it must be a RR, parse and add to packet. */
|
/* it must be a RR, parse and add to packet. */
|
||||||
ldns_rr* n = NULL;
|
ldns_rr* n = NULL;
|
||||||
ldns_status status;
|
ldns_status status;
|
||||||
|
char* rrstr = line;
|
||||||
|
if (skip_whitespace)
|
||||||
|
rrstr = parse;
|
||||||
if(add_section == LDNS_SECTION_QUESTION)
|
if(add_section == LDNS_SECTION_QUESTION)
|
||||||
status = ldns_rr_new_question_frm_str(
|
status = ldns_rr_new_question_frm_str(
|
||||||
&n, parse, *origin, prev_rr);
|
&n, rrstr, *origin, prev_rr);
|
||||||
else status = ldns_rr_new_frm_str(&n, parse,
|
else status = ldns_rr_new_frm_str(&n, rrstr,
|
||||||
*default_ttl, *origin, prev_rr);
|
*default_ttl, *origin, prev_rr);
|
||||||
if(status != LDNS_STATUS_OK)
|
if(status != LDNS_STATUS_OK)
|
||||||
error("%s line %d:\n\t%s: %s", name, *lineno,
|
error("%s line %d:\n\t%s: %s", name, *lineno,
|
||||||
ldns_get_errorstr_by_id(status), parse);
|
ldns_get_errorstr_by_id(status), rrstr);
|
||||||
ldns_pkt_push_rr(cur_reply->reply, add_section, n);
|
ldns_pkt_push_rr(cur_reply->reply, add_section, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -532,7 +535,7 @@ read_entry(FILE* in, const char* name, int *lineno, uint32_t* default_ttl,
|
||||||
|
|
||||||
/* reads the canned reply file and returns a list of structs */
|
/* reads the canned reply file and returns a list of structs */
|
||||||
struct entry*
|
struct entry*
|
||||||
read_datafile(const char* name)
|
read_datafile(const char* name, int skip_whitespace)
|
||||||
{
|
{
|
||||||
struct entry* list = NULL;
|
struct entry* list = NULL;
|
||||||
struct entry* last = NULL;
|
struct entry* last = NULL;
|
||||||
|
|
@ -549,7 +552,7 @@ read_datafile(const char* name)
|
||||||
}
|
}
|
||||||
|
|
||||||
while((current = read_entry(in, name, &lineno, &default_ttl,
|
while((current = read_entry(in, name, &lineno, &default_ttl,
|
||||||
&origin, &prev_rr)))
|
&origin, &prev_rr, skip_whitespace)))
|
||||||
{
|
{
|
||||||
if(last)
|
if(last)
|
||||||
last->next = current;
|
last->next = current;
|
||||||
|
|
|
||||||
|
|
@ -197,8 +197,9 @@ struct entry {
|
||||||
/**
|
/**
|
||||||
* reads the canned reply file and returns a list of structs
|
* reads the canned reply file and returns a list of structs
|
||||||
* does an exit on error.
|
* does an exit on error.
|
||||||
|
* @param skip_withespace: skip leftside whitespace.
|
||||||
*/
|
*/
|
||||||
struct entry* read_datafile(const char* name);
|
struct entry* read_datafile(const char* name, int skip_whitespace);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete linked list of entries.
|
* Delete linked list of entries.
|
||||||
|
|
@ -217,10 +218,12 @@ void delete_entry(struct entry* list);
|
||||||
* later it stores the $ORIGIN value last seen. Often &NULL or the zone
|
* later it stores the $ORIGIN value last seen. Often &NULL or the zone
|
||||||
* name on first call.
|
* name on first call.
|
||||||
* @param prev_rr: previous rr name for correcter parsing. &NULL on first call.
|
* @param prev_rr: previous rr name for correcter parsing. &NULL on first call.
|
||||||
|
* @param skip_whitespace: skip leftside whitespace.
|
||||||
* @return: The entry read (malloced) or NULL if no entry could be read.
|
* @return: The entry read (malloced) or NULL if no entry could be read.
|
||||||
*/
|
*/
|
||||||
struct entry* read_entry(FILE* in, const char* name, int *lineno,
|
struct entry* read_entry(FILE* in, const char* name, int *lineno,
|
||||||
uint32_t* default_ttl, ldns_rdf** origin, ldns_rdf** prev_rr);
|
uint32_t* default_ttl, ldns_rdf** origin, ldns_rdf** prev_rr,
|
||||||
|
int skip_whitespace);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* finds entry in list, or returns NULL.
|
* finds entry in list, or returns NULL.
|
||||||
|
|
|
||||||
|
|
@ -193,7 +193,7 @@ replay_range_read(char* remain, FILE* in, const char* name, int* lineno,
|
||||||
/* set position before line; read entry */
|
/* set position before line; read entry */
|
||||||
(*lineno)--;
|
(*lineno)--;
|
||||||
fseeko(in, pos, SEEK_SET);
|
fseeko(in, pos, SEEK_SET);
|
||||||
entry = read_entry(in, name, lineno, ttl, or, prev);
|
entry = read_entry(in, name, lineno, ttl, or, prev, 1);
|
||||||
if(!entry)
|
if(!entry)
|
||||||
fatal_exit("%d: bad entry", *lineno);
|
fatal_exit("%d: bad entry", *lineno);
|
||||||
entry->next = NULL;
|
entry->next = NULL;
|
||||||
|
|
@ -393,7 +393,7 @@ replay_moment_read(char* remain, FILE* in, const char* name, int* lineno,
|
||||||
}
|
}
|
||||||
|
|
||||||
if(readentry) {
|
if(readentry) {
|
||||||
mom->match = read_entry(in, name, lineno, ttl, or, prev);
|
mom->match = read_entry(in, name, lineno, ttl, or, prev, 1);
|
||||||
if(!mom->match) {
|
if(!mom->match) {
|
||||||
free(mom);
|
free(mom);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
||||||
|
|
@ -298,7 +298,7 @@ verifytest_file(const char* fname, const char* at_date)
|
||||||
struct alloc_cache alloc;
|
struct alloc_cache alloc;
|
||||||
ldns_buffer* buf = ldns_buffer_new(65535);
|
ldns_buffer* buf = ldns_buffer_new(65535);
|
||||||
struct entry* e;
|
struct entry* e;
|
||||||
struct entry* list = read_datafile(fname);
|
struct entry* list = read_datafile(fname, 1);
|
||||||
struct module_env env;
|
struct module_env env;
|
||||||
struct val_env ve;
|
struct val_env ve;
|
||||||
uint32_t now = time(NULL);
|
uint32_t now = time(NULL);
|
||||||
|
|
@ -342,7 +342,7 @@ dstest_file(const char* fname)
|
||||||
struct alloc_cache alloc;
|
struct alloc_cache alloc;
|
||||||
ldns_buffer* buf = ldns_buffer_new(65535);
|
ldns_buffer* buf = ldns_buffer_new(65535);
|
||||||
struct entry* e;
|
struct entry* e;
|
||||||
struct entry* list = read_datafile(fname);
|
struct entry* list = read_datafile(fname, 1);
|
||||||
struct module_env env;
|
struct module_env env;
|
||||||
|
|
||||||
if(!list)
|
if(!list)
|
||||||
|
|
@ -475,7 +475,7 @@ nsec3_hash_test(const char* fname)
|
||||||
struct alloc_cache alloc;
|
struct alloc_cache alloc;
|
||||||
ldns_buffer* buf = ldns_buffer_new(65535);
|
ldns_buffer* buf = ldns_buffer_new(65535);
|
||||||
struct entry* e;
|
struct entry* e;
|
||||||
struct entry* list = read_datafile(fname);
|
struct entry* list = read_datafile(fname, 1);
|
||||||
|
|
||||||
if(!list)
|
if(!list)
|
||||||
fatal_exit("could not read %s: %s", fname, strerror(errno));
|
fatal_exit("could not read %s: %s", fname, strerror(errno));
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue