]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
fixed possible segfault
authorJelte Jansen <jeltejan@NLnetLabs.nl>
Mon, 14 Feb 2005 13:48:16 +0000 (13:48 +0000)
committerJelte Jansen <jeltejan@NLnetLabs.nl>
Mon, 14 Feb 2005 13:48:16 +0000 (13:48 +0000)
added "\# <size" to unknown rrtype 2str

TODO
host2str.c

diff --git a/TODO b/TODO
index 4a5e9ac23a7d0c15866a72d824a660dc9965506f..9f9404e435c12a36afb9039700ee99fa0405bcda 100644 (file)
--- a/TODO
+++ b/TODO
@@ -11,6 +11,8 @@ o network code
        - tcp
        - axfr
        - tsig?
+       - timeouts part of resolver struct with access functions and
+         sane default values
 o DNSSEC
 o Make a shared library and test compile some programs
 
index 94fabc55e46d2ff4fe69232eb855eca28ef5e98f..da5cc7774abc45a2a5d6e82bcec77c3708edc404 100644 (file)
@@ -395,6 +395,13 @@ ldns_rdf2buffer_str_loc(ldns_buffer *output, ldns_rdf *rdf)
        }
 }
 
+ldns_status
+ldns_rdf2buffer_str_unknown(ldns_buffer *output, ldns_rdf *rdf)
+{
+       ldns_buffer_printf(output, "\\# %u ", ldns_rdf_size(rdf));
+       return ldns_rdf2buffer_str_hex(output, rdf);
+}
+
 ldns_status
 ldns_rdf2buffer_str_nsap(ldns_buffer *output, ldns_rdf *rdf)
 {
@@ -648,79 +655,81 @@ ldns_status
 ldns_rdf2buffer_str(ldns_buffer *buffer, ldns_rdf *rdf)
 {
        ldns_status res;
-       
-       switch(ldns_rdf_get_type(rdf)) {
-       case LDNS_RDF_TYPE_NONE:
-               break;
-       case LDNS_RDF_TYPE_DNAME:
-               res = ldns_rdf2buffer_str_dname(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_INT8:
-               res = ldns_rdf2buffer_str_int8(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_INT16:
-               res = ldns_rdf2buffer_str_int16(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_INT32:
-               res = ldns_rdf2buffer_str_int32(buffer, rdf);
-               break;
-        case LDNS_RDF_TYPE_TSIGTIME:
-                res = ldns_rdf2buffer_str_tsigtime(buffer, rdf);
-                break;
-       case LDNS_RDF_TYPE_A:
-               res = ldns_rdf2buffer_str_a(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_AAAA:
-               res = ldns_rdf2buffer_str_aaaa(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_STR:
-               res = ldns_rdf2buffer_str_str(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_APL:
-               res = ldns_rdf2buffer_str_apl(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_B64:
-               res = ldns_rdf2buffer_str_b64(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_HEX:
-               res = ldns_rdf2buffer_str_hex(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_NSEC: 
-               res = ldns_rdf2buffer_str_nsec(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_TYPE: 
-               res = ldns_rdf2buffer_str_type(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_CLASS:
-               res = ldns_rdf2buffer_str_class(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_CERT:
-               res = ldns_rdf2buffer_str_cert(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_ALG:
-               res = ldns_rdf2buffer_str_alg(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_UNKNOWN:
-               res = ldns_rdf2buffer_str_hex(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_TIME:
-               res = ldns_rdf2buffer_str_time(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_LOC:
-               res = ldns_rdf2buffer_str_loc(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_WKS:
-               res = ldns_rdf2buffer_str_wks(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_NSAP:
-               res = ldns_rdf2buffer_str_nsap(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_IPSECKEY:
-               res = ldns_rdf2buffer_str_ipseckey(buffer, rdf);
-               break;
-       case LDNS_RDF_TYPE_SERVICE:
-               /* XXX todo */
-               break;
+
+       if (rdf) {
+               switch(ldns_rdf_get_type(rdf)) {
+               case LDNS_RDF_TYPE_NONE:
+                       break;
+               case LDNS_RDF_TYPE_DNAME:
+                       res = ldns_rdf2buffer_str_dname(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_INT8:
+                       res = ldns_rdf2buffer_str_int8(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_INT16:
+                       res = ldns_rdf2buffer_str_int16(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_INT32:
+                       res = ldns_rdf2buffer_str_int32(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_TSIGTIME:
+                       res = ldns_rdf2buffer_str_tsigtime(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_A:
+                       res = ldns_rdf2buffer_str_a(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_AAAA:
+                       res = ldns_rdf2buffer_str_aaaa(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_STR:
+                       res = ldns_rdf2buffer_str_str(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_APL:
+                       res = ldns_rdf2buffer_str_apl(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_B64:
+                       res = ldns_rdf2buffer_str_b64(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_HEX:
+                       res = ldns_rdf2buffer_str_hex(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_NSEC: 
+                       res = ldns_rdf2buffer_str_nsec(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_TYPE: 
+                       res = ldns_rdf2buffer_str_type(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_CLASS:
+                       res = ldns_rdf2buffer_str_class(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_CERT:
+                       res = ldns_rdf2buffer_str_cert(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_ALG:
+                       res = ldns_rdf2buffer_str_alg(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_UNKNOWN:
+                       res = ldns_rdf2buffer_str_unknown(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_TIME:
+                       res = ldns_rdf2buffer_str_time(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_LOC:
+                       res = ldns_rdf2buffer_str_loc(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_WKS:
+                       res = ldns_rdf2buffer_str_wks(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_NSAP:
+                       res = ldns_rdf2buffer_str_nsap(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_IPSECKEY:
+                       res = ldns_rdf2buffer_str_ipseckey(buffer, rdf);
+                       break;
+               case LDNS_RDF_TYPE_SERVICE:
+                       /* XXX todo */
+                       break;
+               }
        }
 
        return LDNS_STATUS_OK;