mirror of
https://github.com/fumiama/terasu.git
synced 2026-06-05 01:00:23 +08:00
chore: make lint happy
This commit is contained in:
11
cmd/main.go
11
cmd/main.go
@@ -10,30 +10,31 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/fumiama/terasu/http2"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func main() {
|
||||
if len(os.Args) != 2 {
|
||||
fmt.Println("Usage:", os.Args[0], "url")
|
||||
logrus.Infoln("Usage:", os.Args[0], "url")
|
||||
return
|
||||
}
|
||||
if !strings.HasPrefix(os.Args[1], "https://") {
|
||||
fmt.Println("ERROR: invalid url")
|
||||
logrus.Errorln("invalid url")
|
||||
return
|
||||
}
|
||||
resp, err := http2.Get(os.Args[1])
|
||||
if err != nil {
|
||||
fmt.Println("ERROR:", err)
|
||||
logrus.Errorln(err)
|
||||
return
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
fmt.Println("ERROR:", "status code:", resp.StatusCode)
|
||||
logrus.Errorln("status code:", resp.StatusCode)
|
||||
return
|
||||
}
|
||||
data, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
fmt.Println("ERROR:", err)
|
||||
logrus.Errorln(err)
|
||||
return
|
||||
}
|
||||
fmt.Print(string(data))
|
||||
|
||||
3
conn.go
3
conn.go
@@ -2,8 +2,6 @@ package terasu
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
"sync"
|
||||
@@ -115,7 +113,6 @@ func (conn *Conn) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
|
||||
// split
|
||||
if x <= 4 { // first is in header range
|
||||
fmt.Println(hex.EncodeToString(header[:]))
|
||||
// first
|
||||
binary.BigEndian.PutUint16(header[3:5], uint16(x))
|
||||
bd.move(header[:5+x])
|
||||
|
||||
22
dns/dns.go
22
dns/dns.go
@@ -81,16 +81,16 @@ func (ds *dnsstat) disable(reEnable time.Duration) {
|
||||
})
|
||||
}
|
||||
|
||||
// DNSList is a bundle of DNSs
|
||||
type DNSList struct {
|
||||
// List is a bundle of DNSs
|
||||
type List struct {
|
||||
sync.RWMutex
|
||||
hostseq []string
|
||||
m map[string][]*dnsstat
|
||||
b map[string][]string
|
||||
}
|
||||
|
||||
// DNSConfig is the user config
|
||||
type DNSConfig struct {
|
||||
// Config is the user config
|
||||
type Config struct {
|
||||
Servers map[string][]string `yaml:"Servers"` // Servers map[dot.com]ip:ports
|
||||
Fallbacks map[string][]string `yaml:"Fallbacks"` // Fallbacks map[domain]ips
|
||||
}
|
||||
@@ -111,7 +111,7 @@ func hasfallback(lst []string, a string) bool {
|
||||
}
|
||||
|
||||
// Add ...
|
||||
func (ds *DNSList) Add(c *DNSConfig) {
|
||||
func (ds *List) Add(c *Config) {
|
||||
ds.Lock()
|
||||
defer ds.Unlock()
|
||||
addList := map[string][]*dnsstat{}
|
||||
@@ -147,7 +147,7 @@ func (ds *DNSList) Add(c *DNSConfig) {
|
||||
}
|
||||
|
||||
// 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 {
|
||||
if err := fn(h, ds.m[h]); err != nil {
|
||||
return err
|
||||
@@ -156,7 +156,7 @@ func (ds *DNSList) rangeHosts(fn func(host string, addrs []*dnsstat) error) erro
|
||||
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()
|
||||
defer ds.RUnlock()
|
||||
// try to use DoH first
|
||||
@@ -195,7 +195,7 @@ func (ds *DNSList) lookupHostDoH(ctx context.Context, host string) (hosts []stri
|
||||
}
|
||||
|
||||
// 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
|
||||
|
||||
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
|
||||
var IPv6Servers = DNSList{
|
||||
var IPv6Servers = List{
|
||||
hostseq: []string{
|
||||
"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
|
||||
var IPv4Servers = DNSList{
|
||||
var IPv4Servers = List{
|
||||
hostseq: []string{
|
||||
"dot.sb", "dns.google", "cloudflare-dns.com", "dns.opendns.com", "dns10.quad9.net",
|
||||
},
|
||||
@@ -346,7 +346,7 @@ var IPv4Servers = DNSList{
|
||||
// DefaultResolver ...
|
||||
var DefaultResolver = &net.Resolver{
|
||||
PreferGo: true,
|
||||
Dial: func(ctx context.Context, nw, _ string) (net.Conn, error) {
|
||||
Dial: func(ctx context.Context, _, _ string) (net.Conn, error) {
|
||||
if ip.IsIPv6Available {
|
||||
return IPv6Servers.DialContext(ctx, nil)
|
||||
}
|
||||
|
||||
@@ -77,17 +77,17 @@ func TestBadDNS(t *testing.T) {
|
||||
IPv4Servers.m = dotv4serversbak
|
||||
}()
|
||||
if ip.IsIPv6Available {
|
||||
IPv6Servers = DNSList{
|
||||
IPv6Servers = List{
|
||||
m: map[string][]*dnsstat{},
|
||||
}
|
||||
IPv6Servers.Add(&DNSConfig{
|
||||
IPv6Servers.Add(&Config{
|
||||
Servers: map[string][]string{"test.bad.host": {"169.254.122.111"}},
|
||||
})
|
||||
} else {
|
||||
IPv4Servers = DNSList{
|
||||
IPv4Servers = List{
|
||||
m: map[string][]*dnsstat{},
|
||||
}
|
||||
IPv4Servers.Add(&DNSConfig{
|
||||
IPv4Servers.Add(&Config{
|
||||
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()
|
||||
defer ds.RUnlock()
|
||||
_ = ds.rangeHosts(func(host string, addrs []*dnsstat) error {
|
||||
|
||||
Reference in New Issue
Block a user