diff --git a/cmd/ipfs/daemon.go b/cmd/ipfs/daemon.go index 24e42093caa..f54ea45e9c1 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 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 e899060bbce..2b17f4ee995 100755 --- a/test/sharness/t0600-issues-and-regressions-online.sh +++ b/test/sharness/t0600-issues-and-regressions-online.sh @@ -29,5 +29,10 @@ test_expect_success "no panic traces on daemon" ' test_kill_ipfs_daemon +test_expect_success "ipfs daemon --offline --mount fails - #2995" ' + (test_must_fail ipfs daemon --offline --mount 2>daemon_err) && + grep "mount is not supported in offline mode" daemon_err +' + test_done