Initial push to github
authorRaphael Lisicki <raphael@ralisi.de>
Sat, 9 Jan 2010 16:29:19 +0000 (17:29 +0100)
committerRaphael Lisicki <raphael@ralisi.de>
Sat, 9 Jan 2010 16:29:19 +0000 (17:29 +0100)
Makefile
Makefile.inc
lib/cl_roam/src/cl_roam.c
make/Makefile.linux

index d32dd95..4999080 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -151,7 +151,7 @@ else
 ifeq ($(OS),win32)
 SUBDIRS := dot_draw httpinfo lq_etx_ff lq_etx_float lq_etx_fpm lq_rfc mini secure txtinfo watchdog
 else
-SUBDIRS := bmf debuginfo dot_draw dyn_gw dyn_gw_plain httpinfo lq_etx_ff lq_etx_float lq_etx_fpm lq_rfc mdns mini nameservice secure txtinfo watchdog
+SUBDIRS := bmf debuginfo dot_draw dyn_gw dyn_gw_plain httpinfo lq_etx_ff lq_etx_float lq_etx_fpm lq_rfc mdns mini nameservice secure txtinfo watchdog cl_roam
 endif
 endif
 
index 60a3e3b..7e80369 100644 (file)
@@ -42,7 +42,7 @@ endif
 BISON ?=       bison
 FLEX ?=                flex
 TAGCMD ?=      etags
-LD_HAS_DYN ?=   $(shell $(CC) -Wl,--help 2>&1|grep -w -q -- --dynamic-list && echo yes)
+#LD_HAS_DYN ?=   $(shell $(CC) -Wl,--help 2>&1|grep -w -q -- --dynamic-list && echo yes)
 
 # target directories and names
 PREFIX  ?= /usr/local
@@ -119,7 +119,7 @@ ifndef CFLAGS
 
     ALL_WARNINGS +=    -Winline
     ALL_WARNINGS +=    -Wdisabled-optimization
-    ALL_WARNINGS +=    -Werror
+    #ALL_WARNINGS +=   -Werror
     ALL_WARNINGS +=    -finline-functions-called-once
     ALL_WARNINGS +=    -funit-at-a-time
     ALL_WARNINGS +=    -fearly-inlining
@@ -140,7 +140,7 @@ ifndef CFLAGS
 
     #ALL_WARNINGS +=   -ffunction-sections
     #ALL_WARNINGS +=   -fdata-sections
-    ALL_WARNINGS +=    -Wstrict-overflow=5
+    #ALL_WARNINGS +=   -Wstrict-overflow=5
     ALL_WARNINGS +=    $(EXTRA_WARNINGS)
     WARNINGS :=        $(shell CC="$(CC)" $(TOPDIR)/gcc-warnings $(ALL_WARNINGS) 2> /dev/null)
   endif
@@ -150,7 +150,7 @@ ifndef CFLAGS
   CFLAGS +=    $(EXTRA_CFLAGS)
 
   ifneq ($(filter -Wstrict-overflow%,$(WARNINGS)),)
-    NO_STRICT_OVERFLOW = -Wstrict-overflow=0
+    #NO_STRICT_OVERFLOW = -Wstrict-overflow=0
   endif
 
 endif # ifndef CFLAGS
@@ -176,7 +176,7 @@ ifdef OLSRD_PLUGIN
 else
   # c and ld flags for main
   ifeq ($(LD_HAS_DYN), yes)
-    LDFLAGS_EXE +=     -Wl,--dynamic-list=$(EXENAME).exports
+    #LDFLAGS_EXE +=    -Wl,--dynamic-list=$(EXENAME).exports
   else
     LDFLAGS_EXE +=     -Wl,-export-dynamic
   endif
index cff879a..f6ac323 100644 (file)
@@ -75,6 +75,14 @@ olsrd_plugin_interface_version(void)
 static const struct olsrd_plugin_parameters plugin_parameters[] = {
 };
 
