Documentation
¶
Overview ¶
Verbatim copy of sing-box protocol/tuic/inbound.go, moved into this module so the panel can reach the unexported `service`/`users` fields that the sing-box Inbound type does not expose. That access is what lets core.UpdateInboundUsers swap an inbound's user table in place instead of tearing the listener down (see core/inbound_users.go).
UPGRADING sing-box: re-copy this file from the new tag and re-apply the change below. Nothing here will fail to compile if you forget, it will just silently keep running the old implementation.
Local change vs sing-box: the service is keyed by user name (Service[string]) instead of by list position (Service[int]). sing-box never rewrites a user list in place, so a position is a stable identity there; UpdateUsers does rewrite it, under live sessions, and a position is not. Deleting a user shifted every later one, which mis-attributed traffic and could index past the end of the name slice outright (upstream #1231).
Index ¶
- func NewInbound(ctx context.Context, router adapter.Router, logger log.ContextLogger, ...) (adapter.Inbound, error)
- func RegisterInbound(registry *inbound.Registry)
- type Inbound
- func (h *Inbound) Close() error
- func (h *Inbound) NewConnectionEx(ctx context.Context, conn net.Conn, source M.Socksaddr, ...)
- func (h *Inbound) NewPacketConnectionEx(ctx context.Context, conn N.PacketConn, source M.Socksaddr, ...)
- func (h *Inbound) Start(stage adapter.StartStage) error
- func (h *Inbound) UpdateUsers(users []option.TUICUser) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.