diff --git a/cmd/lotus-worker/main.go b/cmd/lotus-worker/main.go index 6ad3a448e..873dada47 100644 --- a/cmd/lotus-worker/main.go +++ b/cmd/lotus-worker/main.go @@ -627,7 +627,7 @@ var runCmd = &cli.Command{ Storage: lr, } - log.Info("Setting up control endpoint at " + address) + log.Info("Setting up control endpoint at " + newAddress) timeout, err := time.ParseDuration(cctx.String("http-server-timeout")) if err != nil { @@ -652,13 +652,13 @@ var runCmd = &cli.Command{ log.Warn("Graceful shutdown successful") }() - nl, err := net.Listen("tcp", address) + nl, err := net.Listen("tcp", newAddress) if err != nil { return err } { - a, err := net.ResolveTCPAddr("tcp", address) + a, err := net.ResolveTCPAddr("tcp", newAddress) if err != nil { return xerrors.Errorf("parsing address: %w", err) } @@ -739,7 +739,7 @@ var runCmd = &cli.Command{ select { case <-readyCh: - if err := nodeApi.WorkerConnect(ctx, "http://"+address+"/rpc/v0"); err != nil { + if err := nodeApi.WorkerConnect(ctx, "http://"+newAddress+"/rpc/v0"); err != nil { log.Errorf("Registering worker failed: %+v", err) cancel() return @@ -801,15 +801,13 @@ func extractRoutableIP(timeout time.Duration) (string, error) { } minerIP, _ := maddr.ValueForProtocol(multiaddr.P_IP6) + if minerIP == "" { + minerIP, _ = maddr.ValueForProtocol(multiaddr.P_IP4) + } minerPort, _ := maddr.ValueForProtocol(multiaddr.P_TCP) - // Check if the IP is IPv6 and format the address appropriately - var addressToDial string - if ip := net.ParseIP(minerIP); ip.To4() == nil && ip.To16() != nil { - addressToDial = "[" + minerIP + "]:" + minerPort - } else { - addressToDial = minerIP + ":" + minerPort - } + // Format the address appropriately + addressToDial := net.JoinHostPort(minerIP, minerPort) conn, err := net.DialTimeout("tcp", addressToDial, timeout) if err != nil {