ip_addr.h revision 8d520ff1dc2da35cdca849e982051b86468016d8
18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * IP address processing
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2003-2006, Jouni Malinen <j@w1.fi>
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
58d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This program is free software; you can redistribute it and/or modify
68d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * it under the terms of the GNU General Public License version 2 as
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * published by the Free Software Foundation.
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Alternatively, this software may be distributed under the terms of BSD
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * license.
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * See README and COPYING for more details.
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef IP_ADDR_H
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define IP_ADDR_H
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct hostapd_ip_addr {
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int af; /* AF_INET / AF_INET6 */
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	union {
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		struct in_addr v4;
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_IPV6
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		struct in6_addr v6;
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_IPV6 */
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		u8 max_len[16];
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	} u;
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt};
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtconst char * hostapd_ip_txt(const struct hostapd_ip_addr *addr, char *buf,
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt			    size_t buflen);
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint hostapd_ip_diff(struct hostapd_ip_addr *a, struct hostapd_ip_addr *b);
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint hostapd_parse_ip_addr(const char *txt, struct hostapd_ip_addr *addr);
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* IP_ADDR_H */
35