Merge pull request #3003 from evoe/feat-beacon-connect-use-env-vars

Closes #3003.
This commit is contained in:
Héctor Ramón Jiménez 2025-11-29 08:56:03 +01:00
commit 07c6234c0e
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
2 changed files with 18 additions and 5 deletions

View file

@ -15,8 +15,6 @@ use std::sync::Arc;
use std::sync::atomic::{self, AtomicBool};
use std::thread;
pub const SERVER_ADDRESS: &str = "127.0.0.1:9167";
#[derive(Debug, Clone)]
pub struct Client {
sender: mpsc::Sender<Action>,
@ -222,9 +220,22 @@ async fn run(
}
}
/// Returns the address of the beacon server in this environment.
///
/// The value of the `ICED_BEACON_SERVER_ADDRESS` env variable will
/// be returned, if defined.
///
/// Otherwise, a default local server address will be returned.
pub fn server_address_from_env() -> String {
const DEFAULT_ADDRESS: &str = "127.0.0.1:9167";
std::env::var("ICED_BEACON_SERVER_ADDRESS")
.unwrap_or_else(|_| String::from(DEFAULT_ADDRESS))
}
async fn _connect() -> Result<net::TcpStream, io::Error> {
log::debug!("Attempting to connect to server...");
let stream = net::TcpStream::connect(SERVER_ADDRESS).await?;
let stream = net::TcpStream::connect(server_address_from_env()).await?;
stream.set_nodelay(true)?;
stream.writable().await?;

View file

@ -91,7 +91,7 @@ impl Event {
}
pub fn is_running() -> bool {
std::net::TcpListener::bind(client::SERVER_ADDRESS).is_err()
std::net::TcpListener::bind(client::server_address_from_env()).is_err()
}
pub fn run() -> impl Stream<Item = Event> {
@ -99,7 +99,9 @@ pub fn run() -> impl Stream<Item = Event> {
let mut buffer = Vec::new();
let server = loop {
match net::TcpListener::bind(client::SERVER_ADDRESS).await {
match net::TcpListener::bind(client::server_address_from_env())
.await
{
Ok(server) => break server,
Err(error) => {
if error.kind() == io::ErrorKind::AddrInUse {