/*
* Dolda Connect - Modular multiuser Direct Connect-style client
- * Copyright (C) 2004 Fredrik Tolf (fredrik@dolda2000.com)
+ * Copyright (C) 2004 Fredrik Tolf <fredrik@dolda2000.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
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);
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);
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