Added tcore_util_netif_get_index() API 09/54209/2
authorSuresh Kumar N <suresh.n@samsung.com>
Mon, 14 Dec 2015 07:07:21 +0000 (12:37 +0530)
committerWootak Jung <wootak.jung@samsung.com>
Mon, 14 Dec 2015 07:25:15 +0000 (23:25 -0800)
Change-Id: Iaf49b8125d415fc9065e6a0398e250b43f8c8dd8

include/util.h
packaging/libtcore.spec
src/util.c

index 553e76d..e122f90 100644 (file)
@@ -64,6 +64,7 @@ TReturn tcore_util_netif_up(const char *name);
 TReturn tcore_util_netif_down(const char *name);
 TReturn tcore_util_netif_set(const char *name,
        const char *ipaddr, const char *gateway, const char *netmask);
+TReturn tcore_util_netif_get_index(const char *name, int *if_index);
 TReturn tcore_util_netif_set_arp(const char *name, gboolean disable);
 TReturn tcore_util_reset_ipv4_socket(const char *name, const char *ipaddr);
 TReturn tcore_util_netif_set_mtu(const char *name, unsigned int mtu);
index 4132840..9ef2df5 100644 (file)
@@ -1,6 +1,6 @@
 %define major 0
 %define minor 2
-%define patchlevel 93
+%define patchlevel 94
 
 Name:           libtcore
 Version:        %{major}.%{minor}.%{patchlevel}
index 269811e..d775eaa 100644 (file)
@@ -482,7 +482,7 @@ try_again:
        str_converted = (gchar *)g_convert((const gchar *)in, (gssize)in_len,
                        "UTF8", "UCS-2BE", &byte_read, &byte_converted, NULL);
 
-       dbg("read:[%d] converted:[%d] out:[%s]", byte_read, byte_converted, str_converted);
+       dbg("read:[%d] converted:[%d]", byte_read, byte_converted);
 
        *out_len = byte_converted;
        if (str_converted) {
@@ -1235,6 +1235,37 @@ TReturn tcore_util_netif_set(const char *name,
        return TCORE_RETURN_SUCCESS;
 }
 
+TReturn tcore_util_netif_get_index(const char *name, int *if_index)
+{
+       int ret;
+       int fd;
+       struct ifreq ifr;
+
+       if (!name || !if_index)
+               return TCORE_RETURN_EINVAL;
+
+       if (strlen(name) > IFNAMSIZ)
+               return TCORE_RETURN_EINVAL;
+
+       fd = socket(AF_INET, SOCK_DGRAM, 0);
+       if (fd < 0)
+               return TCORE_RETURN_FAILURE;
+
+       memset(&ifr, 0, sizeof(struct ifreq));
+       strncpy(ifr.ifr_name, name, IFNAMSIZ);
+       ifr.ifr_name[IFNAMSIZ - 1] = '\0';
+
+       ret = ioctl(fd, SIOCGIFINDEX, &ifr);
+       if (ret < 0) {
+               close(fd);
+               return TCORE_RETURN_FAILURE;
+       }
+
+       *if_index = ifr.ifr_ifindex;
+       close(fd);
+       return TCORE_RETURN_SUCCESS;
+}
+
 TReturn tcore_util_netif_set_arp(const char *name, gboolean disable)
 {
        int ret;