fix(inbounds): allow port 0 for UDS inbounds (#4783)

Unix Domain Socket inbounds (listen path starting with /) use port 0, which xray-core ignores. Validation was hard-locked to a minimum of 1 in three places: the shared Zod PortSchema, the AntD InputNumber, and the Go Inbound model tag. Adds an InboundPortSchema (min 0) for the inbound form/API schemas, makes the port InputNumber min UDS-aware, and relaxes the Inbound model validate tag to gte=0. PortSchema and the Node model stay min 1.
This commit is contained in:
MHSanaei
2026-06-01 23:26:20 +02:00
parent 3657ed55dc
commit ccd0853b6c
6 changed files with 12 additions and 7 deletions
@@ -161,6 +161,8 @@ export default function InboundFormModal({
const streamEnabled = canEnableStream({ protocol });
const wPort = Form.useWatch('port', form);
const wListen = (Form.useWatch('listen', form) ?? '') as string;
const isUdsListen = wListen.startsWith('/');
const wNodeId = Form.useWatch('nodeId', form) ?? null;
const wTag = Form.useWatch('tag', form) ?? '';
const wSsNetwork = Form.useWatch(['settings', 'network'], form);
@@ -488,7 +490,7 @@ export default function InboundFormModal({
label={t('pages.inbounds.port')}
rules={[antdRule(InboundFormBaseSchema.shape.port, t)]}
>
<InputNumber min={1} max={65535} />
<InputNumber min={isUdsListen ? 0 : 1} max={65535} />
</Form.Item>
<Form.Item