From 5b7ea5da2a8192f0ce32efbb28a4f9a2e2160f46 Mon Sep 17 00:00:00 2001 From: Gaius Date: Thu, 17 Aug 2023 17:21:50 +0800 Subject: [PATCH] Revert "feat: replace fmt.Sprintf with net.JoinHostPort" (#2649) Revert "feat: replace fmt.Sprintf with net.JoinHostPort (#2642)" This reverts commit a6863f9b196cb1dbed4e672a98b211083f27111a. --- client/config/deprecated.go | 5 ++--- client/config/dynconfig_manager.go | 4 ++-- client/config/flags.go | 3 +-- client/daemon/objectstorage/objectstorage.go | 2 +- client/daemon/peer/peertask_manager.go | 3 +-- client/daemon/peer/peertask_piecetask_synchronizer.go | 3 +-- client/daemon/proxy/proxy_sni.go | 2 +- client/daemon/rpcserver/rpcserver.go | 2 +- manager/config/config.go | 2 +- manager/database/mysql.go | 3 +-- pkg/rpc/server_listen.go | 2 +- scheduler/config/config.go | 2 +- scheduler/config/dynconfig.go | 2 +- scheduler/resource/peer.go | 3 +-- scheduler/resource/seed_peer_client.go | 5 ++--- scheduler/scheduler.go | 2 +- scheduler/service/service_v1.go | 3 +-- test/tools/stress/main.go | 2 +- trainer/trainer.go | 2 +- 19 files changed, 22 insertions(+), 30 deletions(-) diff --git a/client/config/deprecated.go b/client/config/deprecated.go index 1b1c71d9f..c0146baea 100644 --- a/client/config/deprecated.go +++ b/client/config/deprecated.go @@ -19,13 +19,12 @@ package config import ( "errors" "fmt" - "net" "strings" ) var DefaultSupernodesValue = &SupernodesValue{ Nodes: []string{ - net.JoinHostPort(DefaultSchedulerIP, fmt.Sprint(DefaultSchedulerPort)), + fmt.Sprintf("%s:%d", DefaultSchedulerIP, DefaultSchedulerPort), }, } @@ -55,7 +54,7 @@ func (sv *SupernodesValue) Set(value string) error { return errors.New("invalid nodes") } if len(vv) == 1 { - node = net.JoinHostPort(node, fmt.Sprint(DefaultSchedulerPort)) + node = fmt.Sprintf("%s:%d", node, DefaultSchedulerPort) } sv.Nodes = append(sv.Nodes, node) } diff --git a/client/config/dynconfig_manager.go b/client/config/dynconfig_manager.go index 715f8f137..4812d6b7a 100644 --- a/client/config/dynconfig_manager.go +++ b/client/config/dynconfig_manager.go @@ -104,12 +104,12 @@ func (d *dynconfigManager) GetResolveSchedulerAddrs() ([]resolver.Address, error var addr string if ip, ok := ip.FormatIP(scheduler.GetIp()); ok { // Check health with ip address. - target := net.JoinHostPort(ip, fmt.Sprint(scheduler.GetPort())) + target := fmt.Sprintf("%s:%d", ip, scheduler.GetPort()) if err := healthclient.Check(context.Background(), target, dialOptions...); err != nil { logger.Warnf("scheduler ip address %s is unreachable: %s", addr, err.Error()) // Check health with host address. - target = net.JoinHostPort(scheduler.GetHostname(), fmt.Sprint(scheduler.GetPort())) + target = fmt.Sprintf("%s:%d", scheduler.GetHostname(), scheduler.GetPort()) if err := healthclient.Check(context.Background(), target, dialOptions...); err != nil { logger.Warnf("scheduler host address %s is unreachable: %s", addr, err.Error()) } else { diff --git a/client/config/flags.go b/client/config/flags.go index 505dfb117..f8eada272 100644 --- a/client/config/flags.go +++ b/client/config/flags.go @@ -19,7 +19,6 @@ package config import ( "errors" "fmt" - "net" "strconv" "strings" "time" @@ -60,7 +59,7 @@ func (nv *NetAddrsValue) Set(value string) error { return errors.New("invalid net address") } if len(vv) == 1 { - value = net.JoinHostPort(value, fmt.Sprint(DefaultSchedulerPort)) + value = fmt.Sprintf("%s:%d", value, DefaultSchedulerPort) } if !nv.isSet && len(*nv.n) > 0 { diff --git a/client/daemon/objectstorage/objectstorage.go b/client/daemon/objectstorage/objectstorage.go index 672d63d33..44dd386c3 100644 --- a/client/daemon/objectstorage/objectstorage.go +++ b/client/daemon/objectstorage/objectstorage.go @@ -656,7 +656,7 @@ func (o *objectStorage) importObjectToSeedPeers(ctx context.Context, bucketName, for _, scheduler := range schedulers { for _, seedPeer := range scheduler.SeedPeers { if o.config.Host.AdvertiseIP.String() != seedPeer.Ip && seedPeer.ObjectStoragePort > 0 { - seedPeerHosts = append(seedPeerHosts, net.JoinHostPort(seedPeer.Ip, fmt.Sprint(seedPeer.ObjectStoragePort))) + seedPeerHosts = append(seedPeerHosts, fmt.Sprintf("%s:%d", seedPeer.Ip, seedPeer.ObjectStoragePort)) } } } diff --git a/client/daemon/peer/peertask_manager.go b/client/daemon/peer/peertask_manager.go index 339927c72..33ca897c4 100644 --- a/client/daemon/peer/peertask_manager.go +++ b/client/daemon/peer/peertask_manager.go @@ -23,7 +23,6 @@ import ( "errors" "fmt" "io" - "net" "sync" "github.com/go-http-utils/headers" @@ -487,7 +486,7 @@ func (ptm *peerTaskManager) AnnouncePeerTask(ctx context.Context, meta storage.P if err != nil { return err } - piecePacket.DstAddr = net.JoinHostPort(ptm.PeerHost.Ip, fmt.Sprint(ptm.PeerHost.DownPort)) + piecePacket.DstAddr = fmt.Sprintf("%s:%d", ptm.PeerHost.Ip, ptm.PeerHost.DownPort) // Announce peer task to scheduler if err := ptm.SchedulerClient.AnnounceTask(ctx, &schedulerv1.AnnounceTaskRequest{ diff --git a/client/daemon/peer/peertask_piecetask_synchronizer.go b/client/daemon/peer/peertask_piecetask_synchronizer.go index 91b645fd8..1ff7cfdc5 100644 --- a/client/daemon/peer/peertask_piecetask_synchronizer.go +++ b/client/daemon/peer/peertask_piecetask_synchronizer.go @@ -21,7 +21,6 @@ import ( "errors" "fmt" "io" - "net" "sync" "time" @@ -259,7 +258,7 @@ func (s *pieceTaskSynchronizer) start(request *commonv1.PieceTaskRequest, dstPee netAddr := &dfnet.NetAddr{ Type: dfnet.TCP, - Addr: net.JoinHostPort(formatIP, fmt.Sprint(dstPeer.RpcPort)), + Addr: fmt.Sprintf("%s:%d", formatIP, dstPeer.RpcPort), } credentialOpt := grpc.WithTransportCredentials(s.peerTaskConductor.GRPCCredentials) diff --git a/client/daemon/proxy/proxy_sni.go b/client/daemon/proxy/proxy_sni.go index 257b6a951..293698d47 100644 --- a/client/daemon/proxy/proxy_sni.go +++ b/client/daemon/proxy/proxy_sni.go @@ -112,7 +112,7 @@ func (proxy *Proxy) handleTLSConn(clientConn net.Conn, port int) { req.URL.Scheme = schemaHTTPS req.URL.Host = serverName if port != portHTTPS { - req.URL.Host = net.JoinHostPort(serverName, fmt.Sprint(port)) + req.URL.Host = fmt.Sprintf("%s:%d", serverName, port) } if proxy.dumpHTTPContent { if out, e := httputil.DumpRequest(req, false); e == nil { diff --git a/client/daemon/rpcserver/rpcserver.go b/client/daemon/rpcserver/rpcserver.go index bb7aa0906..5bfc2773e 100644 --- a/client/daemon/rpcserver/rpcserver.go +++ b/client/daemon/rpcserver/rpcserver.go @@ -131,7 +131,7 @@ func (s *server) ServeDownload(listener net.Listener) error { } func (s *server) ServePeer(listener net.Listener) error { - s.uploadAddr = net.JoinHostPort(s.peerHost.Ip, fmt.Sprint(s.peerHost.DownPort)) + s.uploadAddr = fmt.Sprintf("%s:%d", s.peerHost.Ip, s.peerHost.DownPort) return s.peerServer.Serve(listener) } diff --git a/manager/config/config.go b/manager/config/config.go index a55ed630e..c96421454 100644 --- a/manager/config/config.go +++ b/manager/config/config.go @@ -672,7 +672,7 @@ func (cfg *Config) Validate() error { func (cfg *Config) Convert() error { // TODO Compatible with deprecated fields host and port. if len(cfg.Database.Redis.Addrs) == 0 && cfg.Database.Redis.Host != "" && cfg.Database.Redis.Port > 0 { - cfg.Database.Redis.Addrs = []string{net.JoinHostPort(cfg.Database.Redis.Host, fmt.Sprint(cfg.Database.Redis.Port))} + cfg.Database.Redis.Addrs = []string{fmt.Sprintf("%s:%d", cfg.Database.Redis.Host, cfg.Database.Redis.Port)} } if cfg.Server.GRPC.AdvertiseIP == nil { diff --git a/manager/database/mysql.go b/manager/database/mysql.go index 78099058a..e201fa255 100644 --- a/manager/database/mysql.go +++ b/manager/database/mysql.go @@ -18,7 +18,6 @@ package database import ( "fmt" - "net" "time" "github.com/docker/go-connections/tlsconfig" @@ -91,7 +90,7 @@ func formatMysqlDSN(cfg *config.MysqlConfig) (string, error) { mysqlCfg := mysql.Config{ User: cfg.User, Passwd: cfg.Password, - Addr: net.JoinHostPort(cfg.Host, fmt.Sprint(cfg.Port)), + Addr: fmt.Sprintf("%s:%d", cfg.Host, cfg.Port), Net: "tcp", DBName: cfg.DBName, Loc: time.Local, diff --git a/pkg/rpc/server_listen.go b/pkg/rpc/server_listen.go index 13da424ff..6ee4b98a9 100644 --- a/pkg/rpc/server_listen.go +++ b/pkg/rpc/server_listen.go @@ -53,7 +53,7 @@ func ListenWithPortRange(listen string, startPort, endPort int) (net.Listener, i for port := startPort; port <= endPort; port++ { logger.Debugf("start to listen port: %s:%d", ip, port) - listener, err := net.Listen("tcp", net.JoinHostPort(ip, fmt.Sprint(port))) + listener, err := net.Listen("tcp", fmt.Sprintf("%s:%d", ip, port)) if err == nil && listener != nil { return listener, listener.Addr().(*net.TCPAddr).Port, nil } diff --git a/scheduler/config/config.go b/scheduler/config/config.go index 713360f91..35b0e081d 100644 --- a/scheduler/config/config.go +++ b/scheduler/config/config.go @@ -653,7 +653,7 @@ func (cfg *Config) Convert() error { // TODO Compatible with deprecated fields host and port of redis of job. if len(cfg.Database.Redis.Addrs) == 0 && len(cfg.Job.Redis.Addrs) == 0 && cfg.Job.Redis.Host != "" && cfg.Job.Redis.Port > 0 { - cfg.Database.Redis.Addrs = []string{net.JoinHostPort(cfg.Job.Redis.Host, fmt.Sprint(cfg.Job.Redis.Port))} + cfg.Database.Redis.Addrs = []string{fmt.Sprintf("%s:%d", cfg.Job.Redis.Host, cfg.Job.Redis.Port)} } // TODO Compatible with deprecated fields master name of redis of job. diff --git a/scheduler/config/dynconfig.go b/scheduler/config/dynconfig.go index d83c92f85..6ba996b74 100644 --- a/scheduler/config/dynconfig.go +++ b/scheduler/config/dynconfig.go @@ -181,7 +181,7 @@ func (d *dynconfig) GetResolveSeedPeerAddrs() ([]resolver.Address, error) { var addr string if ip, ok := ip.FormatIP(seedPeer.GetIp()); ok { // Check health with ip address. - target := net.JoinHostPort(ip, fmt.Sprint(seedPeer.GetPort())) + target := fmt.Sprintf("%s:%d", ip, seedPeer.GetPort()) if err := healthclient.Check(context.Background(), target, dialOptions...); err != nil { logger.Warnf("seed peer ip address %s is unreachable: %s", addr, err.Error()) diff --git a/scheduler/resource/peer.go b/scheduler/resource/peer.go index 9436c311f..6b9a5d3cc 100644 --- a/scheduler/resource/peer.go +++ b/scheduler/resource/peer.go @@ -21,7 +21,6 @@ import ( "crypto/tls" "fmt" "io" - "net" "net/http" "net/url" "regexp" @@ -448,7 +447,7 @@ func (p *Peer) DownloadTinyFile() ([]byte, error) { // Download path: ${host}:${port}/download/${taskIndex}/${taskID}?peerId=${peerID} targetURL := url.URL{ Scheme: p.Config.Task.DownloadTiny.Scheme, - Host: net.JoinHostPort(p.Host.IP, fmt.Sprint(p.Host.DownloadPort)), + Host: fmt.Sprintf("%s:%d", p.Host.IP, p.Host.DownloadPort), Path: fmt.Sprintf("download/%s/%s", p.Task.ID[:3], p.Task.ID), RawQuery: fmt.Sprintf("peerId=%s", p.ID), } diff --git a/scheduler/resource/seed_peer_client.go b/scheduler/resource/seed_peer_client.go index 94e94e0b1..69cdd5ed7 100644 --- a/scheduler/resource/seed_peer_client.go +++ b/scheduler/resource/seed_peer_client.go @@ -21,7 +21,6 @@ package resource import ( "context" "fmt" - "net" reflect "reflect" "google.golang.org/grpc" @@ -92,7 +91,7 @@ func newSeedPeerClient(dynconfig config.DynconfigInterface, hostManager HostMana func (sc *seedPeerClient) Addrs() []string { var addrs []string for _, seedPeer := range sc.data.Scheduler.SeedPeers { - addrs = append(addrs, net.JoinHostPort(seedPeer.Ip, fmt.Sprint(seedPeer.Port))) + addrs = append(addrs, fmt.Sprintf("%s:%d", seedPeer.Ip, seedPeer.Port)) } return addrs @@ -163,7 +162,7 @@ func seedPeersToNetAddrs(seedPeers []*managerv2.SeedPeer) []dfnet.NetAddr { for _, seedPeer := range seedPeers { netAddrs = append(netAddrs, dfnet.NetAddr{ Type: dfnet.TCP, - Addr: net.JoinHostPort(seedPeer.Ip, fmt.Sprint(seedPeer.Port)), + Addr: fmt.Sprintf("%s:%d", seedPeer.Ip, seedPeer.Port), }) } diff --git a/scheduler/scheduler.go b/scheduler/scheduler.go index d36cadd02..ca364b1c6 100644 --- a/scheduler/scheduler.go +++ b/scheduler/scheduler.go @@ -347,7 +347,7 @@ func (s *Server) Serve() error { return errors.New("format ip failed") } - listener, err := net.Listen("tcp", net.JoinHostPort(ip, fmt.Sprint(s.config.Server.Port))) + listener, err := net.Listen("tcp", fmt.Sprintf("%s:%d", ip, s.config.Server.Port)) if err != nil { logger.Fatalf("net listener failed to start: %s", err.Error()) } diff --git a/scheduler/service/service_v1.go b/scheduler/service/service_v1.go index 89e560cbd..4b44ebf6c 100644 --- a/scheduler/service/service_v1.go +++ b/scheduler/service/service_v1.go @@ -22,7 +22,6 @@ import ( "fmt" "io" "math" - "net" "strings" "time" @@ -1016,7 +1015,7 @@ func (v *V1) registerSmallTask(ctx context.Context, peer *resource.Peer) (*sched DirectPiece: &schedulerv1.RegisterResult_SinglePiece{ SinglePiece: &schedulerv1.SinglePiece{ DstPid: candidateParent.ID, - DstAddr: net.JoinHostPort(candidateParent.Host.IP, fmt.Sprint(candidateParent.Host.DownloadPort)), + DstAddr: fmt.Sprintf("%s:%d", candidateParent.Host.IP, candidateParent.Host.DownloadPort), PieceInfo: pieceInfo, }, }, diff --git a/test/tools/stress/main.go b/test/tools/stress/main.go index 803be2389..2e63cad8d 100644 --- a/test/tools/stress/main.go +++ b/test/tools/stress/main.go @@ -128,7 +128,7 @@ loop: } func debug() { - debugAddr := net.JoinHostPort(ip.IPv4.String(), fmt.Sprint(18066)) + debugAddr := fmt.Sprintf("%s:%d", ip.IPv4.String(), 18066) viewer.SetConfiguration(viewer.WithAddr(debugAddr)) if err := statsview.New().Start(); err != nil { log.Println("stat view start failed", err) diff --git a/trainer/trainer.go b/trainer/trainer.go index c40c8c104..a14ab972f 100644 --- a/trainer/trainer.go +++ b/trainer/trainer.go @@ -126,7 +126,7 @@ func (s *Server) Serve() error { return errors.New("format ip failed") } - listener, err := net.Listen("tcp", net.JoinHostPort(ip, fmt.Sprint(s.config.Server.Port))) + listener, err := net.Listen("tcp", fmt.Sprintf("%s:%d", ip, s.config.Server.Port)) if err != nil { logger.Fatalf("net listener failed to start: %s", err.Error()) }