FIX: floatingpoint-text to uint32 conversion
authorHenning Rogge <hrogge@googlemail.com>
Wed, 8 Jul 2009 17:49:26 +0000 (19:49 +0200)
committerHenning Rogge <hrogge@googlemail.com>
Wed, 8 Jul 2009 17:49:26 +0000 (19:49 +0200)
rename "reltime" functions
remove olsr_reltime type

23 files changed:
lib/httpinfo/src/olsrd_httpinfo.c
lib/mdns/src/mdns.c
lib/nameservice/src/nameservice.c
lib/nameservice/src/nameservice.h
src/hna_set.c
src/interfaces.c
src/interfaces.h
src/link_set.c
src/link_set.h
src/lq_packet.h
src/main.c
src/mid_set.c
src/neighbor_table.c
src/neighbor_table.h
src/olsr_cfg.c
src/olsr_cfg.h
src/olsr_cfg_gen.c
src/olsr_protocol.h
src/olsr_time.c
src/olsr_time.h
src/scheduler.c
src/tc_set.c
src/win32/ifnet.c

index 900e735..149b323 100644 (file)
@@ -792,7 +792,7 @@ build_config_body(struct autobuf *abuf)
   const struct plugin_entry *pentry;
   const struct plugin_param *pparam;
   struct ipaddr_str mainaddrbuf;
