diff --git a/cmd/ipfs/daemon.go b/cmd/ipfs/daemon.go index 24e42093c..5f8e959e5 100644 --- a/cmd/ipfs/daemon.go +++ b/cmd/ipfs/daemon.go @@ -1,6 +1,7 @@ package main import ( + "errors" _ "expvar" "fmt" "net" @@ -338,6 +339,11 @@ func daemonFunc(req cmds.Request, res cmds.Response) { res.SetError(err, cmds.ErrNormal) return } + if mount && offline { + res.SetError(errors.New("mount is not currently supported in offline mode"), + cmds.ErrClient) + return + } if mount { if err := mountFuse(req); err != nil { res.SetError(err, cmds.ErrNormal) diff --git a/test/sharness/t0600-issues-and-regressions-online.sh b/test/sharness/t0600-issues-and-regressions-online.sh index e899060bb..ca95514b8 100755 --- a/test/sharness/t0600-issues-and-regressions-online.sh +++ b/test/sharness/t0600-issues-and-regressions-online.sh @@ -24,10 +24,15 @@ test_expect_success "args expecting stdin dont crash when not given" ' ' test_expect_success "no panic traces on daemon" ' - test_expect_failure grep "nil pointer dereference" daemon_err + test_must_fail grep "nil pointer dereference" daemon_err ' test_kill_ipfs_daemon +test_expect_success "ipfs daemon --offline --mount fails - #2995" ' + test_expect_code 1 ipfs daemon --offline --mount 2>daemon_err && + grep "mount is not currently supported in offline mode" daemon_err +' + test_done