Use labs(long).
[darkstat] / graph_db.c
index 56f43c5..0907c16 100644 (file)
@@ -1,5 +1,5 @@
 /* darkstat 3
- * copyright (c) 2006-2011 Emil Mikulic.
+ * copyright (c) 2006-2014 Emil Mikulic.
  *
  * graph_db.c: round robin database for graph data
  *
@@ -47,7 +47,7 @@ static struct graph *graph_db[] = {
 };
 
 static unsigned int graph_db_size = sizeof(graph_db)/sizeof(*graph_db);
-static long start_mono, start_real, last_real;
+static time_t start_mono, start_real, last_real;
 
 void graph_init(void) {
    unsigned int i;
@@ -57,6 +57,7 @@ void graph_init(void) {
    }
    start_mono = now_mono();
    start_real = now_real();
+   last_real = 0;
    graph_reset();
 }
 
@@ -127,6 +128,7 @@ static void rotate(struct graph *g, const unsigned int pos) {
    memcpy(g->out, tmp, size);
 
    free(tmp);
+   assert(g->num_bars > 0);
    assert(pos == ( (g->pos + ofs) % g->num_bars ));
    g->pos = pos;
 }
@@ -169,7 +171,7 @@ static void graph_resync(const time_t new_real) {
 }
 
 void graph_rotate(void) {
-   long t, td;
+   time_t t, td;
    struct tm *tm;
    unsigned int i;
 
@@ -287,7 +289,7 @@ struct str *html_front_page(void) {
    struct str *buf, *rf;
    unsigned int i;
    char start_when[100];
-   long d_real, d_mono;
+   time_t d_real, d_mono;
 
    buf = str_make();
    html_open(buf, "Graphs", /*path_depth=*/0, /*want_graph_js=*/1);
@@ -300,8 +302,9 @@ struct str *html_front_page(void) {
    str_appendstr(buf, rf);
    str_free(rf);
    str_append(buf, "</span>");
-   if (abs(d_real - d_mono) > 1)
-      str_appendf(buf, " (real time is off by %ld sec)", d_real - d_mono);
+   if (labs((long)(d_real - d_mono)) > 1)
+      str_appendf(buf, " (real time is off by %qd sec)",
+                  (qd)(d_real - d_mono));
 
    if (strftime(start_when, sizeof(start_when),
       "%Y-%m-%d %H:%M:%S %Z%z", localtime(&start_real)) != 0)
@@ -313,9 +316,10 @@ struct str *html_front_page(void) {
       "(<span id=\"pc\">%'u</span> <b>captured,</b> "
       "<span id=\"pd\">%'u</span> <b>dropped)</b><br>\n"
       "</p>\n",
-      acct_total_bytes,
-      acct_total_packets,
-      cap_pkts_recv, cap_pkts_drop);
+      (qu)acct_total_bytes,
+      (qu)acct_total_packets,
+      cap_pkts_recv,
+      cap_pkts_drop);
 
    str_append(buf,
       "<div id=\"graphs\">\n"
@@ -360,7 +364,10 @@ struct str *xml_graphs(void) {
    struct str *buf = str_make(), *rf;
 
    str_appendf(buf, "<graphs tp=\"%qu\" tb=\"%qu\" pc=\"%u\" pd=\"%u\" rf=\"",
-      acct_total_packets, acct_total_bytes, cap_pkts_recv, cap_pkts_drop);
+      (qu)acct_total_packets,
+      (qu)acct_total_bytes,
+      cap_pkts_recv,
+      cap_pkts_drop);
    rf = length_of_time(now_real() - start_real);
    str_appendstr(buf, rf);
    str_free(rf);
@@ -375,7 +382,9 @@ struct str *xml_graphs(void) {
          j = (j + 1) % g->num_bars;
          /* <element pos="" in="" out=""/> */
          str_appendf(buf, "<e p=\"%u\" i=\"%qu\" o=\"%qu\"/>\n",
-            g->offset + j, g->in[j], g->out[j]);
+            g->offset + j,
+            (qu)g->in[j],
+            (qu)g->out[j]);
       } while (j != g->pos);
       str_appendf(buf, "</%s>\n", g->unit);
    }