From: Navarrop Date: Tue, 20 Sep 2011 11:39:35 +0000 (+0200) Subject: Don't malloc data if mysmysocket->remaining equals 0, just return. X-Git-Tag: v3_6_2~77 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/95689b491f0fa08b65fbce516d591a9e44179796 Don't malloc data if mysmysocket->remaining equals 0, just return. --- 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) {