+
+
+
+int host_there=0;
+int route_announced=0;
+
+
+
 void
 olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *size)
 {
@@ -89,10 +97,11 @@ olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *
 int
 olsrd_plugin_init(void)
 {
+
   OLSR_INFO(LOG_PLUGINS, "OLSRD automated Client Roaming Plugin\n");
 
-  gw_net.v4.s_addr = 0x8600000A;
-  gw_netmask.v4.s_addr = 0xFFFFFFFF;
+  gw_net.v4.s_addr = inet_addr("10.0.0.134");
+  gw_netmask.v4.s_addr = inet_addr("255.255.255.255");
 
   has_inet_gateway = 0;
 
@@ -103,64 +112,46 @@ olsrd_plugin_init(void)
   /* Register the GW check */
   olsr_start_timer(3 * MSEC_PER_SEC, 0, OLSR_TIMER_PERIODIC, &olsr_event, NULL, event_timer_cookie);
 
+
+
+
   return 1;
 }
 
-int
-check_gw(union olsr_ip_addr *net, union olsr_ip_addr *mask)
-{
-  char buff[1024], iface[17];
-  uint32_t gate_addr, dest_addr, netmask;
-  unsigned int iflags;
-  int num, metric, refcnt, use;
-  int retval = 0;
-
-  FILE *fp = fopen(PROCENTRY_ROUTE, "r");
-
-  if (!fp) {
-    OLSR_WARN(LOG_PLUGINS, "Cannot read proc file %s: %s\n", PROCENTRY_ROUTE, strerror(errno));
-    return -1;
-  }
-
-  rewind(fp);
-
-  /*
-     OLSR_PRINTF(DEBUGLEV, "Genmask         Destination     Gateway         "
-     "Flags Metric Ref    Use Iface\n");
-   */
-  while (fgets(buff, 1023, fp)) {
-#if !defined REMOVE_LOG_DEBUG
-    struct ipaddr_str buf;
-#endif
-    num =
-      sscanf(buff, "%16s %128X %128X %X %d %d %d %128X \n", iface, &dest_addr, &gate_addr, &iflags, &refcnt, &use, &metric,
-             &netmask);
-
-    if (num < 8) {
-      continue;
-    }
-    OLSR_DEBUG(LOG_PLUGINS, "%-15s %-15s %-15s %-6d %-2d %7d %s\n",
-               olsr_ip_to_string(&buf, (union olsr_ip_addr *)&netmask),
-               olsr_ip_to_string(&buf, (union olsr_ip_addr *)&dest_addr),
-               olsr_ip_to_string(&buf, (union olsr_ip_addr *)&gate_addr), metric, refcnt, use, iface);
-
-    if (                        /* (iflags & RTF_GATEWAY) && */
-         (iflags & RTF_UP) && (metric == 0) && (netmask == mask->v4.s_addr) && (dest_addr == net->v4.s_addr)) {
-      OLSR_DEBUG(LOG_PLUGINS, "INTERNET GATEWAY VIA %s detected in routing table.\n", iface);
-      retval = 1;
-    }
 
-  }
 
-  fclose(fp);
 
-  if (retval == 0) {
-    OLSR_DEBUG(LOG_PLUGINS, "No Internet GWs detected...\n");
-  }
 
-  return retval;
+
+
+
+
+
+
+
+
+
+int do_ping(void)
+{
+    char ping_command[50];
+    
+    snprintf(ping_command, sizeof(ping_command), "ping -I ath0 -c 1 -q %s", "10.0.0.134");
+    //snprintf(ping_command, sizeof(ping_command), "ping -c 1 -q %s", "137.0.0.1");
+    if (system(ping_command) == 0) {
+      system("echo \"ping erfolgreich\" ");
+      OLSR_DEBUG(LOG_PLUGINS, "\nDo ping on %s ... ok\n", "10.0.0.134");
+      host_there=1;
+    }
+    else
+    {
+      system("echo \"ping erfolglos\" ");
+      OLSR_DEBUG(LOG_PLUGINS, "\nDo ping on %s ... failed\n", "10.0.0.134");
+      host_there=0;
+    }
 }
 
+
+
 /**
  * Scheduled event to update the hna table,
  * called from olsrd main thread to keep the hna table thread-safe
@@ -168,26 +159,23 @@ check_gw(union olsr_ip_addr *net, union olsr_ip_addr *mask)
 void
 olsr_event(void *foo __attribute__ ((unused)))
 {
-    char ping_command[50];
-    OLSR_DEBUG(LOG_PLUGINS, "HAHA, adding route!\n");
-    ip_prefix_list_add(&olsr_cnf->hna_entries, &gw_net, olsr_netmask_to_prefix(&gw_netmask));
+    do_ping();
 
 
-    
-    snprintf(ping_command, sizeof(ping_command), "ping -c 1 -q %s", "10.0.0.134");
-    if (system(ping_command) != 0) {
-      OLSR_DEBUG(LOG_PLUGINS, "\nDo ping on %s ... ok\n", "10.0.0.134");
+    if (host_there && ! route_announced ) {
+      OLSR_DEBUG(LOG_PLUGINS, "Adding Route\n");
+      system("echo \"Setze route\" ");
       ip_prefix_list_add(&olsr_cnf->hna_entries, &gw_net, olsr_netmask_to_prefix(&gw_netmask));
+      route_announced=1;
     }
+    else if ((! host_there) &&  route_announced )
     {
-      OLSR_DEBUG(LOG_PLUGINS, "\nDo ping on %s ... failed\n", "10.0.0.134");
+      OLSR_DEBUG(LOG_PLUGINS, "Removing Route\n");
+      system("echo \"Entferne route\" ");
       ip_prefix_list_remove(&olsr_cnf->hna_entries, &gw_net, olsr_netmask_to_prefix(&gw_netmask), olsr_cnf->ip_version);
+      route_announced=0;
     }
+
 }
 
-/*
- * Local Variables:
- * c-basic-offset: 2
- * indent-tabs-mode: nil
- * End:
- */
+
index 9c3a050..861716c 100644 (file)
@@ -35,3 +35,4 @@ OS_LIB_DYNLOAD = -ldl
 # Local Variables:
 # mode: makefile
 # End:
+CC=/home/raphael/kamikaze_8.09.1/staging_dir/toolchain-mips_gcc4.1.2/bin/mips-linux-uclibc-gcc