mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-10-07 22:51:21 +07:00
fix(inbounds): drop listen address from auto-generated inbound tag
A non-empty, non-any Address (listen) leaked into the tag as in-<listen>:<port>-<transport> (e.g. in-127.0.0.1:443-tcp). The tag is now always in-<port>-<transport>, with the node prefix and numeric dedup suffix still handling uniqueness across nodes and same-port/different-listen inbounds. Mirrored in the Go authority and the TS form preview, kept in parity by tests. Existing colon-form tags are now treated as custom, so editing such an inbound preserves its tag rather than rewriting it; new inbounds (or a cleared tag field) get the clean form.
This commit is contained in:
@@ -171,11 +171,8 @@ func sameNode(a, b *int) bool {
|
||||
return *a == *b
|
||||
}
|
||||
|
||||
func baseInboundTag(listen string, port int) string {
|
||||
if isAnyListen(listen) {
|
||||
return fmt.Sprintf("in-%v", port)
|
||||
}
|
||||
return fmt.Sprintf("in-%v:%v", listen, port)
|
||||
func baseInboundTag(port int) string {
|
||||
return fmt.Sprintf("in-%v", port)
|
||||
}
|
||||
|
||||
func transportTagSuffix(b transportBits) string {
|
||||
@@ -200,12 +197,12 @@ func nodeTagPrefix(nodeID *int) string {
|
||||
return fmt.Sprintf("n%d-", *nodeID)
|
||||
}
|
||||
|
||||
func composeInboundTag(listen string, port int, nodeID *int, bits transportBits) string {
|
||||
return nodeTagPrefix(nodeID) + baseInboundTag(listen, port) + "-" + transportTagSuffix(bits)
|
||||
func composeInboundTag(port int, nodeID *int, bits transportBits) string {
|
||||
return nodeTagPrefix(nodeID) + baseInboundTag(port) + "-" + transportTagSuffix(bits)
|
||||
}
|
||||
|
||||
func isAutoGeneratedTag(tag, listen string, port int, nodeID *int, bits transportBits) bool {
|
||||
base := composeInboundTag(listen, port, nodeID, bits)
|
||||
func isAutoGeneratedTag(tag string, port int, nodeID *int, bits transportBits) bool {
|
||||
base := composeInboundTag(port, nodeID, bits)
|
||||
if tag == base {
|
||||
return true
|
||||
}
|
||||
@@ -223,7 +220,7 @@ func isAutoGeneratedTag(tag, listen string, port int, nodeID *int, bits transpor
|
||||
|
||||
func (s *InboundService) generateInboundTag(inbound *model.Inbound, ignoreId int) (string, error) {
|
||||
bits := inboundTransports(inbound.Protocol, inbound.StreamSettings, inbound.Settings)
|
||||
candidate := composeInboundTag(inbound.Listen, inbound.Port, inbound.NodeID, bits)
|
||||
candidate := composeInboundTag(inbound.Port, inbound.NodeID, bits)
|
||||
exists, err := s.tagExists(candidate, ignoreId)
|
||||
if err != nil {
|
||||
return "", err
|
||||
|
||||
Reference in New Issue
Block a user