diff --git a/src/internet-node/ipv4.cc b/src/internet-node/ipv4.cc index d049edcd7..6a0697290 100644 --- a/src/internet-node/ipv4.cc +++ b/src/internet-node/ipv4.cc @@ -42,7 +42,7 @@ namespace ns3 { const uint16_t Ipv4::PROT_NUMBER = 0x0800; -Ipv4::Ipv4(Node *node) +Ipv4::Ipv4(Ptr node) : L3Protocol (PROT_NUMBER, 4), m_nInterfaces (0), m_defaultTtl (64), @@ -51,12 +51,9 @@ Ipv4::Ipv4(Node *node) m_node (node) { SetupLoopback (); - m_node->Ref (); } Ipv4::~Ipv4 () -{ - DoDispose (); -} +{} void Ipv4::DoDispose (void) @@ -83,11 +80,7 @@ Ipv4::DoDispose (void) delete m_defaultRoute; m_defaultRoute = 0; } - if (m_node != 0) - { - m_node->Unref (); - m_node = 0; - } + m_node = 0; L3Protocol::DoDispose (); } diff --git a/src/internet-node/ipv4.h b/src/internet-node/ipv4.h index 84b63bf95..b041b0e78 100644 --- a/src/internet-node/ipv4.h +++ b/src/internet-node/ipv4.h @@ -27,6 +27,7 @@ #include "ns3/callback-trace-source.h" #include "ns3/array-trace-resolver.h" #include "ns3/ipv4-address.h" +#include "ns3/ptr.h" #include "l3-protocol.h" namespace ns3 { @@ -58,7 +59,7 @@ public: }; typedef ArrayTraceResolver::Index InterfaceIndex; - Ipv4(Node *node); + Ipv4(Ptr node); virtual ~Ipv4 (); /** @@ -240,7 +241,7 @@ private: HostRoutes m_hostRoutes; NetworkRoutes m_networkRoutes; Ipv4Route *m_defaultRoute; - Node *m_node; + Ptr m_node; CallbackTraceSource m_txTrace; CallbackTraceSource m_rxTrace; CallbackTraceSource m_dropTrace;