mirror of https://github.com/getdnsapi/getdns.git
rdata_raw for unknown rr types
This commit is contained in:
parent
fe10123323
commit
d72151ed51
|
@ -263,6 +263,7 @@ priv_getdns_rdf_iter_init(priv_getdns_rdf_iter *i, priv_getdns_rr_iter *rr)
|
|||
assert(i);
|
||||
assert(rr);
|
||||
|
||||
i->end = NULL;
|
||||
/* rr_iter already done or in question section */
|
||||
if (!rr->pos || rr->n < GLDNS_QDCOUNT(rr->pkt))
|
||||
goto done;
|
||||
|
@ -273,10 +274,6 @@ priv_getdns_rdf_iter_init(priv_getdns_rdf_iter *i, priv_getdns_rr_iter *rr)
|
|||
i->rdd_pos = rr_def->rdata;
|
||||
i->rdd_end = rr_def->rdata + rr_def->n_rdata_fields;
|
||||
|
||||
/* No rdata */
|
||||
if (i->rdd_pos == i->rdd_end)
|
||||
goto done;
|
||||
|
||||
/* No space to read rdata len */
|
||||
if (rr->rr_type + 10 >= rr->nxt)
|
||||
goto done;
|
||||
|
@ -285,7 +282,9 @@ priv_getdns_rdf_iter_init(priv_getdns_rdf_iter *i, priv_getdns_rr_iter *rr)
|
|||
i->pos = rr->rr_type + 10;
|
||||
i->end = rr->nxt;
|
||||
|
||||
return rdf_iter_find_nxt(i);
|
||||
/* rdata */
|
||||
if (i->rdd_pos != i->rdd_end)
|
||||
return rdf_iter_find_nxt(i);
|
||||
done:
|
||||
i->pos = NULL;
|
||||
return NULL;
|
||||
|
|
|
@ -335,13 +335,14 @@ priv_getdns_rr_iter2rr_dict(getdns_context *context, priv_getdns_rr_iter *i)
|
|||
if (!(rdata_dict = getdns_dict_create_with_context(context)))
|
||||
goto error;
|
||||
|
||||
if ((rdf = priv_getdns_rdf_iter_init(&rdf_storage, i))) {
|
||||
bindata.size = rdf->end - rdf->pos;
|
||||
bindata.data = rdf->pos;
|
||||
if (i->rr_type + 10 <= i->nxt) {
|
||||
bindata.size = i->nxt - (i->rr_type + 10);
|
||||
bindata.data = i->rr_type + 10;
|
||||
if (getdns_dict_set_bindata(rdata_dict, "rdata_raw", &bindata))
|
||||
goto rdata_error;
|
||||
}
|
||||
for (; rdf; rdf = priv_getdns_rdf_iter_next(rdf)) {
|
||||
for ( rdf = priv_getdns_rdf_iter_init(&rdf_storage, i)
|
||||
; rdf; rdf = priv_getdns_rdf_iter_next(rdf)) {
|
||||
if (rdf->rdd_pos->type & GETDNS_RDF_INTEGER) {
|
||||
val_type = t_int;
|
||||
switch (rdf->rdd_pos->type & GETDNS_RDF_FIXEDSZ) {
|
||||
|
|
Loading…
Reference in New Issue