feat: custom hostname

This commit is contained in:
m1m1sha
2024-05-08 14:47:22 +08:00
parent c3df9ea7fa
commit 0498b55d39
10 changed files with 91 additions and 8 deletions
+1
View File
@@ -32,6 +32,7 @@ settings: 设置
exchange_language: Switch to English
exit: 退出
chips_placeholder: 例如: {0}, 按回车添加
hostname_placeholder: 留空默认为设备名称
off_text: 点击关闭
on_text: 点击开启
show_config: 显示配置
+1
View File
@@ -33,6 +33,7 @@ exchange_language: 切换中文
exit: Exit
chips_placeholder: 'e.g: {0}, press Enter to add'
hostname_placeholder: Leave blank and default to device name
off_text: Press to disable
on_text: Press to enable
show_config: Show Config
+2
View File
@@ -42,6 +42,7 @@ struct NetworkConfig {
instance_id: String,
virtual_ipv4: String,
hostname: Option<String>,
network_name: String,
network_secret: String,
networking_method: NetworkingMethod,
@@ -70,6 +71,7 @@ impl NetworkConfig {
.parse()
.with_context(|| format!("failed to parse instance id: {}", self.instance_id))?,
);
cfg.set_hostname(self.hostname.clone());
cfg.set_inst_name(self.network_name.clone());
cfg.set_network_identity(NetworkIdentity::new(
self.network_name.clone(),
+20
View File
@@ -32,6 +32,18 @@ const curNetwork = computed(() => {
const presetPublicServers = [
'tcp://easytier.public.kkrainbow.top:11010',
]
function validateHostname() {
if (curNetwork.value.hostname) {
// eslint no-useless-escape
let name = curNetwork.value.hostname!.replaceAll(/[^\u4E00-\u9FA5a-zA-Z0-9\-]*/g, '')
if (name.length > 32)
name = name.substring(0, 32)
if (curNetwork.value.hostname !== name)
curNetwork.value.hostname = name
}
}
</script>
<template>
@@ -151,6 +163,14 @@ const presetPublicServers = [
/>
</div>
</div>
<div class="flex flex-row gap-x-9 flex-wrap">
<div class="flex flex-column gap-2 basis-5/12 grow">
<label for="hostname">{{ $t('hostname') }}</label>
<InputText
id="hostname" v-model="curNetwork.hostname" aria-describedby="hostname-help" :format="true" @blur="validateHostname"
/>
</div>
</div>
</div>
</Panel>
+1
View File
@@ -10,6 +10,7 @@ export interface NetworkConfig {
instance_id: string
virtual_ipv4: string
hostname?: string
network_name: string
network_secret: string