* creating builddata.c containing build time information as date+time,
authorBernd Petrovitsch <bernd@firmix.at>
Sun, 16 Sep 2007 21:20:17 +0000 (21:20 +0000)
committerBernd Petrovitsch <bernd@firmix.at>
Sun, 16 Sep 2007 21:20:17 +0000 (21:20 +0000)
  host and version
  and using it througout
* activated links in the httpinfo plugin again if we have host links
  other minor HTML cleanups there
* replaced the olsr_host_rt_maxplen() function with a field in
  "struct olsr_cfg" similar to "ipsize"

16 files changed:
Makefile
Makefile.inc
gui/linux-gtk/src/common.h
gui/linux-gtk/src/interface.c
lib/httpinfo/src/html.h
lib/httpinfo/src/olsrd_httpinfo.c
src/.cvsignore
src/defs.h
src/lq_route.c
src/main.c
src/net_olsr.c
src/net_olsr.h
src/olsr.c
src/olsr_cfg.h
src/routing_table.c
src/routing_table.h

index 46553ac..881b5ac 100644 (file)
--- a/Makefile
+++ b/Makefile
 # to the project. For more information see the website or contact
 # the copyright holders.
 #
-# $Id: Makefile,v 1.96 2007/09/13 22:50:28 bernd67 Exp $
+# $Id: Makefile,v 1.97 2007/09/16 21:20:06 bernd67 Exp $
 
 VERS =         0.5.4rc1
 
 TOPDIR = .
 include Makefile.inc
 
-CPPFLAGS +=    -DVERSION=\"$(VERS)\"
-
 # pass generated variables to save time
 MAKECMD = $(MAKE) OS="$(OS)" WARNINGS="$(WARNINGS)"
 
