- Spelling checked
[sip-router] / timer.c
diff --git a/timer.c b/timer.c
index e22befc..8f7e3f3 100644 (file)
--- a/timer.c
+++ b/timer.c
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *
- * Copyright (C) 2001-2003 Fhg Fokus
+ * Copyright (C) 2001-2003 FhG Fokus
  *
  * This file is part of ser, a free SIP server.
  *
  * along with this program; if not, write to the Free Software 
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
+/* History:
+ * --------
+ *  2003-03-19  replaced all the mallocs/frees w/ pkg_malloc/pkg_free (andrei)
+ *  2003-03-29  cleaning pkg_mallocs introduced (jiri)
+ */
 
 
 #include "timer.h"
@@ -54,7 +59,7 @@ int init_timer()
        /* in this case get_ticks won't work! */
        LOG(L_INFO, "WARNING: no shared memory support compiled in"
                                " get_ticks won't work\n");
-       jiffies=malloc(sizeof(int));
+       jiffies=pkg_malloc(sizeof(int));
 #endif
        if (jiffies==0){
                LOG(L_CRIT, "ERROR: init_timer: could not init jiffies\n");
@@ -66,14 +71,37 @@ int init_timer()
 
 
 
-       
+void destroy_timer()
+{
+       struct sr_timer* t, *foo;
+
+       if (jiffies){
+#ifdef SHM_MEM
+               shm_free(jiffies); jiffies=0;
+#else
+               pkg_free(jiffies); jiffies=0;
+#endif
+       }
+
+       t=timer_list;
+       while(t) {
+               foo=t->next;
+               pkg_free(t);
+               t=foo;
+       }
+}
+
+
+
 /*register a periodic timer;
- * ret: <0 on error*/
+ * ret: <0 on error
+ * Hint: if you need it in a module, register it from mod_init or it 
+ * won't work otherwise*/
 int register_timer(timer_function f, void* param, unsigned int interval)
 {
        struct sr_timer* t;
 
-       t=malloc(sizeof(struct sr_timer));
+       t=pkg_malloc(sizeof(struct sr_timer));
        if (t==0){
                LOG(L_ERR, "ERROR: register_timer: out of memory\n");
                goto error;
@@ -125,7 +153,7 @@ void timer_ticker()
 unsigned int get_ticks()
 {
        if (jiffies==0){
-               LOG(L_CRIT, "BUG: get_ticks: jiffies not intialized\n");
+               LOG(L_CRIT, "BUG: get_ticks: jiffies not initialized\n");
                return 0;
        }
 #ifndef SHM_MEM