From c80d247e78b2fd2f6f5cf7ca8dfd4b49ab64867a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4kel=C3=A4?= Date: Thu, 21 Jan 2010 19:57:34 -0800 Subject: [PATCH] [bug 794] Ipv4Mask constructor for /yy-notation is wrong --- src/node/ipv4-address.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/node/ipv4-address.cc b/src/node/ipv4-address.cc index 02db1da3f..24735291d 100644 --- a/src/node/ipv4-address.cc +++ b/src/node/ipv4-address.cc @@ -72,8 +72,16 @@ Ipv4Mask::Ipv4Mask (char const *mask) { if (*mask == ASCII_SLASH) { - m_mask = static_cast (atoi (++mask)); - NS_ASSERT (m_mask <= 32); + uint32_t plen = static_cast (atoi (++mask)); + NS_ASSERT (plen <= 32); + if (plen > 0) + { + m_mask = 0xffffffff << (32 - plen); + } + else + { + m_mask = 0; + } } else {