Automated merge with http://gredler.at/hg/olsrd
authorBernd Petrovitsch <bernd@firmix.at>
Sun, 7 Sep 2008 20:07:35 +0000 (22:07 +0200)
committerBernd Petrovitsch <bernd@firmix.at>
Sun, 7 Sep 2008 20:07:35 +0000 (22:07 +0200)
1  2 
lib/quagga/src/quagga.c
src/defs.h
src/ipcalc.h
src/main.c
src/routing_table.c
src/routing_table.h

Simple merge
diff --cc src/defs.h
@@@ -123,10 -187,6 +124,12 @@@ extern olsr_bool olsr_win32_end_flag
   */
  unsigned long olsr_times(void);
  
+ =======
+ >>>>>>> other
  #endif
 +
 +/*
 + * Local Variables:
 + * c-basic-offset: 2
 + * End:
 + */
diff --cc src/ipcalc.h
Simple merge
diff --cc src/main.c
Simple merge
Simple merge
@@@ -223,11 -244,21 +244,22 @@@ char *olsr_rt_to_string(const struct rt
  char *olsr_rtp_to_string(const struct rt_path *);
  void olsr_print_routing_table(struct avl_tree *);
  
- const struct rt_nexthop * olsr_get_nh(const struct rt_entry *);
+ /**
+  * depending on the operation (add/chg/del) the nexthop
+  * field from the route entry or best route path shall be used.
+  */
+ static INLINE const struct rt_nexthop *olsr_get_nh(const struct rt_entry *rt) {
+   return rt->rt_best != NULL
+     /* this is a route add/chg - grab nexthop from the best route. */
+     ? &rt->rt_best->rtp_nexthop
+     /* this is a route deletion - all routes are gone. */
+     : &rt->rt_nexthop;
+ }
  
  /* rt_path manipulation */
 -struct rt_path *olsr_insert_routing_table(union olsr_ip_addr *, int, union olsr_ip_addr *, int);
 +struct rt_path *olsr_insert_routing_table(const union olsr_ip_addr *, const int,
 +                                          const union olsr_ip_addr *, const int);
  void olsr_delete_routing_table(union olsr_ip_addr *, int, union olsr_ip_addr *);
  void olsr_insert_rt_path(struct rt_path *, struct tc_entry *, struct link_entry *);
  void olsr_update_rt_path(struct rt_path *, struct tc_entry *, struct link_entry *);