Remove parseServer

IPAddress and IPSockAddr are well-tested utilities. Use them in
DnsTlsServer so that many code related to sockaddr_storage can
be removed.

Bug: 186177613
Test: cd packages/modules/DnsResolver && atest
Change-Id: I59f59f6f50bd7b376fa0f8775c8999eee7cf9004
diff --git a/PrivateDnsConfiguration.cpp b/PrivateDnsConfiguration.cpp
index 6b9c460..afabfdd 100644
--- a/PrivateDnsConfiguration.cpp
+++ b/PrivateDnsConfiguration.cpp
@@ -38,6 +38,7 @@
 using aidl::android::net::resolv::aidl::PrivateDnsValidationEventParcel;
 using android::base::StringPrintf;
 using android::netdutils::IPAddress;
+using android::netdutils::IPSockAddr;
 using android::netdutils::setThreadName;
 using android::netdutils::Slice;
 using std::chrono::milliseconds;
@@ -45,24 +46,6 @@
 namespace android {
 namespace net {
 
-bool parseServer(const char* server, sockaddr_storage* parsed) {
-    addrinfo hints = {
-            .ai_flags = AI_NUMERICHOST | AI_NUMERICSERV,
-            .ai_family = AF_UNSPEC,
-    };
-    addrinfo* res;
-
-    int err = getaddrinfo(server, "853", &hints, &res);
-    if (err != 0) {
-        LOG(WARNING) << "Failed to parse server address (" << server << "): " << gai_strerror(err);
-        return false;
-    }
-
-    memcpy(parsed, res->ai_addr, res->ai_addrlen);
-    freeaddrinfo(res);
-    return true;
-}
-
 int PrivateDnsConfiguration::set(int32_t netId, uint32_t mark,
                                  const std::vector<std::string>& servers, const std::string& name,
                                  const std::string& caCert) {
@@ -72,11 +55,13 @@
     // Parse the list of servers that has been passed in
     PrivateDnsTracker tmp;
     for (const auto& s : servers) {
-        sockaddr_storage parsed;
-        if (!parseServer(s.c_str(), &parsed)) {
+        IPAddress ip;
+        if (!IPAddress::forString(s, &ip)) {
+            LOG(WARNING) << "Failed to parse server address (" << s << ")";
             return -EINVAL;
         }
-        auto server = std::make_unique<DnsTlsServer>(parsed);
+
+        auto server = std::make_unique<DnsTlsServer>(ip);
         server->name = name;
         server->certificate = caCert;
         server->mark = mark;