dialer.go 533 B

12345678910111213141516171819202122
  1. package dialer
  2. import (
  3. "github.com/sagernet/sing/common"
  4. N "github.com/sagernet/sing/common/network"
  5. "github.com/sagernet/sing-box/adapter"
  6. "github.com/sagernet/sing-box/option"
  7. )
  8. func New(router adapter.Router, options option.DialerOptions) N.Dialer {
  9. var dialer N.Dialer
  10. if options.Detour == "" {
  11. dialer = newDefault(options)
  12. } else {
  13. dialer = newDetour(router, options)
  14. }
  15. if options.OverrideOptions.IsValid() {
  16. dialer = newOverride(dialer, common.PtrValueOrDefault(options.OverrideOptions))
  17. }
  18. return dialer
  19. }