]> err.no Git - varnish/commitdiff
List referenced, but gone purges, mark them with a "G"
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sun, 18 Jan 2009 16:57:29 +0000 (16:57 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sun, 18 Jan 2009 16:57:29 +0000 (16:57 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3522 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache_ban.c

index d16dde30a1f9d8674ab997ff7a33c9e399a5aaf3..0ce7cb7ea80296fc8af8da0316fc90d1ba81f5df 100644 (file)
@@ -415,7 +415,6 @@ BAN_Insert(struct ban *b)
        }
        Lck_Lock(&ban_mtx);
        be->refcount--;
-       /* XXX: We should check if the tail can be removed */
        VSL_stats->n_purge_dups += pcount;
        Lck_Unlock(&ban_mtx);
 }
@@ -634,10 +633,12 @@ ccf_purge_list(struct cli *cli, const char * const *av, void *priv)
        } while (b != NULL);
 
        VTAILQ_FOREACH(b, &ban_head, list) {
-               if (b->flags & BAN_F_GONE)
+               if (b->refcount == 0 && (b->flags & BAN_F_GONE))
                        continue;
                bt = VTAILQ_FIRST(&b->tests);
-               cli_out(cli, "%5u\t%s", b->refcount, bt->test);
+               cli_out(cli, "%5u%s\t%s", b->refcount,
+                   b->flags & BAN_F_GONE ? "G" : " ",
+                   bt->test);
                do {
                        bt = VTAILQ_NEXT(bt, list);
                        if (bt != NULL)