X-Git-Url: http://dolda2000.com/gitweb/?p=doldaconnect.git;a=blobdiff_plain;f=daemon%2Ftransfer.h;h=aa3e83785be47dae9100704f03c3862981a55d6f;hp=b4ffa690920dbad922ce141277e82d81f97ded38;hb=705b7486a177b9a390822fff5655e5b25bbed2bb;hpb=40c21c4f1f82cf12f15afc2be824d8ec836fbccc diff --git a/daemon/transfer.h b/daemon/transfer.h index b4ffa69..aa3e837 100644 --- a/daemon/transfer.h +++ b/daemon/transfer.h @@ -40,16 +40,6 @@ #define TRNSE_NOTFOUND 1 #define TRNSE_NOSLOTS 2 -struct transfer; - -struct transferiface -{ - void (*detach)(struct transfer *transfer, void *data); - void (*gotdata)(struct transfer *transfer, void *data); - void (*endofdata)(struct transfer *transfer, void *data); - void (*wantdata)(struct transfer *transfer, void *data); -}; - struct transfer { struct transfer *next, *prev; @@ -68,15 +58,13 @@ struct transfer time_t timeout, activity, lastreq; wchar_t *actdesc; struct fnet *fnet; - struct transferiface *iface; wchar_t *peerid, *peernick; wchar_t *path; uid_t owner; int state, dir, error; off_t size, curpos, endpos; struct fnetnode *fn; - void *ifacedata; - struct socket *localend; + struct socket *localend, *datapipe; struct wcspair *args; pid_t filter; struct authhandle *auth; @@ -99,22 +87,18 @@ int slotsleft(void); void bumptransfer(struct transfer *transfer); struct transfer *findtransfer(int id); struct transfer *hasupload(struct fnet *fnet, wchar_t *peerid); -struct transfer *newupload(struct fnetnode *fn, struct fnet *fnet, wchar_t *nickid, struct transferiface *iface, void *data); +struct transfer *newupload(struct fnetnode *fn, struct fnet *fnet, wchar_t *nickid, struct socket *dpipe); void transfersetnick(struct transfer *transfer, wchar_t *newnick); void transfersetpath(struct transfer *transfer, wchar_t *newpath); void transfersetstate(struct transfer *transfer, int newstate); void transfersetsize(struct transfer *transfer, off_t newsize); void transferseterror(struct transfer *transfer, int error); void transfersetactivity(struct transfer *transfer, wchar_t *desc); -void transferattach(struct transfer *transfer, struct transferiface *iface, void *data); +void transferattach(struct transfer *transfer, struct socket *dpipe); void transferdetach(struct transfer *transfer); void resettransfer(struct transfer *transfer); void transfersetlocalend(struct transfer *transfer, struct socket *sk); -void *transfergetdata(struct transfer *transfer, size_t *size); int forkfilter(struct transfer *transfer); -void transferputdata(struct transfer *transfer, void *buf, size_t size); -size_t transferdatasize(struct transfer *transfer); -void transferendofdata(struct transfer *transfer); void transferprepul(struct transfer *transfer, off_t size, off_t start, off_t end, struct socket *lesk); void transferstartul(struct transfer *transfer, struct socket *sk); void transfersethash(struct transfer *transfer, struct hash *hash);