Compare commits
1
Commits
3f0b20e757
...
d4250fce31
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d4250fce31
|
+39
-13
@@ -96,11 +96,13 @@ interface ConnectionItem {
|
|||||||
function parseConnectionsFromConfig(config: KLALBControllerConfig | null): ConnectionItem[] {
|
function parseConnectionsFromConfig(config: KLALBControllerConfig | null): ConnectionItem[] {
|
||||||
if (!config) return []
|
if (!config) return []
|
||||||
const lineTable = (
|
const lineTable = (
|
||||||
Array.isArray(config.openConnections)
|
Array.isArray(config.externalEndpoints)
|
||||||
? config.openConnections
|
? config.externalEndpoints
|
||||||
: Array.isArray(config.LineTable)
|
: Array.isArray(config.openConnections)
|
||||||
? config.LineTable
|
? config.openConnections
|
||||||
: []
|
: Array.isArray(config.LineTable)
|
||||||
|
? config.LineTable
|
||||||
|
: []
|
||||||
).map(toAddrString)
|
).map(toAddrString)
|
||||||
const connectTable = (
|
const connectTable = (
|
||||||
Array.isArray(config.autoConnections)
|
Array.isArray(config.autoConnections)
|
||||||
@@ -191,19 +193,29 @@ function SettingsForm({
|
|||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
|
||||||
const cleanConnections = connections.filter((c) => c.address.trim() !== '')
|
const cleanConnections = connections.filter((c) => c.address.trim() !== '')
|
||||||
// 互斥分离:选中自动连接的进 autoConnections,未选中的进 openConnections
|
// 互斥分离:选中自动连接的进 autoConnections,未选中的进 externalEndpoints
|
||||||
const updatedOpenConnections = cleanConnections
|
const updatedExternalEndpoints = cleanConnections
|
||||||
.filter((c) => !c.autoConnect)
|
.filter((c) => !c.autoConnect)
|
||||||
.map((c) => c.address.trim())
|
.map((c) => c.address.trim())
|
||||||
const updatedAutoConnections = cleanConnections
|
const updatedAutoConnections = cleanConnections
|
||||||
.filter((c) => c.autoConnect)
|
.filter((c) => c.autoConnect)
|
||||||
.map((c) => c.address.trim())
|
.map((c) => c.address.trim())
|
||||||
|
|
||||||
|
// 保存时同时携带新键名与历史别名,兼容新旧后端
|
||||||
|
const denyQuery =
|
||||||
|
form.denyExternalEndpointQuery ?? form.denyConnectionQuery ?? form.denyLineTableQuery ?? false
|
||||||
|
const denyBroadcast =
|
||||||
|
form.denyExternalEndpointBroadcast ??
|
||||||
|
form.denyConnectionBroadcast ??
|
||||||
|
form.denyLineTableBroadcast ??
|
||||||
|
false
|
||||||
|
|
||||||
const updatedConfig: Record<string, unknown> = {
|
const updatedConfig: Record<string, unknown> = {
|
||||||
...form,
|
...form,
|
||||||
openConnections: updatedOpenConnections,
|
externalEndpoints: updatedExternalEndpoints,
|
||||||
|
openConnections: updatedExternalEndpoints,
|
||||||
autoConnections: updatedAutoConnections,
|
autoConnections: updatedAutoConnections,
|
||||||
LineTable: updatedOpenConnections,
|
LineTable: updatedExternalEndpoints,
|
||||||
ConnectLineTable: updatedAutoConnections,
|
ConnectLineTable: updatedAutoConnections,
|
||||||
ntpServers: ntpServers.filter((s) => s.trim() !== ''),
|
ntpServers: ntpServers.filter((s) => s.trim() !== ''),
|
||||||
ntpServerTable: ntpServers.filter((s) => s.trim() !== ''),
|
ntpServerTable: ntpServers.filter((s) => s.trim() !== ''),
|
||||||
@@ -212,8 +224,10 @@ function SettingsForm({
|
|||||||
NetworkInterfaceExcepts: interfaceExcepts.filter((s) => s.trim() !== ''),
|
NetworkInterfaceExcepts: interfaceExcepts.filter((s) => s.trim() !== ''),
|
||||||
enableTUN: tunEnabled,
|
enableTUN: tunEnabled,
|
||||||
TUNName: form.TUNName?.trim() || 'KLALB_SRv6',
|
TUNName: form.TUNName?.trim() || 'KLALB_SRv6',
|
||||||
denyConnectionQuery: form.denyConnectionQuery ?? form.denyLineTableQuery ?? false,
|
denyExternalEndpointQuery: denyQuery,
|
||||||
denyConnectionBroadcast: form.denyConnectionBroadcast ?? form.denyLineTableBroadcast ?? false,
|
denyExternalEndpointBroadcast: denyBroadcast,
|
||||||
|
denyConnectionQuery: denyQuery,
|
||||||
|
denyConnectionBroadcast: denyBroadcast,
|
||||||
Type: 'KLALBController',
|
Type: 'KLALBController',
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -981,10 +995,16 @@ function SettingsForm({
|
|||||||
</FieldContent>
|
</FieldContent>
|
||||||
<Switch
|
<Switch
|
||||||
id="switch-deny-query"
|
id="switch-deny-query"
|
||||||
checked={form.denyConnectionQuery ?? form.denyLineTableQuery ?? false}
|
checked={
|
||||||
|
form.denyExternalEndpointQuery ??
|
||||||
|
form.denyConnectionQuery ??
|
||||||
|
form.denyLineTableQuery ??
|
||||||
|
false
|
||||||
|
}
|
||||||
onCheckedChange={(checked) =>
|
onCheckedChange={(checked) =>
|
||||||
setForm((prev) => ({
|
setForm((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
|
denyExternalEndpointQuery: checked,
|
||||||
denyConnectionQuery: checked,
|
denyConnectionQuery: checked,
|
||||||
denyLineTableQuery: checked,
|
denyLineTableQuery: checked,
|
||||||
}))
|
}))
|
||||||
@@ -1004,10 +1024,16 @@ function SettingsForm({
|
|||||||
</FieldContent>
|
</FieldContent>
|
||||||
<Switch
|
<Switch
|
||||||
id="switch-deny-broadcast"
|
id="switch-deny-broadcast"
|
||||||
checked={form.denyConnectionBroadcast ?? form.denyLineTableBroadcast ?? false}
|
checked={
|
||||||
|
form.denyExternalEndpointBroadcast ??
|
||||||
|
form.denyConnectionBroadcast ??
|
||||||
|
form.denyLineTableBroadcast ??
|
||||||
|
false
|
||||||
|
}
|
||||||
onCheckedChange={(checked) =>
|
onCheckedChange={(checked) =>
|
||||||
setForm((prev) => ({
|
setForm((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
|
denyExternalEndpointBroadcast: checked,
|
||||||
denyConnectionBroadcast: checked,
|
denyConnectionBroadcast: checked,
|
||||||
denyLineTableBroadcast: checked,
|
denyLineTableBroadcast: checked,
|
||||||
}))
|
}))
|
||||||
|
|||||||
@@ -114,6 +114,7 @@ export interface KLALBControllerConfig {
|
|||||||
TCPListen?: string
|
TCPListen?: string
|
||||||
UDPListen?: string
|
UDPListen?: string
|
||||||
VirtualSocketName?: string
|
VirtualSocketName?: string
|
||||||
|
externalEndpoints?: string[]
|
||||||
openConnections?: string[]
|
openConnections?: string[]
|
||||||
autoConnections?: string[]
|
autoConnections?: string[]
|
||||||
ntpServers?: string[]
|
ntpServers?: string[]
|
||||||
@@ -123,6 +124,8 @@ export interface KLALBControllerConfig {
|
|||||||
DNS?: string[]
|
DNS?: string[]
|
||||||
ExtraRoutes?: string[]
|
ExtraRoutes?: string[]
|
||||||
NetworkInterfaceExcepts?: string[]
|
NetworkInterfaceExcepts?: string[]
|
||||||
|
denyExternalEndpointQuery?: boolean
|
||||||
|
denyExternalEndpointBroadcast?: boolean
|
||||||
denyConnectionQuery?: boolean
|
denyConnectionQuery?: boolean
|
||||||
denyConnectionBroadcast?: boolean
|
denyConnectionBroadcast?: boolean
|
||||||
denyLineTableQuery?: boolean
|
denyLineTableQuery?: boolean
|
||||||
|
|||||||
Reference in New Issue
Block a user