]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
ldns_rdf2buffer_dname is nu helemaal kapot - kan ik zo 123 niet fixen
authorMiek Gieben <miekg@NLnetLabs.nl>
Thu, 20 Jan 2005 14:54:40 +0000 (14:54 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Thu, 20 Jan 2005 14:54:40 +0000 (14:54 +0000)
De rest compileert, dus void* lijkt goed te gaan

host2str.c
ldns/error.h
ldns/rdata.h
libdns.vim
rdata.c
str2host.c

index 365b1c4cd88debd18a5a30f58069a6449b6f5f4f..e32a2c5d3558bf11eb8fd74f19feb17a3674eb4e 100644 (file)
@@ -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;
index f6551f76701ea6b703b413f31cba22161c50630a..38fe69c6b70a548d68e2867da24ce909a275e2a9 100644 (file)
@@ -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;
 
index 4b5c2efee1f1ce0b29bba1f82944975f8f1bff38..835670f69823652d953e1d3b797206616bd03154 100644 (file)
@@ -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 *);
 
index f85148877f20d1d89b044d72753040b179faff6d..fa1383d117c39d22bae7cadedb90974d05f1f2ef 100644 (file)
@@ -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 c84779ea5762fd0ecf35c38bae1a8ed10469e8aa..784eb2ed0f095c6515b08e125c000397056f86b3 100644 (file)
--- 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);
index 90a50beb56f3b62c3fc8533f3e5229a9bf81987c..7b01d3c486eb9aabc4f3ff3ff1ed1bd2e1d6c3e4 100644 (file)
@@ -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;
 }