diff options
Diffstat (limited to '3rdparty/openpgm-svn-r1085/pgm/include/impl/getifaddrs.h')
-rw-r--r-- | 3rdparty/openpgm-svn-r1085/pgm/include/impl/getifaddrs.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/3rdparty/openpgm-svn-r1085/pgm/include/impl/getifaddrs.h b/3rdparty/openpgm-svn-r1085/pgm/include/impl/getifaddrs.h new file mode 100644 index 0000000..4732a21 --- /dev/null +++ b/3rdparty/openpgm-svn-r1085/pgm/include/impl/getifaddrs.h @@ -0,0 +1,73 @@ +/* vim:ts=8:sts=8:sw=4:noai:noexpandtab + * + * portable getifaddrs + * + * Copyright (c) 2006-2009 Miru Limited. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#if !defined (__PGM_IMPL_FRAMEWORK_H_INSIDE__) && !defined (PGM_COMPILATION) +# error "Only <framework.h> can be included directly." +#endif + +#ifndef __PGM_IMPL_GETIFADDRS_H__ +#define __PGM_IMPL_GETIFADDRS_H__ + +#ifndef _WIN32 +# include <sys/types.h> +# include <sys/socket.h> +# include <net/if.h> +#else +# include <ws2tcpip.h> +#endif + +struct pgm_ifaddrs_t; + +#include <pgm/types.h> +#include <pgm/error.h> + +PGM_BEGIN_DECLS + +#ifndef IF_NAMESIZE +# ifdef IFNAMSIZ +# define IF_NAMESIZE IFNAMSIZ +# elif defined(_WIN32) +# define IF_NAMESIZE 40 +# else +# define IF_NAMESIZE 16 +# endif +#endif + +struct pgm_ifaddrs_t +{ + struct pgm_ifaddrs_t* ifa_next; /* Pointer to the next structure. */ + + char* ifa_name; /* Name of this network interface. */ + unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */ + +#ifdef ifa_addr +# undef ifa_addr +#endif + struct sockaddr* ifa_addr; /* Network address of this interface. */ + struct sockaddr* ifa_netmask; /* Netmask of this interface. */ +}; + +bool pgm_getifaddrs (struct pgm_ifaddrs_t**restrict, pgm_error_t**restrict); +void pgm_freeifaddrs (struct pgm_ifaddrs_t*); + +PGM_END_DECLS + +#endif /* __PGM_IMPL_GETIFADDRS_H__ */ |