-Index: new/vma.c
-===================================================================
---- new.orig/vma.c 2014-11-20 08:47:30.000000000 +0100
-+++ new/vma.c 2014-11-20 08:47:47.000000000 +0100
-@@ -32,6 +32,7 @@
- "usage: vma command [command options]\n"
- "\n"
- "vma list <filename>\n"
-+ "vma config <filename> [-c config]\n"
- "vma create <filename> [-c config] <archive> pathname ...\n"
- "vma extract <filename> [-r <fifo>] <targetdir>\n"
- "vma verify <filename> [-v]\n"
-@@ -601,6 +602,67 @@
- return 0;
- }
-
-+static int dump_config(int argc, char **argv)
-+{
-+ int c, ret = 0;
-+ const char *filename;
-+ const char *config_name = "qemu-server.conf";
-+
-+ for (;;) {
-+ c = getopt(argc, argv, "hc:");
-+ if (c == -1) {
-+ break;
-+ }
-+ switch (c) {
-+ case '?':
-+ case 'h':
-+ help();
-+ break;
-+ case 'c':
-+ config_name = optarg;
-+ break;
-+ default:
-+ help();
-+ }
-+ }
-+
-+ /* Get the filename */
-+ if ((optind + 1) != argc) {
-+ help();
-+ }
-+ filename = argv[optind++];
-+
-+ Error *errp = NULL;
-+ VmaReader *vmar = vma_reader_create(filename, &errp);
-+
-+ if (!vmar) {
-+ g_error("%s", error_get_pretty(errp));
-+ }
-+
-+ int found = 0;
-+ GList *l = vma_reader_get_config_data(vmar);
-+ while (l && l->data) {
-+ VmaConfigData *cdata = (VmaConfigData *)l->data;
-+ l = g_list_next(l);
-+ if (strcmp(cdata->name, config_name) == 0) {
-+ found = 1;
-+ fwrite(cdata->data, cdata->len, 1, stdout);
-+ break;
-+ }
-+ }
-+
-+ vma_reader_destroy(vmar);
-+
-+ bdrv_close_all();
-+
-+ if (!found) {
-+ fprintf(stderr, "unable to find configuration data '%s'\n", config_name);
-+ return -1;
-+ }
-+
-+ return ret;
-+}
-+
- int main(int argc, char **argv)
- {
- const char *cmdname;
-@@ -630,6 +692,8 @@
- return extract_content(argc, argv);
- } else if (!strcmp(cmdname, "verify")) {
- return verify_content(argc, argv);
-+ } else if (!strcmp(cmdname, "config")) {
-+ return dump_config(argc, argv);
- }
-
- help();