diff options
author | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-07-03 13:41:03 +0000 |
---|---|---|
committer | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-07-03 13:41:03 +0000 |
commit | 75818250ba0f61d9e3008b11d8c63b7b46d80ba2 (patch) | |
tree | 10fdb06f655d82a6372bf918338f3de086895452 /qemu-nbd.c | |
parent | 3b05a8e91bf15e1858f3f3618069dbc78e55b88e (diff) |
Allow QEMU to connect directly to an NBD server, by Laurent Vivier.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4838 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'qemu-nbd.c')
-rw-r--r-- | qemu-nbd.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/qemu-nbd.c b/qemu-nbd.c index 605d4e324..45464a0c8 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -56,6 +56,7 @@ static void usage(const char *name) " -c, --connect=DEV connect FILE to the local NBD device DEV\n" " -d, --disconnect disconnect the specified device\n" " -e, --shared=NUM device can be shared by NUM clients (default '1')\n" +" -t, --persistent don't exit on the last connection\n" " -v, --verbose display extra debugging information\n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" @@ -189,7 +190,7 @@ int main(int argc, char **argv) char *device = NULL; char *socket = NULL; char sockpath[128]; - const char *sopt = "hVbo:p:rsnP:c:dvk:e:"; + const char *sopt = "hVbo:p:rsnP:c:dvk:e:t"; struct option lopt[] = { { "help", 0, 0, 'h' }, { "version", 0, 0, 'V' }, @@ -204,6 +205,7 @@ int main(int argc, char **argv) { "snapshot", 0, 0, 's' }, { "nocache", 0, 0, 'n' }, { "shared", 1, 0, 'e' }, + { "persistent", 0, 0, 't' }, { "verbose", 0, 0, 'v' }, { NULL, 0, 0, 0 } }; @@ -222,6 +224,7 @@ int main(int argc, char **argv) int i; int nb_fds = 0; int max_fd; + int persistent = 0; while ((ch = getopt_long(argc, argv, sopt, lopt, &opt_ind)) != -1) { switch (ch) { @@ -283,6 +286,9 @@ int main(int argc, char **argv) errx(EINVAL, "Shared device number must be greater than 0\n"); } break; + case 't': + persistent = 1; + break; case 'v': verbose = 1; break; @@ -459,7 +465,7 @@ int main(int argc, char **argv) } } } - } while (nb_fds > 1); + } while (persistent || nb_fds > 1); qemu_free(data); close(sharing_fds[0]); |