diff options
author | tiptorrent development team <tiptorrent@soleta.eu> | 2021-09-13 11:54:19 +0200 |
---|---|---|
committer | tiptorrent development team <tiptorrent@soleta.eu> | 2021-09-29 15:48:16 +0200 |
commit | 7a04638c320c61eb52c0a849fc8cf5ddd6e1ad8c (patch) | |
tree | 5d37d25a266a90e4abbc58f3c134a0e054cb3c05 | |
parent | cbcc71db72efb91adf7d7dac275de8ba4e12af0c (diff) |
update num_clients and redirection only for large files
Skip num_clients and redirection update for small files.
-rw-r--r-- | src/core.c | 5 | ||||
-rw-r--r-- | src/handler.c | 16 |
2 files changed, 12 insertions, 9 deletions
@@ -50,9 +50,10 @@ static void tip_client_release(struct ev_loop *loop, struct tip_client *cli) free((void *)cli->path); if (cli->method == TIP_METHOD_GET) { - num_clients--; - if (tip_client_large_file(cli)) + if (tip_client_large_file(cli)) { + num_clients--; tip_client_activate_pending(); + } } free(cli); diff --git a/src/handler.c b/src/handler.c index 36d2628..b283ea6 100644 --- a/src/handler.c +++ b/src/handler.c @@ -107,13 +107,15 @@ int tip_client_state_process_payload(struct tip_client *cli) return 0; } - cli->allow_redirect = allow_redirect; - - num_clients++; - if (tip_client_large_file(cli) && num_clients > max_clients) { - if (!tip_client_redirect(cli)) { - tip_client_pending(cli); - return 1; + if (tip_client_large_file(cli)) { + cli->allow_redirect = allow_redirect; + + num_clients++; + if (num_clients > max_clients) { + if (!tip_client_redirect(cli)) { + tip_client_pending(cli); + return 1; + } } } |