X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Ftransfer.c;h=ab862a2bab8a8c30bdac2703ecb3307eadc10aaf;hb=7a5e9d410f5649769f58848870995b035bebecc0;hp=f4f0fef99216eb464b4eee8b2a93bb7bf62419fb;hpb=18f56d133715db3184ce7f11c34d4113268a722f;p=doldaconnect.git diff --git a/daemon/transfer.c b/daemon/transfer.c index f4f0fef..ab862a2 100644 --- a/daemon/transfer.c +++ b/daemon/transfer.c @@ -40,6 +40,8 @@ static void killfilter(struct transfer *transfer); +unsigned long long bytesupload = 0; +unsigned long long bytesdownload = 0; struct transfer *transfers = NULL; int numtransfers = 0; GCBCHAIN(newtransfercb, struct transfer *); @@ -240,6 +242,7 @@ void transferputdata(struct transfer *transfer, void *buf, size_t size) time(&transfer->activity); sockqueue(transfer->localend, buf, size); transfer->curpos += size; + bytesdownload += size; CBCHAINDOCB(transfer, trans_p, transfer); } @@ -279,6 +282,7 @@ void *transfergetdata(struct transfer *transfer, size_t *size) buf = srealloc(buf, *size); } transfer->curpos += *size; + bytesupload += *size; CBCHAINDOCB(transfer, trans_p, transfer); return(buf); } @@ -339,7 +343,10 @@ static int tryreq(struct transfer *transfer) } } if(peer != NULL) + { + time(&transfer->lastreq); return(fn->fnet->reqconn(peer)); + } return(1); } @@ -609,6 +616,7 @@ static void filterexit(pid_t pid, int status, void *data) } else { freetransfer(transfer); } + trytransferbypeer(transfer->fnet, transfer->peerid); break; } }