From: Miek Gieben Date: Thu, 20 Jan 2005 14:54:40 +0000 (+0000) Subject: ldns_rdf2buffer_dname is nu helemaal kapot - kan ik zo 123 niet fixen X-Git-Tag: release-0.50~547 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89303103f9a25b9730f3a0e4646eb9345ecdd1fd;p=thirdparty%2Fldns.git ldns_rdf2buffer_dname is nu helemaal kapot - kan ik zo 123 niet fixen De rest compileert, dus void* lijkt goed te gaan --- diff --git a/host2str.c b/host2str.c index 365b1c4c..e32a2c5d 100644 --- a/host2str.c +++ b/host2str.c @@ -77,6 +77,8 @@ ldns_lookup_table ldns_opcodes[] = { /* this is temp function for debugging wire2rr */ /* do NOT pass compressed data here :p */ +#if 0 +DOES NOT COMPILE ANY MORE DUE TO void* ldns_status ldns_rdf2buffer_dname(ldns_buffer *output, ldns_rdf *dname) { @@ -94,6 +96,7 @@ ldns_rdf2buffer_dname(ldns_buffer *output, ldns_rdf *dname) return ldns_buffer_status(output); } +#endif ldns_status ldns_rdf2buffer_int8(ldns_buffer *output, ldns_rdf *rdf) @@ -579,7 +582,7 @@ ldns_rdf2buffer(ldns_buffer *buffer, ldns_rdf *rdf) case LDNS_RDF_TYPE_NONE: break; case LDNS_RDF_TYPE_DNAME: - res = ldns_rdf2buffer_dname(buffer, rdf); + /*res = ldns_rdf2buffer_dname(buffer, rdf);*/ break; case LDNS_RDF_TYPE_INT8: res = ldns_rdf2buffer_int8(buffer, rdf); @@ -641,6 +644,9 @@ ldns_rdf2buffer(ldns_buffer *buffer, ldns_rdf *rdf) case LDNS_RDF_TYPE_NSAP: res = ldns_rdf2buffer_nsap(buffer, rdf); break; + case LDNS_RDF_TYPE_SERVICE: + /* XXX todo */ + break; } return LDNS_STATUS_OK; @@ -656,7 +662,7 @@ ldns_rr2buffer(ldns_buffer *output, ldns_rr *rr) const ldns_rr_descriptor *descriptor; if (ldns_rr_owner(rr)) { - status = ldns_rdf2buffer_dname(output, ldns_rr_owner(rr)); + /*status = ldns_rdf2buffer_dname(output, ldns_rr_owner(rr));*/ } if (status != LDNS_STATUS_OK) { return status; diff --git a/ldns/error.h b/ldns/error.h index f6551f76..38fe69c6 100644 --- a/ldns/error.h +++ b/ldns/error.h @@ -25,7 +25,8 @@ enum ldns_enum_status LDNS_STATUS_MEM_ERR, LDNS_STATUS_INTERNAL_ERR, LDNS_STATUS_ERR, - LDNS_STATUS_INT_EXP + LDNS_STATUS_INT_EXP, + LDNS_STATUS_INVALID_IP4 }; typedef enum ldns_enum_status ldns_status; diff --git a/ldns/rdata.h b/ldns/rdata.h index 4b5c2efe..835670f6 100644 --- a/ldns/rdata.h +++ b/ldns/rdata.h @@ -100,18 +100,17 @@ struct ldns_struct_rdf /** \brief The type of the data */ ldns_rdf_type _type; /** \brief Pointer to the data (byte buffer) */ - uint8_t *_data; + void *_data; }; typedef struct ldns_struct_rdf ldns_rdf; /* prototypes */ -ldns_rdf *ldns_rdf_new(uint16_t s, ldns_rdf_type t, uint8_t *d); uint16_t ldns_rdf_size(ldns_rdf *); void ldns_rdf_set_size(ldns_rdf *, uint16_t); void ldns_rdf_set_type(ldns_rdf *, ldns_rdf_type); -void ldns_rdf_set_data(ldns_rdf *, uint8_t *); +void ldns_rdf_set_data(ldns_rdf *, void *); ldns_rdf_type ldns_rdf_get_type(ldns_rdf *); -ldns_rdf *ldns_rdf_new(uint16_t, ldns_rdf_type, uint8_t *); +ldns_rdf *ldns_rdf_new(uint16_t, ldns_rdf_type, void *); uint8_t *ldns_rdf_data(ldns_rdf *); void ldns_rdf_free(ldns_rdf *); diff --git a/libdns.vim b/libdns.vim index f8514887..fa1383d1 100644 --- a/libdns.vim +++ b/libdns.vim @@ -59,6 +59,7 @@ syn keyword ldnsMacro LDNS_STATUS_MEM_ERR syn keyword ldnsMacro LDNS_STATUS_INTERNAL_ERR syn keyword ldnsMacro LDNS_STATUS_INT_EXP syn keyword ldnsMacro LDNS_STATUS_ERR +syn keyword ldnsMacro LDNS_STATUS_INVALID_IP4 " ldns/resolver.h syn keyword ldnsType ldns_resolver diff --git a/rdata.c b/rdata.c index c84779ea..784eb2ed 100644 --- a/rdata.c +++ b/rdata.c @@ -56,7 +56,7 @@ ldns_rdf_set_type(ldns_rdf *rd, ldns_rdf_type t) } void -ldns_rdf_set_data(ldns_rdf *rd, uint8_t *d) +ldns_rdf_set_data(ldns_rdf *rd, void *d) { /* only copy the pointer */ rd->_data = d; @@ -67,7 +67,7 @@ ldns_rdf_set_data(ldns_rdf *rd, uint8_t *d) * fill it and return it */ ldns_rdf * -ldns_rdf_new(uint16_t s, ldns_rdf_type t, uint8_t *d) +ldns_rdf_new(uint16_t s, ldns_rdf_type t, void *d) { ldns_rdf *rd; rd = MALLOC(ldns_rdf); diff --git a/str2host.c b/str2host.c index 90a50beb..7b01d3c4 100644 --- a/str2host.c +++ b/str2host.c @@ -130,10 +130,13 @@ ldns_str2rdf_int8(ldns_rdf **rd, const uint8_t *bytestr) } /** - * convert .... into wireformat + * convert a dname string into wireformat * \param[in] rd the rdf where to put the data * \param[in] str the string to be converted * \return ldns_status + * + * No special care is taken, all dots are translated into + * label seperators. */ ldns_status ldns_str2rdf_dname(ldns_rdf **rd, const uint8_t* str) @@ -150,6 +153,14 @@ ldns_str2rdf_dname(ldns_rdf **rd, const uint8_t* str) ldns_status ldns_str2rdf_a(ldns_rdf **rd, const uint8_t* str) { + in_addr_t address; + uint16_t *r = NULL; + + if (inet_pton(AF_INET, (char*)str, &address) != 1) { + return LDNS_STATUS_INVALID_IP4; + } else { + *rd = ldns_rdf_new(sizeof(address), LDNS_RDF_TYPE_A, &address); + } return LDNS_STATUS_OK; }