X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Ftransfer.h;h=c200acfd0266b465a31bd8ec19103d23e2a3ab13;hb=3e0252c1448d505c1f2c58ba8024d5026529ff60;hp=16cbd497a65bbae57e7f4151eabd7daca58d7611;hpb=668d96ab81d447fe8d08115c5c03e47d225b3f56;p=doldaconnect.git diff --git a/daemon/transfer.h b/daemon/transfer.h index 16cbd49..c200acf 100644 --- a/daemon/transfer.h +++ b/daemon/transfer.h @@ -50,13 +50,6 @@ struct transferiface void (*wantdata)(struct transfer *transfer, void *data); }; -struct transarg -{ - struct transarg *next; - wchar_t *rec; - wchar_t *val; -}; - struct transfer { struct transfer *next, *prev; @@ -84,13 +77,14 @@ struct transfer struct fnetnode *fn; void *ifacedata; struct socket *localend; - struct transarg *args; + struct wcspair *args; pid_t filter; struct authhandle *auth; struct socket *filterout; char *filterbuf; struct hash *hash; size_t filterbufsize, filterbufdata; + wchar_t *exitstatus; CBCHAIN(trans_ac, struct transfer *transfer, wchar_t *attrib); CBCHAIN(trans_p, struct transfer *transfer); CBCHAIN(trans_act, struct transfer *transfer); @@ -104,6 +98,7 @@ void linktransfer(struct transfer *transfer); 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); void transfersetnick(struct transfer *transfer, wchar_t *newnick); void transfersetpath(struct transfer *transfer, wchar_t *newpath); @@ -116,7 +111,6 @@ 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); -void transferaddarg(struct transfer *transfer, wchar_t *rec, wchar_t *val); int forkfilter(struct transfer *transfer); void transferputdata(struct transfer *transfer, void *buf, size_t size); size_t transferdatasize(struct transfer *transfer); @@ -126,8 +120,11 @@ void transferstartul(struct transfer *transfer, struct socket *sk); void transfersethash(struct transfer *transfer, struct hash *hash); struct transfer *finddownload(wchar_t *peerid); void transferstartdl(struct transfer *transfer, struct socket *sk); +void trytransferbypeer(struct fnet *fnet, wchar_t *peerid); extern struct transfer *transfers; +extern unsigned long long bytesupload; +extern unsigned long long bytesdownload; EGCBCHAIN(newtransfercb, struct transfer *); #endif