svn commit: r190775 - head/sbin/route
Randall Stewart
rrs at FreeBSD.org
Mon Apr 6 07:27:29 PDT 2009
Author: rrs
Date: Mon Apr 6 14:27:28 2009
New Revision: 190775
URL: http://svn.freebsd.org/changeset/base/190775
Log:
Ok, looking at the solution a bit closer, the level
calculation was too agressive. Instead we should only
look at each nibble. This makes it so we make
10.2.0.0 become 10.2/16 NOT 10.2/17.
Need to explore the non-cidr address issue. The two
may not be seperable..
MFC after: 1 week
Modified:
head/sbin/route/route.c
Modified: head/sbin/route/route.c
==============================================================================
--- head/sbin/route/route.c Mon Apr 6 14:12:22 2009 (r190774)
+++ head/sbin/route/route.c Mon Apr 6 14:27:28 2009 (r190775)
@@ -808,15 +808,15 @@ inet_makenetandmask(net, sin, bits)
* CIDR address.
*/
if ((bits == 0) && (addr != 0)) {
- int i, j;
- for(i=0,j=1; i<32; i++) {
+ u_long i, j;
+ for(i=0,j=0xff; i<4; i++) {
if (addr & j) {
break;
}
- j <<= 1;
+ j <<= 8;
}
/* i holds the first non zero bit */
- bits = 32 - i;
+ bits = 32 - (i*8);
}
mask = 0xffffffff << (32 - bits);
More information about the svn-src-head
mailing list