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
- nestif
- errorlint
# - ineffassign
- lll
- contextcheck
- bodyclose

View File

@ -17,6 +17,7 @@ package client
import (
"context"
"crypto/tls"
"errors"
"io"
"net"
"runtime/debug"
@ -287,7 +288,7 @@ func (ctl *Control) reader() {
for {
m, err := msg.ReadMsg(encReader)
if err != nil {
if err == io.EOF {
if errors.Is(err, io.EOF) {
xl.Debug("read from control connection EOF")
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)))
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)
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)
@ -506,7 +506,7 @@ func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) {
xl := xlog.FromContextSafe(sv.ctx)
visitorConn, err := sv.ctl.connectServer()
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()
@ -519,14 +519,14 @@ func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) {
}
err = msg.WriteMsg(visitorConn, newVisitorConnMsg)
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
visitorConn.SetReadDeadline(time.Now().Add(10 * time.Second))
err = msg.ReadMsgInto(visitorConn, &newVisitorConnRespMsg)
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{})
@ -539,7 +539,7 @@ func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, error) {
if sv.cfg.UseEncryption {
remote, err = frpIo.WithEncryption(remote, []byte(sv.cfg.Sk))
if err != nil {
xl.Error("create encryption stream error: %v", err)
xl.Error("create encryption stream error: %w", err)
return nil, err
}
}

View File

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

View File

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

View File

@ -116,7 +116,7 @@ func NewOidcAuthSetter(baseCfg BaseConfig, cfg OidcClientConfig) *OidcAuthProvid
func (auth *OidcAuthProvider) generateAccessToken() (accessToken string, err error) {
tokenObj, err := auth.tokenGenerator.Token(context.Background())
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
}
@ -171,7 +171,7 @@ func NewOidcAuthVerifier(baseCfg BaseConfig, cfg OidcServerConfig) *OidcAuthCons
func (auth *OidcAuthConsumer) VerifyLogin(loginMsg *msg.Login) (err error) {
token, err := auth.verifier.Verify(context.Background(), loginMsg.PrivilegeKey)
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
return nil
@ -180,7 +180,7 @@ func (auth *OidcAuthConsumer) VerifyLogin(loginMsg *msg.Login) (err error) {
func (auth *OidcAuthConsumer) verifyPostLoginToken(privilegeKey string) (err error) {
token, err := auth.verifier.Verify(context.Background(), privilegeKey)
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 {
return fmt.Errorf("received different OIDC subject in login and ping. "+

View File

@ -320,7 +320,7 @@ func LoadAllProxyConfsFromIni(
for _, section := range rangeSections {
err = renderRangeProxyTemplates(f, section)
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":
newConf, newErr := NewProxyConfFromIni(prefix, name, section)
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
case "visitor":

View File

@ -42,7 +42,7 @@ func ParseClientConfig(filePath string) (
}
cfg.Complete()
if err = cfg.Validate(); err != nil {
err = fmt.Errorf("Parse config error: %v", err)
err = fmt.Errorf("Parse config error: %w", err)
return
}
@ -50,7 +50,7 @@ func ParseClientConfig(filePath string) (
var buf []byte
buf, err = getIncludeContents(cfg.IncludeConfigFiles)
if err != nil {
err = fmt.Errorf("getIncludeContents error: %v", err)
err = fmt.Errorf("getIncludeContents error: %w", err)
return
}
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 {
tmpContent, err := GetRenderedConfFromFile(absFile)
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.WriteString("\n")

View File

@ -639,7 +639,7 @@ func (cfg *TCPMuxProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error)
}
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
}
@ -788,7 +788,7 @@ func (cfg *HTTPProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) {
}
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
}
@ -860,7 +860,7 @@ func (cfg *HTTPSProxyConf) CheckForSvr(serverCfg ServerCommonConf) (err error) {
}
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
}

View File

@ -246,7 +246,7 @@ func UnmarshalServerConfFromIni(source interface{}) (ServerCommonConf, error) {
if allowPortStr != "" {
allowPorts, err := util.ParseRangeNumbers(allowPortStr)
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 {
common.AllowPorts[int(port)] = struct{}{}

View File

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

View File

@ -98,7 +98,7 @@ func NewHTTPS2HTTPPlugin(params map[string]string) (Plugin, error) {
tlsConfig, err := p.genTLSConfig()
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)

View File

@ -103,7 +103,7 @@ func NewHTTPS2HTTPSPlugin(params map[string]string) (Plugin, error) {
tlsConfig, err := p.genTLSConfig()
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)

View File

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

View File

@ -146,7 +146,7 @@ func (rp *HTTPReverseProxy) CreateConnection(domain string, location string, rem
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 {

View File

@ -8,6 +8,7 @@ package vhost
import (
"context"
"errors"
"fmt"
"io"
"log"
@ -456,7 +457,7 @@ func (p *ReverseProxy) copyBuffer(dst io.Writer, src io.Reader, buf []byte) (int
var written int64
for {
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)
}
if nr > 0 {
@ -582,7 +583,7 @@ func (p *ReverseProxy) handleUpgradeResponse(rw http.ResponseWriter, req *http.R
conn, brw, err := hj.Hijack()
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
}
defer conn.Close()
@ -592,11 +593,11 @@ func (p *ReverseProxy) handleUpgradeResponse(rw http.ResponseWriter, req *http.R
res.Header = rw.Header()
res.Body = nil // so res.Write only writes the headers; we have res.Body in backConn above
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
}
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
}
errc := make(chan error, 1)

View File

@ -16,6 +16,7 @@ package server
import (
"context"
"errors"
"fmt"
"io"
"net"
@ -25,7 +26,7 @@ import (
"github.com/fatedier/golib/control/shutdown"
"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/config"
@ -248,7 +249,7 @@ func (ctl *Control) GetWorkConn() (workConn net.Conn, err error) {
xl.Debug("get work connection from pool")
default:
// 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{}
}); err != nil {
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.
errors.PanicToError(func() {
gErr.PanicToError(func() {
ctl.sendCh <- &msg.ReqWorkConn{}
})
return
@ -331,7 +332,7 @@ func (ctl *Control) reader() {
for {
m, err := msg.ReadMsg(encReader)
if err != nil {
if err == io.EOF {
if errors.Is(err, io.EOF) {
xl.Debug("control connection closed")
return
}

View File

@ -88,7 +88,10 @@ func (svr *Service) APIServerInfo(w http.ResponseWriter, r *http.Request) {
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)
}

View File

@ -61,7 +61,7 @@ func (pxy *UDPProxy) Run() (remoteAddr string, err error) {
xl := pxy.xl
pxy.realPort, err = pxy.rc.UDPPortManager.Acquire(pxy.name, pxy.cfg.RemotePort)
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() {
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))
l, err = net.Listen("tcp", address)
if err != nil {
err = fmt.Errorf("Create server listener error, %v", err)
err = fmt.Errorf("Create server listener error, %w", err)
return
}
svr.rc.TCPMuxHTTPConnectMuxer, err = tcpmux.NewHTTPConnectTCPMuxer(l, vhostReadWriteTimeout)
if err != nil {
err = fmt.Errorf("Create vhost tcpMuxer error, %v", err)
err = fmt.Errorf("Create vhost tcpMuxer error, %w", err)
return
}
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))
ln, err := net.Listen("tcp", address)
if err != nil {
err = fmt.Errorf("Create server listener error, %v", err)
err = fmt.Errorf("Create server listener error, %w", err)
return
}
@ -197,7 +197,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.KCPBindPort))
svr.kcpListener, err = frpNet.ListenKcp(address)
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
}
log.Info("frps kcp listen on udp %s", address)
@ -228,7 +228,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
} else {
l, err = net.Listen("tcp", address)
if err != nil {
err = fmt.Errorf("Create vhost http listener error, %v", err)
err = fmt.Errorf("Create vhost http listener error, %w", err)
return
}
}
@ -245,7 +245,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
address := net.JoinHostPort(cfg.ProxyBindAddr, strconv.Itoa(cfg.VhostHTTPSPort))
l, err = net.Listen("tcp", address)
if err != nil {
err = fmt.Errorf("Create server listener error, %v", err)
err = fmt.Errorf("Create server listener error, %w", err)
return
}
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)
if err != nil {
err = fmt.Errorf("Create vhost httpsMuxer error, %v", err)
err = fmt.Errorf("Create vhost httpsMuxer error, %w", err)
return
}
}
@ -270,7 +270,7 @@ func NewService(cfg config.ServerCommonConf) (svr *Service, err error) {
address := net.JoinHostPort(cfg.BindAddr, strconv.Itoa(cfg.BindUDPPort))
nc, err = nathole.NewController(address)
if err != nil {
err = fmt.Errorf("Create nat hole controller error, %v", err)
err = fmt.Errorf("Create nat hole controller error, %w", err)
return
}
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))
err = svr.RunDashboardServer(address)
if err != nil {
err = fmt.Errorf("Create dashboard web server error, %v", err)
err = fmt.Errorf("Create dashboard web server error, %w", err)
return
}
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
if useEncryption {
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
}
}

View File

@ -43,10 +43,10 @@ func ValidateTestContext(t *TestContextType) error {
return fmt.Errorf("frpc and frps binary path can't be empty")
}
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 {
return fmt.Errorf("load frps-path error: %v", err)
return fmt.Errorf("load frps-path error: %w", err)
}
return nil
}

View File

@ -46,11 +46,11 @@ func (cp *SelfSignedCertGenerator) Generate(commonName string) (*Artifacts, erro
if !valid {
signingKey, err = NewPrivateKey()
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)
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()
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(
cert.Config{
@ -76,7 +76,7 @@ func (cp *SelfSignedCertGenerator) Generate(commonName string) (*Artifacts, erro
key, signingCert, signingKey,
)
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{
Key: EncodePrivateKeyPEM(key),

View File

@ -144,7 +144,7 @@ func (r *Request) Do() (*Response, error) {
}
proxyType, proxyAddress, auth, err := libdial.ParseProxyURL(r.proxyURL)
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))
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) {
_, err := rpc.WriteBytes(c, content)
if err != nil {
return nil, fmt.Errorf("write error: %v", err)
return nil, fmt.Errorf("write error: %w", err)
}
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)
if err != nil {
return nil, fmt.Errorf("read error: %v", err)
return nil, fmt.Errorf("read error: %w", err)
}
return buf, nil
}