Alexey Simak made adig support NAPTR records
authorDaniel Stenberg <daniel@haxx.se>
Fri, 4 Apr 2008 20:24:41 +0000 (20:24 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 4 Apr 2008 20:24:41 +0000 (20:24 +0000)
CHANGES
adig.c

diff --git a/CHANGES b/CHANGES
index a54ba41..487f7b3 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,8 @@
 
 - Eino Tuominen improved the code when a file is used to seed the randomizer.
 
+- Alexey Simak made adig support NAPTR records
+
 * December 11 2007 (Gisle Vanem)
 
 - Added another sample application; acountry.c which converts an
diff --git a/adig.c b/adig.c
index b4fd205..3a8b1f7 100644 (file)
--- a/adig.c
+++ b/adig.c
@@ -110,6 +110,7 @@ static const struct nv types[] = {
   { "AXFR",     T_AXFR },
   { "MAILB",    T_MAILB },
   { "MAILA",    T_MAILA },
+  { "NAPTR",    T_NAPTR },
   { "ANY",      T_ANY }
 };
 static const int ntypes = sizeof(types) / sizeof(types[0]);
@@ -603,6 +604,41 @@ static const unsigned char *display_rr(const unsigned char *aptr,
       ares_free_string(name);
       break;
 
+    case T_NAPTR:
+
+      printf("\t%d", DNS__16BIT(aptr)); // order
+      printf(" %d\n", DNS__16BIT(aptr + 2)); // preference
+
+      p = aptr + 4;
+      status = ares_expand_string(p, abuf, alen, &name, &len);
+      if (status != ARES_SUCCESS)
+        return NULL;
+      printf("\t\t\t\t\t\t%s\n", name);
+      ares_free_string(name);
+      p += len;
+
+      status = ares_expand_string(p, abuf, alen, &name, &len);
+      if (status != ARES_SUCCESS)
+        return NULL;
+      printf("\t\t\t\t\t\t%s\n", name);
+      ares_free_string(name);
+      p += len;
+
+      status = ares_expand_string(p, abuf, alen, &name, &len);
+      if (status != ARES_SUCCESS)
+        return NULL;
+      printf("\t\t\t\t\t\t%s\n", name);
+      ares_free_string(name);
+      p += len;
+
+      status = ares_expand_string(p, abuf, alen, &name, &len);
+      if (status != ARES_SUCCESS)
+        return NULL;
+      printf("\t\t\t\t\t\t%s", name);
+      ares_free_string(name);
+      break;
+
+
     default:
       printf("\t[Unknown RR; cannot parse]");
       break;