gateway: fix stable count dampening in gw_default_timer
authorFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 30 Jan 2013 10:16:45 +0000 (11:16 +0100)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 30 Jan 2013 10:18:57 +0000 (11:18 +0100)
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
src/gateway_default_handler.c

index 62e0d77..7379b00 100644 (file)
@@ -254,7 +254,10 @@ static void gw_default_choose_gateway(void) {
  */
 static void gw_default_timer(void *unused __attribute__ ((unused))) {
   /* accept a 10% increase/decrease in the number of gateway nodes without triggering a stablecount reset */
-  if (((tc_tree.count * 10) <= (gw_def_nodecount * 11)) || ((tc_tree.count * 10) >= (gw_def_nodecount * 9))) {
+  unsigned int tree100percent = tc_tree.count * 10;
+  uint32_t nodecount090percent = gw_def_nodecount * 9;
+  uint32_t nodecount110percent = gw_def_nodecount * 11;
+  if ((tree100percent >= nodecount090percent) && (tree100percent <= nodecount110percent)) {
     gw_def_nodecount = tc_tree.count;
   }