From: Marcel Holtmann Date: Tue, 11 Aug 2009 07:55:20 +0000 (-0700) Subject: Use global IP address structure for transaction X-Git-Tag: 0.39~25 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=213dec4c14f6c15bf91273185dfbc802339edc33;hp=4415df317fd3c9356635703b1d3cdd329112caef;p=platform%2Fupstream%2Fconnman.git Use global IP address structure for transaction --- diff --git a/include/inet.h b/include/inet.h index 66285d8..d943a26 100644 --- a/include/inet.h +++ b/include/inet.h @@ -22,13 +22,14 @@ #ifndef __CONNMAN_INET_H #define __CONNMAN_INET_H -#ifdef __cplusplus -extern "C" { -#endif - #include #include +#include + +#ifdef __cplusplus +extern "C" { +#endif int connman_inet_ifindex(const char *name); char *connman_inet_ifname(int index); @@ -38,8 +39,7 @@ int connman_inet_ifdown(int index); struct connman_device *connman_inet_create_device(int index); -int connman_inet_set_address(int index, struct in_addr address, - struct in_addr netmask, struct in_addr broadcast); +int connman_inet_set_address(int index, struct connman_ipaddress *ipaddress); int connman_inet_clear_address(int index); int connman_inet_set_gateway(int index, struct in_addr gateway); diff --git a/src/inet.c b/src/inet.c index 3fc162c..09183a0 100644 --- a/src/inet.c +++ b/src/inet.c @@ -455,8 +455,7 @@ done: return device; } -int connman_inet_set_address(int index, struct in_addr address, - struct in_addr netmask, struct in_addr broadcast) +int connman_inet_set_address(int index, struct connman_ipaddress *ipaddress) { struct ifreq ifr; struct sockaddr_in addr; @@ -478,7 +477,7 @@ int connman_inet_set_address(int index, struct in_addr address, memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; - addr.sin_addr = address; + addr.sin_addr.s_addr = inet_addr(ipaddress->local); memcpy(&ifr.ifr_addr, &addr, sizeof(ifr.ifr_addr)); err = ioctl(sk, SIOCSIFADDR, &ifr); @@ -488,7 +487,7 @@ int connman_inet_set_address(int index, struct in_addr address, memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; - addr.sin_addr = netmask; + addr.sin_addr.s_addr = htonl(~(0xfffffffflu >> ipaddress->prefixlen)); memcpy(&ifr.ifr_netmask, &addr, sizeof(ifr.ifr_netmask)); err = ioctl(sk, SIOCSIFNETMASK, &ifr); @@ -498,7 +497,7 @@ int connman_inet_set_address(int index, struct in_addr address, memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; - addr.sin_addr = broadcast; + addr.sin_addr.s_addr = inet_addr(ipaddress->broadcast); memcpy(&ifr.ifr_broadaddr, &addr, sizeof(ifr.ifr_broadaddr)); err = ioctl(sk, SIOCSIFBRDADDR, &ifr);