Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Make "route add 0.0.0.0/X <gw>" where X > 0 work again.
  • Loading branch information
Hasso Tepper committed Jan 20, 2009
1 parent 445faa6 commit a80e869
Showing 1 changed file with 19 additions and 23 deletions.
42 changes: 19 additions & 23 deletions sbin/route/route.c
Expand Up @@ -915,30 +915,26 @@ inet_makenetandmask(u_long net, struct sockaddr_in *in, u_long bits)
char *cp;

rtm_addrs |= RTA_NETMASK;
if (net == 0)
mask = addr = 0;
else {
if (net <= 0xff)
addr = net << 24;
else if (net <= 0xffff)
addr = net << 16;
else if (net <= 0xffffff)
addr = net << 8;
else
addr = net;
if (net <= 0xff)
addr = net << 24;
else if (net <= 0xffff)
addr = net << 16;
else if (net <= 0xffffff)
addr = net << 8;
else
addr = net;

if (bits)
mask = 0xffffffff << (32 - bits);
else {
if (IN_CLASSA(addr)) {
mask = IN_CLASSA_NET;
} else if (IN_CLASSB(addr)) {
mask = IN_CLASSB_NET;
} else if (IN_CLASSC(addr)) {
mask = IN_CLASSC_NET;
} else
mask = 0xffffffff;
}
if (bits)
mask = 0xffffffff << (32 - bits);
else {
if (IN_CLASSA(addr)) {
mask = IN_CLASSA_NET;
} else if (IN_CLASSB(addr)) {
mask = IN_CLASSB_NET;
} else if (IN_CLASSC(addr)) {
mask = IN_CLASSC_NET;
} else
mask = 0xffffffff;
}
in->sin_addr.s_addr = htonl(addr);
in = &so_mask.sin;
Expand Down

0 comments on commit a80e869

Please sign in to comment.