aboutsummaryrefslogtreecommitdiff
path: root/sshfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'sshfs.c')
-rw-r--r--sshfs.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sshfs.c b/sshfs.c
index d2c7605..b70e34f 100644
--- a/sshfs.c
+++ b/sshfs.c
@@ -171,6 +171,7 @@ struct sshfs {
int sync_write;
int sync_read;
int debug;
+ int foreground;
int reconnect;
char *host;
char *base_path;
@@ -243,6 +244,7 @@ enum {
KEY_COMPRESS,
KEY_HELP,
KEY_VERSION,
+ KEY_FOREGROUND,
};
#define SSHFS_OPT(t, p, v) { t, offsetof(struct sshfs, p), v }
@@ -271,6 +273,9 @@ static struct fuse_opt sshfs_opts[] = {
FUSE_OPT_KEY("--version", KEY_VERSION),
FUSE_OPT_KEY("-h", KEY_HELP),
FUSE_OPT_KEY("--help", KEY_HELP),
+ FUSE_OPT_KEY("debug", KEY_FOREGROUND),
+ FUSE_OPT_KEY("-d", KEY_FOREGROUND),
+ FUSE_OPT_KEY("-f", KEY_FOREGROUND),
FUSE_OPT_END
};
@@ -735,7 +740,7 @@ static int start_ssh(void)
perror("failed to redirect input/output");
_exit(1);
}
- if (!sshfs.debug && devnull != -1)
+ if (!sshfs.foreground && devnull != -1)
dup2(devnull, 2);
close(devnull);
@@ -2590,6 +2595,10 @@ static int sshfs_opt_proc(void *data, const char *arg, int key,
#endif
exit(0);
+ case KEY_FOREGROUND:
+ sshfs.foreground = 1;
+ return 1;
+
default:
fprintf(stderr, "internal error\n");
abort();