Cleanup in basic OLSRd framework
authorHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Tue, 5 Apr 2011 09:21:31 +0000 (11:21 +0200)
committerHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Tue, 5 Apr 2011 09:21:31 +0000 (11:21 +0200)
src/olsr_clock.c
src/olsr_clock.h
src/olsr_memcookie.c
src/olsr_memcookie.h
src/olsr_socket.c
src/olsr_socket.h
src/olsr_timer.c
src/olsr_timer.h

index 3374330..2e9a902 100644 (file)
@@ -43,6 +43,7 @@
 #include <ctype.h>
 #include <errno.h>
 #include <stdio.h>
+#include <time.h>
 
 #include "os_time.h"
 #include "olsr_logging.h"
index 30c904b..9b482fd 100644 (file)
@@ -43,8 +43,8 @@
 #ifndef _OLSR_CLOCK
 #define _OLSR_CLOCK
 
+#include "common/common_types.h"
 #include "defs.h"
-#include "olsr_types.h"
 
 /* Some defs for juggling with timers */
 #define MSEC_PER_SEC 1000
index 1087154..13d6a1d 100644 (file)
@@ -42,6 +42,7 @@
 #include <assert.h>
 #include <errno.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include "common/list.h"
 #include "common/avl.h"
@@ -108,6 +109,11 @@ olsr_memcookie_cleanup(void)
 {
   struct olsr_memcookie_info *info, *iterator;
 
+  if (olsr_cookie_tree.cmp_ptr == NULL) {
+    /* nothing to do */
+    return;
+  }
+
   /*
    * Walk the full index range and kill 'em all.
    */
index 1dc6ba0..e86d8b0 100644 (file)
@@ -42,7 +42,7 @@
 #ifndef _OLSR_MEMCOOKIE_H
 #define _OLSR_MEMCOOKIE_H
 
-#include "olsr_types.h"
+#include "common/common_types.h"
 #include "common/list.h"
 #include "common/avl.h"
 
index 1c074b0..d6ef420 100644 (file)
 #include <errno.h>
 
 #include "common/avl.h"
-#include "common/avl_olsr_comp.h"
+#include "common/avl_comp.h"
+#include "olsr_clock.h"
 #include "olsr_logging.h"
 #include "olsr_memcookie.h"
 #include "os_net.h"
-#include "olsr_clock.h"
 #include "olsr_socket.h"
 
 /* Head of all OLSR used sockets */
@@ -84,10 +84,16 @@ olsr_socket_cleanup(void)
 {
   struct olsr_socket_entry *entry, *iterator;
 
+  if (socket_head.next == NULL && socket_head.prev == NULL) {
+    /* nothing to do */
+    return;
+  }
   OLSR_FOR_ALL_SOCKETS(entry, iterator) {
     os_close(entry->fd);
     olsr_socket_intfree(entry);
   }
+
+  olsr_memcookie_remove(socket_memcookie);
 }
 
 /**
index b769eb6..cc40a22 100644 (file)
 #ifndef _OLSR_SCHEDULER
 #define _OLSR_SCHEDULER
 
+#include "common/common_types.h"
 #include "common/list.h"
 #include "common/avl.h"
 
-#include "olsr_types.h"
-
 /* flags for socket handler */
 static const unsigned int OLSR_SOCKET_READ = 0x04;
 static const unsigned int OLSR_SOCKET_WRITE = 0x08;
index c5ff590..c09071f 100644 (file)
@@ -1,8 +1,42 @@
+
 /*
- * olsr_timer.c
+ * The olsr.org Optimized Link-State Routing daemon(olsrd)
+ * Copyright (c) 2004-2009, the olsr.org team - see HISTORY file
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in
+ *   the documentation and/or other materials provided with the
+ *   distribution.
+ * * Neither the name of olsr.org, olsrd nor the names of its
+ *   contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Visit http://www.olsr.org for more information.
+ *
+ * If you find this software useful feel free to make a donation
+ * to the project. For more information see the website or contact
+ * the copyright holders.
  *
- *  Created on: Feb 14, 2011
- *      Author: rogge
  */
 
 #include <assert.h>
@@ -11,7 +45,7 @@
 #include <unistd.h>
 
 #include "common/avl.h"
-#include "common/avl_olsr_comp.h"
+#include "common/avl_comp.h"
 #include "olsr_clock.h"
 #include "olsr_logging.h"
 #include "olsr_memcookie.h"
@@ -67,6 +101,11 @@ olsr_timer_cleanup(void)
   struct list_entity *timer_head_node;
   unsigned int wheel_slot = 0;
 
+  if (timerinfo_list.next == NULL && timerinfo_list.prev == NULL) {
+    /* nothing to do */
+    return;
+  }
+
   for (wheel_slot = 0; wheel_slot < TIMER_WHEEL_SLOTS; wheel_slot++) {
     timer_head_node = &timer_wheel[wheel_slot & TIMER_WHEEL_MASK];
 
@@ -135,7 +174,6 @@ olsr_timer_remove(struct olsr_timer_info *info) {
   olsr_memcookie_free(timerinfo_cookie, info);
 }
 
-
 /**
  * Start a new timer.
  *
index 264992a..47da54b 100644 (file)
@@ -1,18 +1,51 @@
+
 /*
- * olsr_timer.h
+ * The olsr.org Optimized Link-State Routing daemon(olsrd)
+ * Copyright (c) 2004-2009, the olsr.org team - see HISTORY file
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in
+ *   the documentation and/or other materials provided with the
+ *   distribution.
+ * * Neither the name of olsr.org, olsrd nor the names of its
+ *   contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Visit http://www.olsr.org for more information.
+ *
+ * If you find this software useful feel free to make a donation
+ * to the project. For more information see the website or contact
+ * the copyright holders.
  *
- *  Created on: Feb 14, 2011
- *      Author: rogge
  */
 
 #ifndef OLSR_TIMER_H_
 #define OLSR_TIMER_H_
 
+#include "common/common_types.h"
 #include "common/list.h"
 #include "common/avl.h"
 
-#include "olsr_types.h"
-
 #define TIMER_WHEEL_SLOTS 1024
 #define TIMER_WHEEL_MASK (TIMER_WHEEL_SLOTS - 1)