From b5fe82496458beb294cd6d612c015a2accf26c2b Mon Sep 17 00:00:00 2001 From: Yann Autissier Date: Thu, 13 Oct 2022 14:43:06 +0000 Subject: [PATCH] fix ipfs swarm peering crash in offline mode (#9261) --- core/commands/swarm.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/core/commands/swarm.go b/core/commands/swarm.go index 4594f07bd..f5315445e 100644 --- a/core/commands/swarm.go +++ b/core/commands/swarm.go @@ -123,6 +123,9 @@ var swarmPeeringAddCmd = &cmds.Command{ if err != nil { return err } + if !node.IsOnline { + return ErrNotOnline + } for _, addrinfo := range addInfos { node.Peering.AddPeer(addrinfo) @@ -154,6 +157,10 @@ var swarmPeeringLsCmd = &cmds.Command{ if err != nil { return err } + if !node.IsOnline { + return ErrNotOnline + } + peers := node.Peering.ListPeers() return cmds.EmitOnce(res, addrInfos{Peers: peers}) }, @@ -190,6 +197,9 @@ var swarmPeeringRmCmd = &cmds.Command{ if err != nil { return err } + if !node.IsOnline { + return ErrNotOnline + } for _, arg := range req.Arguments { id, err := peer.Decode(arg) @@ -207,7 +217,7 @@ var swarmPeeringRmCmd = &cmds.Command{ Type: peeringResult{}, Encoders: cmds.EncoderMap{ cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, pr *peeringResult) error { - fmt.Fprintf(w, "add %s %s\n", pr.ID.String(), pr.Status) + fmt.Fprintf(w, "remove %s %s\n", pr.ID.String(), pr.Status) return nil }), }, @@ -853,7 +863,7 @@ Filters default to those specified under the "Swarm.AddrFilters" config key. return err } - if n.PeerHost == nil { + if !n.IsOnline { return ErrNotOnline } @@ -889,7 +899,7 @@ var swarmFiltersAddCmd = &cmds.Command{ return err } - if n.PeerHost == nil { + if !n.IsOnline { return ErrNotOnline } @@ -945,7 +955,7 @@ var swarmFiltersRmCmd = &cmds.Command{ return err } - if n.PeerHost == nil { + if !n.IsOnline { return ErrNotOnline }