@@ -61,7 +59,7 @@ TAG_SRCS =    $(SRCS) $(HDRS) $(wildcard $(CFGDIR)/*.[ch] $(SWITCHDIR)/*.[ch])
 
 default_target: cfgparser $(EXENAME)
 
-$(EXENAME):    $(OBJS) $(CFGOBJS)
+$(EXENAME):    $(OBJS) $(CFGOBJS) src/builddata.o
                $(CC) $(LDFLAGS) -o $@ $(OBJS) $(CFGOBJS) $(LIBS)
 
 cfgparser:     $(CFGDEPS)
@@ -73,10 +71,20 @@ switch:
 $(CFGOBJS):
                $(MAKECMD) -C $(CFGDIR)
 
+# generate it always
+.PHONY: src/builddata.c
+src/builddata.c:
+       @$(RM) "$@"
+       @echo "#include \"defs.h\"" >> "$@" 
+       @echo "const char olsrd_version[] = \"olsr.org - $(VERS)\";" >> "$@" 
+       @date +"const char build_date[] = \"%Y-%m-%d %H:%M:%S\";" >> "$@" 
+       @echo "const char build_host[] = \"$(shell hostname)\";" >> "$@" 
+
+
 .PHONY: help libs clean_libs libs_clean clean uberclean install_libs libs_install install_bin install_olsrd install build_all install_all clean_all 
 
 clean:
-               -rm -f $(OBJS) $(SRCS:%.c=%.d) $(EXENAME) $(EXENAME).exe
+               -rm -f $(OBJS) $(SRCS:%.c=%.d) $(EXENAME) $(EXENAME).exe src/builddata.c
 ifeq ($(OS), win32)
                -rm -f libolsrd.a
 endif
index 25dcc43..43baf4d 100644 (file)
@@ -44,7 +44,7 @@ WARNINGS +=   -Wnested-externs
 #WARNINGS +=   -Wunreachable-code
 WARNINGS +=    -Winline
 WARNINGS +=    -Wdisabled-optimization
-#WARNINGS +=   -Werror
+WARNINGS +=    -Werror
 WARNINGS :=    $(shell CC="$(CC)" $(TOPDIR)/gcc-warnings $(WARNINGS))
 endif
 CFLAGS +=      $(WARNINGS)
index 8f7c66e..fe0608d 100644 (file)
@@ -38,7 +38,7 @@
 //#include "types.h"
 #include "olsr_protocol.h"
 
-#define SOFTWARE_VERSION "olsr.org GUI 0.2.7" 
+#define olsrd_version "olsr.org GUI 0.2.7" 
 #define IPC_INTERVAL 500 //interval for IPC read timeout
 #define MAXPACKS 20
 #define BUFFSIZE 512
index 81a7746..7c1cbff 100644 (file)
@@ -106,7 +106,7 @@ create_main_window (void)
 
   main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_object_set_data (GTK_OBJECT (main_window), "main_window", main_window);
-  gtk_window_set_title (GTK_WINDOW (main_window), (SOFTWARE_VERSION));
+  gtk_window_set_title (GTK_WINDOW (main_window), (olsrd_version));
   gtk_window_set_default_size(GTK_WINDOW (main_window), 600, 550);
   gtk_signal_connect(GTK_OBJECT(main_window),
                     "destroy",
@@ -1253,7 +1253,7 @@ set_net_info(gchar *info, int disp_button)
   gtk_label_set_text((GtkLabel *)info_label, info); 
   gtk_label_set_text((GtkLabel *)net_label, "Connected"); 
 
-  strcat(title, SOFTWARE_VERSION);
+  strcat(title, olsrd_version);
   strcat(title, " - ");
   strcat(title, ip_to_string(&main_addr));
 
index 25c5b8c..0950024 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: html.h,v 1.7 2007/02/04 22:37:36 bernd67 Exp $
+ * $Id: html.h,v 1.8 2007/09/16 21:20:07 bernd67 Exp $
  */
 
 /*
@@ -125,14 +125,12 @@ static const char *html_tabs[] =
 
 
 
-
-
 static const char *http_ok_tail[] =
 {
     "\n<!-- START TAIL -->\n\n",
     "<div id=\"footer\">\n\n",
     "<p><center>\n",
-    "(C)2005 Andreas T&oslash;nnesen<br>\n",
+    "(C)2005 Andreas T&oslash;nnesen<br/>\n",
     "<a href=\"http://www.olsr.org/\">http://www.olsr.org</a>\n",
     "</center>\n",
     "</div>\n",
@@ -143,58 +141,57 @@ static const char *http_ok_tail[] =
 static const char *cfgfile_body[] =
 {
     "\n\n",
-    "<b>This is a automatically generated configuration\n",
-    "file based on the current olsrd configuration of this node.<br>\n",
-    "<hr>\n",
+    "<strong>This is a automatically generated configuration\n",
+    "file based on the current olsrd configuration of this node.<br/>\n",
+    "<hr/>\n",
     "<pre>\n",
     "<!-- CFGFILE -->",
-    "</pre>\n<hr>\n",
+    "</pre>\n<hr/>\n",
     NULL
 };
 
 
-static const char *about_frame[] =
+static const char about_frame[] =
 {
-    "<b>" PLUGIN_NAME " version " PLUGIN_VERSION "</b><br>\n"
-    "by Andreas T&oslash;nnesen (C)2005.<br>\n",
+    "<strong>" PLUGIN_NAME " version " PLUGIN_VERSION "</strong><br/>\n"
+    "by Andreas T&oslash;nnesen (C)2005.<br/>\n"
+    "Compiled "
 #ifdef ADMIN_INTERFACE
-    "Compiled <i>with experimental admin interface</i> " __DATE__ "<hr>\n"
-#else
-    "Compiled " __DATE__ "<hr>\n"
+              "<em>with experimental admin interface</em> "
 #endif
-    "This plugin implements a HTTP server that supplies\n",
-    "the client with various dynamic web pages representing\n",
-    "the current olsrd status.<br>The different pages include:\n",
-    "<ul>\n<li><b>Configuration</b> - This page displays information\n",
-    "about the current olsrd configuration. This includes various\n",
-    "olsr settings such as IP version, MID/TC redundancy, hysteresis\n",
-    "etc. Information about the current status of the interfaces on\n",
-    "which olsrd is configured to run is also displayed. Loaded olsrd\n",
-    "plugins are shown with their plugin parameters. Finally all local\n",
-    "HNA entries are shown. These are the networks that the local host\n",
-    "will anounce itself as a gateway to.</li>\n",
-    "<li><b>Routes</b> - This page displays all routes currently set in\n",
-    "the kernel <i>by olsrd</i>. The type of route is also displayed(host\n",
-    "or HNA).</li>\n",
-    "<li><b>Links/Topology</b> - This page displays all information about\n",
-    "links, neighbors, topology, MID and HNA entries.</li>\n",
-    "<li><b>All</b> - Here all the previous pages are displayed as one.\n",
-    "This is to make all information available as easy as possible(for example\n",
-    "for a script) and using as few resources as possible.</li>\n",
+                                                           "%s at %s<hr/>\n"
+    "This plugin implements a HTTP server that supplies\n"
+    "the client with various dynamic web pages representing\n"
+    "the current olsrd status.<br/>The different pages include:\n"
+    "<ul>\n<li><strong>Configuration</strong> - This page displays information\n"
+    "about the current olsrd configuration. This includes various\n"
+    "olsr settings such as IP version, MID/TC redundancy, hysteresis\n"
+    "etc. Information about the current status of the interfaces on\n"
+    "which olsrd is configured to run is also displayed. Loaded olsrd\n"
+    "plugins are shown with their plugin parameters. Finally all local\n"
+    "HNA entries are shown. These are the networks that the local host\n"
+    "will anounce itself as a gateway to.</li>\n"
+    "<li><strong>Routes</strong> - This page displays all routes currently set in\n"
+    "the kernel <em>by olsrd</em>. The type of route is also displayed(host\n"
+    "or HNA).</li>\n"
+    "<li><strong>Links/Topology</strong> - This page displays all information about\n"
+    "links, neighbors, topology, MID and HNA entries.</li>\n"
+    "<li><strong>All</strong> - Here all the previous pages are displayed as one.\n"
+    "This is to make all information available as easy as possible(for example\n"
+    "for a script) and using as few resources as possible.</li>\n"
 #ifdef ADMIN_INTERFACE
-    "<li><b>Admin</b> - This page is highly experimental(and unsecure)!\n",
-    "As of now it is not working at all but it provides a impression of\n",
-    "the future possibilities of httpinfo. This is to be a interface to\n",
+    "<li><strong>Admin</strong> - This page is highly experimental(and unsecure)!\n"
+    "As of now it is not working at all but it provides a impression of\n"
+    "the future possibilities of httpinfo. This is to be a interface to\n"
     "changing olsrd settings in realtime. These settings include various\n"
-    "\"basic\" settings and local HNA settings.\n",
+    "\"basic\" settings and local HNA settings.</li>\n"
 #endif
-    "<li><b>About</b> - this help page.</li>\n</ul>",
-    "<hr>\n",
-    "Send questions or comments to\n",
-    "<a href=\"mailto:olsr-users@olsr.org\">olsr-users@olsr.org</a> or\n",
-    "<a href=\"mailto:andreto-at-olsr.org\">andreto-at-olsr.org</a><br>\n"
-    "Official olsrd homepage: <a href=\"http://www.olsr.org/\">http://www.olsr.org</a><br>\n",
-    NULL
+    "<li><strong>About</strong> - this help page.</li>\n</ul>"
+    "<hr/>\n"
+    "Send questions or comments to\n"
+    "<a href=\"mailto:olsr-users@olsr.org\">olsr-users@olsr.org</a> or\n"
+    "<a href=\"mailto:andreto-at-olsr.org\">andreto-at-olsr.org</a><br/>\n"
+    "Official olsrd homepage: <a href=\"http://www.olsr.org/\">http://www.olsr.org</a><br/>\n"
 };
 
 
index 74ff8a4..8c80971 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: olsrd_httpinfo.c,v 1.76 2007/09/13 16:08:12 bernd67 Exp $
+ * $Id: olsrd_httpinfo.c,v 1.77 2007/09/16 21:20:07 bernd67 Exp $
  */
 
 /*
@@ -87,7 +87,7 @@
 #define OS "Undefined"
 #endif
 
-static char copyright_string[] = "olsr.org HTTPINFO plugin Copyright (c) 2004, Andreas T√łnnesen(andreto@olsr.org) All rights reserved.";
+static char copyright_string[] __attribute__((unused)) = "olsr.org HTTPINFO plugin Copyright (c) 2004, Andreas T√łnnesen(andreto@olsr.org) All rights reserved.";
 
 #define MAX_CLIENTS 3
 
@@ -95,7 +95,7 @@ static char copyright_string[] = "olsr.org HTTPINFO plugin Copyright (c) 2004, A
 
 #define DEFAULT_TCP_PORT 1978
 
-#define HTML_BUFSIZE (1024 * 400)
+#define HTML_BUFSIZE (1024 * 4000)
 
 #define FRAMEWIDTH 800
 
@@ -231,7 +231,6 @@ static const struct dynamic_file_entry dynamic_files[] =
 int
 olsrd_plugin_init(void)
 {
-  (void)copyright_string;
   /* Get start time */
   gettimeofday(&start_time, NULL);
 
@@ -678,16 +677,26 @@ static int build_frame(char *title __attribute__((unused)),
   return size;
 }
 
-static int build_ip_txt(char *buf, const olsr_u32_t bufsize, const olsr_bool want_link,
-                        const union olsr_ip_addr * const ipaddr, const int prefix_len)
+static int fmt_href(char *buf,
+                    const olsr_u32_t bufsize,
+                    const union olsr_ip_addr * const ipaddr)
+{
+  return snprintf(buf, bufsize,
+                  "<a href=\"http://%s:%d/all\">",
+                  olsr_ip_to_string(ipaddr),
+                  http_port);
+
+}
+
+static int build_ip_txt(char *buf,
+                        const olsr_u32_t bufsize,
+                        const olsr_bool print_link,
+                        const union olsr_ip_addr * const ipaddr,
+                        const int prefix_len)
 {
   int size = 0;
-  if (want_link && prefix_len == -1) { /* Print the link only if there is no prefix_len */
-    size += snprintf(&buf[size],
-                     bufsize-size,
-                     "<a href=\"http://%s:%d/all\">",
-                     olsr_ip_to_string(ipaddr),
-                     http_port);
+  if (print_link) { /* Print the link only if there is no prefix_len */
+    size += fmt_href(&buf[size], bufsize-size, ipaddr);
   }
 
   /* print ip address or ip prefix ? */
@@ -698,7 +707,7 @@ static int build_ip_txt(char *buf, const olsr_u32_t bufsize, const olsr_bool wan
                        prefix_len);
   }
   
-  if (want_link && prefix_len == -1) { /* Print the link only if there is no prefix_len */
+  if (print_link) { /* Print the link only if there is no prefix_len */
     size += snprintf(&buf[size], bufsize-size, "</a>");
   }
   return size;
@@ -715,15 +724,22 @@ static int build_ipaddr_link(char *buf, const olsr_u32_t bufsize,
       resolve_ip_addresses ? gethostbyaddr(ipaddr, olsr_cnf->ipsize, olsr_cnf->ip_version) :
 #endif
       NULL;
+  const int print_link = want_link && (prefix_len == -1 || prefix_len == olsr_cnf->maxplen);
 
   size += snprintf(&buf[size], bufsize-size, "<td>");
-  size += build_ip_txt(&buf[size], bufsize-size, want_link, ipaddr, prefix_len);
+  size += build_ip_txt(&buf[size], bufsize-size, print_link, ipaddr, prefix_len);
   size += snprintf(&buf[size], bufsize-size, "</td>");
 
   if (resolve_ip_addresses) {
     if (hp) {
       size += snprintf(&buf[size], bufsize-size, "<td>(");
+      if (print_link) {
+        size += fmt_href(&buf[size], bufsize-size, ipaddr);
+      }
       size += snprintf(&buf[size], bufsize-size, "%s", hp->h_name);
+      if (print_link) {
+        size += snprintf(&buf[size], bufsize-size, "</a>");
+      }
       size += snprintf(&buf[size], bufsize-size, ")</td>");
     } else {
       size += snprintf(&buf[size], bufsize-size, "<td/>");
@@ -781,40 +797,45 @@ static int build_routes_body(char *buf, olsr_u32_t bufsize)
 
 static int build_config_body(char *buf, olsr_u32_t bufsize)
 {
-    char systime[100];
-    time_t currtime;
     int size = 0;
     struct olsr_if *ifs;
     struct plugin_entry *pentry;
     struct plugin_param *pparam;
-    struct timeval now, uptime;
-    int hours, mins, days;
-
-    gettimeofday(&now, NULL);
-    timersub(&now, &start_time, &uptime);
-    days = uptime.tv_sec/86400;
-    uptime.tv_sec -= days*86400;
-    hours = uptime.tv_sec/3600;
-    uptime.tv_sec -= hours*3600;
-    mins = uptime.tv_sec/60;
-    uptime.tv_sec -= mins*60;
-
-    time(&currtime);
-    strftime(systime, 100, "System time: <i>%a, %d %b %Y %H:%M:%S</i><br>", localtime(&currtime));
-
 
+    size += snprintf(&buf[size], bufsize-size, "Version: %s (built on %s on %s)\n<br>", olsrd_version, build_date, build_host);
     size += snprintf(&buf[size], bufsize-size, "OS: %s\n<br>", OS);
 
-    size += snprintf(&buf[size], bufsize-size, "%s\n", systime);
+    { 
+      time_t currtime = time(NULL);
+      int rc = strftime(&buf[size], bufsize-size, "System time: <em>%a, %d %b %Y %H:%M:%S</em><br>", localtime(&currtime));
+      if (rc > 0) {
+        size += rc;
+      }
+    }
 
-    if(days)
-      size += snprintf(&buf[size], bufsize-size, "Olsrd uptime: <i>%d day(s) %02d hours %02d minutes %02d seconds</i><br>\n", days, hours, mins, (int)uptime.tv_sec);
-    else
-      size += snprintf(&buf[size], bufsize-size, "Olsrd uptime: <i>%02d hours %02d minutes %02d seconds</i><br>\n", hours, mins, (int)uptime.tv_sec);
+    {
+      struct timeval now, uptime;
+      int hours, mins, days;
+      gettimeofday(&now, NULL);
+      timersub(&now, &start_time, &uptime);
+
+      days = uptime.tv_sec/86400;
+      uptime.tv_sec %= 86400;
+      hours = uptime.tv_sec/3600;
+      uptime.tv_sec %= 3600;
+      mins = uptime.tv_sec/60;
+      uptime.tv_sec %= 60;
+
+      size += snprintf(&buf[size], bufsize-size, "Olsrd uptime: <em>");
+      if (days) {
+        size += snprintf(&buf[size], bufsize-size, "%d day(s) ", days);
+      }
+      size += snprintf(&buf[size], bufsize-size, "%02d hours %02d minutes %02d seconds</em><br/>\n", hours, mins, (int)uptime.tv_sec);
+    }
 
-    size += snprintf(&buf[size], bufsize-size, "HTTP stats(ok/dyn/error/illegal): <i>%d/%d/%d/%d</i><br>\n", stats.ok_hits, stats.dyn_hits, stats.err_hits, stats.ill_hits);
+    size += snprintf(&buf[size], bufsize-size, "HTTP stats(ok/dyn/error/illegal): <em>%d/%d/%d/%d</em><br>\n", stats.ok_hits, stats.dyn_hits, stats.err_hits, stats.ill_hits);
 
-    size += snprintf(&buf[size], bufsize-size, "Click <a href=\"/cfgfile\">here</a> to <i>generate a configuration file for this node</i>.\n");
+    size += snprintf(&buf[size], bufsize-size, "Click <a href=\"/cfgfile\">here</a> to <em>generate a configuration file for this node</em>.\n");
 
     size += snprintf(&buf[size], bufsize-size, "<h2>Variables</h2>\n");
 
@@ -909,9 +930,9 @@ static int build_config_body(char *buf, olsr_u32_t bufsize)
     size += snprintf(&buf[size], bufsize-size, "</table>\n");
 
     if(olsr_cnf->allow_no_interfaces)
-      size += snprintf(&buf[size], bufsize-size, "<i>Olsrd is configured to run even if no interfaces are available</i><br>\n");
+      size += snprintf(&buf[size], bufsize-size, "<em>Olsrd is configured to run even if no interfaces are available</em><br>\n");
     else
-      size += snprintf(&buf[size], bufsize-size, "<i>Olsrd is configured to halt if no interfaces are available</i><br>\n");
+      size += snprintf(&buf[size], bufsize-size, "<em>Olsrd is configured to halt if no interfaces are available</em><br>\n");
 
     size += snprintf(&buf[size], bufsize-size, "<h2>Plugins</h2>\n");
 
@@ -1165,13 +1186,7 @@ static int build_all_body(char *buf, olsr_u32_t bufsize)
 
 static int build_about_body(char *buf, olsr_u32_t bufsize)
 {
-  int size = 0, i = 0;
-
-  while(about_frame[i]) {
-      size += snprintf(&buf[size], bufsize-size, about_frame[i]);
-      i++;
-  }
-  return size;
+  return snprintf(buf, bufsize, about_frame, build_date, build_host);
 }
 
 static int build_cfgfile_body(char *buf, olsr_u32_t bufsize)
index a438335..fbb9015 100644 (file)
@@ -1 +1,2 @@
 *.d
+builddata.c
index 14e0297..9a9c2e8 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: defs.h,v 1.62 2007/08/19 23:00:22 bernd67 Exp $
+ * $Id: defs.h,v 1.63 2007/09/16 21:20:07 bernd67 Exp $
  */
 
 
@@ -59,8 +59,9 @@
 #include "net_olsr.h" /* IPaddr -> string conversions is used by everyone */
 #include "olsr_cfg.h"
 
-#define SOFTWARE_VERSION       "olsr.org - " VERSION
-#define OLSRD_VERSION_DATE     "       *** " SOFTWARE_VERSION " (" __DATE__ ") ***\n"
+extern const char olsrd_version[];
+extern const char build_date[]; 
+extern const char build_host[];
 
 #ifndef OLSRD_GLOBAL_CONF_FILE
 #define OLSRD_CONF_FILE_NAME   "olsrd.conf"
@@ -72,6 +73,7 @@
 #define UDP_IPV6_HDRSIZE        62
 
 #define MIN_PACKET_SIZE(ver)   ((int)(sizeof(olsr_u8_t) * (((ver) == AF_INET) ? 4 : 7)))
+
 /* Debug helper macro */
 #ifdef DEBUG
 #define olsr_debug(lvl, format, args...) do {                           \
index c0c0110..4d6c10b 100644 (file)
@@ -38,7 +38,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: lq_route.c,v 1.51 2007/09/13 15:31:59 bernd67 Exp $
+ * $Id: lq_route.c,v 1.52 2007/09/16 21:20:07 bernd67 Exp $
  */
 
 #include "defs.h"
@@ -301,7 +301,7 @@ olsr_calculate_routing_table (void)
 {
   struct avl_tree cand_tree;
   struct list_node path_list;
-  int i, plen, max_host_plen, path_count = 0;
+  int i, plen, path_count = 0;
   struct tc_entry *tc;
   struct tc_edge_entry *tc_edge;
   struct tc_entry *vert;
@@ -318,8 +318,6 @@ olsr_calculate_routing_table (void)
   gettimeofday(&t1, NULL);
 #endif
 
-  max_host_plen = olsr_host_rt_maxplen();
-
   /*
    * Prepare the candidate tree and result list.
    */
@@ -426,7 +424,7 @@ olsr_calculate_routing_table (void)
     if (inter) {
 
       /* add a route to the main address of the destination node */
-      olsr_insert_routing_table(&vert->addr, max_host_plen, &vert->addr,
+      olsr_insert_routing_table(&vert->addr, olsr_cnf->maxplen, &vert->addr,
                                 &link->neighbor_iface_addr, inter->if_index,
                                 vert->hops, vert->path_etx);
 
@@ -435,7 +433,7 @@ olsr_calculate_routing_table (void)
            mid_walker != NULL;
            mid_walker = mid_walker->next_alias) {
 
-        olsr_insert_routing_table(&mid_walker->alias, max_host_plen, &vert->addr,
+        olsr_insert_routing_table(&mid_walker->alias, olsr_cnf->maxplen, &vert->addr,
                                   &link->neighbor_iface_addr, inter->if_index,
                                   vert->hops, vert->path_etx);
       }
index c1028dc..331f94b 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: main.c,v 1.98 2007/09/13 16:08:13 bernd67 Exp $
+ * $Id: main.c,v 1.99 2007/09/16 21:20:16 bernd67 Exp $
  */
 
 #include <unistd.h>
@@ -154,9 +154,10 @@ main(int argc, char *argv[])
       nowtm = localtime((time_t *)&now.tv_sec);
     }
     
-  printf("\n *** %s ***\n Build date: %s\n http://www.olsr.org\n\n", 
-        SOFTWARE_VERSION, 
-        __DATE__);
+  printf("\n *** %s ***\n Build date: %s on %s\n http://www.olsr.org\n\n", 
+        olsrd_version, 
+        build_date,
+         build_host);
     
   /* Using PID as random seed */
   srandom(getpid());
@@ -333,13 +334,15 @@ main(int argc, char *argv[])
   /* Set ipsize */
   if(olsr_cnf->ip_version == AF_INET6)
     {
-      OLSR_PRINTF(1, "Using IP version 6\n");
+      OLSR_PRINTF(1, "Using IP version %d\n", 6);
       olsr_cnf->ipsize = sizeof(struct in6_addr);
+      olsr_cnf->maxplen = 128;
     }
   else
     {
-      OLSR_PRINTF(1, "Using IP version 4\n");
-      olsr_cnf->ipsize = sizeof(olsr_u32_t);
+      OLSR_PRINTF(1, "Using IP version %d\n", 4);
+      olsr_cnf->ipsize = sizeof(struct in_addr);
+      olsr_cnf->maxplen = 32;
     }
 
   /* Initialize net */
@@ -382,7 +385,7 @@ main(int argc, char *argv[])
 #ifndef WIN32
   if((olsr_cnf->debug_level == 0) && (!olsr_cnf->no_fork))
     {
-      printf("%s detaching from the current process...\n", SOFTWARE_VERSION);
+      printf("%s detaching from the current process...\n", olsrd_version);
       if(daemon(0, 0) < 0)
        {
          printf("daemon(3) failed: %s\n", strerror(errno));
@@ -397,7 +400,7 @@ main(int argc, char *argv[])
   OLSR_PRINTF(1, "Main address: %s\n\n", olsr_ip_to_string(&olsr_cnf->main_addr));
 
   /* Start syslog entry */
-  olsr_syslog(OLSR_LOG_INFO, "%s successfully started", SOFTWARE_VERSION);
+  olsr_syslog(OLSR_LOG_INFO, "%s successfully started", olsrd_version);
 
   /*
    *signal-handlers
@@ -511,9 +514,9 @@ olsr_shutdown(int signal)
   close(olsr_cnf->rts);
 #endif
 
-  olsr_syslog(OLSR_LOG_INFO, "%s stopped", SOFTWARE_VERSION);
+  olsr_syslog(OLSR_LOG_INFO, "%s stopped", olsrd_version);
 
-  OLSR_PRINTF(1, "\n <<<< %s - terminating >>>>\n           http://www.olsr.org\n", SOFTWARE_VERSION);
+  OLSR_PRINTF(1, "\n <<<< %s - terminating >>>>\n           http://www.olsr.org\n", olsrd_version);
 
   exit(olsr_cnf->exit_value);
 }
index 7215fc2..4a07db6 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: net_olsr.c,v 1.29 2007/09/05 16:11:11 bernd67 Exp $
+ * $Id: net_olsr.c,v 1.30 2007/09/16 21:20:16 bernd67 Exp $
  */
 
 #include "net_olsr.h"
@@ -527,23 +527,6 @@ olsr_netmask_to_prefix(const union olsr_ip_addr *adr)
   return prefix;
 }
 
-/**
- * olsr_host_rt_maxplen
- *
- * @return the maxium prefix length based wether v4 or v6 is configured 
- */
-int
-olsr_host_rt_maxplen(void)
-{
-  if(olsr_cnf->ip_version == AF_INET) {
-    /* IPv4 */
-    return 32;
-  } else {
-    /* IPv6 */
-    return 128;
-  }
-}
-
 
 /**
  *Converts a sockaddr struct to a string representing
index e19cd45..dc8ab02 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: net_olsr.h,v 1.12 2007/09/12 23:40:14 bernd67 Exp $
+ * $Id: net_olsr.h,v 1.13 2007/09/16 21:20:16 bernd67 Exp $
  */
 
 
@@ -91,9 +91,6 @@ olsr_prefix_to_netmask(union olsr_ip_addr *, olsr_u16_t);
 olsr_u16_t
 olsr_netmask_to_prefix(const union olsr_ip_addr *);
 
-int
-olsr_host_rt_maxplen(void);
-
 char *
 sockaddr_to_string(const struct sockaddr *);
 
index 3dfd024..c4aa303 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: olsr.c,v 1.57 2007/09/05 16:11:11 bernd67 Exp $
+ * $Id: olsr.c,v 1.58 2007/09/16 21:20:16 bernd67 Exp $
  */
 
 /**
@@ -156,7 +156,7 @@ olsr_process_changes(void)
   if (olsr_cnf->debug_level > 0 && olsr_cnf->clear_screen && isatty(1))
   {
       clear_console();
-      printf("%s", OLSRD_VERSION_DATE);
+      printf("       *** %s (%s on %s) ***\n", olsrd_version, build_date, build_host);
   }
 
   if (changes_neighborhood)
index b547b87..5c9678c 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: olsr_cfg.h,v 1.33 2007/09/13 16:08:13 bernd67 Exp $
+ * $Id: olsr_cfg.h,v 1.34 2007/09/16 21:20:17 bernd67 Exp $
  */
 
 
@@ -232,6 +232,7 @@ struct olsrd_config
 
   /* Stuff set by olsrd */
   size_t                   ipsize;               /* Size of address */
+  olsr_8_t                 maxplen;              /* maximum prefix len */
   olsr_u16_t               system_tick_divider;  /* Tick resolution */
   olsr_bool                del_gws;              /* Delete InternetGWs at startup */
   union olsr_ip_addr       main_addr;            /* Main address of this node */
index 0b08fc0..f407891 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: routing_table.c,v 1.30 2007/09/05 16:17:36 bernd67 Exp $
+ * $Id: routing_table.c,v 1.31 2007/09/16 21:20:17 bernd67 Exp $
  */
 
 #include "defs.h"
@@ -168,13 +168,13 @@ olsr_init_routing_table(void)
  * representing the route entry.
  */
 struct rt_entry *
-olsr_lookup_routing_table(union olsr_ip_addr *dst)
+olsr_lookup_routing_table(const union olsr_ip_addr *dst)
 {
   struct avl_node *rt_tree_node;
   struct olsr_ip_prefix prefix;
 
   COPY_IP(&prefix, dst);
-  prefix.prefix_len = olsr_host_rt_maxplen();
+  prefix.prefix_len = olsr_cnf->maxplen;
 
   rt_tree_node = avl_find(&routingtree, &prefix);
 
@@ -292,8 +292,8 @@ olsr_nh_change(struct rt_nexthop *nh1, struct rt_nexthop *nh2)
  * depending on the operation (add/chg/del) the nexthop
  * field from the route entry or best route path shall be used.
  */
-struct rt_nexthop *
-olsr_get_nh(struct rt_entry *rt)
+const struct rt_nexthop *
+olsr_get_nh(const struct rt_entry *rt)
 {
 
   if(rt->rt_best) {
@@ -514,15 +514,13 @@ olsr_rtp_to_string(struct rt_path *rtp)
 int
 olsr_fill_routing_table_with_neighbors(void)
 {
-  int index, max_host_plen;
+  int index;
   float etx;
 
 #ifdef DEBUG
   OLSR_PRINTF(7, "FILL ROUTING TABLE WITH NEIGHBORS\n");
 #endif
 
-  max_host_plen = olsr_host_rt_maxplen();
-
   for (index=0;index<HASHSIZE;index++) {
 
     struct neighbor_entry *neighbor;
@@ -563,13 +561,13 @@ olsr_fill_routing_table_with_neighbors(void)
             if (iface) {
 
               /* neighbor main IP address */
-              olsr_insert_routing_table(&link->neighbor_iface_addr, max_host_plen,
+              olsr_insert_routing_table(&link->neighbor_iface_addr, olsr_cnf->maxplen,
                                         &link->neighbor->neighbor_main_addr,
                                         &link->neighbor_iface_addr,
                                         iface->if_index, 1, etx);
 
               /* this is the nexthop route that all routes will be tracking */
-              olsr_insert_routing_table(&addrs2->alias, max_host_plen,
+              olsr_insert_routing_table(&addrs2->alias, olsr_cnf->maxplen,
                                         &link->neighbor->neighbor_main_addr,
                                         &link->neighbor_iface_addr,
                                         iface->if_index, 1, etx);
index 0f4a4ed..4841b35 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: routing_table.h,v 1.21 2007/09/12 23:40:47 bernd67 Exp $
+ * $Id: routing_table.h,v 1.22 2007/09/16 21:20:17 bernd67 Exp $
  */
 
 #ifndef _OLSR_ROUTING_TABLE
@@ -162,7 +162,7 @@ char *olsr_rt_to_string(struct rt_entry *);
 char *olsr_rtp_to_string(struct rt_path *);
 void olsr_print_routing_table(struct avl_tree *);
 
-struct rt_nexthop * olsr_get_nh(struct rt_entry *);
+const struct rt_nexthop * olsr_get_nh(const struct rt_entry *);
 
 struct rt_path *
 olsr_insert_routing_table(union olsr_ip_addr *, int,
@@ -171,7 +171,7 @@ olsr_insert_routing_table(union olsr_ip_addr *, int,
                           int, int, float);
 
 struct rt_entry *
-olsr_lookup_routing_table(union olsr_ip_addr *);
+olsr_lookup_routing_table(const union olsr_ip_addr *);
 
 
 #endif