Update copyright notices.
[tinc] / src / net.c
index e2e2833..31f1b0e 100644 (file)
--- a/src/net.c
+++ b/src/net.c
@@ -354,13 +354,15 @@ int main_loop(void)
        fd_set readset, writeset;
        struct timeval tv;
        int r, maxfd;
-       time_t last_ping_check, last_config_check;
+       time_t last_ping_check, last_config_check, last_graph_dump;
        event_t *event;
 
        cp();
 
        last_ping_check = now;
        last_config_check = now;
+       last_graph_dump = now;
+       
        srand(now);
 
        running = true;
@@ -422,7 +424,7 @@ int main_loop(void)
 
                while((event = get_expired_event())) {
                        event->handler(event->data);
-                       free(event);
+                       free_event(event);
                }
 
                if(sigalrm) {
@@ -461,7 +463,8 @@ int main_loop(void)
                                
                                if(c->outgoing) {
                                        free(c->outgoing->name);
-                                       freeaddrinfo(c->outgoing->ai);
+                                       if(c->outgoing->ai)
+                                               freeaddrinfo(c->outgoing->ai);
                                        free(c->outgoing);
                                        c->outgoing = NULL;
                                }
@@ -478,6 +481,13 @@ int main_loop(void)
                        
                        try_outgoing_connections();
                }
+               
+               /* Dump graph if wanted every 60 seconds*/
+
+               if(last_graph_dump + 60 < now) {
+                       dump_graph();
+                       last_graph_dump = now;
+               }
        }
 
        return 0;