Skip to content

Commit

Permalink
dev: switch to new settings implementation.
Browse files Browse the repository at this point in the history
  • Loading branch information
da2ce7 committed Oct 24, 2022
1 parent 77888cd commit 7dc2402
Show file tree
Hide file tree
Showing 16 changed files with 137 additions and 416 deletions.
2 changes: 1 addition & 1 deletion src/api/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ pub fn start(socket_addr: SocketAddr, tracker: Arc<TorrentTracker>) -> impl warp
.or(reload_keys),
);

let server = api_routes.and(authenticate(tracker.config.http_api.access_tokens.clone()));
let server = api_routes.and(authenticate(tracker.settings.http_api.access_tokens.clone()));

let (_addr, api_server) = serve(server).bind_with_graceful_shutdown(socket_addr, async move {
tokio::signal::ctrl_c().await.expect("Failed to listen to shutdown signal.");
Expand Down
286 changes: 0 additions & 286 deletions src/config.rs

This file was deleted.

15 changes: 11 additions & 4 deletions src/http/handlers.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use std::collections::HashMap;
use std::convert::Infallible;
use std::net::IpAddr;
use std::str::FromStr;
use std::sync::Arc;

use log::debug;
Expand Down Expand Up @@ -53,16 +54,22 @@ pub async fn handle_announce(

debug!("{:?}", announce_request);

let peer =
TorrentPeer::from_http_announce_request(&announce_request, announce_request.peer_addr, tracker.config.get_ext_ip());
let peer = TorrentPeer::from_http_announce_request(
&announce_request,
announce_request.peer_addr,
match &tracker.settings.external_ip {
Some(ip) => IpAddr::from_str(&ip).map_or(None, |ip| Some(ip)),
None => None,
},
);
let torrent_stats = tracker
.update_torrent_with_peer_and_get_stats(&announce_request.info_hash, &peer)
.await;

// get all torrent peers excluding the peer_addr
let peers = tracker.get_torrent_peers(&announce_request.info_hash, &peer.peer_addr).await;

let announce_interval = tracker.config.announce_interval;
let announce_interval = tracker.settings.announce_interval;

// send stats event
match announce_request.peer_addr {
Expand All @@ -79,7 +86,7 @@ pub async fn handle_announce(
torrent_stats,
peers,
announce_interval,
tracker.config.min_announce_interval,
tracker.settings.min_announce_interval,
)
}

Expand Down
4 changes: 2 additions & 2 deletions src/http/routes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ pub fn routes(tracker: Arc<TorrentTracker>) -> impl Filter<Extract = impl warp::
fn announce(tracker: Arc<TorrentTracker>) -> impl Filter<Extract = impl warp::Reply, Error = Rejection> + Clone {
warp::path::path("announce")
.and(warp::filters::method::get())
.and(with_announce_request(tracker.config.on_reverse_proxy))
.and(with_announce_request(tracker.settings.on_reverse_proxy))
.and(with_auth_key())
.and(with_tracker(tracker))
.and_then(handle_announce)
Expand All @@ -27,7 +27,7 @@ fn announce(tracker: Arc<TorrentTracker>) -> impl Filter<Extract = impl warp::Re
fn scrape(tracker: Arc<TorrentTracker>) -> impl Filter<Extract = impl warp::Reply, Error = Rejection> + Clone {
warp::path::path("scrape")
.and(warp::filters::method::get())
.and(with_scrape_request(tracker.config.on_reverse_proxy))
.and(with_scrape_request(tracker.settings.on_reverse_proxy))
.and(with_auth_key())
.and(with_tracker(tracker))
.and_then(handle_scrape)
Expand Down
12 changes: 6 additions & 6 deletions src/jobs/http_tracker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ use std::sync::Arc;
use log::{info, warn};
use tokio::task::JoinHandle;

use crate::config::HttpTrackerConfig;
use crate::settings::HttpTrackerConfig;
use crate::tracker::tracker::TorrentTracker;
use crate::HttpServer;

pub fn start_job(config: &HttpTrackerConfig, tracker: Arc<TorrentTracker>) -> JoinHandle<()> {
let bind_addr = config.bind_address.parse::<SocketAddr>().unwrap();
let ssl_enabled = config.ssl_enabled;
let ssl_cert_path = config.ssl_cert_path.clone();
let ssl_key_path = config.ssl_key_path.clone();
pub fn start_job(settings: &HttpTrackerConfig, tracker: Arc<TorrentTracker>) -> JoinHandle<()> {
let bind_addr = settings.bind_address.parse::<SocketAddr>().unwrap();
let ssl_enabled = settings.ssl_enabled;
let ssl_cert_path = settings.ssl_cert_path.clone();
let ssl_key_path = settings.ssl_key_path.clone();

tokio::spawn(async move {
let http_tracker = HttpServer::new(tracker);
Expand Down
6 changes: 3 additions & 3 deletions src/jobs/torrent_cleanup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ use chrono::Utc;
use log::info;
use tokio::task::JoinHandle;

use crate::config::Configuration;
use crate::settings::Settings;
use crate::tracker::tracker::TorrentTracker;

pub fn start_job(config: &Configuration, tracker: Arc<TorrentTracker>) -> JoinHandle<()> {
pub fn start_job(settings: &Settings, tracker: Arc<TorrentTracker>) -> JoinHandle<()> {
let weak_tracker = std::sync::Arc::downgrade(&tracker);
let interval = config.inactive_peer_cleanup_interval;
let interval = settings.inactive_peer_cleanup_interval;

tokio::spawn(async move {
let interval = std::time::Duration::from_secs(interval);
Expand Down
Loading

0 comments on commit 7dc2402

Please sign in to comment.