]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Linpool: Write out all block pointers when asked for dump
authorMaria Matejka <mq@ucw.cz>
Fri, 15 Nov 2024 17:35:30 +0000 (18:35 +0100)
committerOndrej Zajicek <santiago@crfreenet.org>
Mon, 2 Dec 2024 05:54:54 +0000 (06:54 +0100)
lib/mempool.c

index 28bdff1d753c98681dd88ddc154828ac0b2b7cf6..1c02d64a29c047fc788a48d9068a8909ce90e100 100644 (file)
@@ -274,18 +274,24 @@ static void
 lp_dump(struct dump_request *dreq, resource *r)
 {
   linpool *m = (linpool *) r;
-  struct lp_chunk *c;
-  int cnt, cntl;
-
-  for(cnt=0, c=m->first; c; c=c->next, cnt++)
-    ;
-  for(cntl=0, c=m->first_large; c; c=c->next, cntl++)
-    ;
-  RDUMP("(count=%d+%d total=%d+%d)\n",
-       cnt,
-       cntl,
-       m->total,
-       m->total_large);
+
+  int chunks = 0, large = 0;
+
+  RDUMP("\n%*schunks:\n", dreq->indent+3, "");
+  for (struct lp_chunk *c = m->first; c; c = c->next)
+  {
+    RDUMP("%*s%p\n", dreq->indent+6, "", c);
+    chunks++;
+  }
+  RDUMP("%*scount=%d total=%d\n", dreq->indent+3, "", chunks, m->total);
+
+  RDUMP("%*slarge:\n", dreq->indent+3, "");
+  for (struct lp_chunk *c = m->first_large; c; c = c->next)
+  {
+    RDUMP("%*s%p\n", dreq->indent+6, "", c);
+    large++;
+  }
+  RDUMP("%*scount=%d total=%d\n", dreq->indent+3, "", large, m->total_large);
 }
 
 static struct resmem