X-Git-Url: http://dolda2000.com/gitweb/?p=doldaconnect.git;a=blobdiff_plain;f=daemon%2Ftransfer.c;h=16e35719645530710be90f31d3c1cee681f54d75;hp=32f3e2814cccf98c8171674c59315e1049c00ac9;hb=c3d01fa95daeee35607cdf7ddc8e688c4a49ea50;hpb=b38037ff5b7c2779469cffed81da6774114807ef diff --git a/daemon/transfer.c b/daemon/transfer.c index 32f3e28..16e3571 100644 --- a/daemon/transfer.c +++ b/daemon/transfer.c @@ -181,17 +181,18 @@ static void localerr(struct socket *sk, int errno, struct transfer *transfer) static void dataerr(struct socket *sk, int errno, struct transfer *transfer) { - if(transfer->curpos >= transfer->size) { - transfersetstate(transfer, TRNS_DONE); - if(transfer->localend != NULL) { - closesock(transfer->localend); - quitsock(transfer->localend); - transfer->localend = NULL; - } - } else { - if(transfer->dir == TRNSD_DOWN) + if(transfer->dir == TRNSD_DOWN) { + if(transfer->curpos >= transfer->size) { + transfersetstate(transfer, TRNS_DONE); + if(transfer->localend != NULL) { + closesock(transfer->localend); + quitsock(transfer->localend); + transfer->localend = NULL; + } + } else { resettransfer(transfer); - else if(transfer->dir == TRNSD_UP) + } + } else if(transfer->dir == TRNSD_UP) { transfer->close = 1; } }