From 95689b491f0fa08b65fbce516d591a9e44179796 Mon Sep 17 00:00:00 2001 From: Navarrop Date: Tue, 20 Sep 2011 13:39:35 +0200 Subject: [PATCH] Don't malloc data if mysmysocket->remaining equals 0, just return. --- src/surf/ns3/ns3_simulator.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/surf/ns3/ns3_simulator.cc b/src/surf/ns3/ns3_simulator.cc index c705984056..9509298806 100644 --- a/src/surf/ns3/ns3_simulator.cc +++ b/src/surf/ns3/ns3_simulator.cc @@ -131,12 +131,15 @@ static void receive_callback(Ptr localSocket){ } static void send_callback(Ptr localSocket, uint32_t txSpace){ - uint8_t *data = (uint8_t*)malloc(sizeof(uint8_t)*txSpace); MySocket* mysocket = get_my_socket(localSocket); + if (mysocket->remaining == 0){ //all data was already buffered (and socket was already closed), just return return; } + + uint8_t *data = (uint8_t*)malloc(sizeof(uint8_t)*txSpace); + while (mysocket->sentBytes < mysocket->totalBytes && localSocket->GetTxAvailable () > 0) { -- 2.20.1