service: Simplify nameserver route adding and removing
authorPatrik Flykt <patrik.flykt@linux.intel.com>
Mon, 4 Jun 2012 10:45:04 +0000 (13:45 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Thu, 14 Jun 2012 12:06:13 +0000 (15:06 +0300)
src/service.c

index 94ef7b6..90ae252 100644 (file)
@@ -1148,48 +1148,26 @@ static void add_nameserver_route(int family, int index, char *nameserver,
 static void nameserver_add_routes(int index, char **nameservers,
                                        const char *gw)
 {
-       int i, ret, family;
-       struct addrinfo hints;
-       struct addrinfo *addr;
+       int i, family;
 
        for (i = 0; nameservers[i] != NULL; i++) {
-               memset(&hints, 0, sizeof(struct addrinfo));
-               hints.ai_flags = AI_NUMERICHOST;
-               addr = NULL;
-
-               ret = getaddrinfo(nameservers[i], NULL, &hints, &addr);
-               if (ret == EAI_NONAME)
-                       family = AF_INET; /* use the IPv4 as a default */
-               else if (ret != 0)
+               family = connman_inet_check_ipaddress(nameservers[i]);
+               if (family < 0)
                        continue;
-               else
-                       family = addr->ai_family;
 
                add_nameserver_route(family, index, nameservers[i], gw);
-
-               freeaddrinfo(addr);
        }
 }
 
 static void nameserver_del_routes(int index, char **nameservers,
                                enum connman_ipconfig_type type)
 {
-       int i, ret, family;
-       struct addrinfo hints;
-       struct addrinfo *addr;
+       int i, family;
 
        for (i = 0; nameservers[i] != NULL; i++) {
-               memset(&hints, 0, sizeof(struct addrinfo));
-               hints.ai_flags = AI_NUMERICHOST;
-               addr = NULL;
-
-               ret = getaddrinfo(nameservers[i], NULL, &hints, &addr);
-               if (ret == EAI_NONAME)
-                       family = AF_INET; /* use the IPv4 as a default */
-               else if (ret != 0)
+               family = connman_inet_check_ipaddress(nameservers[i]);
+               if (family < 0)
                        continue;
-               else
-                       family = addr->ai_family;
 
                switch (family) {
                case AF_INET:
@@ -1203,8 +1181,6 @@ static void nameserver_del_routes(int index, char **nameservers,
                                                        nameservers[i]);
                        break;
                }
-
-               freeaddrinfo(addr);
        }
 }