-  struct time_txt tbuf;
+  struct millitxt_buf tbuf;
 
   abuf_appendf(abuf, "Version: %s (built on %s on %s)\n<br>OS: %s\n<br>", olsrd_version, build_date, build_host, OS);
   {
@@ -840,10 +840,10 @@ build_config_body(struct autobuf *abuf)
 
   abuf_puts(abuf, "</tr>\n<tr>\n");
 
-  abuf_appendf(abuf, "<td>Pollrate: %s</td>\n", reltime_to_txt(&tbuf, olsr_cnf->pollrate));
+  abuf_appendf(abuf, "<td>Pollrate: %s</td>\n", olsr_milli_to_txt(&tbuf, olsr_cnf->pollrate));
   abuf_appendf(abuf, "<td>TC redundancy: %d</td>\n", olsr_cnf->tc_redundancy);
   abuf_appendf(abuf, "<td>MPR coverage: %d</td>\n", olsr_cnf->mpr_coverage);
-  abuf_appendf(abuf, "<td>NAT threshold: %s</td>\n", reltime_to_txt(&tbuf, olsr_cnf->lq_nat_thresh));
+  abuf_appendf(abuf, "<td>NAT threshold: %s</td>\n", olsr_milli_to_txt(&tbuf, olsr_cnf->lq_nat_thresh));
 
   abuf_puts(abuf, "</tr>\n<tr>\n");
 
index d1c11bb..d6e7894 100644 (file)
@@ -138,7 +138,7 @@ olsr_parser(union olsr_message *m, struct interface *in_if __attribute__ ((unuse
 {
   union olsr_ip_addr originator;
   int size;
-  olsr_reltime vtime;
+  uint32_t vtime;
   OLSR_DEBUG(LOG_PLUGINS, "MDNS PLUGIN: Received msg in parser\n");
   /* Fetch the originator of the messsage */
   if (olsr_cnf->ip_version == AF_INET) {
index 681c992..dca47ab 100644 (file)
@@ -674,7 +674,7 @@ olsr_parser(union olsr_message *m, struct interface *in_if __attribute__ ((unuse
 {
   struct namemsg *namemessage;
   union olsr_ip_addr originator;
-  olsr_reltime vtime;
+  uint32_t vtime;
   int size;
 
   /* Fetch the originator of the messsage */
@@ -911,7 +911,7 @@ decap_namemsg(struct name *from_packet, struct name_entry **to, bool * this_tabl
  * name/service/forwarder entry in the message
  */
 void
-update_name_entry(union olsr_ip_addr *originator, struct namemsg *msg, int msg_size, olsr_reltime vtime)
+update_name_entry(union olsr_ip_addr *originator, struct namemsg *msg, int msg_size, uint32_t vtime)
 {
 #if !defined REMOVE_LOG_WARN
   struct ipaddr_str strbuf;
@@ -971,7 +971,7 @@ update_name_entry(union olsr_ip_addr *originator, struct namemsg *msg, int msg_s
  */
 void
 insert_new_name_in_list(union olsr_ip_addr *originator,
-                        struct list_node *this_list, struct name *from_packet, bool * this_table_changed, olsr_reltime vtime)
+                        struct list_node *this_list, struct name *from_packet, bool * this_table_changed, uint32_t vtime)
 {
   int hash;
   struct db_entry *entry;
index 95270fc..ee955f4 100644 (file)
@@ -148,12 +148,12 @@ void
   decap_namemsg(struct name *from_packet, struct name_entry **to, bool * this_table_changed);
 
 void
-  insert_new_name_in_list(union olsr_ip_addr *, struct list_node *, struct name *, bool *, olsr_reltime);
+  insert_new_name_in_list(union olsr_ip_addr *, struct list_node *, struct name *, bool *, uint32_t);
 
 bool allowed_hostname_or_ip_in_service(const char *service_line, const regmatch_t * hostname_or_ip);
 
 void
-  update_name_entry(union olsr_ip_addr *, struct namemsg *, int, olsr_reltime);
+  update_name_entry(union olsr_ip_addr *, struct namemsg *, int, uint32_t);
 
 void
   write_hosts_file(void);
index dd39144..0fb1a60 100644 (file)
@@ -189,7 +189,7 @@ olsr_expire_hna_net_entry(void *context)
  *@return nada
  */
 static void
-olsr_update_hna_entry(const union olsr_ip_addr *gw, const struct olsr_ip_prefix *prefix, olsr_reltime vtime)
+olsr_update_hna_entry(const union olsr_ip_addr *gw, const struct olsr_ip_prefix *prefix, uint32_t vtime)
 {
   struct tc_entry *tc = olsr_locate_tc_entry(gw);
   struct hna_net *net_entry = olsr_lookup_hna_net(tc, prefix);
index 8899234..1cf1e7c 100644 (file)
@@ -142,7 +142,7 @@ static void remove_lost_interface_ip(struct interface_lost *lost) {
   olsr_cookie_free(interface_lost_mem_cookie, lost);
 }
 
-static void add_lost_interface_ip(union olsr_ip_addr *ip, olsr_reltime hello_timeout) {
+static void add_lost_interface_ip(union olsr_ip_addr *ip, uint32_t hello_timeout) {
   struct interface_lost *lost;
 #if !defined(REMOVE_LOG_DEBUG)
   struct ipaddr_str buf;
index 71fb57a..3a1cd76 100644 (file)
@@ -172,7 +172,7 @@ struct interface {
   } nic_state;
 #endif
 
-  olsr_reltime hello_etime;
+  uint32_t hello_etime;
   struct vtimes valtimes;
 #if 0
   struct if_gen_property *gen_properties;       /* Generic interface properties */
index 96442a3..3a706af 100644 (file)
@@ -75,7 +75,7 @@ signal_link_changes(bool val)
 static int check_link_status(const struct lq_hello_message *message, const struct interface *in_if);
 static struct link_entry *add_link_entry(const union olsr_ip_addr *,
                                          const union olsr_ip_addr *,
-                                         union olsr_ip_addr *, olsr_reltime, olsr_reltime, struct interface *);
+                                         union olsr_ip_addr *, uint32_t, uint32_t, struct interface *);
 static bool get_neighbor_status(const union olsr_ip_addr *);
 
 void
@@ -432,7 +432,7 @@ olsr_set_link_timer(struct link_entry *link, unsigned int rel_timer)
 static struct link_entry *
 add_link_entry(const union olsr_ip_addr *local,
                const union olsr_ip_addr *remote,
-               union olsr_ip_addr *remote_main, olsr_reltime vtime, olsr_reltime htime, struct interface *local_if)
+               union olsr_ip_addr *remote_main, uint32_t vtime, uint32_t htime, struct interface *local_if)
 {
   struct link_entry *link;
   struct nbr_entry *neighbor;
@@ -745,7 +745,7 @@ olsr_print_link_set(void)
  * update the timeout with the htime value from the message
  */
 void
-olsr_update_packet_loss_hello_int(struct link_entry *entry, olsr_reltime loss_hello_int)
+olsr_update_packet_loss_hello_int(struct link_entry *entry, uint32_t loss_hello_int)
 {
   entry->loss_helloint = loss_hello_int;
 }
index 7ff86cd..ba6daa3 100644 (file)
@@ -63,7 +63,7 @@ struct link_entry {
   struct timer_entry *link_timer;
   struct timer_entry *link_sym_timer;
   uint32_t ASYM_time;
-  olsr_reltime vtime;
+  uint32_t vtime;
   struct nbr_entry *neighbor;
   uint8_t prev_status;
 
@@ -72,7 +72,7 @@ struct link_entry {
   /*
    * packet loss
    */
-  olsr_reltime loss_helloint;
+  uint32_t loss_helloint;
   struct timer_entry *link_loss_timer;
 
   /* user defined multiplies for link quality, multiplied with 65536 */
@@ -128,7 +128,7 @@ struct link_entry *update_link_entry(const union olsr_ip_addr *,
 int EXPORT(check_neighbor_link) (const union olsr_ip_addr *);
 int replace_neighbor_link_set(const struct nbr_entry *, struct nbr_entry *);
 int lookup_link_status(const struct link_entry *);
-void olsr_update_packet_loss_hello_int(struct link_entry *, olsr_reltime);
+void olsr_update_packet_loss_hello_int(struct link_entry *, uint32_t);
 void olsr_update_packet_loss(struct link_entry *entry);
 void olsr_print_link_set(void);
 
index b46390f..f454975 100644 (file)
@@ -55,7 +55,7 @@
 struct olsr_common {
   uint8_t type;
   uint16_t size;
-  olsr_reltime vtime;
+  uint32_t vtime;
   union olsr_ip_addr orig;
   uint8_t ttl;
   uint8_t hops;
@@ -98,7 +98,7 @@ struct lq_hello_neighbor {
 
 struct lq_hello_message {
   struct olsr_common comm;
-  olsr_reltime htime;
+  uint32_t htime;
   uint8_t will;
   struct lq_hello_neighbor *neigh;
 };
@@ -175,7 +175,7 @@ pkt_get_s32(const uint8_t ** p, int32_t * var)
   *p += sizeof(int32_t);
 }
 static INLINE void
-pkt_get_reltime(const uint8_t ** p, olsr_reltime * var)
+pkt_get_reltime(const uint8_t ** p, uint32_t * var)
 {
   *var = me_to_reltime(**p);
   *p += sizeof(uint8_t);
@@ -271,7 +271,7 @@ pkt_put_s32(uint8_t ** p, int32_t var)
   *p += sizeof(int32_t);
 }
 static INLINE void
-pkt_put_reltime(uint8_t ** p, olsr_reltime var)
+pkt_put_reltime(uint8_t ** p, uint32_t var)
 {
   **p = reltime_to_me(var);
   *p += sizeof(uint8_t);
index f437829..7567b72 100644 (file)
@@ -293,11 +293,11 @@ main(int argc, char *argv[])
       olsr_cnf->willingness_auto = 0;
       olsr_cnf->willingness = WILL_DEFAULT;
     } else {
-      struct time_txt tbuf;
+      struct millitxt_buf tbuf;
       olsr_cnf->willingness = olsr_calculate_willingness();
 
       OLSR_INFO(LOG_MAIN, "Willingness set to %d - next update in %s secs\n",
-          olsr_cnf->willingness, reltime_to_txt(&tbuf, olsr_cnf->will_int));
+          olsr_cnf->willingness, olsr_milli_to_txt(&tbuf, olsr_cnf->will_int));
     }
   }
 
index 82609a7..f8835d1 100644 (file)
@@ -106,7 +106,7 @@ olsr_expire_mid_entries(void *context)
  * The timer param is a relative timer expressed in milliseconds.
  */
 static void
-olsr_set_mid_timer(struct tc_entry *tc, olsr_reltime rel_timer)
+olsr_set_mid_timer(struct tc_entry *tc, uint32_t rel_timer)
 {
   olsr_set_timer(&tc->mid_timer, rel_timer, OLSR_MID_JITTER,
                  OLSR_TIMER_ONESHOT, &olsr_expire_mid_entries, tc, mid_validity_timer_cookie);
@@ -214,7 +214,7 @@ olsr_fixup_mid_main_addr(const union olsr_ip_addr *main_addr, const union olsr_i
  */
 static struct mid_entry *
 olsr_insert_mid_entry(const union olsr_ip_addr *main_addr,
-                      const union olsr_ip_addr *alias_addr, olsr_reltime vtime, uint16_t mid_seqno)
+                      const union olsr_ip_addr *alias_addr, uint32_t vtime, uint16_t mid_seqno)
 {
   struct tc_entry *tc;
   struct mid_entry *alias;
@@ -277,7 +277,7 @@ olsr_insert_mid_entry(const union olsr_ip_addr *main_addr,
  */
 static void
 olsr_update_mid_entry(const union olsr_ip_addr *main_addr,
-                      const union olsr_ip_addr *alias_addr, olsr_reltime vtime, uint16_t mid_seqno)
+                      const union olsr_ip_addr *alias_addr, uint32_t vtime, uint16_t mid_seqno)
 {
   struct mid_entry *alias;
 
@@ -468,7 +468,7 @@ olsr_input_mid(union olsr_message *msg, struct interface *input_if __attribute__
   uint16_t msg_size, msg_seq;
   uint8_t type, ttl, msg_hops;
   const unsigned char *curr;
-  olsr_reltime vtime;
+  uint32_t vtime;
   union olsr_ip_addr originator, alias;
   int alias_count;
 #if !defined REMOVE_LOG_DEBUG
index e431f61..a850287 100644 (file)
@@ -337,7 +337,7 @@ olsr_lookup_nbr2_entry(const union olsr_ip_addr *addr, bool lookupalias) {
  * @param vtime validity time of the 2hop neighbor
  */
 struct nbr_con *
-olsr_link_nbr_nbr2(struct nbr_entry *nbr, const union olsr_ip_addr *nbr2_addr, olsr_reltime vtime) {
+olsr_link_nbr_nbr2(struct nbr_entry *nbr, const union olsr_ip_addr *nbr2_addr, uint32_t vtime) {
   struct nbr_con *connector;
   struct nbr2_entry *nbr2;
 
index df30bff..deb6b61 100644 (file)
@@ -171,7 +171,7 @@ void olsr_delete_nbr2_entry(struct nbr2_entry *);
 struct nbr2_entry *EXPORT(olsr_lookup_nbr2_entry)(const union olsr_ip_addr *, bool aliaslookup);
 
 /* work with connectors */
-struct nbr_con *olsr_link_nbr_nbr2(struct nbr_entry *, const union olsr_ip_addr *, olsr_reltime);
+struct nbr_con *olsr_link_nbr_nbr2(struct nbr_entry *, const union olsr_ip_addr *, uint32_t);
 void olsr_delete_nbr_con(struct nbr_con *);
 struct nbr_con *EXPORT(olsr_lookup_nbr_con_entry)(struct nbr_entry *, const union olsr_ip_addr *);
 struct nbr_con *EXPORT(olsr_lookup_nbr2_con_entry)(struct nbr2_entry *, const union olsr_ip_addr *);
index b4931e1..c651f66 100644 (file)
@@ -501,28 +501,28 @@ parse_cfg_interface(char *argstr, struct olsr_config *rcfg, char *rmsg)
             new_if->cnf->ipv6_multi_glbl = ipaddr;
             PARSER_DEBUG_PRINTF("\tIPv6 global multicast: %s\n", ip6_to_string(&buf, &new_if->cnf->ipv6_multi_glbl.v6));
           } else if (0 == strcasecmp("HelloInterval", p_next[0])) {
-            new_if->cnf->hello_params.emission_interval = txt_to_reltime(p_next[1]);
+            new_if->cnf->hello_params.emission_interval = olsr_txt_to_milli(p_next[1]);
             PARSER_DEBUG_PRINTF("\tHELLO interval1: %u ms\n", new_if->cnf->hello_params.emission_interval);
           } else if (0 == strcasecmp("HelloValidityTime", p_next[0])) {
-            new_if->cnf->hello_params.validity_time = txt_to_reltime(p_next[1]);
+            new_if->cnf->hello_params.validity_time = olsr_txt_to_milli(p_next[1]);
             PARSER_DEBUG_PRINTF("\tHELLO validity: %u ms\n", new_if->cnf->hello_params.validity_time);
           } else if (0 == strcasecmp("Tcinterval", p_next[0])) {
-            new_if->cnf->tc_params.emission_interval = txt_to_reltime(p_next[1]);
+            new_if->cnf->tc_params.emission_interval = olsr_txt_to_milli(p_next[1]);
             PARSER_DEBUG_PRINTF("\tTC interval1: %u ms\n", new_if->cnf->tc_params.emission_interval);
           } else if (0 == strcasecmp("TcValidityTime", p_next[0])) {
-            new_if->cnf->tc_params.validity_time = txt_to_reltime(p_next[1]);
+            new_if->cnf->tc_params.validity_time = olsr_txt_to_milli(p_next[1]);
             PARSER_DEBUG_PRINTF("\tTC validity: %u ms\n", new_if->cnf->tc_params.validity_time);
           } else if (0 == strcasecmp("Midinterval", p_next[0])) {
-            new_if->cnf->mid_params.emission_interval = txt_to_reltime(p_next[1]);
+            new_if->cnf->mid_params.emission_interval = olsr_txt_to_milli(p_next[1]);
             PARSER_DEBUG_PRINTF("\tMID interval1: %u ms\n", new_if->cnf->mid_params.emission_interval);
           } else if (0 == strcasecmp("MidValidityTime", p_next[0])) {
-            new_if->cnf->mid_params.validity_time = txt_to_reltime(p_next[1]);
+            new_if->cnf->mid_params.validity_time = olsr_txt_to_milli(p_next[1]);
             PARSER_DEBUG_PRINTF("\tMID validity: %u ms\n", new_if->cnf->mid_params.validity_time);
           } else if (0 == strcasecmp("Hnainterval", p_next[0])) {
-            new_if->cnf->hna_params.emission_interval = txt_to_reltime(p_next[1]);
+            new_if->cnf->hna_params.emission_interval = olsr_txt_to_milli(p_next[1]);
             PARSER_DEBUG_PRINTF("\tHNA interval1: %u ms\n", new_if->cnf->hna_params.emission_interval);
           } else if (0 == strcasecmp("HnaValidityTime", p_next[0])) {
-            new_if->cnf->hna_params.validity_time = txt_to_reltime(p_next[1]);
+            new_if->cnf->hna_params.validity_time = olsr_txt_to_milli(p_next[1]);
             PARSER_DEBUG_PRINTF("\tHNA validity: %u ms\n", new_if->cnf->hna_params.validity_time);
           } else if (0 == strcasecmp("Weight", p_next[0])) {
             new_if->cnf->weight.fixed = true;
@@ -927,7 +927,7 @@ parse_cfg_option(const int optint, char *argstr, const int line, struct olsr_con
       sscanf(argstr, "%d %10s", &limit, t);
       if (0 <= limit && limit < (1 << (8 * sizeof(rcfg->lq_dlimit))))
         rcfg->lq_dlimit = limit;
-      rcfg->lq_dinter = txt_to_reltime(t);
+      rcfg->lq_dinter = olsr_txt_to_milli(t);
       PARSER_DEBUG_PRINTF("Link quality dijkstra limit %d, %u ms\n", rcfg->lq_dlimit, rcfg->lq_dinter);
     }
     break;
@@ -954,19 +954,19 @@ parse_cfg_option(const int optint, char *argstr, const int line, struct olsr_con
     break;
   case 'N':                    /* NatThreshold (f) */
     {
-      struct time_txt tbuf;
+      struct millitxt_buf tbuf;
 
-      rcfg->lq_nat_thresh = txt_to_reltime(argstr);
-      PARSER_DEBUG_PRINTF("NAT threshold %s\n", reltime_to_txt(&tbuf, rcfg->lq_nat_thresh));
+      rcfg->lq_nat_thresh = olsr_txt_to_milli(argstr);
+      PARSER_DEBUG_PRINTF("NAT threshold %s\n", olsr_milli_to_txt(&tbuf, rcfg->lq_nat_thresh));
     }
     break;
   case 'Y':                    /* NicChgsPollInt (f) */
-    rcfg->nic_chgs_pollrate = txt_to_reltime(argstr);
+    rcfg->nic_chgs_pollrate = olsr_txt_to_milli(argstr);
     PARSER_DEBUG_PRINTF("NIC Changes Pollrate %u ms\n", rcfg->nic_chgs_pollrate);
     break;
   case 'T':                    /* Pollrate (f) */
     {
-      rcfg->pollrate = txt_to_reltime(argstr);
+      rcfg->pollrate = olsr_txt_to_milli(argstr);
       PARSER_DEBUG_PRINTF("Pollrate %u ms\n", rcfg->pollrate);
     }
     break;
@@ -1408,7 +1408,7 @@ olsr_sanity_check_cfg(struct olsr_config *cfg)
 {
   struct olsr_if_config *in = cfg->if_configs;
   struct olsr_if_options *io;
-  struct time_txt tbuf;
+  struct millitxt_buf tbuf;
 
   /* IP version */
   if (cfg->ip_version != AF_INET && cfg->ip_version != AF_INET6) {
@@ -1454,7 +1454,7 @@ olsr_sanity_check_cfg(struct olsr_config *cfg)
 
   /* NAT threshold value */
   if (cfg->lq_nat_thresh < 100 || cfg->lq_nat_thresh > 1000) {
-    fprintf(stderr, "NAT threshold %s is not allowed\n", reltime_to_txt(&tbuf, cfg->lq_nat_thresh));
+    fprintf(stderr, "NAT threshold %s is not allowed\n", olsr_milli_to_txt(&tbuf, cfg->lq_nat_thresh));
     return -1;
   }
 
index b2a151e..5e70af8 100644 (file)
 #include "olsr_cfg_data.h"
 
 struct olsr_msg_params {
-  olsr_reltime emission_interval;
-  olsr_reltime validity_time;
+  uint32_t emission_interval;
+  uint32_t validity_time;
 };
 
 struct olsr_lq_mult {
@@ -200,13 +200,13 @@ struct olsr_config {
   struct ip_acl ipc_nets;              /* List of allowed IPC peer IPs */
   struct olsr_if_config *if_configs;   /* List of devices to be used by olsrd */
 
-  olsr_reltime pollrate;               /* Main loop poll rate, in milliseconds */
-  olsr_reltime nic_chgs_pollrate;      /* Interface poll rate */
+  uint32_t pollrate;               /* Main loop poll rate, in milliseconds */
+  uint32_t nic_chgs_pollrate;      /* Interface poll rate */
   uint32_t lq_nat_thresh;              /* Link quality NAT threshold, 1000 == unused */
   uint8_t tc_redundancy;               /* TC anncoument mode, 0=only MPR, 1=MPR+MPRS, 2=All sym neighs */
   uint8_t mpr_coverage;                /* How many additional MPRs should be selected */
   uint8_t lq_fish;                     /* 0==Fisheye off, 1=Fisheye on */
-  olsr_reltime lq_dinter;              /* Dijkstra Calculation interval */
+  uint32_t lq_dinter;              /* Dijkstra Calculation interval */
   uint8_t lq_dlimit;                   /* Dijkstra Calculation limit */
   uint8_t willingness;                 /* Manual Configured Willingness value */
 
@@ -225,7 +225,7 @@ struct olsr_config {
    */
 
   union olsr_ip_addr router_id;        /* Main address of this node */
-  olsr_reltime will_int;                      /* Willingness update interval if willingness_auto */
+  uint32_t will_int;                      /* Willingness update interval if willingness_auto */
   int exit_value;                      /* Global return value for process termination */
 
   int ioctl_s;                         /* Socket used for ioctl calls */
index bce0935..fd34aff 100644 (file)
 #include <errno.h>
 
 static INLINE void
-append_reltime(struct autobuf *abuf, const char *name, olsr_reltime val, olsr_reltime deflt, bool first)
+append_reltime(struct autobuf *abuf, const char *name, uint32_t val, uint32_t deflt, bool first)
 {
-  struct time_txt buf;
+  struct millitxt_buf buf;
 
   if (val != deflt) {
-    abuf_appendf(abuf, "    %s\t%s\n", name, reltime_to_txt(&buf, val));
+    abuf_appendf(abuf, "    %s\t%s\n", name, olsr_milli_to_txt(&buf, val));
   } else if (first) {
-    abuf_appendf(abuf, "    #%s\t%s\n", name, reltime_to_txt(&buf, val));
+    abuf_appendf(abuf, "    #%s\t%s\n", name, olsr_milli_to_txt(&buf, val));
   }
 }
 
@@ -63,7 +63,7 @@ void
 olsr_write_cnf_buf(struct autobuf *abuf, struct olsr_config *cnf, bool write_more_comments)
 {
   char ipv6_buf[INET6_ADDRSTRLEN];     /* buffer for IPv6 inet_ntop */
-  struct time_txt tbuf;
+  struct millitxt_buf tbuf;
   const char *s;
 
   abuf_appendf(abuf, "#\n" "# Generated config file for %s\n" "#\n\n", olsrd_version);
@@ -134,12 +134,12 @@ olsr_write_cnf_buf(struct autobuf *abuf, struct olsr_config *cnf, bool write_mor
   /* Pollrate */
   abuf_appendf(abuf, "# Polling rate in seconds(float).\n"
                "# Auto uses default value 0.05 sec\n" "Pollrate\t%s\n",
-               reltime_to_txt(&tbuf, cnf->pollrate));
+               olsr_milli_to_txt(&tbuf, cnf->pollrate));
 
   /* NIC Changes Pollrate */
   abuf_appendf(abuf, "# Interval to poll network interfaces for configuration\n"
                "# changes. Defaults to 2.5 seconds\n" "NicChgsPollInt\t%s\n",
-               reltime_to_txt(&tbuf, cnf->nic_chgs_pollrate));
+               olsr_milli_to_txt(&tbuf, cnf->nic_chgs_pollrate));
 
   /* TC redundancy */
   abuf_appendf(abuf, "# TC redundancy\n"
@@ -159,7 +159,7 @@ olsr_write_cnf_buf(struct autobuf *abuf, struct olsr_config *cnf, bool write_mor
   abuf_appendf(abuf, "# Fish Eye algorithm\n"
                "# 0 = do not use fish eye\n" "# 1 = use fish eye\n" "LinkQualityFishEye\t%d\n\n", cnf->lq_fish);
 
-  abuf_appendf(abuf, "# NAT threshold\n" "NatThreshold\t%s\n\n", reltime_to_txt(&tbuf, cnf->lq_nat_thresh));
+  abuf_appendf(abuf, "# NAT threshold\n" "NatThreshold\t%s\n\n", olsr_milli_to_txt(&tbuf, cnf->lq_nat_thresh));
 
   abuf_appendf(abuf, "# Clear screen when printing debug output?\n" "ClearScreen\t%s\n\n", cnf->clear_screen ? "yes" : "no");
 
index ff514c2..e3e1ed8 100644 (file)
@@ -346,7 +346,7 @@ struct olsrmsg {
  */
 struct olsrmsg_hdr {
   uint8_t type;
-  olsr_reltime vtime;
+  uint32_t vtime;
   uint16_t size;
   union olsr_ip_addr originator;
   uint8_t ttl;
index 9507afc..46b0714 100644 (file)
@@ -61,7 +61,7 @@
  *@return a 8-bit mantissa/exponent product
  */
 uint8_t
-reltime_to_me(const olsr_reltime interval)
+reltime_to_me(const uint32_t interval)
 {
   uint8_t a = 0, b = 0;                /* Underflow defaults */
 
@@ -130,7 +130,7 @@ reltime_to_me(const olsr_reltime interval)
  * 2. case: b <= 8
  *           = ((16 + a) * 1000) >> (8-b)
  */
-olsr_reltime
+uint32_t
 me_to_reltime(const uint8_t me)
 {
   const uint8_t a = me >> 4;
@@ -143,14 +143,22 @@ me_to_reltime(const uint8_t me)
   return ((16 + a) * 1000) >> (8 - b);
 }
 
+/**
+ * converts an unsigned integer value into a string representation
+ * (divided by 1000)
+ */
 char *
-reltime_to_txt(struct time_txt *buffer, olsr_reltime t) {
+olsr_milli_to_txt(struct millitxt_buf *buffer, uint32_t t) {
   sprintf(buffer->buf, "%u.%03u", t/1000, t%1000);
   return buffer->buf;
 }
 
+/**
+ * converts a floating point text into a unsigned integer representation
+ * (multiplied by 1000)
+ */
 uint32_t
-txt_to_reltime(char *txt) {
+olsr_txt_to_milli(char *txt) {
   uint32_t t1 = 0,t2 = 0;
   char *fraction;
 
@@ -158,11 +166,13 @@ txt_to_reltime(char *txt) {
   if (fraction != NULL) {
     *fraction++ = 0;
 
-    if (strlen(fraction) > 3) {
-      fraction[3] = 0;
-    }
-
     t2 = strtoul(fraction, NULL, 10);
+    if (t2 < 100) {
+      t2 *= 100;
+    }
+    while (t2 > 999) {
+      t2 /= 10;
+    }
   }
   t1 = strtoul(txt, NULL, 10);
   if (t1 > UINT32_MAX / MSEC_PER_SEC) {
index a09b48f..ccf0a41 100644 (file)
 #define NSEC_PER_USEC 1000
 #define USEC_PER_MSEC 1000
 
-/* olsr_reltime is a relative timestamp measured in microseconds */
-typedef uint32_t olsr_reltime;
-
-struct time_txt {
+struct millitxt_buf {
   char buf[16];
 };
 
@@ -72,13 +69,13 @@ struct time_txt {
  * me is the 8 bit mantissa/exponent value
  *
  */
-olsr_reltime EXPORT(me_to_reltime) (const uint8_t);
+uint32_t EXPORT(me_to_reltime) (const uint8_t);
 
-uint8_t EXPORT(reltime_to_me) (const olsr_reltime);
+uint8_t EXPORT(reltime_to_me) (const uint32_t);
 
-char *EXPORT(reltime_to_txt)(struct time_txt *buffer, olsr_reltime t);
+char *EXPORT(olsr_milli_to_txt)(struct millitxt_buf *buffer, uint32_t t);
 
-olsr_reltime EXPORT(txt_to_reltime)(char *txt);
+uint32_t EXPORT(olsr_txt_to_milli)(char *txt);
 
 
 #endif
index 6dad677..ce5ada5 100644 (file)
@@ -448,6 +448,8 @@ olsr_scheduler(void)
 {
   OLSR_INFO(LOG_SCHEDULER, "Scheduler started - polling every %u ms\n", olsr_cnf->pollrate);
 
+  fprintf(stderr, "Pollrate: %u\n", olsr_cnf->pollrate);
+
   /* Main scheduler loop */
   while (app_state == STATE_RUNNING) {
     uint32_t next_interval;
index fc1a762..4ea67d7 100644 (file)
@@ -839,7 +839,7 @@ olsr_input_tc(union olsr_message * msg, struct interface * input_if __attribute_
 {
   uint16_t size, msg_seq, ansn;
   uint8_t type, ttl, msg_hops, lower_border, upper_border;
-  olsr_reltime vtime;
+  uint32_t vtime;
   union olsr_ip_addr originator;
   const unsigned char *limit, *curr;
   struct tc_entry *tc;
index f77ff9a..cf7963d 100644 (file)
@@ -750,7 +750,7 @@ chk_if_up(struct olsr_if_config *IntConf)
     olsr_start_timer(IntConf->cnf->hna_params.emission_interval,
                      HNA_JITTER, OLSR_TIMER_PERIODIC, &generate_hna, New, hna_gen_timer_cookie->ci_id);
 
-  New->hello_etime = (olsr_reltime) (IntConf->cnf->hello_params.emission_interval);
+  New->hello_etime = (uint32_t) (IntConf->cnf->hello_params.emission_interval);
   New->valtimes.hello = reltime_to_me(IntConf->cnf->hello_params.validity_time);
   New->valtimes.tc = reltime_to_me(IntConf->cnf->tc_params.validity_time);
   New->valtimes.mid = reltime_to_me(IntConf->cnf->mid_params.validity_time);