}
static void send_callback(Ptr<Socket> 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;
}
- while (mysocket->sentBytes < mysocket->totalBytes
+
+ uint8_t *data = (uint8_t*)malloc(sizeof(uint8_t)*txSpace);
+
+ while (mysocket->bufferedBytes < mysocket->totalBytes
&& localSocket->GetTxAvailable () > 0)
{
uint32_t toWrite = min ((mysocket->remaining), txSpace);
if(amountSent < 0)
return;
- (mysocket->sentBytes) += amountSent;
- (mysocket->remaining) -= amountSent;
+ (mysocket->bufferedBytes) += amountSent;
+ (mysocket->remaining) -= amountSent;
XBT_DEBUG("send_cb of F[%p, %p, %d] (%d/%d) %d buffered", mysocket, mysocket->action, mysocket->totalBytes, mysocket->remaining, mysocket->totalBytes, amountSent);
}
free(data);
- if ((mysocket->sentBytes) >= mysocket->totalBytes){
+ if ((mysocket->bufferedBytes) >= mysocket->totalBytes){
localSocket->Close();
}
}