Skip to content

Commit a5ab40c

Browse files
committed
directly use SocketAddr in command line arguments & methods
1 parent 8a77dfb commit a5ab40c

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

src/bin/cratesfyi.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use std::env;
22
use std::fmt::Write;
3+
use std::net::SocketAddr;
34
use std::path::PathBuf;
45
use std::str::FromStr;
56
use std::sync::Arc;
@@ -107,12 +108,12 @@ enum CommandLine {
107108
/// Starts web server
108109
StartWebServer {
109110
#[arg(name = "SOCKET_ADDR", default_value = "0.0.0.0:3000")]
110-
socket_addr: String,
111+
socket_addr: SocketAddr,
111112
},
112113

113114
StartRegistryWatcher {
114115
#[arg(name = "SOCKET_ADDR", default_value = "0.0.0.0:3000")]
115-
metric_server_socket_addr: String,
116+
metric_server_socket_addr: SocketAddr,
116117
/// Enable or disable the repository stats updater
117118
#[arg(
118119
long = "repository-stats-updater",
@@ -126,7 +127,7 @@ enum CommandLine {
126127

127128
StartBuildServer {
128129
#[arg(name = "SOCKET_ADDR", default_value = "0.0.0.0:3000")]
129-
metric_server_socket_addr: String,
130+
metric_server_socket_addr: SocketAddr,
130131
},
131132

132133
/// Starts the daemon
@@ -170,22 +171,22 @@ impl CommandLine {
170171
docs_rs::utils::daemon::start_background_cdn_invalidator(&ctx)?;
171172
}
172173

173-
start_background_metrics_webserver(Some(&metric_server_socket_addr), &ctx)?;
174+
start_background_metrics_webserver(Some(metric_server_socket_addr), &ctx)?;
174175

175176
docs_rs::utils::watch_registry(ctx.build_queue()?, ctx.config()?, ctx.index()?)?;
176177
}
177178
Self::StartBuildServer {
178179
metric_server_socket_addr,
179180
} => {
180-
start_background_metrics_webserver(Some(&metric_server_socket_addr), &ctx)?;
181+
start_background_metrics_webserver(Some(metric_server_socket_addr), &ctx)?;
181182

182183
let build_queue = ctx.build_queue()?;
183184
let rustwide_builder = RustwideBuilder::init(&ctx)?;
184185
queue_builder(rustwide_builder, build_queue)?;
185186
}
186187
Self::StartWebServer { socket_addr } => {
187188
// Blocks indefinitely
188-
start_web_server(Some(&socket_addr), &ctx)?;
189+
start_web_server(Some(socket_addr), &ctx)?;
189190
}
190191
Self::Daemon { registry_watcher } => {
191192
docs_rs::utils::start_daemon(ctx, registry_watcher == Toggle::Enabled)?;

src/web/mod.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ use percent_encoding::{utf8_percent_encode, AsciiSet, CONTROLS};
4646
use postgres::Client;
4747
use semver::{Version, VersionReq};
4848
use serde::Serialize;
49+
use std::net::{IpAddr, Ipv4Addr};
4950
use std::{
5051
borrow::{Borrow, Cow},
5152
net::SocketAddr,
@@ -65,7 +66,7 @@ pub(crate) fn encode_url_path(path: &str) -> String {
6566
utf8_percent_encode(path, PATH).to_string()
6667
}
6768

68-
const DEFAULT_BIND: &str = "0.0.0.0:3000";
69+
const DEFAULT_BIND: SocketAddr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
6970

7071
#[derive(Debug)]
7172
struct MatchVersion {
@@ -311,10 +312,10 @@ pub(crate) fn build_metrics_axum_app(context: &dyn Context) -> Result<AxumRouter
311312
}
312313

313314
pub fn start_background_metrics_webserver(
314-
addr: Option<&str>,
315+
addr: Option<SocketAddr>,
315316
context: &dyn Context,
316317
) -> Result<(), Error> {
317-
let axum_addr: SocketAddr = addr.unwrap_or(DEFAULT_BIND).parse()?;
318+
let axum_addr: SocketAddr = addr.unwrap_or(DEFAULT_BIND);
318319

319320
tracing::info!(
320321
"Starting metrics web server on `{}:{}`",
@@ -341,13 +342,13 @@ pub fn start_background_metrics_webserver(
341342
}
342343

343344
#[instrument(skip_all)]
344-
pub fn start_web_server(addr: Option<&str>, context: &dyn Context) -> Result<(), Error> {
345+
pub fn start_web_server(addr: Option<SocketAddr>, context: &dyn Context) -> Result<(), Error> {
345346
let template_data = Arc::new(TemplateData::new(
346347
&mut *context.pool()?.get()?,
347348
context.config()?.render_threads,
348349
)?);
349350

350-
let axum_addr: SocketAddr = addr.unwrap_or(DEFAULT_BIND).parse()?;
351+
let axum_addr = addr.unwrap_or(DEFAULT_BIND);
351352

352353
tracing::info!(
353354
"Starting web server on `{}:{}`",

0 commit comments

Comments
 (0)