-
Notifications
You must be signed in to change notification settings - Fork 48
Add Timeouts to Tracker Client #765
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from 5 commits
Commits
Show all changes
265 commits
Select commit
Hold shift + click to select a range
5373493
chore(deps): update dependencies
josecelano af52045
Merge torrust/torrust-tracker#780: Update dependencies
josecelano 78b46c4
chore(deps): add cargo dependency: dashmap
josecelano 00ee9db
feat: [#565] new torrent repository implementation usind DashMap
josecelano 1e76c17
chore: add dashmap cargo dep to cargp machete
josecelano 4030fd1
fix: torrent repository tests. DashMap is not ordered
josecelano b5fb03b
Merge torrust/torrust-tracker#784: Performance optimization: create a…
josecelano aa4bfba
refactor: segregate command and query for announce request
josecelano 24b82f3
Merge torrust/torrust-tracker#792: Refactor: segregate command and qu…
josecelano 5fa01e7
chore(deps): update dependencies
josecelano 52b7e3a
Merge torrust/torrust-tracker#793: Update dependencies
josecelano 4a567cd
refactor: extract PeerList
josecelano 922afda
refactor: rename field from peers to swarm
josecelano 42f1b30
refactor: extract mod peer_list
josecelano 40182b4
test: add tests for PeerList type
josecelano 7664ec6
Merge torrust/torrust-tracker#797: Refactor: extract peer list in tor…
josecelano 5750e2c
chore(deps): add dependency parking_lot
josecelano 9258ac0
feat: new torrent repo implementation using parking_lot RwLock
josecelano 0fa396c
chore(deps): add parking_lot to cargo machete
josecelano 0058e72
feat: new torrent repo implementation using parking_lot Mutex
josecelano 6271ce8
Merge torrust/torrust-tracker#800: Torrent repository with `parking_l…
josecelano 87c9834
chore(deps): update dependencies
josecelano 9a1ce0e
Merge torrust/torrust-tracker#805: Update dependencies
josecelano b301596
chore:[#674] Tracker Checker: Ouput in JSON
hungfnt 7de4fbc
format fix
hungfnt b27f002
remove unused dependencies
hungfnt 92349d3
Merge torrust/torrust-tracker#810: chore:[#674] Tracker Checker: Oupu…
josecelano effca56
refactor: [#681] udp return errors instead of panicking
hungfnt 90c7780
Merge torrust/torrust-tracker#814: Refactor UdpClient to return error…
josecelano 895efe9
refactor: [#680] http return errors instead of panicking
hungfnt f64e8fb
Merge torrust/torrust-tracker#826: refactor: [#680] http return error…
josecelano 7551857
chore(deps): update dependencies
josecelano 2719d5e
Merge torrust/torrust-tracker#832: Update dependencies
josecelano 801d913
chore(deps): bump aquatic_udp_protocol from 0.8.0 to 0.9.0
josecelano 25ecdce
Merge torrust/torrust-tracker#837: Bump `aquatic_udp_protocol` from `…
josecelano be51d2f
chore(deps): bump ringbuf from 0.3.3 to 0.4.0
josecelano 36a0b96
Merge torrust/torrust-tracker#839: Bump `ringbuf` from `0.3.3` to `0.…
josecelano 62d4a20
chore(deps): update dependencies
josecelano 5348669
Merge torrust/torrust-tracker#840: Update dependencies
josecelano e3143f7
feat: log aborted UDP requests
josecelano 690d1d2
Merge torrust/torrust-tracker#841: feat: log aborted UDP requests
josecelano 3dee03e
docs: udpate installation docs
josecelano a1408ad
Merge torrust/torrust-tracker#843: Update installation docs
josecelano cddc4de
chore(deps): bump rustc-demangle v0.1.23 -> v0.1.24
josecelano a0a51c8
Merge torrust/torrust-tracker#844: chore(deps): bump `rustc-demangle`…
josecelano 6f02aeb
docs: fix profiling docs
josecelano 218fbbe
Merge torrust/torrust-tracker#847: docs: fix profiling docs
josecelano 9e01f7f
dev: fix udp ring-buffer not looping
da2ce7 31ab3a9
Merge torrust/torrust-tracker#846: dev: fix udp ring-buffer not looping
josecelano 7da52b1
chore(deps): add dependency figment
josecelano f0e0721
test: remove broken example in rustdoc
josecelano 157807c
chore(deps): enable figment features: env, toml, test
josecelano 636e779
refactor: create new configuration v1 mod with figment
josecelano e7d344c
refactor: create new configuration v1 mod with figment
josecelano 002fb30
refactor: reexport config versioned config types
josecelano 265d89d
refactor: replace Config by Figment in Configuration implementation
josecelano 5bd9494
chore: remove unused config dependenciy
josecelano 146b77d
feat: enable overwrite Configuration values using env vars
josecelano 632c8ba
refactor: move Configuration unit test to inner mods
josecelano b3a1442
refactor!: remove unused method in Configuration
josecelano caae725
feat: use double underscore to split config env var names
josecelano 69d7939
refactor: implement Default for Configuration sections
josecelano b0c2f9f
docs: update env var name in toml config template files
josecelano 43942ce
tests: add test for configuration with deprecated env var name
josecelano 0252f30
feat: allow users not to provide config option with default values
josecelano a20c9d7
Merge torrust/torrust-tracker#808: Use `figment` for configuration
josecelano 384e9f8
refactor: [#852] eenrich field types in HealthCheckApi config struct
josecelano 1475ead
refactor: [#852] eenrich field types in UdpTracker config struct
josecelano fc191f7
refactor: [#852] enrich field types in HttpTracker config struct
josecelano a2e718b
chore(deps): add dependency camino
josecelano 3997cfa
refactor: [#852] eenrich field types in TslConfig config struct
josecelano ceb3074
refactor: [#852] enrich field types in HttpApi config struct
josecelano 7519ecc
refactor: [#852] enrich field types in Configuration struct
josecelano b545b33
refactor: [#852] extract Core configuration type
josecelano 014ca38
Merge torrust/torrust-tracker#854: Refactor: enrich field types in co…
josecelano ae77ebc
refactor: tracker core service only needs the core config
josecelano 3c78bba
Merge torrust/torrust-tracker#857: Refactor: tracker core service onl…
josecelano 445bd53
feat: define only non-defaults in toml config templates
josecelano d9909a6
Merge torrust/torrust-tracker#858: Use only non-defaults in `toml` co…
josecelano cf1bfb1
chore(deps): update dependencies
josecelano 92408bc
Merge torrust/torrust-tracker#859: Update dependencies
josecelano da6a21e
refactor: [#855] show toml file location in Figment errors
josecelano 4de5e7d
refactor: move config env vars to configuration package
josecelano 7938433
Merge torrust/torrust-tracker#860: Show `toml` file location in Figme…
josecelano ef15e0b
refactor: [#851] rename env vars
josecelano a4d2adf
feat!: remove deprecated env var
josecelano 1ed2c74
Merge torrust/torrust-tracker#861: Rename environments variables
josecelano e1e1071
docs: update README
josecelano c0c107d
Merge torrust/torrust-tracker#862: Update README
josecelano 80fc8d6
docs: udpate roadmap in README
josecelano 8dc0520
Merge torrust/torrust-tracker#863: Fix Roadmap in README
josecelano dadc216
chore(deps): add cargo dependencies needed for axum timeouts
josecelano 112b76d
fix: [#612] add timeout for time waiting for the first API requests
josecelano 9e42a1a
feat: [#612] tower middleware to apply timeouts to requests
josecelano d0e66b7
Merge torrust/torrust-tracker#865: Add timeouts for Axum server in th…
josecelano 23d5e5e
fix: [#613] add timeout for time waiting for the first HTTP tracker
josecelano 67e6cf1
Merge torrust/torrust-tracker#866: Add timeout for time waiting for t…
josecelano 23c52b1
Fix REAADME HTTP port
GGLinnk 5478c3d
Merge torrust/torrust-tracker#874: Fix README HTTP port
josecelano 9be9366
Fix and improved bootstrap jobs module test.
GGLinnk d4eaea9
Merge torrust/torrust-tracker#875: Fix and improved bootstrap jobs mo…
josecelano 932e66e
feat: [#870] add privacy methods to the TrackerMode
josecelano 74d8f79
feat: [#870] remove Copy trait from TrackerMode
josecelano 0c9da2f
feat: [#870] implement traits Dispaly and FromStr for TrackerMode
josecelano b92401f
Merge torrust/torrust-tracker#871: Add privacy methods to the `Tracke…
josecelano 9e71e71
chore(deps): update dependencies
josecelano a3df726
fix: clippy errors
josecelano a0a7056
Merge torrust/torrust-tracker#881: Update dependencies
josecelano 4de7793
feat: [#670] new JSON serialization for connect and error aquatic res…
mario-nt 625db48
refactor: [#670] new trait for printing responses in JSON format and …
mario-nt 08e87ca
refactor: [#670] new print_response function from trait implemented
mario-nt 74f4cb0
refactor: [#670] added error message for pint_response function
mario-nt 5a529cc
refactor: [#670] new mod for responses logic and refactors to json s…
mario-nt 32416ee
refactor: [#670] changed DTOs and variable names
mario-nt 0157d96
refactor:[#670] fix clippy errors
mario-nt 67ff5c4
Merge torrust/torrust-tracker#876: [#670] new JSON serialization for …
josecelano f5d843b
docs: add benchmarking to torrent repo README
josecelano 8973b67
Merge torrust/torrust-tracker#886: docs: add benchmarking to torrent …
josecelano 6e87d3e
chore(deps): update dependencies
josecelano 613a1df
Merge torrust/torrust-tracker#887: Update dependencies
josecelano 3ccc0e4
chore(deps): add cargo dependency tracing
josecelano 6e06b2e
refactor: [#884] move from log to tracing crate
josecelano 69f100a
refactor: [#884] move from log to tracing crate
josecelano 7de2595
chore(deps): [#884] remove unused crate log
josecelano d6fd11a
test: [#884] add test for parsing array of services from app logs
josecelano ec88dbf
chore(deps): remove unused dependencies log and fern
josecelano dc171c1
Merge torrust/torrust-tracker#888: Move from `log` to `tracing` crate
josecelano c08de75
refactor: [#659] use clap and anyhow in E2E test runner
josecelano e50934e
Merge torrust/torrust-tracker#890: Use `clap` and `anyhow`crates in E…
josecelano f8a9976
docs: [#770] update benchmarking docs
josecelano a7ec479
Merge torrust/torrust-tracker#894: Update benchmarking docs
josecelano 322b976
chore(deps): update dependencies
josecelano 4832235
Merge torrust/torrust-tracker#895: Update dependencies
josecelano a88082a
fix: [#893] enable color in logs
josecelano a293373
chore(deps): add cargo dependency regex
josecelano eb928bc
fix: [#893] enable color for logs
josecelano a6054f1
Merge torrust/torrust-tracker#896: Enable colour in console output
josecelano 3c715fb
fix: [#898] docker build error: failed to load bitcode of module crit…
josecelano aa8b787
Merge torrust/torrust-tracker#899: Fixes docker build error: `failed …
josecelano ef9461a
feat!: [#878] extract logging and core section in toml config files
josecelano 77dd938
feat!: [#878] make log_level config value mandatory
josecelano 2f94f6c
feat!: [#878] extract database section in core config section
josecelano edc706c
feat!: [#878] extract net section in core config section
josecelano fc046e0
feat!: [#878] extract announce_policy section in core config section
josecelano 7b2f757
feat!: [#878] extract tracker_policy section in core config section
josecelano c5cc9fd
feat: [#878] extract tsl_config in toml config
josecelano 50bef25
feat: remove ambiguous log entry
josecelano 06ad5da
feat!: [#878] remove enabled fields in config
josecelano 729739c
Merge torrust/torrust-tracker#897: Configuration overhaul: version 2 …
josecelano 0bcca80
chore(deps): update dependencies
josecelano 27933b9
Merge torrust/torrust-tracker#906: Update dependencies
josecelano cdd544f
scratch
da2ce7 615eaf6
chore(deps): bump aquatic_udp_protocol from 0.8.0 to 0.9.0
josecelano ddfc1ee
docs: [#768] udpate profiling docs
josecelano f21bd14
chore: add new cargo dependency: crossbeam-skiplist
josecelano 1c60987
feat: new torrent repository using crossbeam_skiplist::SkipMap
josecelano 9a135db
chore: ignore crossbeam-skiplist crate in cargo-machete
josecelano d17c881
refactor: separate torrent repository trait from implementations
josecelano f06891a
test: add tests for new torrent repository using SkipMap
josecelano d8811dd
chore(deps): add cargo dependency: dashmap
josecelano 5ef0d3f
feat: [#565] new torrent repository implementation usind DashMap
josecelano 10bd7cc
chore: add dashmap cargo dep to cargp machete
josecelano 8c080f1
fix: torrent repository tests. DashMap is not ordered
josecelano 409c577
refactor: segregate command and query for announce request
josecelano e60c1eb
refactor: extract PeerList
josecelano 57506ac
refactor: rename field from peers to swarm
josecelano ca0a7bb
refactor: extract mod peer_list
josecelano e5b3070
test: add tests for PeerList type
josecelano fae47b1
chore(deps): add dependency parking_lot
josecelano 7c5083d
feat: new torrent repo implementation using parking_lot RwLock
josecelano 96df6ad
chore(deps): add parking_lot to cargo machete
josecelano 68c4fbb
feat: new torrent repo implementation using parking_lot Mutex
josecelano e32475e
remove unused dependencies
hungfnt b072e10
chore(deps): update dependencies
josecelano bf0ea2b
feat: log aborted UDP requests
josecelano 68f8e99
docs: udpate installation docs
josecelano cb96ba7
docs: fix profiling docs
josecelano 832051a
dev: fix udp ring-buffer not looping
da2ce7 68e0327
chore(deps): add dependency figment
josecelano 9542727
test: remove broken example in rustdoc
josecelano 32b4278
chore(deps): enable figment features: env, toml, test
josecelano 5e70969
refactor: create new configuration v1 mod with figment
josecelano da4615a
refactor: reexport config versioned config types
josecelano 2ef25f4
refactor: replace Config by Figment in Configuration implementation
josecelano 867b583
chore: remove unused config dependenciy
josecelano 35bf7ef
feat: enable overwrite Configuration values using env vars
josecelano 3a33261
refactor: move Configuration unit test to inner mods
josecelano 6baa7fd
refactor!: remove unused method in Configuration
josecelano a690bb2
feat: use double underscore to split config env var names
josecelano 20b00c2
refactor: implement Default for Configuration sections
josecelano 7fbb2e2
docs: update env var name in toml config template files
josecelano cbca1d5
tests: add test for configuration with deprecated env var name
josecelano 571b98b
feat: allow users not to provide config option with default values
josecelano f3e5cb5
refactor: [#852] eenrich field types in HealthCheckApi config struct
josecelano c4abae4
refactor: [#852] eenrich field types in UdpTracker config struct
josecelano e7827ea
refactor: [#852] enrich field types in HttpTracker config struct
josecelano 0327772
chore(deps): add dependency camino
josecelano 14001f0
refactor: [#852] eenrich field types in TslConfig config struct
josecelano 932c33b
refactor: [#852] enrich field types in HttpApi config struct
josecelano ca9208d
refactor: [#852] enrich field types in Configuration struct
josecelano f4304d6
refactor: [#852] extract Core configuration type
josecelano d58dc30
refactor: tracker core service only needs the core config
josecelano c6590ad
feat: define only non-defaults in toml config templates
josecelano 0fe2488
chore(deps): update dependencies
josecelano 636713e
refactor: [#855] show toml file location in Figment errors
josecelano 243346d
refactor: move config env vars to configuration package
josecelano 97312a9
refactor: [#851] rename env vars
josecelano e43b71f
feat!: remove deprecated env var
josecelano df10a19
docs: update README
josecelano 66ca904
docs: udpate roadmap in README
josecelano 7887319
chore(deps): add cargo dependencies needed for axum timeouts
josecelano 4cf32aa
fix: [#612] add timeout for time waiting for the first API requests
josecelano c52d72b
feat: [#612] tower middleware to apply timeouts to requests
josecelano 1f9012f
fix: [#613] add timeout for time waiting for the first HTTP tracker
josecelano 4d59486
Fix REAADME HTTP port
GGLinnk f0e57c8
Fix and improved bootstrap jobs module test.
GGLinnk a743f01
feat: [#870] add privacy methods to the TrackerMode
josecelano a2e60c2
feat: [#870] remove Copy trait from TrackerMode
josecelano 79bfb4a
feat: [#870] implement traits Dispaly and FromStr for TrackerMode
josecelano 54c513f
chore(deps): update dependencies
josecelano 6df2fed
fix: clippy errors
josecelano 223da71
feat: [#670] new JSON serialization for connect and error aquatic res…
mario-nt cb6742c
refactor: [#670] new trait for printing responses in JSON format and …
mario-nt 58516c5
refactor: [#670] new print_response function from trait implemented
mario-nt 3c84732
refactor: [#670] added error message for pint_response function
mario-nt 19a3c5e
refactor: [#670] new mod for responses logic and refactors to json s…
mario-nt 5299b35
refactor: [#670] changed DTOs and variable names
mario-nt 4b1bcd5
refactor:[#670] fix clippy errors
mario-nt c171a4a
docs: add benchmarking to torrent repo README
josecelano 68d8344
chore(deps): add cargo dependency tracing
josecelano 307801f
refactor: [#884] move from log to tracing crate
josecelano 4e7b773
refactor: [#884] move from log to tracing crate
josecelano 08233b0
test: [#884] add test for parsing array of services from app logs
josecelano 95e0d13
chore(deps): remove unused dependencies log and fern
josecelano 1816a38
refactor: [#659] use clap and anyhow in E2E test runner
josecelano b29efb1
docs: [#770] update benchmarking docs
josecelano 3f2c696
fix: [#893] enable color in logs
josecelano 555de77
chore(deps): add cargo dependency regex
josecelano dd10c9a
fix: [#893] enable color for logs
josecelano 4f2e23b
fix: [#898] docker build error: failed to load bitcode of module crit…
josecelano 73dec71
feat!: [#878] extract logging and core section in toml config files
josecelano 37a09aa
feat!: [#878] make log_level config value mandatory
josecelano 4a39d65
feat!: [#878] extract database section in core config section
josecelano 36c7ed1
feat!: [#878] extract net section in core config section
josecelano 063caf3
feat!: [#878] extract announce_policy section in core config section
josecelano 2708f5d
feat!: [#878] extract tracker_policy section in core config section
josecelano 6d07cf4
feat: [#878] extract tsl_config in toml config
josecelano 855bd4f
feat!: [#878] remove enabled fields in config
josecelano 27ee9aa
Merge branch 'dev_1' into develop
da2ce7 7e8f05b
dev: clients checker cleanup
da2ce7 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -233,6 +233,7 @@ use std::collections::HashMap; | |
| use std::net::IpAddr; | ||
| use std::str::FromStr; | ||
| use std::sync::Arc; | ||
| use std::time::Duration; | ||
| use std::{env, fs}; | ||
|
|
||
| use config::{Config, ConfigError, File, FileFormat}; | ||
|
|
@@ -246,6 +247,19 @@ use torrust_tracker_primitives::{DatabaseDriver, TrackerMode}; | |
| /// The maximum number of returned peers for a torrent. | ||
| pub const TORRENT_PEERS_LIMIT: usize = 74; | ||
|
|
||
| /// Client Timeout | ||
| pub const CLIENT_TIMEOUT_DEFAULT: Duration = Duration::from_secs(5); | ||
|
|
||
| /// The maximum number of bytes in a UDP packet. | ||
| pub const MAX_PACKET_SIZE: usize = 1496; | ||
|
|
||
| /// The a free port is dynamically chosen by the operating system. | ||
| pub const PORT_ASSIGNED_BY_OS: u16 = 0; | ||
|
|
||
| /// A magic 64-bit integer constant defined in the protocol that is used to | ||
| /// identify the protocol. | ||
| pub const PROTOCOL_ID: i64 = 0x0417_2710_1980; | ||
|
||
|
|
||
| #[derive(Copy, Clone, Debug, PartialEq, Constructor)] | ||
| pub struct TrackerPolicy { | ||
| pub remove_peerless_torrents: bool, | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @da2ce7 I think this mod is too big. I would create a mod for each service and only put things in the root mod that are common to all services.