resolv: Unify sockaddr union

Merge the following unions into a single union.
sockaddr_union
_sockaddr_union
res_sockaddr_union

Test: netd_{unit,integration}_test pass
Change-Id: I46685e7380dd25070ccd9eaf5387efde91cded8a
diff --git a/resolv/getaddrinfo.cpp b/resolv/getaddrinfo.cpp
index e4a850a..f1aff7a 100644
--- a/resolv/getaddrinfo.cpp
+++ b/resolv/getaddrinfo.cpp
@@ -101,12 +101,6 @@
 #include "resolv_cache.h"
 #include "resolv_private.h"
 
-typedef union sockaddr_union {
-    struct sockaddr generic;
-    struct sockaddr_in in;
-    struct sockaddr_in6 in6;
-} sockaddr_union;
-
 #define ANY 0
 
 static const char in_addrany[] = {0, 0, 0, 0};
@@ -300,8 +294,8 @@
             .sin6_family = AF_INET6,
             .sin6_addr.s6_addr = {// 2000::
                                   0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
-    sockaddr_union addr = {.in6 = sin6_test};
-    return _find_src_addr(&addr.generic, NULL, mark, uid) == 1;
+    sockaddr_union addr = {.sin6 = sin6_test};
+    return _find_src_addr(&addr.sa, NULL, mark, uid) == 1;
 }
 
 static int _have_ipv4(unsigned mark, uid_t uid) {
@@ -309,8 +303,8 @@
             .sin_family = AF_INET,
             .sin_addr.s_addr = __constant_htonl(0x08080808L)  // 8.8.8.8
     };
-    sockaddr_union addr = {.in = sin_test};
-    return _find_src_addr(&addr.generic, NULL, mark, uid) == 1;
+    sockaddr_union addr = {.sin = sin_test};
+    return _find_src_addr(&addr.sa, NULL, mark, uid) == 1;
 }
 
 bool readBE32(FILE* fp, int32_t* result) {
@@ -1258,11 +1252,11 @@
     }
 
     /* Rule 2: Prefer matching scope. */
-    scope_src1 = _get_scope(&a1->src_addr.generic);
+    scope_src1 = _get_scope(&a1->src_addr.sa);
     scope_dst1 = _get_scope(a1->ai->ai_addr);
     scope_match1 = (scope_src1 == scope_dst1);
 
-    scope_src2 = _get_scope(&a2->src_addr.generic);
+    scope_src2 = _get_scope(&a2->src_addr.sa);
     scope_dst2 = _get_scope(a2->ai->ai_addr);
     scope_match2 = (scope_src2 == scope_dst2);
 
@@ -1281,11 +1275,11 @@
      */
 
     /* Rule 5: Prefer matching label. */
-    label_src1 = _get_label(&a1->src_addr.generic);
+    label_src1 = _get_label(&a1->src_addr.sa);
     label_dst1 = _get_label(a1->ai->ai_addr);
     label_match1 = (label_src1 == label_dst1);
 
-    label_src2 = _get_label(&a2->src_addr.generic);
+    label_src2 = _get_label(&a2->src_addr.sa);
     label_dst2 = _get_label(a2->ai->ai_addr);
     label_match2 = (label_src2 == label_dst2);
 
@@ -1318,9 +1312,9 @@
      */
     if (a1->has_src_addr && a1->ai->ai_addr->sa_family == AF_INET6 && a2->has_src_addr &&
         a2->ai->ai_addr->sa_family == AF_INET6) {
-        const struct sockaddr_in6* a1_src = &a1->src_addr.in6;
+        const struct sockaddr_in6* a1_src = &a1->src_addr.sin6;
         const struct sockaddr_in6* a1_dst = (const struct sockaddr_in6*) a1->ai->ai_addr;
-        const struct sockaddr_in6* a2_src = &a2->src_addr.in6;
+        const struct sockaddr_in6* a2_src = &a2->src_addr.sin6;
         const struct sockaddr_in6* a2_dst = (const struct sockaddr_in6*) a2->ai->ai_addr;
         prefixlen1 = _common_prefix_len(&a1_src->sin6_addr, &a1_dst->sin6_addr);
         prefixlen2 = _common_prefix_len(&a2_src->sin6_addr, &a2_dst->sin6_addr);
@@ -1427,7 +1421,7 @@
         elems[i].ai = cur;
         elems[i].original_order = i;
 
-        has_src_addr = _find_src_addr(cur->ai_addr, &elems[i].src_addr.generic, mark, uid);
+        has_src_addr = _find_src_addr(cur->ai_addr, &elems[i].src_addr.sa, mark, uid);
         if (has_src_addr == -1) {
             goto error;
         }