diff options
author | Johann Latocha | 2012-01-24 20:42:30 +0100 |
---|---|---|
committer | Johann Latocha | 2012-01-24 20:42:30 +0100 |
commit | 90123ef4fbe457642325362ca07fe5b75df3f0c9 (patch) | |
tree | 12654b30e62d0819c54abbceae483800d1d608d1 /src/client | |
parent | Support files > 4GB (diff) | |
download | dnbd3-90123ef4fbe457642325362ca07fe5b75df3f0c9.tar.gz dnbd3-90123ef4fbe457642325362ca07fe5b75df3f0c9.tar.xz dnbd3-90123ef4fbe457642325362ca07fe5b75df3f0c9.zip |
Serving more than one image.
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/client.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/client/client.c b/src/client/client.c index 68b7f5c..d60614b 100644 --- a/src/client/client.c +++ b/src/client/client.c @@ -31,10 +31,11 @@ void print_help(char* argv_0) { - printf("Usage: %s -H <host> -p <port> -d <device>\n", argv_0); + printf("Usage: %s -H <host> -p <port> -i <image-id> -d <device>\n", argv_0); printf("Start the DNBD3 client.\n"); printf("-H or --host \t\t Host running dnbd3-server.\n"); printf("-p or --port \t\t Port used by server.\n"); + printf("-i or --image \t\t Exported image ID.\n"); printf("-d or --device \t\t DNBD3 device name.\n"); printf("-h or --help \t\t Show this help text and quit.\n"); printf("-v or --version \t Show version and quit.\n"); @@ -51,15 +52,17 @@ int main(int argc, char *argv[]) { char *host = NULL; char *port = NULL; + char *image_id = NULL; char *dev = NULL; int opt = 0; int longIndex = 0; - static const char *optString = "H:p:d:hv?"; + static const char *optString = "H:p:i:d:hv?"; static const struct option longOpts[] = { { "host", required_argument, NULL, 'H' }, { "port", required_argument, NULL, 'p' }, + { "image", required_argument, NULL, 'i' }, { "device", required_argument, NULL, 'd' }, { "help", no_argument, NULL, 'h' }, { "version", no_argument, NULL, 'v' }, }; @@ -76,6 +79,9 @@ int main(int argc, char *argv[]) case 'p': port = optarg; break; + case 'i': + image_id = optarg; + break; case 'd': dev = optarg; break; @@ -91,7 +97,7 @@ int main(int argc, char *argv[]) opt = getopt_long(argc, argv, optString, longOpts, &longIndex); } - if (!host || !port || !dev) + if (!host || !port || !dev || !image_id) { printf("FATAL: Not enough information specified\n"); exit(EXIT_FAILURE); @@ -106,6 +112,9 @@ int main(int argc, char *argv[]) if (ioctl(fd, IOCTL_SET_PORT, port) < 0) printf("ERROR: ioctl not successful\n"); + if (ioctl(fd, IOCTL_SET_IMAGE, image_id) < 0) + printf("ERROR: ioctl not successful\n"); + if (ioctl(fd, IOCTL_CONNECT) < 0) printf("ERROR: ioctl not successful\n"); |