fix ipfs swarm peering crash in offline mode (#9261)
Yann Autissier committed
Oct 13, 2022 at 14:43 UTC
b5fe82496458beb294cd6d612c015a2accf26c2b
1 file changed
+14
-4
core/commands/swarm.go
+14
-4
@@ -123,6 +123,9 @@ var swarmPeeringAddCmd = &cmds.Command{
123
if err != nil {
124
return err
125
}
126
+ if !node.IsOnline {
127
+ return ErrNotOnline
128
+ }
129
130
for _, addrinfo := range addInfos {
131
node.Peering.AddPeer(addrinfo)
@@ -154,6 +157,10 @@ var swarmPeeringLsCmd = &cmds.Command{
157
if err != nil {
158
return err
159
}
160
+ if !node.IsOnline {
161
+ return ErrNotOnline
162
+ }
163
+
164
peers := node.Peering.ListPeers()
165
return cmds.EmitOnce(res, addrInfos{Peers: peers})
166
},
@@ -190,6 +197,9 @@ var swarmPeeringRmCmd = &cmds.Command{
197
if err != nil {
198
return err
199
}
200
+ if !node.IsOnline {
201
+ return ErrNotOnline
202
+ }
203
204
for _, arg := range req.Arguments {
205
id, err := peer.Decode(arg)
@@ -207,7 +217,7 @@ var swarmPeeringRmCmd = &cmds.Command{
217
Type: peeringResult{},
218
Encoders: cmds.EncoderMap{
219
cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, pr *peeringResult) error {
210
- fmt.Fprintf(w, "add %s %s\n", pr.ID.String(), pr.Status)
220
+ fmt.Fprintf(w, "remove %s %s\n", pr.ID.String(), pr.Status)
221
return nil
222
}),
223
},
@@ -853,7 +863,7 @@ Filters default to those specified under the "Swarm.AddrFilters" config key.
863
return err
864
}
865
856
- if n.PeerHost == nil {
866
+ if !n.IsOnline {
867
return ErrNotOnline
868
}
869
@@ -889,7 +899,7 @@ var swarmFiltersAddCmd = &cmds.Command{
899
return err
900
}
901
892
- if n.PeerHost == nil {
902
+ if !n.IsOnline {
903
return ErrNotOnline
904
}
905
@@ -945,7 +955,7 @@ var swarmFiltersRmCmd = &cmds.Command{
955
return err
956
}
957
948
- if n.PeerHost == nil {
958
+ if !n.IsOnline {
959
return ErrNotOnline
960
}
961