gateway: add path_cost to 'set gateway' interface
authorFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 7 Nov 2012 09:12:21 +0000 (10:12 +0100)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Mon, 10 Dec 2012 14:18:24 +0000 (15:18 +0100)
We need it when we are going to keep the active gateway(s) in a list

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
src/gateway.c
src/gateway.h
src/gateway_default_handler.c

index f6486f0..7aa09ba 100644 (file)
@@ -535,11 +535,12 @@ void olsr_trigger_gatewayloss_check(void) {
  * Sets a new internet gateway.
  *
  * @param originator ip address of the node with the new gateway
+ * @param path_cost the path cost
  * @param ipv4 set ipv4 gateway
  * @param ipv6 set ipv6 gateway
  * @return true if an error happened, false otherwise
  */
-bool olsr_set_inet_gateway(union olsr_ip_addr *originator, bool ipv4, bool ipv6) {
+bool olsr_set_inet_gateway(union olsr_ip_addr *originator, uint64_t path_cost __attribute__((unused)), bool ipv4, bool ipv6) {
   struct gateway_entry *new_gw;
 
   ipv4 = ipv4 && (olsr_cnf->ip_version == AF_INET || olsr_cnf->use_niit);
index 385a48e..5643884 100644 (file)
@@ -163,7 +163,7 @@ void olsr_trigger_gatewayloss_check(void);
  * Gateway Plugin Functions
  */
 
-bool olsr_set_inet_gateway(union olsr_ip_addr *originator, bool ipv4, bool ipv6);
+bool olsr_set_inet_gateway(union olsr_ip_addr *originator, uint64_t path_cost, bool ipv4, bool ipv6);
 struct gateway_entry *olsr_get_inet_gateway(bool ipv6);
 
 #endif /* GATEWAY_H_ */
index 62e0d77..1d683f4 100644 (file)
@@ -233,11 +233,11 @@ static void gw_default_choose_gateway(void) {
 
   if (inet_ipv4) {
     /* we are dealing with an IPv4 or dual stack gateway */
-    olsr_set_inet_gateway(&inet_ipv4->originator, true, dual);
+    olsr_set_inet_gateway(&inet_ipv4->originator, cost_ipv4, true, dual);
   }
   if (inet_ipv6 && !dual) {
     /* we are dealing with an IPv6-only gateway */
-    olsr_set_inet_gateway(&inet_ipv6->originator, false, true);
+    olsr_set_inet_gateway(&inet_ipv6->originator, cost_ipv6, false, true);
   }
 
   if ((olsr_cnf->smart_gw_thresh == 0) && gw_def_finished_ipv4 && gw_def_finished_ipv6) {