mirror of
https://github.com/SagerNet/sing-box.git
synced 2026-04-11 17:47:20 +10:00
56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
package dns
|
|
|
|
import (
|
|
"github.com/sagernet/sing-box/option"
|
|
)
|
|
|
|
type TransportAdapter struct {
|
|
transportType string
|
|
transportTag string
|
|
dependencies []string
|
|
}
|
|
|
|
func NewTransportAdapter(transportType string, transportTag string, dependencies []string) TransportAdapter {
|
|
return TransportAdapter{
|
|
transportType: transportType,
|
|
transportTag: transportTag,
|
|
dependencies: dependencies,
|
|
}
|
|
}
|
|
|
|
func NewTransportAdapterWithLocalOptions(transportType string, transportTag string, localOptions option.LocalDNSServerOptions) TransportAdapter {
|
|
var dependencies []string
|
|
if localOptions.DomainResolver != nil && localOptions.DomainResolver.Server != "" {
|
|
dependencies = append(dependencies, localOptions.DomainResolver.Server)
|
|
}
|
|
return TransportAdapter{
|
|
transportType: transportType,
|
|
transportTag: transportTag,
|
|
dependencies: dependencies,
|
|
}
|
|
}
|
|
|
|
func NewTransportAdapterWithRemoteOptions(transportType string, transportTag string, remoteOptions option.RemoteDNSServerOptions) TransportAdapter {
|
|
var dependencies []string
|
|
if remoteOptions.DomainResolver != nil && remoteOptions.DomainResolver.Server != "" {
|
|
dependencies = append(dependencies, remoteOptions.DomainResolver.Server)
|
|
}
|
|
return TransportAdapter{
|
|
transportType: transportType,
|
|
transportTag: transportTag,
|
|
dependencies: dependencies,
|
|
}
|
|
}
|
|
|
|
func (a *TransportAdapter) Type() string {
|
|
return a.transportType
|
|
}
|
|
|
|
func (a *TransportAdapter) Tag() string {
|
|
return a.transportTag
|
|
}
|
|
|
|
func (a *TransportAdapter) Dependencies() []string {
|
|
return a.dependencies
|
|
}
|