diff --git a/frontend/src/pages/inbounds/InboundFormModal.tsx b/frontend/src/pages/inbounds/InboundFormModal.tsx index 91f093fb..c871c49d 100644 --- a/frontend/src/pages/inbounds/InboundFormModal.tsx +++ b/frontend/src/pages/inbounds/InboundFormModal.tsx @@ -1311,9 +1311,9 @@ export default function InboundFormModal({ return { header: { type: 'none' } }; case 'kcp': return { - mtu: 1350, tti: 20, uplinkCapacity: 5, downlinkCapacity: 20, - congestion: false, readBufferSize: 2, writeBufferSize: 2, - header: { type: 'none' }, seed: '', + mtu: 1350, tti: 20, + uplinkCapacity: 5, downlinkCapacity: 20, + cwndMultiplier: 1, maxSendingWindow: 2097152, }; case 'ws': return { path: '/', host: '', headers: {}, heartbeatPeriod: 0 }; @@ -1545,10 +1545,13 @@ export default function InboundFormModal({ }} - {/* Host + path camouflage inputs only render when the Switch - above is on. Both are string[] on the wire; normalize + - getValueProps translate to/from comma-joined input. Mirrors - the symmetric outbound side. */} + {/* Per Xray docs (transports/raw.html#httpheaderobject), the + `request` object is honored only by outbound proxies; the + inbound listener reads `response`. Showing Host / Path / + Method / Version / request-headers on the inbound side was + a regression from this modal's earlier iteration — those + inputs wrote to the wire but xray-core ignored them. The + inbound modal now only exposes the response side. */} @@ -1563,54 +1566,6 @@ export default function InboundFormModal({ if (headerType !== 'http') return null; return ( <> - - typeof v === 'string' - ? v.split(',').map((s) => s.trim()).filter(Boolean) - : Array.isArray(v) ? v : [] - } - getValueProps={(v: unknown) => ({ - value: Array.isArray(v) ? v.join(',') : '', - })} - > - - - - typeof v === 'string' - ? v.split(',').map((s) => s.trim()).filter(Boolean) - : Array.isArray(v) ? v : ['/'] - } - getValueProps={(v: unknown) => ({ - value: Array.isArray(v) ? v.join(',') : '/', - })} - > - - - - - - - {/* Response side: shaped as a separate sub-object on the - wire ({version, status, reason, headers}). Inbound is - the server, so the response side is the one the panel - sends back to clients during HTTP camouflage. */} - + - +