Merge branch 'socket' into transsock
[doldaconnect.git] / daemon / transfer.c
index 26b9588..9ad6efe 100644 (file)
@@ -284,9 +284,9 @@ void transferendofdata(struct transfer *transfer)
     }
 }
 
-size_t transferdatasize(struct transfer *transfer)
+ssize_t transferdatasize(struct transfer *transfer)
 {
-    return(sockqueuesize(transfer->localend));
+    return(sockqueueleft(transfer->localend));
 }
 
 void *transfergetdata(struct transfer *transfer, size_t *size)
@@ -295,7 +295,6 @@ void *transfergetdata(struct transfer *transfer, size_t *size)
     
     if(transfer->localend == NULL)
        return(NULL);
-    sockblock(transfer->localend, 0);
     time(&transfer->activity);
     if((buf = sockgetinbuf(transfer->localend, size)) == NULL)
        return(NULL);
@@ -319,7 +318,6 @@ void transferprepul(struct transfer *transfer, off_t size, off_t start, off_t en
     transfersetsize(transfer, size);
     transfer->curpos = start;
     transfer->endpos = end;
-    sockblock(lesk, 1);
     transfersetlocalend(transfer, lesk);
 }
 
@@ -334,7 +332,7 @@ void transferstartul(struct transfer *transfer, struct socket *sk)
     transfersetstate(transfer, TRNS_MAIN);
     socksettos(sk, confgetint("transfer", "ultos"));
     if(transfer->localend != NULL)
-       sockblock(transfer->localend, 0);
+       transferread(transfer->localend, transfer);
 }
 
 void transfersetlocalend(struct transfer *transfer, struct socket *sk)
@@ -724,7 +722,7 @@ int forkfilter(struct transfer *transfer)
      * the fd, and thus it closes it. Until I can find out whyever the
      * kernel gives a POLLIN on the fd (if I can at all...), I'll just
      * set ignread on insock for now. */
-    sockblock(insock, 1);
+/*     sockblock(insock, 1); */
     transfer->filter = pid;
     transfersetlocalend(transfer, insock);
     getsock(transfer->filterout = outsock);