void (*wantdata)(struct transfer *transfer, void *data);
};
-struct transarg
-{
- struct transarg *next;
- wchar_t *rec;
- wchar_t *val;
-};
-
struct transfer
{
struct transfer *next, *prev;
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);
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);
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