diff options
-rw-r--r-- | sbin/pfctl/parse.y | 31 | ||||
-rw-r--r-- | sbin/pfctl/pfctl.h | 6 | ||||
-rw-r--r-- | sbin/pfctl/pfctl_altq.c | 23 | ||||
-rw-r--r-- | sbin/pfctl/pfctl_qstats.c | 4 |
4 files changed, 37 insertions, 27 deletions
diff --git a/sbin/pfctl/parse.y b/sbin/pfctl/parse.y index 94359254754..4fae66177a9 100644 --- a/sbin/pfctl/parse.y +++ b/sbin/pfctl/parse.y @@ -1,4 +1,4 @@ -/* $OpenBSD: parse.y,v 1.334 2003/03/02 12:37:49 henning Exp $ */ +/* $OpenBSD: parse.y,v 1.335 2003/03/02 23:37:24 henning Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. @@ -3059,7 +3059,8 @@ expand_altq(struct pf_altq *a, struct node_if *interfaces, errs++; if (pf->opts & PF_OPT_VERBOSE) { - print_altq(&pf->paltq->altq, 0); + print_altq(&pf->paltq->altq, 0, + bwspec.bw_percent); if (nqueues && nqueues->tail) { printf("queue { "); LOOP_THROUGH(struct node_queue, queue, @@ -3208,22 +3209,22 @@ expand_queue(struct pf_altq *a, struct node_queue *nqueues, bwspec.bw_percent)) if (!pfctl_add_altq(pf, a)) added++; - - if ((pf->opts & PF_OPT_VERBOSE) && found == 1) { - print_altq(&pf->paltq->altq, 0); - if (nqueues && nqueues->tail) { - printf("{ "); - LOOP_THROUGH(struct node_queue, queue, - nqueues, - printf("%s ", queue->queue); - ); - printf("}"); - } - printf("\n"); - } } ); + if ((pf->opts & PF_OPT_VERBOSE) && found > 0) { + print_altq(&pf->paltq->altq, 0, bwspec.bw_percent); + if (nqueues && nqueues->tail) { + printf("{ "); + LOOP_THROUGH(struct node_queue, queue, + nqueues, + printf("%s ", queue->queue); + ); + printf("}"); + } + printf("\n"); + } + FREE_LIST(struct node_queue, nqueues); if (!added) { diff --git a/sbin/pfctl/pfctl.h b/sbin/pfctl/pfctl.h index 5d780e4aa1e..2772f3d2d50 100644 --- a/sbin/pfctl/pfctl.h +++ b/sbin/pfctl/pfctl.h @@ -1,4 +1,4 @@ -/* $OpenBSD: pfctl.h,v 1.10 2003/02/11 20:11:36 henning Exp $ */ +/* $OpenBSD: pfctl.h,v 1.11 2003/03/02 23:37:24 henning Exp $ */ /* * Copyright (c) 2001 Daniel Hartmeier @@ -85,8 +85,8 @@ u_int32_t qname_to_qid(const char *, const char *); char *qid_to_qname(u_int32_t, const char *); char *rate2str(double); -void print_altq(const struct pf_altq *, unsigned); -void print_queue(const struct pf_altq *, unsigned); +void print_altq(const struct pf_altq *, unsigned, u_int16_t); +void print_queue(const struct pf_altq *, unsigned, u_int16_t); void print_addr(struct pf_addr_wrap *, sa_family_t, int); void print_host(struct pf_state_host *, sa_family_t, int); diff --git a/sbin/pfctl/pfctl_altq.c b/sbin/pfctl/pfctl_altq.c index bb9034020bd..16ea795fbf7 100644 --- a/sbin/pfctl/pfctl_altq.c +++ b/sbin/pfctl/pfctl_altq.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pfctl_altq.c,v 1.39 2003/03/02 12:37:49 henning Exp $ */ +/* $OpenBSD: pfctl_altq.c,v 1.40 2003/03/02 23:37:24 henning Exp $ */ /* * Copyright (C) 2002 @@ -161,10 +161,10 @@ qid_to_qname(u_int32_t qid, const char *ifname) } void -print_altq(const struct pf_altq *a, unsigned level) +print_altq(const struct pf_altq *a, unsigned level, u_int16_t bwpercent) { if (a->qname[0] != NULL) { - print_queue(a, level); + print_queue(a, level, bwpercent); return; } @@ -188,14 +188,18 @@ print_altq(const struct pf_altq *a, unsigned level) break; } - printf("bandwidth %s ", rate2str((double)a->ifbandwidth)); + if (bwpercent > 0) { + if (bwpercent < 100) + printf("bandwidth %u%% ", bwpercent); + } else + printf("bandwidth %s ", rate2str((double)a->ifbandwidth)); if (a->qlimit != DEFAULT_QLIMIT) printf("qlimit %u ", a->qlimit); printf("tbrsize %u ", a->tbrsize); } void -print_queue(const struct pf_altq *a, unsigned level) +print_queue(const struct pf_altq *a, unsigned level, u_int16_t bwpercent) { unsigned i; @@ -203,8 +207,13 @@ print_queue(const struct pf_altq *a, unsigned level) for (i = 0; i < level; ++i) printf(" "); printf("%s ", a->qname); - if (a->scheduler == ALTQT_CBQ || a->scheduler == ALTQT_HFSC) - printf("bandwidth %s ", rate2str((double)a->bandwidth)); + if (a->scheduler == ALTQT_CBQ || a->scheduler == ALTQT_HFSC) { + if (bwpercent > 0) { + if (bwpercent < 100) + printf("bandwidth %u%% ", bwpercent); + } else + printf("bandwidth %s ", rate2str((double)a->bandwidth)); + } if (a->priority != DEFAULT_PRIORITY) printf("priority %u ", a->priority); if (a->qlimit != DEFAULT_QLIMIT) diff --git a/sbin/pfctl/pfctl_qstats.c b/sbin/pfctl/pfctl_qstats.c index 4e347537d15..9051f42ba20 100644 --- a/sbin/pfctl/pfctl_qstats.c +++ b/sbin/pfctl/pfctl_qstats.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pfctl_qstats.c,v 1.12 2003/01/27 19:37:46 henning Exp $ */ +/* $OpenBSD: pfctl_qstats.c,v 1.13 2003/03/02 23:37:24 henning Exp $ */ /* * Copyright (c) 2003 Henning Brauer @@ -228,7 +228,7 @@ pfctl_print_altq_node(int dev, const struct pf_altq_node *node, unsigned level, if (node == NULL) return; - print_altq(&node->altq, level); + print_altq(&node->altq, level, 0); if (node->children != NULL) { printf("{"); |