r4846 - trunk/varnish-cache/bin/varnishstat
phk at varnish-cache.org
phk at varnish-cache.org
Fri May 21 09:59:59 CEST 2010
Author: phk
Date: 2010-05-21 09:59:59 +0200 (Fri, 21 May 2010)
New Revision: 4846
Modified:
trunk/varnish-cache/bin/varnishstat/varnishstat.c
Log:
Assert curses returns, and generally polish for FlexeLint
Modified: trunk/varnish-cache/bin/varnishstat/varnishstat.c
===================================================================
--- trunk/varnish-cache/bin/varnishstat/varnishstat.c 2010-05-21 07:27:41 UTC (rev 4845)
+++ trunk/varnish-cache/bin/varnishstat/varnishstat.c 2010-05-21 07:59:59 UTC (rev 4846)
@@ -39,7 +39,6 @@
#include <curses.h>
#include <errno.h>
-#include <limits.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
@@ -53,7 +52,9 @@
#define FIELD_EXCLUSION_CHARACTER '^'
+#define AC(x) assert((x) != ERR)
+
static void
myexp(double *acc, double val, unsigned *n, unsigned nmax)
{
@@ -66,8 +67,8 @@
static int
show_field(const char* field, const char *fields)
{
- char* field_start;
- char* field_end;
+ const char* field_start;
+ const char* field_end;
int field_length;
int match_value = 1;
@@ -94,7 +95,7 @@
}
static void
-do_curses(struct VSL_data *vd, struct varnish_stats *VSL_stats, int delay, const char *fields)
+do_curses(struct VSL_data *vd, const struct varnish_stats *VSL_stats, int delay, const char *fields)
{
struct varnish_stats copy;
struct varnish_stats seen;
@@ -112,26 +113,26 @@
a1 = a2 = a3 = 0.0;
n1 = n2 = n3 = 0;
- initscr();
- raw();
- noecho();
- nonl();
- intrflush(stdscr, FALSE);
- curs_set(0);
- erase();
+ (void)initscr();
+ AC(raw());
+ AC(noecho());
+ AC(nonl());
+ AC(intrflush(stdscr, FALSE));
+ AC(curs_set(0));
+ AC(erase());
lt = 0;
while (1) {
- gettimeofday(&tv, NULL);
+ AZ(gettimeofday(&tv, NULL));
tt = tv.tv_usec * 1e-6 + tv.tv_sec;
lt = tt - lt;
rt = VSL_stats->uptime;
up = rt;
- mvprintw(0, 0, "%*s", COLS - 1, VSL_Name(vd));
- mvprintw(0, 0, "%d+%02d:%02d:%02d", rt / 86400,
- (rt % 86400) / 3600, (rt % 3600) / 60, rt % 60);
+ AC(mvprintw(0, 0, "%*s", COLS - 1, VSL_Name(vd)));
+ AC(mvprintw(0, 0, "%d+%02d:%02d:%02d", rt / 86400,
+ (rt % 86400) / 3600, (rt % 3600) / 60, rt % 60));
hit = VSL_stats->cache_hit - copy.cache_hit;
miss = VSL_stats->cache_miss - copy.cache_miss;
@@ -143,55 +144,55 @@
myexp(&a2, ratio, &n2, 100);
myexp(&a3, ratio, &n3, 1000);
}
- mvprintw(1, 0, "Hitrate ratio: %8u %8u %8u", n1, n2, n3);
- mvprintw(2, 0, "Hitrate avg: %8.4f %8.4f %8.4f", a1, a2, a3);
+ AC(mvprintw(1, 0, "Hitrate ratio: %8u %8u %8u", n1, n2, n3));
+ AC(mvprintw(2, 0, "Hitrate avg: %8.4f %8.4f %8.4f", a1, a2, a3));
line = 3;
-#define MAC_STAT(n, t, l, f, d) \
+#define MAC_STAT(n, t, l, ff, d) \
if ((fields == NULL || show_field( #n, fields )) && line < LINES) { \
ju = VSL_stats->n; \
if (ju == 0 && !seen.n) { \
- } else if (f == 'a') { \
+ } else if (ff == 'a') { \
seen.n = 1; \
line++; \
- mvprintw(line, 0, "%12ju %12.2f %12.2f %s\n", \
- ju, (ju - (intmax_t)copy.n)/lt, ju / up, d); \
+ AC(mvprintw(line, 0, "%12ju %12.2f %12.2f %s\n", \
+ ju, (ju - (intmax_t)copy.n)/lt, ju / up, d)); \
copy.n = ju; \
} else { \
seen.n = 1; \
line++; \
- mvprintw(line, 0, "%12ju %12s %12s %s\n", \
- ju, ". ", ". ", d); \
+ AC(mvprintw(line, 0, "%12ju %12s %12s %s\n", \
+ ju, ". ", ". ", d)); \
} \
}
#include "stat_field.h"
#undef MAC_STAT
lt = tt;
- refresh();
+ AC(refresh());
timeout(delay * 1000);
switch ((ch = getch())) {
case ERR:
break;
#ifdef KEY_RESIZE
case KEY_RESIZE:
- erase();
+ AC(erase());
break;
#endif
case '\014': /* Ctrl-L */
case '\024': /* Ctrl-T */
- redrawwin(stdscr);
- refresh();
+ AC(redrawwin(stdscr));
+ AC(refresh());
break;
case '\003': /* Ctrl-C */
- raise(SIGINT);
+ AZ(raise(SIGINT));
break;
case '\032': /* Ctrl-Z */
- raise(SIGTSTP);
+ AZ(raise(SIGTSTP));
break;
case '\021': /* Ctrl-Q */
case 'Q':
case 'q':
- endwin();
+ AC(endwin());
exit(0);
case '0':
case '1':
@@ -203,24 +204,24 @@
case '7':
case '8':
case '9':
- delay = 1 << (ch - '0');
+ delay = 1U << (ch - '0');
break;
default:
- beep();
+ AC(beep());
break;
}
}
}
static void
-do_xml(struct varnish_stats *VSL_stats, const char* fields)
+do_xml(const struct varnish_stats *VSL_stats, const char* fields)
{
char time_stamp[20];
time_t now;
printf("<?xml version=\"1.0\"?>\n");
now = time(NULL);
- strftime(time_stamp, 20, "%Y-%m-%dT%H:%M:%S", localtime(&now));
+ (void)strftime(time_stamp, 20, "%Y-%m-%dT%H:%M:%S", localtime(&now));
printf("<varnishstat timestamp=\"%s\">\n", time_stamp);
#define MAC_STAT(n, t, l, f, d) \
do { \
@@ -238,19 +239,19 @@
}
static void
-do_once(struct varnish_stats *VSL_stats, const char* fields)
+do_once(const struct varnish_stats *VSL_stats, const char* fields)
{
struct timeval tv;
double up;
- gettimeofday(&tv, NULL);
+ AZ(gettimeofday(&tv, NULL));
up = VSL_stats->uptime;
-#define MAC_STAT(n, t, l, f, d) \
+#define MAC_STAT(n, t, l, ff, d) \
do { \
if (fields != NULL && ! show_field( #n, fields )) break; \
intmax_t ju = VSL_stats->n; \
- if (f == 'a') \
+ if (ff == 'a') \
printf("%-16s %12ju %12.2f %s\n", #n, ju, ju / up, d); \
else \
printf("%-16s %12ju %12s %s\n", #n, ju, ". ", d); \
@@ -330,9 +331,9 @@
}
if (!valid_field) {
- fputs("The field '", stderr);
- fwrite(field_start, 1, field_length, stderr);
- fputs("' is not a valid field\n", stderr);
+ (void)fputs("The field '", stderr);
+ (void)fwrite(field_start, 1, field_length, stderr);
+ (void)fputs("' is not a valid field\n", stderr);
return (0);
}
@@ -344,7 +345,7 @@
}
int
-main(int argc, char **argv)
+main(int argc, char * const *argv)
{
int c;
struct VSL_data *vd;
More information about the varnish-commit
mailing list