Whitespace fix.
[doldaconnect.git] / daemon / transfer.c
index b713f52..177353c 100644 (file)
@@ -181,15 +181,19 @@ 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;
+    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 {
-       resettransfer(transfer);
+    } else if(transfer->dir == TRNSD_UP) {
+       transfer->close = 1;
     }
 }
 
@@ -325,7 +329,6 @@ void transfersetlocalend(struct transfer *transfer, struct socket *sk)
 {
     if(transfer->localend != NULL)
        putsock(transfer->localend);
-    socksetdebug(sk, 2, "localend");
     getsock(transfer->localend = sk);
     sk->data = transfer;
     sk->readcb = (void (*)(struct socket *, void *))localread;