- uint32_t totalBytes = mysocket->totalBytes;
- while ((mysocket->bufferedBytes) < totalBytes && localSocket->GetTxAvailable () > 0){
- uint32_t toWrite = min ((mysocket->remaining), writeSize);
- toWrite = min (toWrite, localSocket->GetTxAvailable ());
- int amountSent = localSocket->Send (&data[0], toWrite, 0);
-
- if(amountSent < 0)
- return;
-
- (mysocket->last_amount_sent) += amountSent;
- (mysocket->bufferedBytes) += amountSent;
- (mysocket->remaining) -= amountSent;
- //cout << "[" << Simulator::Now ().GetSeconds() << "] " << "Send one packet, remaining "<< mysocket->remaining << " bytes!" << endl;
+
+ if (mysocket->remaining == 0){
+ //all data was already buffered (and socket was already closed), just return
+ return;