--- a/src/internet-node/tcp-socket.cc Tue Mar 11 11:35:26 2008 -0700
+++ b/src/internet-node/tcp-socket.cc Tue Mar 11 13:30:12 2008 -0700
@@ -40,12 +40,12 @@
namespace ns3 {
- TcpSocket::TcpSocket (Ptr<Node> node, Ptr<TcpL4Protocol> tcp, Ptr<RttEstimator> rtt)
+ TcpSocket::TcpSocket ()
: m_skipRetxResched (false),
m_dupAckCount (0),
m_endPoint (0),
- m_node (node),
- m_tcp (tcp),
+ m_node (0),
+ m_tcp (0),
m_errno (ERROR_NOTERROR),
m_shutdownSend (false),
m_shutdownRecv (false),
@@ -61,22 +61,12 @@
m_lastRxAck (0),
m_nextRxSequence (0),
m_pendingData (0),
- m_rtt (rtt),
+ m_rtt (0),
m_lastMeasuredRtt (Seconds(0.0))
{
NS_LOG_FUNCTION;
- NS_LOG_PARAMS (this<<node<<tcp);
+ NS_LOG_PARAMS (this);
- Ptr<Tcp> t = node->GetObject<Tcp> ();
- m_segmentSize = t->GetDefaultSegSize ();
- m_rxWindowSize = t->GetDefaultAdvWin ();
- m_advertisedWindowSize = t->GetDefaultAdvWin ();
- m_cWnd = t->GetDefaultInitialCwnd () * m_segmentSize;
- m_ssThresh = t->GetDefaultSsThresh ();
- m_initialCWnd = t->GetDefaultInitialCwnd ();
- m_cnTimeout = Seconds (t->GetDefaultConnTimeout ());
- m_cnCount = t->GetDefaultConnCount ();
-
}
TcpSocket::~TcpSocket ()
@@ -103,6 +93,33 @@
m_pendingData = 0;
}
+void
+TcpSocket::SetNode (Ptr<Node> node)
+{
+ m_node = node;
+ Ptr<Tcp> t = node->GetObject<Tcp> ();
+ m_segmentSize = t->GetDefaultSegSize ();
+ m_rxWindowSize = t->GetDefaultAdvWin ();
+ m_advertisedWindowSize = t->GetDefaultAdvWin ();
+ m_cWnd = t->GetDefaultInitialCwnd () * m_segmentSize;
+ m_ssThresh = t->GetDefaultSsThresh ();
+ m_initialCWnd = t->GetDefaultInitialCwnd ();
+ m_cnTimeout = Seconds (t->GetDefaultConnTimeout ());
+ m_cnCount = t->GetDefaultConnCount ();
+}
+
+void
+TcpSocket::SetTcp (Ptr<TcpL4Protocol> tcp)
+{
+ m_tcp = tcp;
+}
+void
+TcpSocket::SetRtt (Ptr<RttEstimator> rtt)
+{
+ m_rtt = rtt;
+}
+
+
enum Socket::SocketErrno
TcpSocket::GetErrno (void) const
{