summaryrefslogtreecommitdiffstats
path: root/net.h
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2009-04-17 12:49:25 +0000
committerRoy Marples <roy@marples.name>2009-04-17 12:49:25 +0000
commit5ed586386c33ac859efeac16366768d060d9764b (patch)
tree471b0dcd5284cf2a1707e135a9ff407addeecd48 /net.h
parent4ca7460fa346b6e8003847864a058ab5f8c0befd (diff)
downloaddhcpcd-5ed586386c33ac859efeac16366768d060d9764b.tar.xz
discover_interfaces now uses getifaddrs instead of OS specific implementation.
do_interface then becomes do_address and also uses getifaddrs. Binary size is a little smaller, code size is now a lot smaller.
Diffstat (limited to 'net.h')
-rw-r--r--net.h28
1 files changed, 13 insertions, 15 deletions
diff --git a/net.h b/net.h
index f0ff3ad0..0ee3e67a 100644
--- a/net.h
+++ b/net.h
@@ -66,8 +66,8 @@
* 192.168/16
*/
#ifndef IN_PRIVATE
-# define IN_PRIVATE(addr) (((addr & IN_CLASSA_NET) == 0x0a000000) || \
- ((addr & 0xfff00000) == 0xac100000) || \
+# define IN_PRIVATE(addr) (((addr & IN_CLASSA_NET) == 0x0a000000) || \
+ ((addr & 0xfff00000) == 0xac100000) || \
((addr & IN_CLASSB_NET) == 0xc0a80000))
#endif
@@ -103,31 +103,29 @@ int inet_ntocidr(struct in_addr);
int inet_cidrtoaddr(int, struct in_addr *);
int up_interface(const char *);
-int do_interface(const char *,
- void (*)(struct interface **, int, char * const *, struct ifreq *),
- struct interface **, int, char * const *,
+int do_address(const char *,
struct in_addr *, struct in_addr *, struct in_addr *, int);
int if_address(const struct interface *,
const struct in_addr *, const struct in_addr *,
const struct in_addr *, int);
-#define add_address(iface, addr, net, brd) \
+#define add_address(iface, addr, net, brd) \
if_address(iface, addr, net, brd, 1)
-#define del_address(iface, addr, net) \
+#define del_address(iface, addr, net) \
if_address(iface, addr, net, NULL, -1)
-#define has_address(iface, addr, net) \
- do_interface(iface, NULL, NULL, 0, NULL, addr, net, NULL, 0)
-#define get_address(iface, addr, net, dst) \
- do_interface(iface, NULL, NULL, 0, NULL, addr, net, dst, 1)
+#define has_address(iface, addr, net) \
+ do_address(iface, addr, net, NULL, 0)
+#define get_address(iface, addr, net, dst) \
+ do_address(iface, addr, net, dst, 1)
int if_route(const struct interface *, const struct in_addr *,
const struct in_addr *, const struct in_addr *, int, int);
-#define add_route(iface, dest, mask, gate, metric) \
+#define add_route(iface, dest, mask, gate, metric) \
if_route(iface, dest, mask, gate, metric, 1)
-#define change_route(iface, dest, mask, gate, metric) \
+#define change_route(iface, dest, mask, gate, metric) \
if_route(iface, dest, mask, gate, metric, 0)
-#define del_route(iface, dest, mask, gate, metric) \
+#define del_route(iface, dest, mask, gate, metric) \
if_route(iface, dest, mask, gate, metric, -1)
-#define del_src_route(iface, dest, mask, gate, metric) \
+#define del_src_route(iface, dest, mask, gate, metric) \
if_route(iface, dest, mask, gate, metric, -2)
void free_routes(struct rt *);