Make pfctl(8) more flexible when parsing bandwidth values.
This is the current behaviour in OpenBSD and a similar patch exist in pfSense too. Obtained from: OpenBSD (partly - rev. 1.625) MFC after: 2 weeks Sponsored by: Rubicon Communications (Netgate)
This commit is contained in:
parent
ab341f7afd
commit
db1bbde602
@ -1605,13 +1605,22 @@ bandwidth : STRING {
|
||||
|
||||
bps = strtod($1, &cp);
|
||||
if (cp != NULL) {
|
||||
if (strlen(cp) > 1) {
|
||||
char *cu = cp + 1;
|
||||
if (!strcmp(cu, "Bit") ||
|
||||
!strcmp(cu, "B") ||
|
||||
!strcmp(cu, "bit") ||
|
||||
!strcmp(cu, "b")) {
|
||||
*cu = 0;
|
||||
}
|
||||
}
|
||||
if (!strcmp(cp, "b"))
|
||||
; /* nothing */
|
||||
else if (!strcmp(cp, "Kb"))
|
||||
else if (!strcmp(cp, "K"))
|
||||
bps *= 1000;
|
||||
else if (!strcmp(cp, "Mb"))
|
||||
else if (!strcmp(cp, "M"))
|
||||
bps *= 1000 * 1000;
|
||||
else if (!strcmp(cp, "Gb"))
|
||||
else if (!strcmp(cp, "G"))
|
||||
bps *= 1000 * 1000 * 1000;
|
||||
else if (!strcmp(cp, "%")) {
|
||||
if (bps < 0 || bps > 100) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user