chiark / gitweb /
show completed backlog stats in dump
authorIan Jackson <ian@chiark.greenend.org.uk>
Tue, 1 Jun 2010 16:44:26 +0000 (17:44 +0100)
committerIan Jackson <ian@chiark.greenend.org.uk>
Tue, 1 Jun 2010 16:44:26 +0000 (17:44 +0100)
cli.c

diff --git a/cli.c b/cli.c
index 9631539..531abdb 100644 (file)
--- a/cli.c
+++ b/cli.c
@@ -323,30 +323,36 @@ static void dump_article_list(FILE *f, const CliCommand *c,
     fprintf(f, " %s %s\n", TokenToText(art->token), art->messageid);
   }
 }
-  
+
+static void dump_counts_events(FILE *f, const Counts *counts) {
+  DUMPV("%d", counts->,events[read_ok]);
+  DUMPV("%d", counts->,events[read_blank]);
+  DUMPV("%d", counts->,events[read_err]);
+  DUMPV("%d", counts->,events[nooffer_missing]);
+}
+
+static void dump_counts_results(FILE *f, const Counts *counts,
+                               const char *wh1, const char *wh2) {
+  ArtState state; const char *const *statename;
+  for (state=0, statename=artstate_names; *statename; state++,statename++) {
+#define RC_DUMP_FMT(x) " " #x "=%d"
+#define RC_DUMP_VAL(x) ,counts->results[state][RC_##x]
+    fprintf(f,"%s%s counts %-11s"
+           RESULT_COUNTS(RC_DUMP_FMT,RC_DUMP_FMT) "\n",
+           wh1,wh2, *statename
+           RESULT_COUNTS(RC_DUMP_VAL,RC_DUMP_VAL));
+  }
+}
+
 static void dump_input_file(FILE *f, const CliCommand *c,
                            InputFile *ipf, const char *wh) {
   char *dipf= dbg_report_ipf(ipf);
   fprintf(f,"input %s %s", wh, dipf);
   free(dipf);
-  
-  if (ipf) {
-    DUMPV("%d", ipf->counts.,events[read_ok]);
-    DUMPV("%d", ipf->counts.,events[read_blank]);
-    DUMPV("%d", ipf->counts.,events[read_err]);
-    DUMPV("%d", ipf->counts.,events[nooffer_missing]);
-  }
+  if (ipf) dump_counts_events(f, &ipf->counts);
   fprintf(f,"\n");
   if (ipf) {
-    ArtState state; const char *const *statename; 
-    for (state=0, statename=artstate_names; *statename; state++,statename++) {
-#define RC_DUMP_FMT(x) " " #x "=%d"
-#define RC_DUMP_VAL(x) ,ipf->counts.results[state][RC_##x]
-      fprintf(f,"input %s counts %-11s"
-             RESULT_COUNTS(RC_DUMP_FMT,RC_DUMP_FMT) "\n",
-             wh, *statename
-             RESULT_COUNTS(RC_DUMP_VAL,RC_DUMP_VAL));
-    }
+    dump_counts_results(f, &ipf->counts, "input ",wh);
     fprintf(f,"input %s queue", wh);
     dump_article_list(f,c,&ipf->queue);
   }
@@ -391,6 +397,12 @@ static void dumpinfo(const CliCommand *c, FILE *f) {
   dump_input_file(f,c, main_input_file,     "main"    );
   dump_input_file(f,c, flushing_input_file, "flushing");
   dump_input_file(f,c, backlog_input_file,  "backlog" );
+  if (backlog_counts_report) {
+    fprintf(f,"completed backlogs");
+    dump_counts_events(f, &backlog_counts);
+    fprintf(f,"\n");
+    dump_counts_results(f, &backlog_counts, "completed backlogs","");
+  }
 
   fprintf(f,"conns count=%d\n", conns.count);