From: Suresh Kumar N Date: Mon, 14 Dec 2015 07:07:21 +0000 (+0530) Subject: Added tcore_util_netif_get_index() API X-Git-Tag: accepted/tizen/ivi/20160218.023859~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F09%2F54209%2F2;p=platform%2Fcore%2Ftelephony%2Flibtcore.git Added tcore_util_netif_get_index() API Change-Id: Iaf49b8125d415fc9065e6a0398e250b43f8c8dd8 --- diff --git a/include/util.h b/include/util.h index 553e76d..e122f90 100644 --- a/include/util.h +++ b/include/util.h @@ -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); diff --git a/packaging/libtcore.spec b/packaging/libtcore.spec index 4132840..9ef2df5 100644 --- a/packaging/libtcore.spec +++ b/packaging/libtcore.spec @@ -1,6 +1,6 @@ %define major 0 %define minor 2 -%define patchlevel 93 +%define patchlevel 94 Name: libtcore Version: %{major}.%{minor}.%{patchlevel} diff --git a/src/util.c b/src/util.c index 269811e..d775eaa 100644 --- a/src/util.c +++ b/src/util.c @@ -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;