From: Fredrik Tolf Date: Sat, 18 Oct 2008 01:32:17 +0000 (+0200) Subject: Moved the post-done transfer reset responsibility to transfer.c. X-Git-Tag: 1.3~6 X-Git-Url: http://dolda2000.com/gitweb/?p=doldaconnect.git;a=commitdiff_plain;h=b38037ff5b7c2779469cffed81da6774114807ef Moved the post-done transfer reset responsibility to transfer.c. --- diff --git a/daemon/fnet-dc.c b/daemon/fnet-dc.c index 807588f..f8b7606 100644 --- a/daemon/fnet-dc.c +++ b/daemon/fnet-dc.c @@ -2758,10 +2758,6 @@ static void peerdetach(struct dcpeer *peer) closesock(peer->trpipe); quitsock(peer->trpipe); peer->trpipe = NULL; - if(peer->transfer->dir == TRNSD_UP) - peer->transfer->close = 1; - else if(peer->transfer->dir == TRNSD_DOWN) - resettransfer(peer->transfer); peer->transfer = NULL; } @@ -2831,9 +2827,8 @@ static void trpipeerr(struct socket *sk, int errno, struct dcpeer *peer) peer->state = PEER_SYNC; dctransgotdata(peer->transfer, peer); peerdetach(peer); - if(peer->state != PEER_CMD) { + if(peer->state != PEER_CMD) peer->close = 1; - } } static struct socket *mktrpipe(struct dcpeer *peer) diff --git a/daemon/transfer.c b/daemon/transfer.c index 893953d..32f3e28 100644 --- a/daemon/transfer.c +++ b/daemon/transfer.c @@ -189,7 +189,10 @@ static void dataerr(struct socket *sk, int errno, struct transfer *transfer) transfer->localend = NULL; } } else { - resettransfer(transfer); + if(transfer->dir == TRNSD_DOWN) + resettransfer(transfer); + else if(transfer->dir == TRNSD_UP) + transfer->close = 1; } }