Revert "Imported Upstream version 1.17.1"
[platform/upstream/c-ares.git] / ares_data.c
similarity index 61%
rename from src/lib/ares_data.c
rename to ares_data.c
index aa925b8..f891113 100644 (file)
 
 void ares_free_data(void *dataptr)
 {
-  while (dataptr != NULL) {
-    struct ares_data *ptr;
-    void *next_data = NULL;
+  struct ares_data *ptr;
+
+  if (!dataptr)
+    return;
 
 #ifdef __INTEL_COMPILER
 #  pragma warning(push)
@@ -50,92 +51,80 @@ void ares_free_data(void *dataptr)
    /* 1684: conversion from pointer to same-sized integral type */
 #endif
 
-    ptr = (void *)((char *)dataptr - offsetof(struct ares_data, data));
+  ptr = (void *)((char *)dataptr - offsetof(struct ares_data, data));
 
 #ifdef __INTEL_COMPILER
 #  pragma warning(pop)
 #endif
 
-    if (ptr->mark != ARES_DATATYPE_MARK)
-      return;
-
-    switch (ptr->type)
-      {
-        case ARES_DATATYPE_MX_REPLY:
-
-          if (ptr->data.mx_reply.next)
-            next_data = ptr->data.mx_reply.next;
-          if (ptr->data.mx_reply.host)
-            ares_free(ptr->data.mx_reply.host);
-          break;
-
-        case ARES_DATATYPE_SRV_REPLY:
-
-          if (ptr->data.srv_reply.next)
-            next_data = ptr->data.srv_reply.next;
-          if (ptr->data.srv_reply.host)
-            ares_free(ptr->data.srv_reply.host);
-          break;
-
-        case ARES_DATATYPE_TXT_REPLY:
-        case ARES_DATATYPE_TXT_EXT:
-
-          if (ptr->data.txt_reply.next)
-            next_data = ptr->data.txt_reply.next;
-          if (ptr->data.txt_reply.txt)
-            ares_free(ptr->data.txt_reply.txt);
-          break;
-
-        case ARES_DATATYPE_ADDR_NODE:
-
-          if (ptr->data.addr_node.next)
-            next_data = ptr->data.addr_node.next;
-          break;
-
-        case ARES_DATATYPE_ADDR_PORT_NODE:
-
-          if (ptr->data.addr_port_node.next)
-            next_data = ptr->data.addr_port_node.next;
-          break;
-
-        case ARES_DATATYPE_NAPTR_REPLY:
-
-          if (ptr->data.naptr_reply.next)
-            next_data = ptr->data.naptr_reply.next;
-          if (ptr->data.naptr_reply.flags)
-            ares_free(ptr->data.naptr_reply.flags);
-          if (ptr->data.naptr_reply.service)
-            ares_free(ptr->data.naptr_reply.service);
-          if (ptr->data.naptr_reply.regexp)
-            ares_free(ptr->data.naptr_reply.regexp);
-          if (ptr->data.naptr_reply.replacement)
-            ares_free(ptr->data.naptr_reply.replacement);
-          break;
-
-        case ARES_DATATYPE_SOA_REPLY:
-          if (ptr->data.soa_reply.nsname)
-            ares_free(ptr->data.soa_reply.nsname);
-          if (ptr->data.soa_reply.hostmaster)
-            ares_free(ptr->data.soa_reply.hostmaster);
-          break;
-
-        case ARES_DATATYPE_CAA_REPLY:
-          if (ptr->data.caa_reply.next)
-            next_data = ptr->data.caa_reply.next;
-          if (ptr->data.caa_reply.property)
-            ares_free(ptr->data.caa_reply.property);
-          if (ptr->data.caa_reply.value)
-            ares_free(ptr->data.caa_reply.value);
-          break;
-
-        default:
-          return;
-      }
-
-    ares_free(ptr);
-    dataptr = next_data;
-  }
+  if (ptr->mark != ARES_DATATYPE_MARK)
+    return;
+
+  switch (ptr->type)
+    {
+      case ARES_DATATYPE_MX_REPLY:
+
+        if (ptr->data.mx_reply.next)
+          ares_free_data(ptr->data.mx_reply.next);
+        if (ptr->data.mx_reply.host)
+          ares_free(ptr->data.mx_reply.host);
+        break;
+
+      case ARES_DATATYPE_SRV_REPLY:
+
+        if (ptr->data.srv_reply.next)
+          ares_free_data(ptr->data.srv_reply.next);
+        if (ptr->data.srv_reply.host)
+          ares_free(ptr->data.srv_reply.host);
+        break;
+
+      case ARES_DATATYPE_TXT_REPLY:
+      case ARES_DATATYPE_TXT_EXT:
+
+        if (ptr->data.txt_reply.next)
+          ares_free_data(ptr->data.txt_reply.next);
+        if (ptr->data.txt_reply.txt)
+          ares_free(ptr->data.txt_reply.txt);
+        break;
+
+      case ARES_DATATYPE_ADDR_NODE:
+
+        if (ptr->data.addr_node.next)
+          ares_free_data(ptr->data.addr_node.next);
+        break;
+
+      case ARES_DATATYPE_ADDR_PORT_NODE:
+
+        if (ptr->data.addr_port_node.next)
+          ares_free_data(ptr->data.addr_port_node.next);
+        break;
+
+      case ARES_DATATYPE_NAPTR_REPLY:
+
+        if (ptr->data.naptr_reply.next)
+          ares_free_data(ptr->data.naptr_reply.next);
+        if (ptr->data.naptr_reply.flags)
+          ares_free(ptr->data.naptr_reply.flags);
+        if (ptr->data.naptr_reply.service)
+          ares_free(ptr->data.naptr_reply.service);
+        if (ptr->data.naptr_reply.regexp)
+          ares_free(ptr->data.naptr_reply.regexp);
+        if (ptr->data.naptr_reply.replacement)
+          ares_free(ptr->data.naptr_reply.replacement);
+        break;
+
+      case ARES_DATATYPE_SOA_REPLY:
+        if (ptr->data.soa_reply.nsname)
+          ares_free(ptr->data.soa_reply.nsname);
+        if (ptr->data.soa_reply.hostmaster)
+          ares_free(ptr->data.soa_reply.hostmaster);
+       break;
+
+      default:
+        return;
+    }
+
+  ares_free(ptr);
 }
 
 
@@ -184,14 +173,6 @@ void *ares_malloc_data(ares_datatype type)
         ptr->data.txt_reply.length = 0;
         break;
 
-      case ARES_DATATYPE_CAA_REPLY:
-        ptr->data.caa_reply.next = NULL;
-        ptr->data.caa_reply.plength = 0;
-        ptr->data.caa_reply.property = NULL;
-        ptr->data.caa_reply.length = 0;
-        ptr->data.caa_reply.value = NULL;
-        break;
-
       case ARES_DATATYPE_ADDR_NODE:
         ptr->data.addr_node.next = NULL;
         ptr->data.addr_node.family = 0;