diff --git a/src/node/ipv4-address.cc b/src/node/ipv4-address.cc index aae53c65f..91d4d0bc1 100644 --- a/src/node/ipv4-address.cc +++ b/src/node/ipv4-address.cc @@ -211,6 +211,15 @@ Ipv4Address::IsMatchingType (const Address &address) { return address.CheckCompatible (GetType (), 4); } +Ipv4Address::operator Address () +{ + return ConvertTo (); +} +Ipv4Address::Ipv4Address (const Address &address) +{ + *this = ConvertFrom (address); +} + Address Ipv4Address::ConvertTo (void) const { diff --git a/src/node/ipv4-address.h b/src/node/ipv4-address.h index 8e8976a18..d17854742 100644 --- a/src/node/ipv4-address.h +++ b/src/node/ipv4-address.h @@ -105,14 +105,16 @@ public: Ipv4Address CombineMask (Ipv4Mask const &mask) const; static bool IsMatchingType (const Address &address); - Address ConvertTo (void) const; - static Ipv4Address ConvertFrom (const Address &address); + operator Address (); + Ipv4Address (const Address &address); static Ipv4Address GetZero (void); static Ipv4Address GetAny (void); static Ipv4Address GetBroadcast (void); static Ipv4Address GetLoopback (void); private: + Address ConvertTo (void) const; + static Ipv4Address ConvertFrom (const Address &address); static uint8_t GetType (void); uint32_t m_address; };