equal
deleted
inserted
replaced
86 m_socket->Bind (m_local); |
86 m_socket->Bind (m_local); |
87 m_socket->Listen (0); |
87 m_socket->Listen (0); |
88 } |
88 } |
89 |
89 |
90 m_socket->SetRecvCallback (MakeCallback(&PacketSink::Receive, this)); |
90 m_socket->SetRecvCallback (MakeCallback(&PacketSink::Receive, this)); |
|
91 m_socket->SetRecv_Callback (MakeCallback(&PacketSink::HandleRead, this)); |
91 m_socket->SetAcceptCallback ( |
92 m_socket->SetAcceptCallback ( |
92 MakeNullCallback<bool, Ptr<Socket>, const Address &> (), |
93 MakeNullCallback<bool, Ptr<Socket>, const Address &> (), |
93 MakeNullCallback<void, Ptr<Socket>, const Address&> (), |
94 MakeNullCallback<void, Ptr<Socket>, const Address&> (), |
94 MakeCallback(&PacketSink::CloseConnection, this) ); |
95 MakeCallback(&PacketSink::CloseConnection, this) ); |
95 } |
96 } |
98 { |
99 { |
99 if (m_socket) |
100 if (m_socket) |
100 { |
101 { |
101 m_socket->SetRecvCallback (MakeNullCallback<void, Ptr<Socket>, |
102 m_socket->SetRecvCallback (MakeNullCallback<void, Ptr<Socket>, |
102 Ptr<Packet>, const Address &> ()); |
103 Ptr<Packet>, const Address &> ()); |
|
104 } |
|
105 } |
|
106 |
|
107 void PacketSink::HandleRead (Ptr<Socket> socket) |
|
108 { |
|
109 Ptr<Packet> packet; |
|
110 uint32_t maxSize = std::numeric_limits<uint32_t>::max(); |
|
111 uint32_t flags = 0; // no flags |
|
112 while (packet = socket->Recv (maxSize, flags)) |
|
113 { |
|
114 NS_LOG_INFO ("Received " << packet->GetSize()); |
|
115 #if 0 |
|
116 // this code waits until we pass address as a Packet tag |
|
117 if (InetSocketAddress::IsMatchingType (from)) |
|
118 { |
|
119 address = InetSocketAddress::ConvertFrom (from); |
|
120 NS_LOG_INFO ("Received " << packet->GetSize() << " bytes from " << |
|
121 address.GetIpv4() << " [" << address << "]---'" << |
|
122 packet->PeekData() << "'"); |
|
123 } |
|
124 m_rxTrace (packet, from); |
|
125 #endif |
103 } |
126 } |
104 } |
127 } |
105 |
128 |
106 // This LOG output inspired by the application on Joseph Kopena's wiki |
129 // This LOG output inspired by the application on Joseph Kopena's wiki |
107 void PacketSink::Receive(Ptr<Socket> socket, Ptr<Packet> packet, |
130 void PacketSink::Receive(Ptr<Socket> socket, Ptr<Packet> packet, |