Add JSON schema support

This commit is contained in:
世界
2026-07-24 18:15:14 +08:00
parent 0b54f57725
commit db4bb985ce
89 changed files with 19325 additions and 305 deletions
+3 -1
View File
@@ -72,7 +72,9 @@ func NewOutbound(ctx context.Context, router adapter.Router, logger log.ContextL
domainStrategy: C.DomainStrategy(options.DomainStrategy),
fallbackDelay: time.Duration(options.FallbackDelay),
dialer: outboundDialer.(dialer.ParallelInterfaceDialer),
isEmpty: reflect.DeepEqual(options.DialerOptions, option.DialerOptions{UDPFragmentDefault: true}),
isEmpty: reflect.DeepEqual(options.DialerOptions, option.DialerOptions{
AbstractDialerOptions: option.AbstractDialerOptions{UDPFragmentDefault: true},
}),
}
//nolint:staticcheck
if options.ProxyProtocol != 0 {
+5 -3
View File
@@ -184,9 +184,11 @@ func (s *ServerEndpoint) Start(stage adapter.StartStage) error {
listenAddress := s.options.Listen.Build(netip.AddrFrom4([4]byte{127, 0, 0, 1}))
if listenAddress.IsUnspecified() && s.options.BindInterface == "" && s.options.RoutingMark == 0 && s.options.NetNs == "" {
udpDialer, dialerErr := dialer.NewDefault(s.ctx, option.DialerOptions{
ReuseAddr: s.options.ReuseAddr,
UDPFragment: s.options.UDPFragment,
UDPFragmentDefault: s.options.UDPFragmentDefault,
AbstractDialerOptions: option.AbstractDialerOptions{
ReuseAddr: s.options.ReuseAddr,
UDPFragment: s.options.UDPFragment,
UDPFragmentDefault: s.options.UDPFragmentDefault,
},
})
if dialerErr != nil {
return dialerErr
+3 -1
View File
@@ -329,7 +329,9 @@ func (t *Endpoint) start() error {
return err
}
systemDialer, err := dialer.NewDefault(t.ctx, option.DialerOptions{
BindInterface: tunName,
AbstractDialerOptions: option.AbstractDialerOptions{
BindInterface: tunName,
},
})
if err != nil {
_ = systemTun.Close()
+3 -1
View File
@@ -98,7 +98,9 @@ func NewEndpoint(ctx context.Context, router adapter.Router, logger log.ContextL
Dialer: outboundDialer,
CreateDialer: func(interfaceName string) N.Dialer {
return common.Must1(dialer.NewDefault(ctx, option.DialerOptions{
BindInterface: interfaceName,
AbstractDialerOptions: option.AbstractDialerOptions{
BindInterface: interfaceName,
},
}))
},
Name: options.Name,