Dolda2000 GitWeb
/
doldaconnect.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleanup and bugfixes(...).
[doldaconnect.git]
/
daemon
/
transfer.c
diff --git
a/daemon/transfer.c
b/daemon/transfer.c
index
15bd5d2
..
61b3483
100644
(file)
--- a/
daemon/transfer.c
+++ b/
daemon/transfer.c
@@
-36,6
+36,7
@@
#include "auth.h"
#include "transfer.h"
#include "module.h"
#include "auth.h"
#include "transfer.h"
#include "module.h"
+#include "client.h"
static void killfilter(struct transfer *transfer);
static void killfilter(struct transfer *transfer);
@@
-82,6
+83,8
@@
void freetransfer(struct transfer *transfer)
free(transfer->actdesc);
if(transfer->filterbuf != NULL)
free(transfer->filterbuf);
free(transfer->actdesc);
if(transfer->filterbuf != NULL)
free(transfer->filterbuf);
+ if(transfer->hash != NULL)
+ freehash(transfer->hash);
if(transfer->localend != NULL)
{
transfer->localend->readcb = NULL;
if(transfer->localend != NULL)
{
transfer->localend->readcb = NULL;
@@
-154,6
+157,18
@@
void transferdetach(struct transfer *transfer)
}
}
}
}
+struct transfer *finddownload(wchar_t *peerid)
+{
+ struct transfer *transfer;
+
+ for(transfer = transfers; transfer != NULL; transfer = transfer->next)
+ {
+ if((transfer->dir == TRNSD_DOWN) && (transfer->iface == NULL) && !wcscmp(peerid, transfer->peerid))
+ break;
+ }
+ return(transfer);
+}
+
struct transfer *newupload(struct fnetnode *fn, struct fnet *fnet, wchar_t *nickid, struct transferiface *iface, void *data)
{
struct transfer *transfer;
struct transfer *newupload(struct fnetnode *fn, struct fnet *fnet, wchar_t *nickid, struct transferiface *iface, void *data)
{
struct transfer *transfer;
@@
-295,6
+310,12
@@
void transferprepul(struct transfer *transfer, size_t size, size_t start, size_t
transfersetlocalend(transfer, lesk);
}
transfersetlocalend(transfer, lesk);
}
+void transferstartdl(struct transfer *transfer, struct socket *sk)
+{
+ transfersetstate(transfer, TRNS_MAIN);
+ socksettos(sk, confgetint("transfer", "dltos"));
+}
+
void transferstartul(struct transfer *transfer, struct socket *sk)
{
transfersetstate(transfer, TRNS_MAIN);
void transferstartul(struct transfer *transfer, struct socket *sk)
{
transfersetstate(transfer, TRNS_MAIN);
@@
-434,6
+455,14
@@
void transfersetpath(struct transfer *transfer, wchar_t *path)
CBCHAINDOCB(transfer, trans_ac, transfer, L"path");
}
CBCHAINDOCB(transfer, trans_ac, transfer, L"path");
}
+void transfersethash(struct transfer *transfer, struct hash *hash)
+{
+ if(transfer->hash != NULL)
+ freehash(transfer->hash);
+ transfer->hash = hash;
+ CBCHAINDOCB(transfer, trans_ac, transfer, L"hash");
+}
+
int slotsleft(void)
{
struct transfer *transfer;
int slotsleft(void)
{
struct transfer *transfer;