X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cc59c899f56e8837af3c157f91b6b35b8370c13d..a3d5d7c92a920017984763d0a99d7340e2952fe8:/src/kernel/resource/models/ns3/ns3_simulator.cpp diff --git a/src/kernel/resource/models/ns3/ns3_simulator.cpp b/src/kernel/resource/models/ns3/ns3_simulator.cpp index 72cdaa16c3..bbc62068f4 100644 --- a/src/kernel/resource/models/ns3/ns3_simulator.cpp +++ b/src/kernel/resource/models/ns3/ns3_simulator.cpp @@ -17,8 +17,7 @@ #include -std::map> flow_from_sock; // ns3::sock -> SgFlow -std::map> sink_from_sock; // ns3::sock -> ns3::PacketSink +std::map> flow_from_sock; // ns3::sock -> SgFlow static void receive_callback(ns3::Ptr socket); static void datasent_cb(ns3::Ptr socket, uint32_t dataSent); @@ -31,12 +30,6 @@ static SgFlow* getFlowFromSocket(ns3::Ptr socket) return (it == flow_from_sock.end()) ? nullptr : it->second; } -static ns3::ApplicationContainer* getSinkFromSocket(ns3::Ptr socket) -{ - auto it = sink_from_sock.find(transform_socket_ptr(socket)); - return (it == sink_from_sock.end()) ? nullptr : &(it->second); -} - static void receive_callback(ns3::Ptr socket) { SgFlow* flow = getFlowFromSocket(socket); @@ -52,8 +45,7 @@ static void receive_callback(ns3::Ptr socket) static void send_cb(ns3::Ptr sock, uint32_t /*txSpace*/) { - SgFlow* flow = getFlowFromSocket(sock); - const ns3::ApplicationContainer* sink = getSinkFromSocket(sock); + SgFlow* flow = getFlowFromSocket(sock); XBT_DEBUG("Asked to write on F[%p, total: %u, remain: %u]", flow, flow->total_bytes_, flow->remaining_); if (flow->remaining_ == 0) // all data was already buffered (and socket was already closed) @@ -80,15 +72,7 @@ static void send_cb(ns3::Ptr sock, uint32_t /*txSpace*/) } if (flow->buffered_bytes_ >= flow->total_bytes_) { - XBT_DEBUG("Closing Sockets of flow %p", flow); - // Closing the sockets of the receiving application - ns3::Ptr app = ns3::DynamicCast(sink->Get(0)); - ns3::Ptr listening_sock = app->GetListeningSocket(); - listening_sock->Close(); - listening_sock->SetRecvCallback(ns3::MakeNullCallback>()); - for (ns3::Ptr accepted_sock : app->GetAcceptedSockets()) - accepted_sock->Close(); - // Closing the socket of the sender + XBT_DEBUG("Closing sender's socket of flow %p", flow); sock->Close(); } }