@@ -24,6 +24,18 @@ use torrust_tracker_configuration::{Configuration, Core, HttpApi, HttpTracker, U
24
24
use torrust_udp_tracker_server:: container:: UdpTrackerServerContainer ;
25
25
use tracing:: instrument;
26
26
27
+ /* todo: remove duplicate code.
28
+
29
+ Use containers from packages as AppContainer fields:
30
+
31
+ - bittorrent_tracker_core::container::TrackerCoreContainer
32
+ - bittorrent_udp_tracker_core::container::UdpTrackerCoreContainer
33
+ - bittorrent_http_tracker_core::container::HttpTrackerCoreContainer
34
+ - torrust_udp_tracker_server::container::UdpTrackerServerContainer
35
+
36
+ Container initialization is duplicated.
37
+ */
38
+
27
39
pub struct AppContainer {
28
40
// Tracker Core Services
29
41
pub core_config : Arc < Core > ,
@@ -42,10 +54,10 @@ pub struct AppContainer {
42
54
// UDP Tracker Core Services
43
55
pub udp_core_stats_event_sender : Arc < Option < Box < dyn bittorrent_udp_tracker_core:: statistics:: event:: sender:: Sender > > > ,
44
56
pub udp_core_stats_repository : Arc < bittorrent_udp_tracker_core:: statistics:: repository:: Repository > ,
45
- pub ban_service : Arc < RwLock < BanService > > ,
46
- pub connect_service : Arc < bittorrent_udp_tracker_core:: services:: connect:: ConnectService > ,
47
- pub announce_service : Arc < bittorrent_udp_tracker_core:: services:: announce:: AnnounceService > ,
48
- pub scrape_service : Arc < bittorrent_udp_tracker_core:: services:: scrape:: ScrapeService > ,
57
+ pub udp_ban_service : Arc < RwLock < BanService > > ,
58
+ pub udp_connect_service : Arc < bittorrent_udp_tracker_core:: services:: connect:: ConnectService > ,
59
+ pub udp_announce_service : Arc < bittorrent_udp_tracker_core:: services:: announce:: AnnounceService > ,
60
+ pub udp_scrape_service : Arc < bittorrent_udp_tracker_core:: services:: scrape:: ScrapeService > ,
49
61
50
62
// HTTP Tracker Core Services
51
63
pub http_stats_event_sender : Arc < Option < Box < dyn bittorrent_http_tracker_core:: statistics:: event:: sender:: Sender > > > ,
@@ -89,16 +101,16 @@ impl AppContainer {
89
101
bittorrent_udp_tracker_core:: statistics:: setup:: factory ( configuration. core . tracker_usage_statistics ) ;
90
102
let udp_core_stats_event_sender = Arc :: new ( udp_core_stats_event_sender) ;
91
103
let udp_core_stats_repository = Arc :: new ( udp_core_stats_repository) ;
92
- let ban_service = Arc :: new ( RwLock :: new ( BanService :: new ( MAX_CONNECTION_ID_ERRORS_PER_IP ) ) ) ;
93
- let connect_service = Arc :: new ( bittorrent_udp_tracker_core:: services:: connect:: ConnectService :: new (
104
+ let udp_ban_service = Arc :: new ( RwLock :: new ( BanService :: new ( MAX_CONNECTION_ID_ERRORS_PER_IP ) ) ) ;
105
+ let udp_connect_service = Arc :: new ( bittorrent_udp_tracker_core:: services:: connect:: ConnectService :: new (
94
106
udp_core_stats_event_sender. clone ( ) ,
95
107
) ) ;
96
- let announce_service = Arc :: new ( bittorrent_udp_tracker_core:: services:: announce:: AnnounceService :: new (
108
+ let udp_announce_service = Arc :: new ( bittorrent_udp_tracker_core:: services:: announce:: AnnounceService :: new (
97
109
tracker_core_container. announce_handler . clone ( ) ,
98
110
tracker_core_container. whitelist_authorization . clone ( ) ,
99
111
udp_core_stats_event_sender. clone ( ) ,
100
112
) ) ;
101
- let scrape_service = Arc :: new ( bittorrent_udp_tracker_core:: services:: scrape:: ScrapeService :: new (
113
+ let udp_scrape_service = Arc :: new ( bittorrent_udp_tracker_core:: services:: scrape:: ScrapeService :: new (
102
114
tracker_core_container. scrape_handler . clone ( ) ,
103
115
udp_core_stats_event_sender. clone ( ) ,
104
116
) ) ;
@@ -127,10 +139,10 @@ impl AppContainer {
127
139
// UDP Tracker Core Services
128
140
udp_core_stats_event_sender,
129
141
udp_core_stats_repository,
130
- ban_service ,
131
- connect_service ,
132
- announce_service ,
133
- scrape_service ,
142
+ udp_ban_service ,
143
+ udp_connect_service ,
144
+ udp_announce_service ,
145
+ udp_scrape_service ,
134
146
135
147
// HTTP Tracker Core Services
136
148
http_stats_event_sender,
@@ -172,10 +184,10 @@ impl AppContainer {
172
184
udp_tracker_config : udp_tracker_config. clone ( ) ,
173
185
udp_core_stats_event_sender : self . udp_core_stats_event_sender . clone ( ) ,
174
186
udp_core_stats_repository : self . udp_core_stats_repository . clone ( ) ,
175
- ban_service : self . ban_service . clone ( ) ,
176
- connect_service : self . connect_service . clone ( ) ,
177
- announce_service : self . announce_service . clone ( ) ,
178
- scrape_service : self . scrape_service . clone ( ) ,
187
+ ban_service : self . udp_ban_service . clone ( ) ,
188
+ connect_service : self . udp_connect_service . clone ( ) ,
189
+ announce_service : self . udp_announce_service . clone ( ) ,
190
+ scrape_service : self . udp_scrape_service . clone ( ) ,
179
191
}
180
192
}
181
193
@@ -187,7 +199,7 @@ impl AppContainer {
187
199
in_memory_torrent_repository : self . in_memory_torrent_repository . clone ( ) ,
188
200
keys_handler : self . keys_handler . clone ( ) ,
189
201
whitelist_manager : self . whitelist_manager . clone ( ) ,
190
- ban_service : self . ban_service . clone ( ) ,
202
+ ban_service : self . udp_ban_service . clone ( ) ,
191
203
http_stats_repository : self . http_stats_repository . clone ( ) ,
192
204
udp_core_stats_repository : self . udp_core_stats_repository . clone ( ) ,
193
205
udp_server_stats_repository : self . udp_server_stats_repository . clone ( ) ,
0 commit comments