Commit Graph

24 Commits (16cc92dab608a3c83d9c1baa4dbdca307da12c9c)
 

Author SHA1 Message Date
tiptorrent development team 16cc92dab6 allow to report that a client allows redirection with POST method
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
2021-09-29 15:48:43 +02:00
tiptorrent development team dab82c806f do not shadow global redirect variable 2021-09-29 15:48:40 +02:00
tiptorrent development team e46be236c7 fix bogus error if clients closes connection unexpectly
Reports a bogus:

unknown read state 5, critical internal error for 127.0.0.1:60610
2021-09-29 15:48:38 +02:00
tiptorrent development team 353c5d3660 remove duplicate log when resuming from pending and being redirected 2021-09-29 15:48:36 +02:00
tiptorrent development team 610a1e48e4 another log rewrite 2021-09-29 15:48:32 +02:00
tiptorrent development team 6d1828c375 extend tests
a bit of copy and paste, generalize it later.
2021-09-29 15:48:30 +02:00
tiptorrent development team 94c45d5d36 improve logging
Report "client %s:%hu starts download for %s" when the file transfer
really starts.

Replace log when redirection after pending state is not available
2021-09-29 15:48:28 +02:00
tiptorrent development team a23722910e specify current state when displaying unknown error 2021-09-29 15:48:26 +02:00
tiptorrent development team 5a7d9644e4 allow to reuse redirections
A redirection can be reused up to max_clients times.
2021-09-29 15:48:24 +02:00
tiptorrent development team 0be142b8c9 disarm timer on release
This is a repeat timer, if not stopped, it will run again triggering UAF.
2021-09-29 15:48:22 +02:00
tiptorrent development team 1e0b3880f9 fix client timeout
as described by man(3) ev, to make it work with ev_timer_again().
2021-09-29 15:48:20 +02:00
tiptorrent development team 21aa4a9315 check sendfile error 2021-09-29 15:48:18 +02:00
tiptorrent development team 7a04638c32 update num_clients and redirection only for large files
Skip num_clients and redirection update for small files.
2021-09-29 15:48:16 +02:00
tiptorrent development team cbcc71db72 add support for HEAD method 2021-09-29 15:48:14 +02:00
tiptorrent development team d6dbb6c979 add a close wait state
Wait for clients to close the connection, then:

- create redirection.
- activate pending clients.

Do no refresh timeout while in close wait state.
2021-09-29 15:48:11 +02:00
tiptorrent development team b7b410ddc2 extend log on unknown internal state
Specify what client has trigger the unknown internal state
2021-09-29 15:48:09 +02:00
tiptorrent development team d0c8b24985 do not display an error when recv() == 0
This is the client closing the connection with us.
2021-09-29 15:48:07 +02:00
tiptorrent development team 9cf3edf10f call shutdown() before close() 2021-09-29 15:48:05 +02:00
tiptorrent development team b07785d2d1 activate pending clients only for large files
small files should not activate pending clients, otherwise max_clients
is not fulfilled.
2021-09-29 15:48:03 +02:00
tiptorrent development team 1b890bd11b use off_t instead of size_t for file size
stat() st_size datatype is off_t which is for file size, use off_t
instead of size_t for correctness.
2021-09-29 15:48:00 +02:00
tiptorrent development team a3ea145290 Add ULL postfix to FILE_SIZE_THRESHOLD to avoid using int
Otherwise, cli->size > FILE_SIZE_THRESHOLD uses 32-bit integer which
overflows with very large files. Use ULL to enforce 64-bits.
2021-09-29 15:47:58 +02:00
tiptorrent development team 9523d7d8fd add more logging for easier debugging 2021-09-29 15:47:55 +02:00
tiptorrent development team e72dc5e1cb fix typo in tests/network-setup.sh 2021-09-29 15:47:53 +02:00
tiptorrent development team 2610239d62 initial commit 2021-09-29 15:47:43 +02:00