Implementation:
---------------
-o sync argument order in rdf_new and rdf_new_frm_data
o deep free
o check all conversion routines on missing types
- wire2host
return LDNS_STATUS_INVALID_B64;
}
- time_signed_rdf = ldns_rdf_new(6, LDNS_RDF_TYPE_TSIGTIME, time_signed);
+ time_signed_rdf = ldns_rdf_new(LDNS_RDF_TYPE_TSIGTIME, 6, time_signed);
fudge_rdf = ldns_native2rdf_int16(LDNS_RDF_TYPE_INT16, fudge);
/* no gateway */
break;
case 1:
- gateway_data = XMALLOC(uint8_t, 4);
- memcpy(gateway_data, &data[offset], 4);
- gateway = ldns_rdf_new(4, LDNS_RDF_TYPE_A, gateway_data);
+ gateway_data = XMALLOC(uint8_t, LDNS_IP4ADDRLEN);
+ memcpy(gateway_data, &data[offset], LDNS_IP4ADDRLEN);
+ gateway = ldns_rdf_new(LDNS_RDF_TYPE_A,
+ LDNS_IP4ADDRLEN , gateway_data);
break;
case 2:
- gateway_data = XMALLOC(uint8_t, 16);
- memcpy(gateway_data, &data[offset], 16);
- gateway = ldns_rdf_new(16, LDNS_RDF_TYPE_AAAA, gateway_data);
+ gateway_data = XMALLOC(uint8_t, LDNS_IP6ADDRLEN);
+ memcpy(gateway_data, &data[offset], LDNS_IP6ADDRLEN);
+ gateway = ldns_rdf_new(LDNS_RDF_TYPE_AAAA,
+ LDNS_IP6ADDRLEN, gateway_data);
break;
case 3:
status = ldns_wire2dname(&gateway, data, ldns_rdf_size(rdf), &offset);
public_key_size = ldns_rdf_size(rdf) - offset;
public_key_data = XMALLOC(uint8_t, public_key_size);
memcpy(public_key_data, &data[offset], public_key_size);
- public_key = ldns_rdf_new(public_key_size, LDNS_RDF_TYPE_B64, public_key_data);
+ public_key = ldns_rdf_new(LDNS_RDF_TYPE_B64, public_key_size, public_key_data);
ldns_buffer_printf(output, "%u %u %u ", precedence, gateway_type,
algorithm);
void ldns_rdf_set_type(ldns_rdf *, ldns_rdf_type);
void ldns_rdf_set_data(ldns_rdf *, void *);
ldns_rdf_type ldns_rdf_get_type(const ldns_rdf *);
-ldns_rdf *ldns_rdf_new(uint16_t, ldns_rdf_type, void *);
+ldns_rdf *ldns_rdf_new(ldns_rdf_type, uint16_t, void *);
ldns_rdf *ldns_rdf_new_frm_data(ldns_rdf_type, uint16_t, const void *);
ldns_rdf *ldns_rdf_new_frm_str(ldns_rdf_type, const char *);
ldns_status ldns_octet(char *word, size_t *length);
{
uint16_t *rdf_data = XMALLOC(uint16_t, 1);
write_uint16(rdf_data, value);
- return ldns_rdf_new(2, type, rdf_data);
+ return ldns_rdf_new(type, 2, rdf_data);
}
/**
{
uint32_t *rdf_data = XMALLOC(uint32_t, 1);
write_uint32(rdf_data, value);
- return ldns_rdf_new(4, type, rdf_data);
+ return ldns_rdf_new(type, 4, rdf_data);
}
/**
uint8_t *rdf_data = XMALLOC(uint8_t, (size_t) size + 2);
write_uint16(rdf_data, size);
memcpy(rdf_data + 2, data, size);
- return ldns_rdf_new(size + 2, LDNS_RDF_TYPE_INT16_DATA, rdf_data);
+ return ldns_rdf_new(LDNS_RDF_TYPE_INT16_DATA, size + 2, rdf_data);
}
/**
* fill it and return it
*/
ldns_rdf *
-ldns_rdf_new(uint16_t s, ldns_rdf_type t, void *d)
+ldns_rdf_new(ldns_rdf_type t, uint16_t s, void *d)
{
ldns_rdf *rd;
rd = MALLOC(ldns_rdf);
ldns_rdf_deep_clone(const ldns_rdf *r)
{
return (ldns_rdf_new_frm_data(
- ldns_rdf_get_type(r),
ldns_rdf_size(r),
+ ldns_rdf_get_type(r),
ldns_rdf_data(r)));
}
rdf_data[9] = 3;
memcpy(rdf_data+10, "net", 3);
rdf_data[13] = 0;
- rd_f = ldns_rdf_new(20, LDNS_RDF_TYPE_DNAME, rdf_data);
+ rd_f = ldns_rdf_new(LDNS_RDF_TYPE_DNAME, 20, rdf_data);
ldns_rr_push_rdf(rr, rd_f);
status = ldns_wire2pkt(&packet, wire, sizeof(wire));
}
memcpy(dname_ar, tmp_dname, dname_pos);
- *dname = ldns_rdf_new((uint16_t) dname_pos,
- LDNS_RDF_TYPE_DNAME,
- dname_ar);
+ *dname = ldns_rdf_new(LDNS_RDF_TYPE_DNAME,
+ (uint16_t) dname_pos, dname_ar);
if (!*dname) {
FREE(dname_ar);
return LDNS_STATUS_MEM_ERR;
}
memcpy(data, &wire[*pos], cur_rdf_length);
- cur_rdf = ldns_rdf_new(cur_rdf_length,
- cur_rdf_type,
+ cur_rdf = ldns_rdf_new(cur_rdf_type,
+ cur_rdf_length,
data);
*pos = *pos + cur_rdf_length;
}