aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2012-07-20 15:05:30 +0000
committerJo-Philipp Wich <jow@openwrt.org>2012-07-20 15:05:30 +0000
commitb2c4924bb4e92ddd8cb01da8b1d3665f47789ca7 (patch)
treec9683b637471654763db860b22cc7d9908931395
parent585ebed25ff5d681bb74767188e5ff2a60f4a9d8 (diff)
downloadupstream-b2c4924bb4e92ddd8cb01da8b1d3665f47789ca7.tar.gz
upstream-b2c4924bb4e92ddd8cb01da8b1d3665f47789ca7.tar.bz2
upstream-b2c4924bb4e92ddd8cb01da8b1d3665f47789ca7.zip
owipcalc: fix output formatting quirks
SVN-Revision: 32786
-rw-r--r--package/owipcalc/src/owipcalc.c49
1 files changed, 35 insertions, 14 deletions
diff --git a/package/owipcalc/src/owipcalc.c b/package/owipcalc/src/owipcalc.c
index 18013136b1..d22594bd76 100644
--- a/package/owipcalc/src/owipcalc.c
+++ b/package/owipcalc/src/owipcalc.c
@@ -224,14 +224,17 @@ static bool cidr_contains4(struct cidr *a, struct cidr *b)
uint32_t net1 = a->addr.v4.s_addr & htonl(~((1 << (32 - a->prefix)) - 1));
uint32_t net2 = b->addr.v4.s_addr & htonl(~((1 << (32 - a->prefix)) - 1));
+ if (printed)
+ qprintf(" ");
+
if ((b->prefix >= a->prefix) && (net1 == net2))
{
- qprintf("1\n");
+ qprintf("1");
return true;
}
else
{
- qprintf("0\n");
+ qprintf("0");
return false;
}
}
@@ -250,16 +253,19 @@ static bool cidr_private4(struct cidr *a)
{
uint32_t x = ntohl(a->addr.v4.s_addr);
+ if (printed)
+ qprintf(" ");
+
if (((x >= 0x0A000000) && (x <= 0x0AFFFFFF)) ||
((x >= 0xAC100000) && (x <= 0xAC1FFFFF)) ||
((x >= 0xC0A80000) && (x <= 0xC0A8FFFF)))
{
- qprintf("1\n");
+ qprintf("1");
return true;
}
else
{
- qprintf("0\n");
+ qprintf("0");
return false;
}
}
@@ -268,14 +274,17 @@ static bool cidr_linklocal4(struct cidr *a)
{
uint32_t x = ntohl(a->addr.v4.s_addr);
+ if (printed)
+ qprintf(" ");
+
if ((x >= 0xA9FE0000) && (x <= 0xA9FEFFFF))
{
- qprintf("1\n");
+ qprintf("1");
return true;
}
else
{
- qprintf("0\n");
+ qprintf("0");
return false;
}
}
@@ -526,46 +535,55 @@ static bool cidr_contains6(struct cidr *a, struct cidr *b)
uint8_t net1 = x->s6_addr[15-i] & m;
uint8_t net2 = y->s6_addr[15-i] & m;
+ if (printed)
+ qprintf(" ");
+
if ((b->prefix >= n->prefix) && (net1 == net2) &&
((i == 15) || !memcmp(&x->s6_addr, &y->s6_addr, 15-i)))
{
- qprintf("1\n");
+ qprintf("1");
return true;
}
else
{
- qprintf("0\n");
+ qprintf("0");
return false;
}
}
static bool cidr_linklocal6(struct cidr *a)
{
+ if (printed)
+ qprintf(" ");
+
if ((a->addr.v6.s6_addr[0] == 0xFE) &&
(a->addr.v6.s6_addr[1] >= 0x80) &&
(a->addr.v6.s6_addr[1] <= 0xBF))
{
- qprintf("1\n");
+ qprintf("1");
return true;
}
else
{
- qprintf("0\n");
+ qprintf("0");
return false;
}
}
static bool cidr_ula6(struct cidr *a)
{
+ if (printed)
+ qprintf(" ");
+
if ((a->addr.v6.s6_addr[0] >= 0xFC) &&
(a->addr.v6.s6_addr[0] <= 0xFD))
{
- qprintf("1\n");
+ qprintf("1");
return true;
}
else
{
- qprintf("0\n");
+ qprintf("0");
return false;
}
}
@@ -652,10 +670,13 @@ static struct cidr * cidr_parse(const char *op, const char *s, int af_hint)
static bool cidr_howmany(struct cidr *a, struct cidr *b)
{
+ if (printed)
+ qprintf(" ");
+
if (b->prefix < a->prefix)
- qprintf("0\n");
+ qprintf("0");
else
- qprintf("%u\n", 1 << (b->prefix - a->prefix));
+ qprintf("%u", 1 << (b->prefix - a->prefix));
return true;
}