1
0
mirror of https://github.com/fumiama/terasu.git synced 2026-06-30 09:40:24 +08:00

chore: make lint happy

This commit is contained in:
源文雨
2025-10-23 23:38:06 +08:00
parent bda0c8de97
commit 4df0e33986
4 changed files with 22 additions and 24 deletions

View File

@@ -10,30 +10,31 @@ import (
"strings" "strings"
"github.com/fumiama/terasu/http2" "github.com/fumiama/terasu/http2"
"github.com/sirupsen/logrus"
) )
func main() { func main() {
if len(os.Args) != 2 { if len(os.Args) != 2 {
fmt.Println("Usage:", os.Args[0], "url") logrus.Infoln("Usage:", os.Args[0], "url")
return return
} }
if !strings.HasPrefix(os.Args[1], "https://") { if !strings.HasPrefix(os.Args[1], "https://") {
fmt.Println("ERROR: invalid url") logrus.Errorln("invalid url")
return return
} }
resp, err := http2.Get(os.Args[1]) resp, err := http2.Get(os.Args[1])
if err != nil { if err != nil {
fmt.Println("ERROR:", err) logrus.Errorln(err)
return return
} }
defer resp.Body.Close() defer resp.Body.Close()
if resp.StatusCode != http.StatusOK { if resp.StatusCode != http.StatusOK {
fmt.Println("ERROR:", "status code:", resp.StatusCode) logrus.Errorln("status code:", resp.StatusCode)
return return
} }
data, err := io.ReadAll(resp.Body) data, err := io.ReadAll(resp.Body)
if err != nil { if err != nil {
fmt.Println("ERROR:", err) logrus.Errorln(err)
return return
} }
fmt.Print(string(data)) fmt.Print(string(data))

View File

@@ -2,8 +2,6 @@ package terasu
import ( import (
"encoding/binary" "encoding/binary"
"encoding/hex"
"fmt"
"io" "io"
"net" "net"
"sync" "sync"
@@ -115,7 +113,6 @@ func (conn *Conn) ReadFrom(r io.Reader) (n int64, err error) {
// split // split
if x <= 4 { // first is in header range if x <= 4 { // first is in header range
fmt.Println(hex.EncodeToString(header[:]))
// first // first
binary.BigEndian.PutUint16(header[3:5], uint16(x)) binary.BigEndian.PutUint16(header[3:5], uint16(x))
bd.move(header[:5+x]) bd.move(header[:5+x])

View File

@@ -81,16 +81,16 @@ func (ds *dnsstat) disable(reEnable time.Duration) {
}) })
} }
// DNSList is a bundle of DNSs // List is a bundle of DNSs
type DNSList struct { type List struct {
sync.RWMutex sync.RWMutex
hostseq []string hostseq []string
m map[string][]*dnsstat m map[string][]*dnsstat
b map[string][]string b map[string][]string
} }
// DNSConfig is the user config // Config is the user config
type DNSConfig struct { type Config struct {
Servers map[string][]string `yaml:"Servers"` // Servers map[dot.com]ip:ports Servers map[string][]string `yaml:"Servers"` // Servers map[dot.com]ip:ports
Fallbacks map[string][]string `yaml:"Fallbacks"` // Fallbacks map[domain]ips Fallbacks map[string][]string `yaml:"Fallbacks"` // Fallbacks map[domain]ips
} }
@@ -111,7 +111,7 @@ func hasfallback(lst []string, a string) bool {
} }
// Add ... // Add ...
func (ds *DNSList) Add(c *DNSConfig) { func (ds *List) Add(c *Config) {
ds.Lock() ds.Lock()
defer ds.Unlock() defer ds.Unlock()
addList := map[string][]*dnsstat{} addList := map[string][]*dnsstat{}
@@ -147,7 +147,7 @@ func (ds *DNSList) Add(c *DNSConfig) {
} }
// rangeHosts in sequence, please use in rlock // rangeHosts in sequence, please use in rlock
func (ds *DNSList) rangeHosts(fn func(host string, addrs []*dnsstat) error) error { func (ds *List) rangeHosts(fn func(host string, addrs []*dnsstat) error) error {
for _, h := range ds.hostseq { for _, h := range ds.hostseq {
if err := fn(h, ds.m[h]); err != nil { if err := fn(h, ds.m[h]); err != nil {
return err return err
@@ -156,7 +156,7 @@ func (ds *DNSList) rangeHosts(fn func(host string, addrs []*dnsstat) error) erro
return nil return nil
} }
func (ds *DNSList) lookupHostDoH(ctx context.Context, host string) (hosts []string, err error) { func (ds *List) lookupHostDoH(ctx context.Context, host string) (hosts []string, err error) {
ds.RLock() ds.RLock()
defer ds.RUnlock() defer ds.RUnlock()
// try to use DoH first // try to use DoH first
@@ -195,7 +195,7 @@ func (ds *DNSList) lookupHostDoH(ctx context.Context, host string) (hosts []stri
} }
// DialContext ... // DialContext ...
func (ds *DNSList) DialContext(ctx context.Context, dialer *net.Dialer) (tlsConn *tls.Conn, err error) { func (ds *List) DialContext(ctx context.Context, dialer *net.Dialer) (tlsConn *tls.Conn, err error) {
err = ErrNoDNSAvailable err = ErrNoDNSAvailable
if dialer == nil { if dialer == nil {
@@ -270,7 +270,7 @@ func (ds *DNSList) DialContext(ctx context.Context, dialer *net.Dialer) (tlsConn
} }
// IPv6Servers should only be used when IPv6 is available // IPv6Servers should only be used when IPv6 is available
var IPv6Servers = DNSList{ var IPv6Servers = List{
hostseq: []string{ hostseq: []string{
"dot.sb", "dns.google", "cloudflare-dns.com", "dns.opendns.com", "dns10.quad9.net", "dot.sb", "dns.google", "cloudflare-dns.com", "dns.opendns.com", "dns10.quad9.net",
}, },
@@ -307,7 +307,7 @@ var IPv6Servers = DNSList{
} }
// IPv4Servers is the default server set // IPv4Servers is the default server set
var IPv4Servers = DNSList{ var IPv4Servers = List{
hostseq: []string{ hostseq: []string{
"dot.sb", "dns.google", "cloudflare-dns.com", "dns.opendns.com", "dns10.quad9.net", "dot.sb", "dns.google", "cloudflare-dns.com", "dns.opendns.com", "dns10.quad9.net",
}, },
@@ -346,7 +346,7 @@ var IPv4Servers = DNSList{
// DefaultResolver ... // DefaultResolver ...
var DefaultResolver = &net.Resolver{ var DefaultResolver = &net.Resolver{
PreferGo: true, PreferGo: true,
Dial: func(ctx context.Context, nw, _ string) (net.Conn, error) { Dial: func(ctx context.Context, _, _ string) (net.Conn, error) {
if ip.IsIPv6Available { if ip.IsIPv6Available {
return IPv6Servers.DialContext(ctx, nil) return IPv6Servers.DialContext(ctx, nil)
} }

View File

@@ -77,17 +77,17 @@ func TestBadDNS(t *testing.T) {
IPv4Servers.m = dotv4serversbak IPv4Servers.m = dotv4serversbak
}() }()
if ip.IsIPv6Available { if ip.IsIPv6Available {
IPv6Servers = DNSList{ IPv6Servers = List{
m: map[string][]*dnsstat{}, m: map[string][]*dnsstat{},
} }
IPv6Servers.Add(&DNSConfig{ IPv6Servers.Add(&Config{
Servers: map[string][]string{"test.bad.host": {"169.254.122.111"}}, Servers: map[string][]string{"test.bad.host": {"169.254.122.111"}},
}) })
} else { } else {
IPv4Servers = DNSList{ IPv4Servers = List{
m: map[string][]*dnsstat{}, m: map[string][]*dnsstat{},
} }
IPv4Servers.Add(&DNSConfig{ IPv4Servers.Add(&Config{
Servers: map[string][]string{"test.bad.host": {"169.254.122.111:853"}}, Servers: map[string][]string{"test.bad.host": {"169.254.122.111:853"}},
}) })
} }
@@ -101,7 +101,7 @@ func TestBadDNS(t *testing.T) {
} }
} }
func (ds *DNSList) test() { func (ds *List) test() {
ds.RLock() ds.RLock()
defer ds.RUnlock() defer ds.RUnlock()
_ = ds.rangeHosts(func(host string, addrs []*dnsstat) error { _ = ds.rangeHosts(func(host string, addrs []*dnsstat) error {