@@ -3,32 +3,20 @@ use std::sync::Arc;
33use bittorrent_http_tracker_core:: container:: HttpTrackerCoreContainer ;
44use bittorrent_http_tracker_core:: services:: announce:: AnnounceService ;
55use bittorrent_http_tracker_core:: services:: scrape:: ScrapeService ;
6- use bittorrent_tracker_core:: announce_handler:: AnnounceHandler ;
7- use bittorrent_tracker_core:: authentication:: handler:: KeysHandler ;
8- use bittorrent_tracker_core:: authentication:: service:: AuthenticationService ;
96use bittorrent_tracker_core:: container:: TrackerCoreContainer ;
10- use bittorrent_tracker_core:: databases:: Database ;
11- use bittorrent_tracker_core:: scrape_handler:: ScrapeHandler ;
12- use bittorrent_tracker_core:: torrent:: manager:: TorrentsManager ;
13- use bittorrent_tracker_core:: torrent:: repository:: in_memory:: InMemoryTorrentRepository ;
14- use bittorrent_tracker_core:: torrent:: repository:: persisted:: DatabasePersistentTorrentRepository ;
15- use bittorrent_tracker_core:: whitelist;
16- use bittorrent_tracker_core:: whitelist:: manager:: WhitelistManager ;
17- use bittorrent_tracker_core:: whitelist:: repository:: in_memory:: InMemoryWhitelist ;
187use bittorrent_udp_tracker_core:: container:: UdpTrackerCoreContainer ;
198use bittorrent_udp_tracker_core:: services:: banning:: BanService ;
209use bittorrent_udp_tracker_core:: { self , MAX_CONNECTION_ID_ERRORS_PER_IP } ;
2110use tokio:: sync:: RwLock ;
2211use torrust_rest_tracker_api_core:: container:: TrackerHttpApiCoreContainer ;
23- use torrust_tracker_configuration:: { Configuration , Core , HttpApi , HttpTracker , UdpTracker } ;
12+ use torrust_tracker_configuration:: { Configuration , HttpApi , HttpTracker , UdpTracker } ;
2413use torrust_udp_tracker_server:: container:: UdpTrackerServerContainer ;
2514use tracing:: instrument;
2615
2716/* todo: remove duplicate code.
2817
2918 Use containers from packages as AppContainer fields:
3019
31- - bittorrent_tracker_core::container::TrackerCoreContainer
3220 - bittorrent_udp_tracker_core::container::UdpTrackerCoreContainer
3321 - bittorrent_http_tracker_core::container::HttpTrackerCoreContainer
3422 - torrust_udp_tracker_server::container::UdpTrackerServerContainer
@@ -37,19 +25,7 @@ use tracing::instrument;
3725*/
3826
3927pub struct AppContainer {
40- // Tracker Core Services
41- pub core_config : Arc < Core > ,
42- pub database : Arc < Box < dyn Database > > ,
43- pub announce_handler : Arc < AnnounceHandler > ,
44- pub scrape_handler : Arc < ScrapeHandler > ,
45- pub keys_handler : Arc < KeysHandler > ,
46- pub authentication_service : Arc < AuthenticationService > ,
47- pub in_memory_whitelist : Arc < InMemoryWhitelist > ,
48- pub whitelist_authorization : Arc < whitelist:: authorization:: WhitelistAuthorization > ,
49- pub whitelist_manager : Arc < WhitelistManager > ,
50- pub in_memory_torrent_repository : Arc < InMemoryTorrentRepository > ,
51- pub db_torrent_repository : Arc < DatabasePersistentTorrentRepository > ,
52- pub torrents_manager : Arc < TorrentsManager > ,
28+ pub tracker_core_container : TrackerCoreContainer ,
5329
5430 // UDP Tracker Core Services
5531 pub udp_core_stats_event_sender : Arc < Option < Box < dyn bittorrent_udp_tracker_core:: event:: sender:: Sender > > > ,
@@ -122,19 +98,7 @@ impl AppContainer {
12298 let udp_server_stats_repository = Arc :: new ( udp_server_stats_repository) ;
12399
124100 AppContainer {
125- // Tracker Core Services
126- core_config,
127- database : tracker_core_container. database ,
128- announce_handler : tracker_core_container. announce_handler ,
129- scrape_handler : tracker_core_container. scrape_handler ,
130- keys_handler : tracker_core_container. keys_handler ,
131- authentication_service : tracker_core_container. authentication_service ,
132- in_memory_whitelist : tracker_core_container. in_memory_whitelist ,
133- whitelist_authorization : tracker_core_container. whitelist_authorization ,
134- whitelist_manager : tracker_core_container. whitelist_manager ,
135- in_memory_torrent_repository : tracker_core_container. in_memory_torrent_repository ,
136- db_torrent_repository : tracker_core_container. db_torrent_repository ,
137- torrents_manager : tracker_core_container. torrents_manager ,
101+ tracker_core_container,
138102
139103 // UDP Tracker Core Services
140104 udp_core_stats_event_sender,
@@ -159,11 +123,11 @@ impl AppContainer {
159123 #[ must_use]
160124 pub fn http_tracker_container ( & self , http_tracker_config : & Arc < HttpTracker > ) -> HttpTrackerCoreContainer {
161125 HttpTrackerCoreContainer {
162- core_config : self . core_config . clone ( ) ,
163- announce_handler : self . announce_handler . clone ( ) ,
164- scrape_handler : self . scrape_handler . clone ( ) ,
165- whitelist_authorization : self . whitelist_authorization . clone ( ) ,
166- authentication_service : self . authentication_service . clone ( ) ,
126+ core_config : self . tracker_core_container . core_config . clone ( ) ,
127+ announce_handler : self . tracker_core_container . announce_handler . clone ( ) ,
128+ scrape_handler : self . tracker_core_container . scrape_handler . clone ( ) ,
129+ whitelist_authorization : self . tracker_core_container . whitelist_authorization . clone ( ) ,
130+ authentication_service : self . tracker_core_container . authentication_service . clone ( ) ,
167131
168132 http_tracker_config : http_tracker_config. clone ( ) ,
169133 http_stats_event_sender : self . http_stats_event_sender . clone ( ) ,
@@ -176,10 +140,10 @@ impl AppContainer {
176140 #[ must_use]
177141 pub fn udp_tracker_container ( & self , udp_tracker_config : & Arc < UdpTracker > ) -> UdpTrackerCoreContainer {
178142 UdpTrackerCoreContainer {
179- core_config : self . core_config . clone ( ) ,
180- announce_handler : self . announce_handler . clone ( ) ,
181- scrape_handler : self . scrape_handler . clone ( ) ,
182- whitelist_authorization : self . whitelist_authorization . clone ( ) ,
143+ core_config : self . tracker_core_container . core_config . clone ( ) ,
144+ announce_handler : self . tracker_core_container . announce_handler . clone ( ) ,
145+ scrape_handler : self . tracker_core_container . scrape_handler . clone ( ) ,
146+ whitelist_authorization : self . tracker_core_container . whitelist_authorization . clone ( ) ,
183147
184148 udp_tracker_config : udp_tracker_config. clone ( ) ,
185149 udp_core_stats_event_sender : self . udp_core_stats_event_sender . clone ( ) ,
@@ -194,11 +158,12 @@ impl AppContainer {
194158 #[ must_use]
195159 pub fn tracker_http_api_container ( & self , http_api_config : & Arc < HttpApi > ) -> TrackerHttpApiCoreContainer {
196160 TrackerHttpApiCoreContainer {
161+ core_config : self . tracker_core_container . core_config . clone ( ) ,
162+ in_memory_torrent_repository : self . tracker_core_container . in_memory_torrent_repository . clone ( ) ,
163+ keys_handler : self . tracker_core_container . keys_handler . clone ( ) ,
164+ whitelist_manager : self . tracker_core_container . whitelist_manager . clone ( ) ,
165+
197166 http_api_config : http_api_config. clone ( ) ,
198- core_config : self . core_config . clone ( ) ,
199- in_memory_torrent_repository : self . in_memory_torrent_repository . clone ( ) ,
200- keys_handler : self . keys_handler . clone ( ) ,
201- whitelist_manager : self . whitelist_manager . clone ( ) ,
202167 ban_service : self . udp_ban_service . clone ( ) ,
203168 http_stats_repository : self . http_stats_repository . clone ( ) ,
204169 udp_core_stats_repository : self . udp_core_stats_repository . clone ( ) ,
0 commit comments