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 *);
time(&transfer->activity);
sockqueue(transfer->localend, buf, size);
transfer->curpos += size;
+ bytesdownload += size;
CBCHAINDOCB(transfer, trans_p, transfer);
}
buf = srealloc(buf, *size);
}
transfer->curpos += *size;
+ bytesupload += *size;
CBCHAINDOCB(transfer, trans_p, transfer);
return(buf);
}
}
}
if(peer != NULL)
+ {
+ time(&transfer->lastreq);
return(fn->fnet->reqconn(peer));
+ }
return(1);
}
return;
bufcat(transfer->filterbuf, buf, bufsize);
free(buf);
- if((p = memchr(transfer->filterbuf, '\n', transfer->filterbufdata)) != NULL)
+ while((p = memchr(transfer->filterbuf, '\n', transfer->filterbufdata)) != NULL)
{
*(p++) = 0;
if((p2 = strchr(transfer->filterbuf, ' ')) != NULL)
if(p2 != NULL)
{
if((arg = icmbstowcs(p2, NULL)) == NULL)
- flog(LOG_WARNING, "filter sent a string which could not be converted into the local charset: %s: %s", transfer->filterbuf, strerror(errno));
+ flog(LOG_WARNING, "filter sent a string which could not be converted into the local charset: %s: %s", p2, strerror(errno));
}
CBCHAINDOCB(transfer, trans_filterout, transfer, cmd, arg);
if(arg != NULL)