Date: Mon, 14 Jun 2010 23:01:43 +0100 From: =?ISO-8859-1?Q?Ermal_Lu=E7i?= <eri@freebsd.org> To: Luigi Rizzo <luigi@freebsd.org> Cc: freebsd-net <freebsd-net@freebsd.org> Subject: [PATCH] ipfw pipe bandwidth parameter parser. Message-ID: <AANLkTina6_2EoZOVPWD3pPcJ4FbeDi8eahcHXp-KL-XN@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hello,
on FreeBSD-STABLE at least ipfw wrongly interprets dummynet
configurations of the type:
pipe 10 config bw 1.5Mb
^^^
as being 1bit/s configuration. Which is quite wrong in real production usage.
This simple patch fixes it http://tinyurl.com/33j6odw.
I am not sure if this should be included before 8.1 release or not.
Here is the inline version.
Index: sbin/ipfw/dummynet.c
===================================================================
RCS file: /home/ncvs/src/sbin/ipfw/dummynet.c,v
retrieving revision 1.9.2.4
diff -u -r1.9.2.4 dummynet.c
--- sbin/ipfw/dummynet.c 23 Mar 2010 09:58:59 -0000 1.9.2.4
+++ sbin/ipfw/dummynet.c 14 Jun 2010 21:49:38 -0000
@@ -528,10 +528,10 @@
if_name[namelen] = '\0';
*bandwidth = 0;
} else { /* read bandwidth value */
- int bw;
+ double bw;
char *end = NULL;
- bw = strtoul(arg, &end, 0);
+ bw = strtod(arg, &end);
if (*end == 'K' || *end == 'k') {
end++;
bw *= 1000;
@@ -547,7 +547,7 @@
if (bw < 0)
errx(EX_DATAERR, "bandwidth too large");
- *bandwidth = bw;
+ *bandwidth = (int)bw;
if (if_name)
if_name[0] = '\0';
}
Regards,
--
Ermal
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTina6_2EoZOVPWD3pPcJ4FbeDi8eahcHXp-KL-XN>
