summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Unterwurzacher2017-05-14 13:51:13 +0200
committerJakob Unterwurzacher2017-05-14 13:51:26 +0200
commit8aabc542761046efdfe2c6b07662e446d223367b (patch)
treec3ea9facb640958b402c83f2f70077fb4dc74583
parent18f354d84b4ae58c620474a544b9929662b108d8 (diff)
exitcodes: get rid of generic "Mount" exit code
Instead, create three new specific exit codes: * FuseNewServer = 19 * CtlSock = 20 * PanicLogCreate = 21
-rw-r--r--internal/exitcodes/exitcodes.go21
-rw-r--r--mount.go10
2 files changed, 20 insertions, 11 deletions
diff --git a/internal/exitcodes/exitcodes.go b/internal/exitcodes/exitcodes.go
index 7a2efdb..cba74b6 100644
--- a/internal/exitcodes/exitcodes.go
+++ b/internal/exitcodes/exitcodes.go
@@ -8,12 +8,12 @@ import (
)
const (
- // Usage error: cli syntax etc
+ // Usage - usage error like wrong cli syntax, wrong number of parameters.
Usage = 1
// 2 is reserved because it is used by Go panic
+ // 3 is reserved because it was used by earlier gocryptfs version as a generic
+ // "mount" error.
- // Mount is an error on mount
- Mount = 3
// CipherDir means that the CIPHERDIR does not exist
CipherDir = 6
// Init is an error on filesystem init
@@ -26,7 +26,8 @@ const (
MountPoint = 10
// Other error - please inspect the message
Other = 11
- // PasswordIncorrect - the password was incorrect
+ // PasswordIncorrect - the password was incorrect when mounting or when
+ // changing the password.
PasswordIncorrect = 12
// ScryptParams means that scrypt was called with invalid parameters
ScryptParams = 13
@@ -35,12 +36,20 @@ const (
MasterKey = 14
// SigInt means we got SIGINT
SigInt = 15
- // PanicLog means the panic log was not empty when we were unmounted
- PanicLog = 16
+ // PanicLogNotEmpty means the panic log was not empty when we were unmounted
+ PanicLogNotEmpty = 16
// ForkChild means forking the worker child failed
ForkChild = 17
// OpenSSL means you tried to enable OpenSSL, but we were compiled without it.
OpenSSL = 18
+ // FuseNewServer - this exit code means that the call to fuse.NewServer failed.
+ // This usually means that there was a problem executing fusermount, or
+ // fusermount could not attach the mountpoint to the kernel.
+ FuseNewServer = 19
+ // CtlSock - the control socket file could not be created.
+ CtlSock = 20
+ // PanicLogCreate - there was a problem creating the /tmp/gocryptfs_paniclog.XYZ file.
+ PanicLogCreate = 21
)
// Err wraps an error with an associated numeric exit code
diff --git a/mount.go b/mount.go
index bcf056d..f8d220d 100644
--- a/mount.go
+++ b/mount.go
@@ -64,7 +64,7 @@ func doMount(args *argContainer) int {
sock, err = net.Listen("unix", args.ctlsock)
if err != nil {
tlog.Fatal.Printf("ctlsock: %v", err)
- os.Exit(exitcodes.Mount)
+ os.Exit(exitcodes.CtlSock)
}
args._ctlsockFd = sock
// Close also deletes the socket file
@@ -118,7 +118,7 @@ func doMount(args *argContainer) int {
paniclog, err = ioutil.TempFile("", "gocryptfs_paniclog.")
if err != nil {
tlog.Fatal.Printf("Failed to create gocryptfs_paniclog: %v", err)
- os.Exit(exitcodes.Mount)
+ os.Exit(exitcodes.PanicLogCreate)
}
// Switch all of our logs and the generic logger to syslog
tlog.Info.SwitchToSyslog(syslog.LOG_USER | syslog.LOG_INFO)
@@ -165,7 +165,7 @@ func doMount(args *argContainer) int {
} else if fi.Size() > 0 {
tlog.Warn.Printf("paniclog at %q is not empty (size %d). Not deleting it.",
paniclog.Name(), fi.Size())
- return exitcodes.PanicLog
+ return exitcodes.PanicLogNotEmpty
} else {
syscall.Unlink(paniclog.Name())
}
@@ -306,8 +306,8 @@ func initFuseFrontend(key []byte, args *argContainer, confFile *configfile.ConfF
}
srv, err := fuse.NewServer(conn.RawFS(), args.mountpoint, &mOpts)
if err != nil {
- tlog.Fatal.Printf("Mount failed: %v", err)
- os.Exit(exitcodes.Mount)
+ tlog.Fatal.Printf("fuse.NewServer failed: %v", err)
+ os.Exit(exitcodes.FuseNewServer)
}
srv.SetDebug(args.fusedebug)