Skip to content

Commit a3c72d6

Browse files
committed
fix: allow daemon to start correctly if the API is null
Fixes: #10056
1 parent b8c4725 commit a3c72d6

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

cmd/ipfs/daemon.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -714,8 +714,11 @@ func serveHTTPApi(req *cmds.Request, cctx *oldcmds.Context) (<-chan error, error
714714
return nil, fmt.Errorf("serveHTTPApi: ConstructNode() failed: %s", err)
715715
}
716716

717-
if err := node.Repo.SetAPIAddr(rewriteMaddrToUseLocalhostIfItsAny(listeners[0].Multiaddr())); err != nil {
718-
return nil, fmt.Errorf("serveHTTPApi: SetAPIAddr() failed: %w", err)
717+
if len(listeners) > 0 {
718+
// Only add an api file if the API is running.
719+
if err := node.Repo.SetAPIAddr(rewriteMaddrToUseLocalhostIfItsAny(listeners[0].Multiaddr())); err != nil {
720+
return nil, fmt.Errorf("serveHTTPApi: SetAPIAddr() failed: %w", err)
721+
}
719722
}
720723

721724
errc := make(chan error)

test/cli/daemon_test.go

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package cli
2+
3+
import (
4+
"testing"
5+
6+
"github.com/ipfs/kubo/test/cli/harness"
7+
)
8+
9+
func TestDaemon(t *testing.T) {
10+
t.Parallel()
11+
12+
t.Run("daemon starts if api is set to null", func(t *testing.T) {
13+
t.Parallel()
14+
node := harness.NewT(t).NewNode().Init()
15+
node.SetIPFSConfig("API", nil)
16+
node.IPFS("daemon") // can't use .StartDaemon because it do a .WaitOnAPI
17+
})
18+
}

0 commit comments

Comments
 (0)