Update SENF to compile using g++ 4.3.2 (Ubuntu 8.10)
[senf.git] / Socket / Protocols / INet / INet6Address.cci
index 408d0ac..61fa0c6 100644 (file)
@@ -86,12 +86,6 @@ prefix_ boost::uint64_t senf::INet6Address::network()
         ((boost::uint64_t((*this)[7]) & 0xff)       );
 }
 
-prefix_ bool senf::INet6Address::hasEuid64()
-    const
-{
-    return unicast() && ((*this)[0]&0xE0u) != 0u;
-}
-
 prefix_ boost::uint64_t senf::INet6Address::id()
     const
 {
@@ -118,16 +112,22 @@ prefix_ bool senf::INet6Address::groupId()
     return (*this)[8] & 1u;
 }
 
-prefix_ bool senf::INet6Address::unicast()
+prefix_ senf::INet4Address senf::INet6Address::inet4address()
     const
 {
-    return ! multicast();
+    return INet4Address::from_data(&(*this)[12]);
+}
+
+prefix_ bool senf::INet6Address::inet4Mapped()
+    const
+{
+    return CheckINet6Network<0u,0u,0u,0u,0u,0xFFFFu,96>::match(*this);
 }
 
 prefix_ bool senf::INet6Address::multicast()
     const
 {
-    return (*this)[0] == 0xFFu;
+    return (*this)[0] == 0xFFu || (inet4Mapped() && inet4address().multicast());
 }
 
 prefix_ senf::INet6Address::ScopeId senf::INet6Address::scope()
@@ -144,34 +144,34 @@ prefix_ senf::INet6Address::ScopeId senf::INet6Address::scope()
         : GlobalScope;
 }
 
-prefix_ bool senf::INet6Address::globalScope()
+prefix_ bool senf::INet6Address::unicast()
     const
 {
-    return scope() == GlobalScope;
+    return ! multicast();
 }
-prefix_ bool senf::INet6Address::linkScope()
+
+prefix_ bool senf::INet6Address::hasEuid64()
     const
 {
-    return scope() == LinkScope;
+    return unicast() && ((*this)[0]&0xE0u) != 0u;
 }
 
-prefix_ senf::INet4Address senf::INet6Address::inet4address()
+prefix_ bool senf::INet6Address::globalScope()
     const
 {
-    return INet4Address::from_data(&(*this)[12]);
+    return scope() == GlobalScope;
 }
-
-prefix_ bool senf::INet6Address::inet4Compatible()
+prefix_ bool senf::INet6Address::linkScope()
     const
 {
-    return CheckINet6Network<0u,96>::match(*this);
+    return scope() == LinkScope;
 }
 
-prefix_ bool senf::INet6Address::inet4Mapped()
+prefix_ bool senf::INet6Address::inet4Compatible()
     const
 {
-    return CheckINet6Network<0u,0u,0u,0u,0u,0xFFFFu,96>::match(*this);
+    return CheckINet6Network<0u,96>::match(*this);
 }
 
 prefix_ bool senf::INet6Address::globalMulticastAddr()