set hostname when connecting to config-server (#712)

This commit is contained in:
kevin
2025-03-23 19:53:49 +08:00
committed by GitHub
parent 2b909e04ea
commit 8dc8c7d9e2
6 changed files with 22 additions and 5 deletions

View File

@@ -160,6 +160,7 @@ const createNewNetwork = async () => {
const newNetwork = () => {
newNetworkConfig.value = NetworkTypes.DEFAULT_NETWORK_CONFIG();
newNetworkConfig.value.hostname = deviceInfo.value?.hostname;
isEditing.value = false;
showCreateNetworkDialog.value = true;
}

View File

@@ -128,7 +128,7 @@ mod tests {
mgr.serve(Box::new(listener)).await.unwrap();
let connector = UdpTunnelConnector::new("udp://127.0.0.1:54333".parse().unwrap());
let _c = WebClient::new(connector, "test");
let _c = WebClient::new(connector, "test", "test");
wait_for_condition(
|| async { mgr.client_sessions.len() == 1 },

View File

@@ -869,9 +869,18 @@ async fn run_main(cli: Cli) -> anyhow::Result<()> {
let mut flags = global_ctx.get_flags();
flags.bind_device = false;
global_ctx.set_flags(flags);
let hostname = match cli.hostname {
None => {
gethostname::gethostname().to_string_lossy().to_string()
}
Some(hostname) => {
hostname.to_string()
}
};
let _wc = web_client::WebClient::new(
create_connector_by_url(c_url.as_str(), &global_ctx, IpVersion::Both).await?,
token.to_string(),
hostname
);
tokio::signal::ctrl_c().await.unwrap();
DNSTunnelConnector::new("".parse().unwrap(), global_ctx);

View File

@@ -19,13 +19,15 @@ use crate::{
pub struct Controller {
token: String,
hostname: String,
instance_map: DashMap<uuid::Uuid, NetworkInstance>,
}
impl Controller {
pub fn new(token: String) -> Self {
pub fn new(token: String, hostname: String) -> Self {
Controller {
token,
hostname,
instance_map: DashMap::new(),
}
}
@@ -80,6 +82,10 @@ impl Controller {
pub fn token(&self) -> String {
self.token.clone()
}
pub fn hostname(&self) -> String {
self.hostname.clone()
}
}
#[async_trait::async_trait]

View File

@@ -11,8 +11,9 @@ pub struct WebClient {
}
impl WebClient {
pub fn new<T: TunnelConnector + 'static, S: ToString>(connector: T, token: S) -> Self {
let controller = Arc::new(controller::Controller::new(token.to_string()));
pub fn new<T: TunnelConnector + 'static, S: ToString, H: ToString>(connector: T, token: S, hostname: H) -> Self {
let controller = Arc::new(controller::Controller::new(token.to_string(),
hostname.to_string()));
let controller_clone = controller.clone();
let tasks = ScopedTask::from(tokio::spawn(async move {

View File

@@ -73,7 +73,7 @@ impl Session {
let mid = get_machine_id();
let inst_id = uuid::Uuid::new_v4();
let token = controller.upgrade().unwrap().token();
let hostname = gethostname::gethostname().to_string_lossy().to_string();
let hostname = controller.upgrade().unwrap().hostname();
let ctx_clone = ctx.clone();
let mut tick = interval(std::time::Duration::from_secs(1));