This commit is contained in:
Frank Denis 2020-12-12 22:19:09 +01:00
parent a384011e71
commit d700ab6085
2 changed files with 7 additions and 13 deletions

View File

@ -13,10 +13,7 @@ import (
type CaptivePortalEntryips []net.IP type CaptivePortalEntryips []net.IP
type CaptivePortalEntry struct { type CaptivePortalMap map[string]CaptivePortalEntryips
name string
ips CaptivePortalEntryips
}
type CaptivePortalHandler struct { type CaptivePortalHandler struct {
cancelChannels []chan struct{} cancelChannels []chan struct{}
@ -25,11 +22,11 @@ type CaptivePortalHandler struct {
func (captivePortalHandler *CaptivePortalHandler) Stop() { func (captivePortalHandler *CaptivePortalHandler) Stop() {
for _, cancelChannel := range captivePortalHandler.cancelChannels { for _, cancelChannel := range captivePortalHandler.cancelChannels {
cancelChannel <- struct{}{} cancelChannel <- struct{}{}
_ = <-cancelChannel <-cancelChannel
} }
} }
func handleColdStartClient(clientPc *net.UDPConn, cancelChannel chan struct{}, ipsMap *map[string]CaptivePortalEntryips) bool { func handleColdStartClient(clientPc *net.UDPConn, cancelChannel chan struct{}, ipsMap *CaptivePortalMap) bool {
buffer := make([]byte, MaxDNSPacketSize-1) buffer := make([]byte, MaxDNSPacketSize-1)
clientPc.SetDeadline(time.Now().Add(time.Duration(1) * time.Second)) clientPc.SetDeadline(time.Now().Add(time.Duration(1) * time.Second))
length, clientAddr, err := clientPc.ReadFrom(buffer) length, clientAddr, err := clientPc.ReadFrom(buffer)
@ -105,7 +102,7 @@ func handleColdStartClient(clientPc *net.UDPConn, cancelChannel chan struct{}, i
return false return false
} }
func addColdStartListener(proxy *Proxy, ipsMap *map[string]CaptivePortalEntryips, listenAddrStr string, cancelChannel chan struct{}) error { func addColdStartListener(proxy *Proxy, ipsMap *CaptivePortalMap, listenAddrStr string, cancelChannel chan struct{}) error {
listenUDPAddr, err := net.ResolveUDPAddr("udp", listenAddrStr) listenUDPAddr, err := net.ResolveUDPAddr("udp", listenAddrStr)
if err != nil { if err != nil {
return err return err
@ -132,7 +129,7 @@ func ColdStart(proxy *Proxy) (*CaptivePortalHandler, error) {
dlog.Warn(err) dlog.Warn(err)
return nil, err return nil, err
} }
ipsMap := make(map[string]CaptivePortalEntryips) ipsMap := make(CaptivePortalMap)
for lineNo, line := range strings.Split(string(bin), "\n") { for lineNo, line := range strings.Split(string(bin), "\n") {
line = TrimAndStripInlineComments(line) line = TrimAndStripInlineComments(line)
if len(line) == 0 { if len(line) == 0 {

View File

@ -16,7 +16,6 @@ import (
"github.com/VividCortex/ewma" "github.com/VividCortex/ewma"
"github.com/jedisct1/dlog" "github.com/jedisct1/dlog"
"github.com/jedisct1/go-dnsstamps"
stamps "github.com/jedisct1/go-dnsstamps" stamps "github.com/jedisct1/go-dnsstamps"
"github.com/miekg/dns" "github.com/miekg/dns"
"golang.org/x/crypto/ed25519" "golang.org/x/crypto/ed25519"
@ -59,7 +58,7 @@ type ServerInfo struct {
SharedKey [32]byte SharedKey [32]byte
MagicQuery [8]byte MagicQuery [8]byte
knownBugs ServerBugs knownBugs ServerBugs
Proto dnsstamps.StampProtoType Proto stamps.StampProtoType
useGet bool useGet bool
} }
@ -99,8 +98,6 @@ func (LBStrategyRandom) getCandidate(serversCount int) int {
var DefaultLBStrategy = LBStrategyP2{} var DefaultLBStrategy = LBStrategyP2{}
type ODoHRelay struct{}
type DNSCryptRelay struct { type DNSCryptRelay struct {
RelayUDPAddr *net.UDPAddr RelayUDPAddr *net.UDPAddr
RelayTCPAddr *net.TCPAddr RelayTCPAddr *net.TCPAddr
@ -260,7 +257,7 @@ func fetchServerInfo(proxy *Proxy, name string, stamp stamps.ServerStamp, isNew
} else if stamp.Proto == stamps.StampProtoTypeDoH { } else if stamp.Proto == stamps.StampProtoTypeDoH {
return fetchDoHServerInfo(proxy, name, stamp, isNew) return fetchDoHServerInfo(proxy, name, stamp, isNew)
} }
return ServerInfo{}, errors.New(fmt.Sprintf("Unsupported protocol for [%s]: [%s]", name, stamp.Proto.String())) return ServerInfo{}, fmt.Errorf("Unsupported protocol for [%s]: [%s]", name, stamp.Proto.String())
} }
func route(proxy *Proxy, name string) (*Relay, error) { func route(proxy *Proxy, name string) (*Relay, error) {