summaryrefslogtreecommitdiff
path: root/sbin/pfctl
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/pfctl')
-rw-r--r--sbin/pfctl/parse.y6
-rw-r--r--sbin/pfctl/pfctl.h4
-rw-r--r--sbin/pfctl/pfctl_altq.c16
3 files changed, 15 insertions, 11 deletions
diff --git a/sbin/pfctl/parse.y b/sbin/pfctl/parse.y
index 4fae66177a9..c088b246fb3 100644
--- a/sbin/pfctl/parse.y
+++ b/sbin/pfctl/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.335 2003/03/02 23:37:24 henning Exp $ */
+/* $OpenBSD: parse.y,v 1.336 2003/03/06 12:50:40 henning Exp $ */
/*
* Copyright (c) 2001 Markus Friedl. All rights reserved.
@@ -3295,8 +3295,8 @@ expand_rule(struct pf_rule *r,
errx(1, "expand_rule: strlcpy");
expand_label(r->label, r->ifname, r->af, src_host, src_port,
dst_host, dst_port, proto->proto);
- r->qid = qname_to_qid(r->qname, r->ifname);
- if ((r->pqid = qname_to_qid(r->pqname, r->ifname)) == 0)
+ r->qid = qname_to_qid(r->qname);
+ if ((r->pqid = qname_to_qid(r->pqname)) == 0)
r->pqid = r->qid;
r->ifnot = interface->not;
r->proto = proto->proto;
diff --git a/sbin/pfctl/pfctl.h b/sbin/pfctl/pfctl.h
index 2772f3d2d50..e5ee5a68c2f 100644
--- a/sbin/pfctl/pfctl.h
+++ b/sbin/pfctl/pfctl.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: pfctl.h,v 1.11 2003/03/02 23:37:24 henning Exp $ */
+/* $OpenBSD: pfctl.h,v 1.12 2003/03/06 12:50:40 henning Exp $ */
/*
* Copyright (c) 2001 Daniel Hartmeier
@@ -81,7 +81,7 @@ void pfaltq_store(struct pf_altq *);
void pfaltq_free(struct pf_altq *);
struct pf_altq *pfaltq_lookup(const char *);
struct pf_altq *qname_to_pfaltq(const char *, const char *);
-u_int32_t qname_to_qid(const char *, const char *);
+u_int32_t qname_to_qid(const char *);
char *qid_to_qname(u_int32_t, const char *);
char *rate2str(double);
diff --git a/sbin/pfctl/pfctl_altq.c b/sbin/pfctl/pfctl_altq.c
index 3045d4d0cf4..a662b8c50d2 100644
--- a/sbin/pfctl/pfctl_altq.c
+++ b/sbin/pfctl/pfctl_altq.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pfctl_altq.c,v 1.41 2003/03/03 14:16:18 henning Exp $ */
+/* $OpenBSD: pfctl_altq.c,v 1.42 2003/03/06 12:50:40 henning Exp $ */
/*
* Copyright (C) 2002
@@ -134,14 +134,18 @@ qname_to_pfaltq(const char *qname, const char *ifname)
}
u_int32_t
-qname_to_qid(const char *qname, const char *ifname)
+qname_to_qid(const char *qname)
{
struct pf_altq *altq;
+ /*
+ * We guarantee that same named queues on different interfaces
+ * have the same qid, so we do NOT need to limit matching on
+ * one interface!
+ */
+
TAILQ_FOREACH(altq, &altqs, entries) {
- if ((ifname == NULL ||
- strncmp(ifname, altq->ifname, IFNAMSIZ) == 0) &&
- strncmp(qname, altq->qname, PF_QNAME_SIZE) == 0)
+ if (strncmp(qname, altq->qname, PF_QNAME_SIZE) == 0)
return (altq->qid);
}
return (0);
@@ -318,7 +322,7 @@ eval_pfqueue(struct pfctl *pf, struct pf_altq *pa, u_int32_t bw_absolute,
errx(1, "altq not defined on %s", pa->ifname);
pa->scheduler = if_pa->scheduler;
pa->ifbandwidth = if_pa->ifbandwidth;
- pa->qid = qname_to_qid(pa->qname, NULL);
+ pa->qid = qname_to_qid(pa->qname);
parent = NULL;
if (pa->parent[0] != 0) {