Merge pull request #3003 from evoe/feat-beacon-connect-use-env-vars
Closes #3003.
This commit is contained in:
commit
07c6234c0e
2 changed files with 18 additions and 5 deletions
|
|
@ -15,8 +15,6 @@ use std::sync::Arc;
|
||||||
use std::sync::atomic::{self, AtomicBool};
|
use std::sync::atomic::{self, AtomicBool};
|
||||||
use std::thread;
|
use std::thread;
|
||||||
|
|
||||||
pub const SERVER_ADDRESS: &str = "127.0.0.1:9167";
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Client {
|
pub struct Client {
|
||||||
sender: mpsc::Sender<Action>,
|
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> {
|
async fn _connect() -> Result<net::TcpStream, io::Error> {
|
||||||
log::debug!("Attempting to connect to server...");
|
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.set_nodelay(true)?;
|
||||||
stream.writable().await?;
|
stream.writable().await?;
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@ impl Event {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_running() -> bool {
|
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> {
|
pub fn run() -> impl Stream<Item = Event> {
|
||||||
|
|
@ -99,7 +99,9 @@ pub fn run() -> impl Stream<Item = Event> {
|
||||||
let mut buffer = Vec::new();
|
let mut buffer = Vec::new();
|
||||||
|
|
||||||
let server = loop {
|
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,
|
Ok(server) => break server,
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
if error.kind() == io::ErrorKind::AddrInUse {
|
if error.kind() == io::ErrorKind::AddrInUse {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue