jsoninfo / sgw: isGwSelectable function is common, use it as such
[olsrd.git] / src / gateway_default_handler.h
1 /*
2  * gateway_default_handler.h
3  *
4  *  Created on: Jan 29, 2010
5  *      Author: rogge
6  */
7
8 #ifndef GATEWAY_DEFAULT_HANDLER_H_
9 #define GATEWAY_DEFAULT_HANDLER_H_
10
11 #ifdef __linux__
12
13 #include "defs.h"
14 #include "gateway.h"
15
16 #include <stdbool.h>
17
18 static INLINE bool isGwSelectable(struct gateway_entry * gw, bool ipv6) {
19   if (!ipv6) {
20     return gw->ipv4 //
21         && ((olsr_cnf->ip_version == AF_INET) //
22             || olsr_cnf->use_niit) //
23         && (olsr_cnf->smart_gw_allow_nat //
24             || !gw->ipv4nat);
25   }
26
27   return gw->ipv6 //
28       && (olsr_cnf->ip_version == AF_INET6);
29 }
30
31 extern struct olsr_gw_handler gw_def_handler;
32
33 #endif /* __linux__ */
34 #endif /* GATEWAY_DEFAULT_HANDLER_H_ */