From 2c086721aeffb8fb66d5d2653f9db0934563b5c4 Mon Sep 17 00:00:00 2001 From: fredrik Date: Fri, 21 Oct 2005 23:57:43 +0000 Subject: [PATCH] Add transfersethash, transferstartdl and finddownload. git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@393 959494ce-11ee-0310-bf91-de5d638817bd --- daemon/transfer.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/daemon/transfer.c b/daemon/transfer.c index 8a295a6..61b3483 100644 --- a/daemon/transfer.c +++ b/daemon/transfer.c @@ -157,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; @@ -298,6 +310,12 @@ void transferprepul(struct transfer *transfer, size_t size, size_t start, size_t 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); @@ -437,6 +455,14 @@ void transfersetpath(struct transfer *transfer, wchar_t *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; -- 2.11.0