Dolda2000 GitWeb
/
doldaconnect.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Return errors directly from sockflush.
[doldaconnect.git]
/
daemon
/
transfer.c
diff --git
a/daemon/transfer.c
b/daemon/transfer.c
index
d5b03e1
..
433ceb1
100644
(file)
--- a/
daemon/transfer.c
+++ b/
daemon/transfer.c
@@
-26,6
+26,7
@@
#include <grp.h>
#include <errno.h>
#include <sys/wait.h>
#include <grp.h>
#include <errno.h>
#include <sys/wait.h>
+#include <stdint.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
@@
-234,7
+235,7
@@
static void transexpire(int cancelled, struct transfer *transfer)
static void transferread(struct socket *sk, struct transfer *transfer)
{
if(sockgetdatalen(sk) >= 65536)
static void transferread(struct socket *sk, struct transfer *transfer)
{
if(sockgetdatalen(sk) >= 65536)
- s
k->ignread = 1
;
+ s
ockblock(sk, 1)
;
if((transfer->iface != NULL) && (transfer->iface->gotdata != NULL))
transfer->iface->gotdata(transfer, transfer->ifacedata);
}
if((transfer->iface != NULL) && (transfer->iface->gotdata != NULL))
transfer->iface->gotdata(transfer, transfer->ifacedata);
}
@@
-286,7
+287,7
@@
void *transfergetdata(struct transfer *transfer, size_t *size)
if(transfer->localend == NULL)
return(NULL);
if(transfer->localend == NULL)
return(NULL);
-
transfer->localend->ignread = 0
;
+
sockblock(transfer->localend, 0)
;
time(&transfer->activity);
if((buf = sockgetinbuf(transfer->localend, size)) == NULL)
return(NULL);
time(&transfer->activity);
if((buf = sockgetinbuf(transfer->localend, size)) == NULL)
return(NULL);
@@
-310,7
+311,7
@@
void transferprepul(struct transfer *transfer, off_t size, off_t start, off_t en
transfersetsize(transfer, size);
transfer->curpos = start;
transfer->endpos = end;
transfersetsize(transfer, size);
transfer->curpos = start;
transfer->endpos = end;
-
lesk->ignread = 1
;
+
sockblock(lesk, 1)
;
transfersetlocalend(transfer, lesk);
}
transfersetlocalend(transfer, lesk);
}
@@
-325,7
+326,7
@@
void transferstartul(struct transfer *transfer, struct socket *sk)
transfersetstate(transfer, TRNS_MAIN);
socksettos(sk, confgetint("transfer", "ultos"));
if(transfer->localend != NULL)
transfersetstate(transfer, TRNS_MAIN);
socksettos(sk, confgetint("transfer", "ultos"));
if(transfer->localend != NULL)
-
transfer->localend->ignread = 0
;
+
sockblock(transfer->localend, 0)
;
}
void transfersetlocalend(struct transfer *transfer, struct socket *sk)
}
void transfersetlocalend(struct transfer *transfer, struct socket *sk)
@@
-715,7
+716,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. */
* 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. */
-
insock->ignread = 1
;
+
sockblock(insock, 1)
;
transfer->filter = pid;
transfersetlocalend(transfer, insock);
getsock(transfer->filterout = outsock);
transfer->filter = pid;
transfersetlocalend(transfer, insock);
getsock(transfer->filterout = outsock);