fixed errors formatting

This commit is contained in:
Dzyanis Kuzmenka 2022-03-17 23:50:45 +03:00
parent b229af9607
commit cf65e85b93
24 changed files with 67 additions and 61 deletions

View File

@ -74,7 +74,6 @@ linters:
- promlinter - promlinter
- nestif - nestif
- errorlint - errorlint
# - ineffassign
- lll - lll
- contextcheck - contextcheck
- bodyclose - bodyclose

View File

@ -17,6 +17,7 @@ package client
import ( import (
"context" "context"
"crypto/tls" "crypto/tls"
"errors"
"io" "io"
"net" "net"
"runtime/debug" "runtime/debug"
@ -287,7 +288,7 @@ func (ctl *Control) reader() {
for { for {
m, err := msg.ReadMsg(encReader) m, err := msg.ReadMsg(encReader)
if err != nil { if err != nil {
if err == io.EOF { if errors.Is(err, io.EOF) {
xl.Debug("read from control connection EOF") xl.Debug("read from control connection EOF")
return return
} }

View File

@ -355,12 +355,12 @@ func (sv *SUDPVisitor) Run() (err error) {
addr, err := net.ResolveUDPAddr("udp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort))) addr, err := net.ResolveUDPAddr("udp", net.JoinHostPort(sv.cfg.BindAddr, strconv.Itoa(sv.cfg.BindPort)))
if err != nil { if err != nil {
return fmt.Errorf("sudp ResolveUDPAddr error: %v", err) return fmt.Errorf("sudp ResolveUDPAddr error: %w", err)
} }
sv.udpConn, err = net.ListenUDP("udp", addr) sv.udpConn, err = net.ListenUDP("udp", addr)
if err != nil { if err != nil {
return fmt.Errorf("listen udp port %s error: %v", addr.String(), err) return fmt.Errorf("listen udp port %s error: %w", addr.String(), err)
} }
sv.sendCh = make(chan *msg.UDPPacket, 1024) sv.sendCh = make(chan *msg.UDPPacket, 1024)
@ -506,7 +506,7 @@ func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) {
xl := xlog.FromContextSafe(sv.ctx) xl := xlog.FromContextSafe(sv.ctx)
visitorConn, err := sv.ctl.connectServer() visitorConn, err := sv.ctl.connectServer()
if err != nil { if err != nil {
return nil, fmt.Errorf("frpc connect frps error: %v", err) return nil, fmt.Errorf("frpc connect frps error: %w", err)
} }
now := time.Now().Unix() now := time.Now().Unix()
@ -519,14 +519,14 @@ func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) {
} }
err = msg.WriteMsg(visitorConn, newVisitorConnMsg) err = msg.WriteMsg(visitorConn, newVisitorConnMsg)
if err != nil { if err != nil {
return nil, fmt.Errorf("frpc send newVisitorConnMsg to frps error: %v", err) return nil, fmt.Errorf("frpc send newVisitorConnMsg to frps error: %w", err)
} }
var newVisitorConnRespMsg msg.NewVisitorConnResp var newVisitorConnRespMsg msg.NewVisitorConnResp
visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second)) visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second))
err = msg.ReadMsgInto(visitorConn, &newVisitorConnRespMsg) err = msg.ReadMsgInto(visitorConn, &newVisitorConnRespMsg)
if err != nil { if err != nil {
return nil, fmt.Errorf("frpc read newVisitorConnRespMsg error: %v", err) return nil, fmt.Errorf("frpc read newVisitorConnRespMsg error: %w", err)
} }
visitorConn.SetReadDeadline(time.Time{}) visitorConn.SetReadDeadline(time.Time{})
@ -539,7 +539,7 @@ func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) {
if sv.cfg.UseEncryption { if sv.cfg.UseEncryption {
remote, err = frpIo.WithEncryption(remote, []byte(sv.cfg.Sk)) remote, err = frpIo.WithEncryption(remote, []byte(sv.cfg.Sk))
if err != nil { if err != nil {
xl.Error("create encryption stream error: %v", err) xl.Error("create encryption stream error: %w", err)
return nil, err return nil, err
} }
} }

View File

@ -135,14 +135,14 @@ func parseClientCommonCfgFromCmd() (cfg config.ClientCommonConf, err error) {
ipStr, portStr, err := net.SplitHostPort(serverAddr) ipStr, portStr, err := net.SplitHostPort(serverAddr)
if err != nil { if err != nil {
err = fmt.Errorf("invalid server_addr: %v", err) err = fmt.Errorf("invalid server_addr: %w", err)
return return
} }
cfg.ServerAddr = ipStr cfg.ServerAddr = ipStr
cfg.ServerPort, err = strconv.Atoi(portStr) cfg.ServerPort, err = strconv.Atoi(portStr)
if err != nil { if err != nil {
err = fmt.Errorf("invalid server_addr: %v", err) err = fmt.Errorf("invalid server_addr: %w", err)
return return
} }
@ -160,7 +160,7 @@ func parseClientCommonCfgFromCmd() (cfg config.ClientCommonConf, err error) {
cfg.Complete() cfg.Complete()
if err = cfg.Validate(); err != nil { if err = cfg.Validate(); err != nil {
err = fmt.Errorf("Parse config error: %v", err) err = fmt.Errorf("Parse config error: %w", err)
return return
} }
return return

View File

@ -145,7 +145,7 @@ func parseServerCommonCfg(fileType int, source []byte) (cfg config.ServerCommonC
cfg.Complete() cfg.Complete()
err = cfg.Validate() err = cfg.Validate()
if err != nil { if err != nil {
err = fmt.Errorf("Parse config error: %v", err) err = fmt.Errorf("Parse config error: %w", err)
return return
} }
return return
@ -180,7 +180,7 @@ func parseServerCommonCfgFromCmd() (cfg config.ServerCommonConf, err error) {
// e.g. 1000-2000,2001,2002,3000-4000 // e.g. 1000-2000,2001,2002,3000-4000
ports, errRet := util.ParseRangeNumbers(allowPorts) ports, errRet := util.ParseRangeNumbers(allowPorts)
if errRet != nil { if errRet != nil {
err = fmt.Errorf("Parse conf error: allow_ports: %v", errRet) err = fmt.Errorf("Parse conf error: allow_ports: %w", errRet)
return return
} }

View File

@ -116,7 +116,7 @@ func NewOidcAuthSetter(baseCfg BaseConfig, cfg OidcClientConfig) *OidcAuthProvid
func (auth *OidcAuthProvider) generateAccessToken() (accessToken string, err error) { func (auth *OidcAuthProvider) generateAccessToken() (accessToken string, err error) {
tokenObj, err := auth.tokenGenerator.Token(context.Background()) tokenObj, err := auth.tokenGenerator.Token(context.Background())
if err != nil { if err != nil {
return "", fmt.Errorf("couldn't generate OIDC token for login: %v", err) return "", fmt.Errorf("couldn't generate OIDC token for login: %w", err)
} }
return tokenObj.AccessToken, nil return tokenObj.AccessToken, nil
} }
@ -171,7 +171,7 @@ func NewOidcAuthVerifier(baseCfg BaseConfig, cfg OidcServerConfig) *OidcAuthCons
func (auth *OidcAuthConsumer) VerifyLogin(loginMsg *msg.Login) (err error) { func (auth *OidcAuthConsumer) VerifyLogin(loginMsg *msg.Login) (err error) {
token, err := auth.verifier.Verify(context.Background(), loginMsg.PrivilegeKey) token, err := auth.verifier.Verify(context.Background(), loginMsg.PrivilegeKey)
if err != nil { if err != nil {
return fmt.Errorf("invalid OIDC token in login: %v", err) return fmt.Errorf("invalid OIDC token in login: %w", err)
} }
auth.subjectFromLogin = token.Subject auth.subjectFromLogin = token.Subject
return nil return nil
@ -180,7 +180,7 @@ func (auth *OidcAuthConsumer) VerifyLogin(loginMsg *msg.Login) (err error) {
func (auth *OidcAuthConsumer) verifyPostLoginToken(privilegeKey string) (err error) { func (auth *OidcAuthConsumer) verifyPostLoginToken(privilegeKey string) (err error) {
token, err := auth.verifier.Verify(context.Background(), privilegeKey) token, err := auth.verifier.Verify(context.Background(), privilegeKey)
if err != nil { if err != nil {
return fmt.Errorf("invalid OIDC token in ping: %v", err) return fmt.Errorf("invalid OIDC token in ping: %w", err)
} }
if token.Subject != auth.subjectFromLogin { if token.Subject != auth.subjectFromLogin {
return fmt.Errorf("received different OIDC subject in login and ping. "+ return fmt.Errorf("received different OIDC subject in login and ping. "+

View File

@ -320,7 +320,7 @@ func LoadAllProxyConfsFromIni(
for _, section := range rangeSections { for _, section := range rangeSections {
err = renderRangeProxyTemplates(f, section) err = renderRangeProxyTemplates(f, section)
if err != nil { if err != nil {
return nil, nil, fmt.Errorf("failed to render template for proxy %s: %v", section.Name(), err) return nil, nil, fmt.Errorf("failed to render template for proxy %s: %w", section.Name(), err)
} }
} }
@ -345,7 +345,7 @@ func LoadAllProxyConfsFromIni(
case "server": case "server":
newConf, newErr := NewProxyConfFromIni(prefix, name, section) newConf, newErr := NewProxyConfFromIni(prefix, name, section)
if newErr != nil { if newErr != nil {
return nil, nil, fmt.Errorf("failed to parse proxy %s, err: %v", name, newErr) return nil, nil, fmt.Errorf("failed to parse proxy %s, err: %w", name, newErr)
} }
proxyConfs[prefix+name] = newConf proxyConfs[prefix+name] = newConf
case "visitor": case "visitor":

View File

@ -42,7 +42,7 @@ func ParseClientConfig(filePath string) (
} }
cfg.Complete() cfg.Complete()
if err = cfg.Validate(); err != nil { if err = cfg.Validate(); err != nil {
err = fmt.Errorf("Parse config error: %v", err) err = fmt.Errorf("Parse config error: %w", err)
return return
} }
@ -50,7 +50,7 @@ func ParseClientConfig(filePath string) (
var buf []byte var buf []byte
buf, err = getIncludeContents(cfg.IncludeConfigFiles) buf, err = getIncludeContents(cfg.IncludeConfigFiles)
if err != nil { if err != nil {
err = fmt.Errorf("getIncludeContents error: %v", err) err = fmt.Errorf("getIncludeContents error: %w", err)
return return
} }
configBuffer.WriteString("\n") configBuffer.WriteString("\n")
@ -88,7 +88,7 @@ func getIncludeContents(paths []string) ([]byte, error) {
if matched, _ := filepath.Match(filepath.Join(absDir, filepath.Base(path)), absFile); matched { if matched, _ := filepath.Match(filepath.Join(absDir, filepath.Base(path)), absFile); matched {
tmpContent, err := GetRenderedConfFromFile(absFile) tmpContent, err := GetRenderedConfFromFile(absFile)
if err != nil { if err != nil {
return nil, fmt.Errorf("render extra config %s error: %v", absFile, err) return nil, fmt.Errorf("render extra config %s error: %w", absFile, err)
} }
out.Write(tmpContent) out.Write(tmpContent)
out.WriteString("\n") out.WriteString("\n")

View File

@ -639,7 +639,7 @@ func (cfg *TCPMuxProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error)
} }
if err = cfg.DomainConf.checkForSvr(serverCfg); err != nil { if err = cfg.DomainConf.checkForSvr(serverCfg); err != nil {
err = fmt.Errorf("proxy [%s] domain conf check error: %v", cfg.ProxyName, err) err = fmt.Errorf("proxy [%s] domain conf check error: %w", cfg.ProxyName, err)
return return
} }
@ -788,7 +788,7 @@ func (cfg *HTTPProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) {
} }
if err = cfg.DomainConf.checkForSvr(serverCfg); err != nil { if err = cfg.DomainConf.checkForSvr(serverCfg); err != nil {
err = fmt.Errorf("proxy [%s] domain conf check error: %v", cfg.ProxyName, err) err = fmt.Errorf("proxy [%s] domain conf check error: %w", cfg.ProxyName, err)
return return
} }
@ -860,7 +860,7 @@ func (cfg *HTTPSProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) {
} }
if err = cfg.DomainConf.checkForSvr(serverCfg); err != nil { if err = cfg.DomainConf.checkForSvr(serverCfg); err != nil {
err = fmt.Errorf("proxy [%s] domain conf check error: %v", cfg.ProxyName, err) err = fmt.Errorf("proxy [%s] domain conf check error: %w", cfg.ProxyName, err)
return return
} }

View File

@ -246,7 +246,7 @@ func UnmarshalServerConfFromIni(source interface{}) (ServerCommonConf, error) {
if allowPortStr != "" { if allowPortStr != "" {
allowPorts, err := util.ParseRangeNumbers(allowPortStr) allowPorts, err := util.ParseRangeNumbers(allowPortStr)
if err != nil { if err != nil {
return ServerCommonConf{}, fmt.Errorf("invalid allow_ports: %v", err) return ServerCommonConf{}, fmt.Errorf("invalid allow_ports: %w", err)
} }
for _, port := range allowPorts { for _, port := range allowPorts {
common.AllowPorts[int(port)] = struct{}{} common.AllowPorts[int(port)] = struct{}{}

View File

@ -17,6 +17,7 @@ package plugin
import ( import (
"bufio" "bufio"
"encoding/base64" "encoding/base64"
"errors"
"io" "io"
"net" "net"
"net/http" "net/http"
@ -126,7 +127,7 @@ func (hp *HTTPProxy) HTTPHandler(rw http.ResponseWriter, req *http.Request) {
rw.WriteHeader(resp.StatusCode) rw.WriteHeader(resp.StatusCode)
_, err = io.Copy(rw, resp.Body) _, err = io.Copy(rw, resp.Body)
if err != nil && err != io.EOF { if err != nil && errors.Is(err, io.EOF) {
return return
} }
} }

View File

@ -98,7 +98,7 @@ func NewHTTPS2HTTPPlugin(params map[string]string) (Plugin, error) {
tlsConfig, err := p.genTLSConfig() tlsConfig, err := p.genTLSConfig()
if err != nil { if err != nil {
return nil, fmt.Errorf("gen TLS config error: %v", err) return nil, fmt.Errorf("gen TLS config error: %w", err)
} }
ln := tls.NewListener(listener, tlsConfig) ln := tls.NewListener(listener, tlsConfig)

View File

@ -103,7 +103,7 @@ func NewHTTPS2HTTPSPlugin(params map[string]string) (Plugin, error) {
tlsConfig, err := p.genTLSConfig() tlsConfig, err := p.genTLSConfig()
if err != nil { if err != nil {
return nil, fmt.Errorf("gen TLS config error: %v", err) return nil, fmt.Errorf("gen TLS config error: %w", err)
} }
ln := tls.NewListener(listener, tlsConfig) ln := tls.NewListener(listener, tlsConfig)

View File

@ -75,7 +75,7 @@ func ParseRangeNumbers(rangeStr string) (numbers []int64, err error) {
// single number // single number
singleNum, errRet := strconv.ParseInt(strings.TrimSpace(numArray[0]), 10, 64) singleNum, errRet := strconv.ParseInt(strings.TrimSpace(numArray[0]), 10, 64)
if errRet != nil { if errRet != nil {
err = fmt.Errorf("range number is invalid, %v", errRet) err = fmt.Errorf("range number is invalid, %w", errRet)
return return
} }
numbers = append(numbers, singleNum) numbers = append(numbers, singleNum)
@ -83,12 +83,12 @@ func ParseRangeNumbers(rangeStr string) (numbers []int64, err error) {
// range numbers // range numbers
min, errRet := strconv.ParseInt(strings.TrimSpace(numArray[0]), 10, 64) min, errRet := strconv.ParseInt(strings.TrimSpace(numArray[0]), 10, 64)
if errRet != nil { if errRet != nil {
err = fmt.Errorf("range number is invalid, %v", errRet) err = fmt.Errorf("range number is invalid, %w", errRet)
return return
} }
max, errRet := strconv.ParseInt(strings.TrimSpace(numArray[1]), 10, 64) max, errRet := strconv.ParseInt(strings.TrimSpace(numArray[1]), 10, 64)
if errRet != nil { if errRet != nil {
err = fmt.Errorf("range number is invalid, %v", errRet) err = fmt.Errorf("range number is invalid, %w", errRet)
return return
} }
if max < min { if max < min {

View File

@ -146,7 +146,7 @@ func (rp *HTTPReverseProxy) CreateConnection(domain string, location string, rem
return fn(remoteAddr) return fn(remoteAddr)
} }
} }
return nil, fmt.Errorf("%v: %s %s", ErrNoDomain, domain, location) return nil, fmt.Errorf("%w: %s %s", ErrNoDomain, domain, location)
} }
func (rp *HTTPReverseProxy) CheckAuth(domain, location, user, passwd string) bool { func (rp *HTTPReverseProxy) CheckAuth(domain, location, user, passwd string) bool {

View File

@ -8,6 +8,7 @@ package vhost
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"io" "io"
"log" "log"
@ -456,7 +457,7 @@ func (p *ReverseProxy) copyBuffer(dst io.Writer, src io.Reader, buf []byte) (int
var written int64 var written int64
for { for {
nr, rerr := src.Read(buf) nr, rerr := src.Read(buf)
if rerr != nil && rerr != io.EOF && rerr != context.Canceled { if rerr != nil && !errors.Is(rerr, io.EOF) && !errors.Is(rerr, context.Canceled) {
p.logf("httputil: ReverseProxy read error during body copy: %v", rerr) p.logf("httputil: ReverseProxy read error during body copy: %v", rerr)
} }
if nr > 0 { if nr > 0 {
@ -582,7 +583,7 @@ func (p *ReverseProxy) handleUpgradeResponse(rw http.ResponseWriter, req *http.R
conn, brw, err := hj.Hijack() conn, brw, err := hj.Hijack()
if err != nil { if err != nil {
p.getErrorHandler()(rw, req, fmt.Errorf("Hijack failed on protocol switch: %v", err)) p.getErrorHandler()(rw, req, fmt.Errorf("Hijack failed on protocol switch: %w", err))
return return
} }
defer conn.Close() defer conn.Close()
@ -592,11 +593,11 @@ func (p *ReverseProxy) handleUpgradeResponse(rw http.ResponseWriter, req *http.R
res.Header = rw.Header() res.Header = rw.Header()
res.Body = nil // so res.Write only writes the headers; we have res.Body in backConn above res.Body = nil // so res.Write only writes the headers; we have res.Body in backConn above
if err := res.Write(brw); err != nil { if err := res.Write(brw); err != nil {
p.getErrorHandler()(rw, req, fmt.Errorf("response write: %v", err)) p.getErrorHandler()(rw, req, fmt.Errorf("response write: %w", err))
return return
} }
if err := brw.Flush(); err != nil { if err := brw.Flush(); err != nil {
p.getErrorHandler()(rw, req, fmt.Errorf("response flush: %v", err)) p.getErrorHandler()(rw, req, fmt.Errorf("response flush: %w", err))
return return
} }
errc := make(chan error, 1) errc := make(chan error, 1)

View File

@ -16,6 +16,7 @@ package server
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"io" "io"
"net" "net"
@ -25,7 +26,7 @@ import (
"github.com/fatedier/golib/control/shutdown" "github.com/fatedier/golib/control/shutdown"
"github.com/fatedier/golib/crypto" "github.com/fatedier/golib/crypto"
"github.com/fatedier/golib/errors" gErr "github.com/fatedier/golib/errors"
"github.com/fatedier/frp/pkg/auth" "github.com/fatedier/frp/pkg/auth"
"github.com/fatedier/frp/pkg/config" "github.com/fatedier/frp/pkg/config"
@ -248,7 +249,7 @@ func (ctl *Control) GetWorkConn() (workConn net.Conn, err error) {
xl.Debug("get work connection from pool") xl.Debug("get work connection from pool")
default: default:
// no work connections available in the poll, send message to frpc to get more // no work connections available in the poll, send message to frpc to get more
if err = errors.PanicToError(func() { if err = gErr.PanicToError(func() {
ctl.sendCh <- &msg.ReqWorkConn{} ctl.sendCh <- &msg.ReqWorkConn{}
}); err != nil { }); err != nil {
return nil, fmt.Errorf("control is already closed") return nil, fmt.Errorf("control is already closed")
@ -270,7 +271,7 @@ func (ctl *Control) GetWorkConn() (workConn net.Conn, err error) {
} }
// When we get a work connection from pool, replace it with a new one. // When we get a work connection from pool, replace it with a new one.
errors.PanicToError(func() { gErr.PanicToError(func() {
ctl.sendCh <- &msg.ReqWorkConn{} ctl.sendCh <- &msg.ReqWorkConn{}
}) })
return return
@ -331,7 +332,7 @@ func (ctl *Control) reader() {
for { for {
m, err := msg.ReadMsg(encReader) m, err := msg.ReadMsg(encReader)
if err != nil { if err != nil {
if err == io.EOF { if errors.Is(err, io.EOF) {
xl.Debug("control connection closed") xl.Debug("control connection closed")
return return
} }

View File

@ -88,7 +88,10 @@ func (svr *Service) APIServerInfo(w http.ResponseWriter, r *http.Request) {
ProxyTypeCounts: serverStats.ProxyTypeCounts, ProxyTypeCounts: serverStats.ProxyTypeCounts,
} }
buf, _ := json.Marshal(&svrResp) buf, err := json.Marshal(&svrResp)
if err != nil {
log.Warn("marshal server information response: %w", err)
}
res.Msg = string(buf) res.Msg = string(buf)
} }

View File

@ -61,7 +61,7 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) {
xl := pxy.xl xl := pxy.xl
pxy.realPort, err = pxy.rc.UDPPortManager.Acquire(pxy.name, pxy.cfg.RemotePort) pxy.realPort, err = pxy.rc.UDPPortManager.Acquire(pxy.name, pxy.cfg.RemotePort)
if err != nil { if err != nil {
return "", fmt.Errorf("acquire port %d error: %v", pxy.cfg.RemotePort, err) return "", fmt.Errorf("acquire port %d error: %w", pxy.cfg.RemotePort, err)
} }
defer func() { defer func() {
if err != nil { if err != nil {

View File

@ -127,13 +127,13 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
address := net.JoinHostPort(cfg.ProxyBindAddr, strconv.Itoa(cfg.TCPMuxHTTPConnectPort)) address := net.JoinHostPort(cfg.ProxyBindAddr, strconv.Itoa(cfg.TCPMuxHTTPConnectPort))
l, err = net.Listen("tcp", address) l, err = net.Listen("tcp", address)
if err != nil { if err != nil {
err = fmt.Errorf("Create server listener error, %v", err) err = fmt.Errorf("Create server listener error, %w", err)
return return
} }
svr.rc.TCPMuxHTTPConnectMuxer, err = tcpmux.NewHTTPConnectTCPMuxer(l, vhostReadWriteTimeout) svr.rc.TCPMuxHTTPConnectMuxer, err = tcpmux.NewHTTPConnectTCPMuxer(l, vhostReadWriteTimeout)
if err != nil { if err != nil {
err = fmt.Errorf("Create vhost tcpMuxer error, %v", err) err = fmt.Errorf("Create vhost tcpMuxer error, %w", err)
return return
} }
log.Info("tcpmux httpconnect multiplexer listen on %s", address) log.Info("tcpmux httpconnect multiplexer listen on %s", address)
@ -181,7 +181,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.BindPort)) address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.BindPort))
ln, err := net.Listen("tcp", address) ln, err := net.Listen("tcp", address)
if err != nil { if err != nil {
err = fmt.Errorf("Create server listener error, %v", err) err = fmt.Errorf("Create server listener error, %w", err)
return return
} }
@ -197,7 +197,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.KCPBindPort)) address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.KCPBindPort))
svr.kcpListener, err = frpNet.ListenKcp(address) svr.kcpListener, err = frpNet.ListenKcp(address)
if err != nil { if err != nil {
err = fmt.Errorf("Listen on kcp address udp %s error: %v", address, err) err = fmt.Errorf("Listen on kcp address udp %s error: %w", address, err)
return return
} }
log.Info("frps kcp listen on udp %s", address) log.Info("frps kcp listen on udp %s", address)
@ -228,7 +228,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
} else { } else {
l, err = net.Listen("tcp", address) l, err = net.Listen("tcp", address)
if err != nil { if err != nil {
err = fmt.Errorf("Create vhost http listener error, %v", err) err = fmt.Errorf("Create vhost http listener error, %w", err)
return return
} }
} }
@ -245,7 +245,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
address := net.JoinHostPort(cfg.ProxyBindAddr, strconv.Itoa(cfg.VhostHTTPSPort)) address := net.JoinHostPort(cfg.ProxyBindAddr, strconv.Itoa(cfg.VhostHTTPSPort))
l, err = net.Listen("tcp", address) l, err = net.Listen("tcp", address)
if err != nil { if err != nil {
err = fmt.Errorf("Create server listener error, %v", err) err = fmt.Errorf("Create server listener error, %w", err)
return return
} }
log.Info("https service listen on %s", address) log.Info("https service listen on %s", address)
@ -253,7 +253,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
svr.rc.VhostHTTPSMuxer, err = vhost.NewHTTPSMuxer(l, vhostReadWriteTimeout) svr.rc.VhostHTTPSMuxer, err = vhost.NewHTTPSMuxer(l, vhostReadWriteTimeout)
if err != nil { if err != nil {
err = fmt.Errorf("Create vhost httpsMuxer error, %v", err) err = fmt.Errorf("Create vhost httpsMuxer error, %w", err)
return return
} }
} }
@ -270,7 +270,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.BindUDPPort)) address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.BindUDPPort))
nc, err = nathole.NewController(address) nc, err = nathole.NewController(address)
if err != nil { if err != nil {
err = fmt.Errorf("Create nat hole controller error, %v", err) err = fmt.Errorf("Create nat hole controller error, %w", err)
return return
} }
svr.rc.NatHoleController = nc svr.rc.NatHoleController = nc
@ -286,7 +286,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
address := net.JoinHostPort(cfg.DashboardAddr, strconv.Itoa(cfg.DashboardPort)) address := net.JoinHostPort(cfg.DashboardAddr, strconv.Itoa(cfg.DashboardPort))
err = svr.RunDashboardServer(address) err = svr.RunDashboardServer(address)
if err != nil { if err != nil {
err = fmt.Errorf("Create dashboard web server error, %v", err) err = fmt.Errorf("Create dashboard web server error, %w", err)
return return
} }
log.Info("Dashboard listen on %s", address) log.Info("Dashboard listen on %s", address)

View File

@ -72,7 +72,7 @@ func (vm *Manager) NewConn(name string, conn net.Conn, timestamp int64, signKey
var rwc io.ReadWriteCloser = conn var rwc io.ReadWriteCloser = conn
if useEncryption { if useEncryption {
if rwc, err = frpIo.WithEncryption(rwc, []byte(sk)); err != nil { if rwc, err = frpIo.WithEncryption(rwc, []byte(sk)); err != nil {
err = fmt.Errorf("create encryption connection failed: %v", err) err = fmt.Errorf("create encryption connection failed: %w", err)
return return
} }
} }

View File

@ -43,10 +43,10 @@ func ValidateTestContext(t *TestContextType) error {
return fmt.Errorf("frpc and frps binary path can't be empty") return fmt.Errorf("frpc and frps binary path can't be empty")
} }
if _, err := os.Stat(t.FRPClientPath); err != nil { if _, err := os.Stat(t.FRPClientPath); err != nil {
return fmt.Errorf("load frpc-path error: %v", err) return fmt.Errorf("load frpc-path error: %w", err)
} }
if _, err := os.Stat(t.FRPServerPath); err != nil { if _, err := os.Stat(t.FRPServerPath); err != nil {
return fmt.Errorf("load frps-path error: %v", err) return fmt.Errorf("load frps-path error: %w", err)
} }
return nil return nil
} }

View File

@ -46,11 +46,11 @@ func (cp *SelfSignedCertGenerator) Generate(commonName string) (*Artifacts, erro
if !valid { if !valid {
signingKey, err = NewPrivateKey() signingKey, err = NewPrivateKey()
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to create the CA private key: %v", err) return nil, fmt.Errorf("failed to create the CA private key: %w", err)
} }
signingCert, err = cert.NewSelfSignedCACert(cert.Config{CommonName: commonName}, signingKey) signingCert, err = cert.NewSelfSignedCACert(cert.Config{CommonName: commonName}, signingKey)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to create the CA cert: %v", err) return nil, fmt.Errorf("failed to create the CA cert: %w", err)
} }
} }
@ -65,7 +65,7 @@ func (cp *SelfSignedCertGenerator) Generate(commonName string) (*Artifacts, erro
key, err := NewPrivateKey() key, err := NewPrivateKey()
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to create the private key: %v", err) return nil, fmt.Errorf("failed to create the private key: %w", err)
} }
signedCert, err := NewSignedCert( signedCert, err := NewSignedCert(
cert.Config{ cert.Config{
@ -76,7 +76,7 @@ func (cp *SelfSignedCertGenerator) Generate(commonName string) (*Artifacts, erro
key, signingCert, signingKey, key, signingCert, signingKey,
) )
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to create the cert: %v", err) return nil, fmt.Errorf("failed to create the cert: %w", err)
} }
return &Artifacts{ return &Artifacts{
Key: EncodePrivateKeyPEM(key), Key: EncodePrivateKeyPEM(key),

View File

@ -144,7 +144,7 @@ func (r *Request) Do() (*Response, error) {
} }
proxyType, proxyAddress, auth, err := libdial.ParseProxyURL(r.proxyURL) proxyType, proxyAddress, auth, err := libdial.ParseProxyURL(r.proxyURL)
if err != nil { if err != nil {
return nil, fmt.Errorf("parse ProxyURL error: %v", err) return nil, fmt.Errorf("parse ProxyURL error: %w", err)
} }
conn, err = libdial.Dial(addr, libdial.WithProxy(proxyType, proxyAddress), libdial.WithProxyAuth(auth)) conn, err = libdial.Dial(addr, libdial.WithProxy(proxyType, proxyAddress), libdial.WithProxyAuth(auth))
if err != nil { if err != nil {
@ -235,7 +235,7 @@ func (r *Request) sendHTTPRequest(method, urlstr string, host string, headers ma
func (r *Request) sendRequestByConn(c net.Conn, content []byte) ([]byte, error) { func (r *Request) sendRequestByConn(c net.Conn, content []byte) ([]byte, error) {
_, err := rpc.WriteBytes(c, content) _, err := rpc.WriteBytes(c, content)
if err != nil { if err != nil {
return nil, fmt.Errorf("write error: %v", err) return nil, fmt.Errorf("write error: %w", err)
} }
var reader io.Reader = c var reader io.Reader = c
@ -245,7 +245,7 @@ func (r *Request) sendRequestByConn(c net.Conn, content []byte) ([]byte, error)
buf, err := rpc.ReadBytes(reader) buf, err := rpc.ReadBytes(reader)
if err != nil { if err != nil {
return nil, fmt.Errorf("read error: %v", err) return nil, fmt.Errorf("read error: %w", err)
} }
return buf, nil return buf, nil
} }