/*
* 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
wchar_t *path;
uid_t owner;
int state, dir, error;
- size_t size, curpos, endpos;
+ off_t size, curpos, endpos;
struct fnetnode *fn;
void *ifacedata;
struct socket *localend;
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 transfersetstate(struct transfer *transfer, int newstate);
-void transfersetsize(struct transfer *transfer, int newsize);
+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 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, size_t size, size_t start, size_t end, struct socket *lesk);
+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);
struct transfer *finddownload(wchar_t *peerid);
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