- unpack_addr (n_base, &a, &b, &c, &d);
- sprintf (buf, "%u.%u.%u.%u/%d", a, b, c, d, subnet_width);
+ unsigned int a, b, c, d;
+ unsigned long bb = n_base & htonl(h_mask);
+ unpack_addr (bb, &a, &b, &c, &d);
+ if (subnet_width > 24)
+ sprintf (buf, "%u.%u.%u.%u/%d", a, b, c, d, subnet_width);
+ else
+ sprintf (buf, "%u.%u.%u/%d", a, b, c, subnet_width);