chore: "server may not support speed test" hint when it's a dial error

This commit is contained in:
Toby 2024-03-09 21:25:49 -08:00
parent a0bd58063b
commit e99ac076da

View File

@ -1,6 +1,7 @@
package cmd package cmd
import ( import (
"errors"
"fmt" "fmt"
"time" "time"
@ -9,6 +10,7 @@ import (
"go.uber.org/zap" "go.uber.org/zap"
"github.com/apernet/hysteria/core/client" "github.com/apernet/hysteria/core/client"
hyErrors "github.com/apernet/hysteria/core/errors"
"github.com/apernet/hysteria/extras/outbounds" "github.com/apernet/hysteria/extras/outbounds"
"github.com/apernet/hysteria/extras/outbounds/speedtest" "github.com/apernet/hysteria/extras/outbounds/speedtest"
) )
@ -78,8 +80,12 @@ func runDownloadTest(c client.Client) {
logger.Info("performing download test") logger.Info("performing download test")
downConn, err := c.TCP(speedtestAddr) downConn, err := c.TCP(speedtestAddr)
if err != nil { if err != nil {
if errors.As(err, &hyErrors.DialError{}) {
logger.Fatal("failed to connect (server may not support speed test)", zap.Error(err))
} else {
logger.Fatal("failed to connect", zap.Error(err)) logger.Fatal("failed to connect", zap.Error(err))
} }
}
defer downConn.Close() defer downConn.Close()
downClient := &speedtest.Client{Conn: downConn} downClient := &speedtest.Client{Conn: downConn}
@ -107,8 +113,12 @@ func runUploadTest(c client.Client) {
logger.Info("performing upload test") logger.Info("performing upload test")
upConn, err := c.TCP(speedtestAddr) upConn, err := c.TCP(speedtestAddr)
if err != nil { if err != nil {
if errors.As(err, &hyErrors.DialError{}) {
logger.Fatal("failed to connect (server may not support speed test)", zap.Error(err))
} else {
logger.Fatal("failed to connect", zap.Error(err)) logger.Fatal("failed to connect", zap.Error(err))
} }
}
defer upConn.Close() defer upConn.Close()
upClient := &speedtest.Client{Conn: upConn} upClient := &speedtest.Client{Conn: upConn}