From: Evan Nemerson Date: Fri, 23 Sep 2011 01:55:18 +0000 (-0700) Subject: linux: add struct ifaddrs binding X-Git-Tag: 0.15.0~75 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03cf05d081fa7caea2da7cef4c9e645a6f7ca57f;p=thirdparty%2Fvala.git linux: add struct ifaddrs binding Fixes bug 659000. --- diff --git a/vapi/linux.vapi b/vapi/linux.vapi index 5300ae154..c58c3cfa1 100644 --- a/vapi/linux.vapi +++ b/vapi/linux.vapi @@ -1318,6 +1318,23 @@ namespace Linux { public uint32 ifa_index; } + [Compact, CCode (cname = "struct ifaddrs", cheader_filename = "sys/types.h,ifaddrs.h", free_function = "freeifaddrs", has_type_id = false)] + public class IfAddrs { + public unowned IfAddrs? ifa_next; + public string ifa_name; + public uint ifa_flags; + public Posix.SockAddr* ifa_addr; + public Posix.SockAddr* ifa_netmask; + [CCode (cname = "ifa_ifu.ifu_broadaddr")] + public Posix.SockAddr* ifa_ifu_broadaddr; + [CCode (cname = "ifa_ifu.ifu_dstaddr")] + public Posix.SockAddr* ifa_ifu_dstaddr; + public void* ifa_data; + } + + [CCode (cname = "getifaddrs")] + public static int getifaddrs (out IfAddrs ifap); + [CCode (cprefix = "IFA_", has_type_id = false, cheader_filename = "linux/if_addr.h")] enum IfAddrType { UNSPEC,