summaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
authorJohann Latocha2012-01-24 20:42:30 +0100
committerJohann Latocha2012-01-24 20:42:30 +0100
commit90123ef4fbe457642325362ca07fe5b75df3f0c9 (patch)
tree12654b30e62d0819c54abbceae483800d1d608d1 /src/client
parentSupport files > 4GB (diff)
downloaddnbd3-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.c15
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");