summaryrefslogtreecommitdiffstats
path: root/src/core.c
Commit message (Collapse)AuthorAgeFilesLines
* allow to specify maximum number of redirections with -rtiptorrent development team2022-02-081-3/+3
| | | | | | | | | | | For example, -r/--redirect 3 specifies that the maximum number of redirections per client is 3. if -r/--redirect is specified with no argument, then the argument specified by -n/--max-clients is used. If -n/--max-clients is not specified and -r/--redirect is specifed with no argument, then default value is 3.
* do not create redirect if client unexpectedly closes connectiontiptorrent development team2021-12-221-6/+7
| | | | | | | | Close the socket without creating the redirection, this client did not successfully downloaded the image file. Moreover, check for connection closed by client in all of the possible read states.
* download checksum file directly from servertiptorrent development team2021-09-291-2/+2
| | | | Remove assumption on small file to shortcircuit the redirect logic.
* Revert "prioritize direct download for non existing redirections"tiptorrent development team2021-09-291-22/+3
| | | | | | | This reverts commit 4b97101f747e114253467ce4568cbced18f4c2d1. This patch is broken, cli->path refers to the absolute file, not the chunks, and it should check for this->state, not cli->state.
* runtime split original file into chunkstiptorrent development team2021-09-291-0/+1
| | | | No need to split the original file on the server side.
* prioritize direct download for non existing redirectionstiptorrent development team2021-09-291-3/+22
| | | | | | allocate the direct download slot from server if there are no redirections and no other client is currently downloading this file already.
* activate pending clients only for close direct downloadtiptorrent development team2021-09-291-1/+2
| | | | if a client is redirected, do not exercise the client activation loop.
* do not stop activating clients when direct download startstiptorrent development team2021-09-291-1/+3
| | | | | | | | Do not break the loop after activating one client. Keep activating clients that can be redirected. If no redirection is found, then start direct download for this client (only one) but keep looping for clients that can be redirected.
* do not activate clients without redirection via POSTtiptorrent development team2021-09-291-3/+6
| | | | | update 4573deb8cb3 to skip clients without redirection after receiving POST notification.
* rise redirection timeout to 3600 secondstiptorrent development team2021-09-291-1/+1
|
* increase timeout for redirectionstiptorrent development team2021-09-291-1/+3
| | | | available redirections expire after 5 minutes.
* allow to report that a client allows redirection with POST methodtiptorrent development team2021-09-291-6/+2
| | | | | | | | | If clients sends POST /test, it notifies the server that it is available for receive redirections from file 'test'. Test it with wget: wget --post-data '' http://localhost:9999/TEST -O /dev/null
* fix bogus error if clients closes connection unexpectlytiptorrent development team2021-09-291-0/+10
| | | | | | Reports a bogus: unknown read state 5, critical internal error for 127.0.0.1:60610
* remove duplicate log when resuming from pending and being redirectedtiptorrent development team2021-09-291-5/+1
|
* another log rewritetiptorrent development team2021-09-291-1/+1
|
* improve loggingtiptorrent development team2021-09-291-11/+11
| | | | | | | Report "client %s:%hu starts download for %s" when the file transfer really starts. Replace log when redirection after pending state is not available
* specify current state when displaying unknown errortiptorrent development team2021-09-291-4/+4
|
* allow to reuse redirectionstiptorrent development team2021-09-291-3/+9
| | | | A redirection can be reused up to max_clients times.
* disarm timer on releasetiptorrent development team2021-09-291-2/+1
| | | | This is a repeat timer, if not stopped, it will run again triggering UAF.
* fix client timeouttiptorrent development team2021-09-291-4/+5
| | | | as described by man(3) ev, to make it work with ev_timer_again().
* update num_clients and redirection only for large filestiptorrent development team2021-09-291-2/+3
| | | | Skip num_clients and redirection update for small files.
* add support for HEAD methodtiptorrent development team2021-09-291-8/+14
|
* add a close wait statetiptorrent development team2021-09-291-8/+23
| | | | | | | | | Wait for clients to close the connection, then: - create redirection. - activate pending clients. Do no refresh timeout while in close wait state.
* extend log on unknown internal statetiptorrent development team2021-09-291-2/+4
| | | | Specify what client has trigger the unknown internal state
* do not display an error when recv() == 0tiptorrent development team2021-09-291-7/+4
| | | | This is the client closing the connection with us.
* call shutdown() before close()tiptorrent development team2021-09-291-0/+1
|
* activate pending clients only for large filestiptorrent development team2021-09-291-2/+4
| | | | | small files should not activate pending clients, otherwise max_clients is not fulfilled.
* add more logging for easier debuggingtiptorrent development team2021-09-291-5/+15
|
* initial committiptorrent development team2021-09-291-0/+440