X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fnetdev.c;h=eff6e4cb7259372c63f528ced1c322d113723c09;hb=999fba59afd9c8eef30d30a6fd2f490b85c24665;hp=e77fcdfa30b3c965545646e908542b28a49b1610;hpb=52e2fbfbabaa5606b833d4fa0fc9fb62f49b063c;p=openvswitch diff --git a/lib/netdev.c b/lib/netdev.c index e77fcdfa..eff6e4cb 100644 --- a/lib/netdev.c +++ b/lib/netdev.c @@ -692,6 +692,26 @@ netdev_set_in4(struct netdev *netdev, struct in_addr addr, struct in_addr mask) : EOPNOTSUPP); } +/* Obtains ad IPv4 address from device name and save the address in + * in4. Returns 0 if successful, otherwise a positive errno value. + */ +int +netdev_get_in4_by_name(const char *device_name, struct in_addr *in4) +{ + struct netdev *netdev; + int error; + + error = netdev_open(device_name, "system", &netdev); + if (error) { + in4->s_addr = htonl(0); + return error; + } + + error = netdev_get_in4(netdev, in4, NULL); + netdev_close(netdev); + return error; +} + /* Adds 'router' as a default IP gateway for the TCP/IP stack that corresponds * to 'netdev'. */ int