tinc-gui: Reformat codebase according to PEP8
[tinc] / src / top.c
index 703391c..40b8047 100644 (file)
--- a/src/top.c
+++ b/src/top.c
@@ -21,6 +21,7 @@
 
 #ifdef HAVE_CURSES
 
+#undef KEY_EVENT  /* There are conflicting declarations for KEY_EVENT in Windows wincon.h and curses.h. */
 #include <curses.h>
 
 #include "control_common.h"
@@ -66,8 +67,10 @@ static float bscale = 1;
 static const char *punit = "pkts";
 static float pscale = 1;
 
-static void update(int fd) {
-       sendline(fd, "%d %d", CONTROL, REQ_DUMP_TRAFFIC);
+static bool update(int fd) {
+       if(!sendline(fd, "%d %d", CONTROL, REQ_DUMP_TRAFFIC))
+               return false;
+
        gettimeofday(&cur, NULL);
 
        timersub(&cur, &prev, &diff);
@@ -90,13 +93,10 @@ static void update(int fd) {
                int n = sscanf(line, "%d %d %s %"PRIu64" %"PRIu64" %"PRIu64" %"PRIu64, &code, &req, name, &in_packets, &in_bytes, &out_packets, &out_bytes);
 
                if(n == 2)
-                       break;
+                       return true;
 
-               if(n != 7) {
-                       endwin();
-                       fprintf(stderr, "Error receiving traffic information\n");
-                       exit(1);
-               }
+               if(n != 7)
+                       return false;
 
                nodestats_t *found = NULL;
 
@@ -108,7 +108,7 @@ static void update(int fd) {
                                found = ns;
                                break;
                        } else {
-                               found = xmalloc_and_zero(sizeof *found);
+                               found = xzalloc(sizeof *found);
                                found->name = xstrdup(name);
                                list_insert_before(&node_list, node, found);
                                changed = true;
@@ -117,7 +117,7 @@ static void update(int fd) {
                }
 
                if(!found) {
-                       found = xmalloc_and_zero(sizeof *found);
+                       found = xzalloc(sizeof *found);
                        found->name = xstrdup(name);
                        list_insert_tail(&node_list, found);
                        changed = true;
@@ -133,6 +133,8 @@ static void update(int fd) {
                found->out_packets = out_packets;
                found->out_bytes = out_bytes;
        }
+
+       return false;
 }
 
 static int cmpfloat(float a, float b) {
@@ -213,7 +215,8 @@ static void redraw(void) {
        for(int i = 0; i < n; i++)
                sorted[i]->i = i;
 
-       qsort(sorted, n, sizeof *sorted, sortfunc);
+       if(sorted)
+               qsort(sorted, n, sizeof *sorted, sortfunc);
 
        for(int i = 0, row = 3; i < n; i++, row++) {
                nodestats_t *node = sorted[i];
@@ -245,7 +248,9 @@ void top(int fd) {
        bool running = true;
 
        while(running) {
-               update(fd);
+               if(!update(fd))
+                       break;
+
                redraw();
 
                switch(getch()) {