---
align/scan.c | 45 +-
builder/index-parser-c.c | 25 +-
builder/index-struct.c | 3 +-
builder/index-struct.h | 14 +-
builder/index-validate.c | 54 +-
builder/pxzcat-c.c | 164 ++--
builder/setlocale-c.c | 18 +-
builder/yajl-c.c | 22 +-
cat/cat.c | 64 +-
cat/filesystems.c | 216 +++--
cat/log.c | 154 ++--
cat/ls.c | 148 ++--
cat/visit.c | 15 +-
cat/visit.h | 11 +-
customize/crypt-c.c | 3 +-
customize/perl_edit-c.c | 3 +-
daemon/9p.c | 20 +-
daemon/acl.c | 8 +-
daemon/augeas.c | 73 +-
daemon/available.c | 12 +-
daemon/base64.c | 15 +-
daemon/blkdiscard.c | 12 +-
daemon/blkid.c | 63 +-
daemon/blockdev.c | 28 +-
daemon/btrfs.c | 214 ++---
daemon/cap.c | 8 +-
daemon/checksum.c | 36 +-
daemon/cleanups.c | 15 +-
daemon/cleanups.h | 15 +-
daemon/cmp.c | 5 +-
daemon/command.c | 62 +-
daemon/command.h | 22 +-
daemon/compress.c | 45 +-
daemon/copy.c | 68 +-
daemon/cpio.c | 23 +-
daemon/cpmv.c | 13 +-
daemon/daemon.h | 199 +++--
daemon/dd.c | 14 +-
daemon/debug-bmap.c | 20 +-
daemon/debug.c | 245 +++---
daemon/devsparts.c | 33 +-
daemon/df.c | 9 +-
daemon/dir.c | 33 +-
daemon/dmesg.c | 7 +-
daemon/dropcaches.c | 3 +-
daemon/du.c | 7 +-
daemon/echo-daemon.c | 3 +-
daemon/ext2.c | 267 +++---
daemon/fallocate.c | 8 +-
daemon/file.c | 71 +-
daemon/fill.c | 13 +-
daemon/find.c | 11 +-
daemon/findfs.c | 11 +-
daemon/format.c | 3 +-
daemon/fs-min-size.c | 10 +-
daemon/fsck.c | 5 +-
daemon/fstrim.c | 12 +-
daemon/glob.c | 13 +-
daemon/grep.c | 19 +-
daemon/grub.c | 9 +-
daemon/guestfsd.c | 169 ++--
daemon/headtail.c | 11 +-
daemon/hexdump.c | 7 +-
daemon/hivex.c | 39 +-
daemon/hotplug.c | 8 +-
daemon/htonl.c | 32 +-
daemon/initrd.c | 28 +-
daemon/inotify.c | 63 +-
daemon/internal.c | 6 +-
daemon/is.c | 29 +-
daemon/isoinfo.c | 128 +--
daemon/journal.c | 41 +-
daemon/labels.c | 11 +-
daemon/ldm.c | 91 +-
daemon/link.c | 16 +-
daemon/ls.c | 20 +-
daemon/luks.c | 23 +-
daemon/lvm-filter.c | 20 +-
daemon/lvm.c | 150 ++--
daemon/md.c | 95 +-
daemon/mkfs.c | 63 +-
daemon/mknod.c | 15 +-
daemon/mktemp.c | 8 +-
daemon/modprobe.c | 5 +-
daemon/mount.c | 60 +-
daemon/mountable.c | 3 +-
daemon/ntfs.c | 42 +-
daemon/ntfsclone.c | 58 +-
daemon/parted.c | 206 ++---
daemon/pingdaemon.c | 3 +-
daemon/proto.c | 167 ++--
daemon/readdir.c | 41 +-
daemon/realpath.c | 24 +-
daemon/rename.c | 3 +-
daemon/rsync.c | 22 +-
daemon/scrub.c | 5 +-
daemon/selinux.c | 7 +-
daemon/sfdisk.c | 22 +-
daemon/sh.c | 78 +-
daemon/sleep.c | 5 +-
daemon/sleuthkit.c | 14 +-
daemon/stat.c | 11 +-
daemon/statvfs.c | 25 +-
daemon/strings.c | 10 +-
daemon/swap.c | 14 +-
daemon/sync.c | 39 +-
daemon/syslinux.c | 7 +-
daemon/tar.c | 53 +-
daemon/truncate.c | 7 +-
daemon/umask.c | 5 +-
daemon/upload.c | 65 +-
daemon/utimens.c | 6 +-
daemon/utsname.c | 7 +-
daemon/uuids.c | 14 +-
daemon/wc.c | 5 +-
daemon/xattr.c | 123 +--
daemon/xfs.c | 202 +++--
daemon/zero.c | 33 +-
daemon/zerofree.c | 5 +-
df/df.c | 13 +-
df/domains.c | 52 +-
df/domains.h | 6 +-
df/estimate-max-threads.c | 6 +-
df/estimate-max-threads.h | 3 +-
df/main.c | 84 +-
df/output.c | 66 +-
df/parallel.c | 39 +-
df/parallel.h | 6 +-
df/virt-df.h | 18 +-
diff/diff.c | 186 ++--
edit/edit.c | 93 +-
erlang/erl-guestfs-proto.c | 23 +-
examples/copy-over.c | 48 +-
examples/create-disk.c | 16 +-
examples/debug-logging.c | 25 +-
examples/display-icon.c | 25 +-
examples/inspect-vm.c | 18 +-
examples/libvirt-auth.c | 82 +-
examples/mount-local.c | 84 +-
examples/virt-dhcp-address.c | 71 +-
fish/alloc.c | 18 +-
fish/cmds-gperf.h | 15 +-
fish/config.c | 18 +-
fish/copy.c | 19 +-
fish/destpaths.c | 95 +-
fish/display.c | 3 +-
fish/domain.c | 5 +-
fish/echo.c | 6 +-
fish/edit.c | 6 +-
fish/events.c | 56 +-
fish/file-edit.c | 38 +-
fish/file-edit.h | 7 +-
fish/fish.c | 449 +++++-----
fish/fish.h | 23 +-
fish/glob.c | 74 +-
fish/help.c | 31 +-
fish/hexedit.c | 35 +-
fish/inspect.c | 106 +--
fish/keys.c | 9 +-
fish/lcd.c | 3 +-
fish/man.c | 14 +-
fish/more.c | 3 +-
fish/options.c | 45 +-
fish/options.h | 229 ++---
fish/prep-boot.c | 31 +-
fish/prep-disk.c | 6 +-
fish/prep-fs.c | 6 +-
fish/prep-lv.c | 39 +-
fish/prep-part.c | 6 +-
fish/prep.c | 27 +-
fish/progress.c | 76 +-
fish/progress.h | 6 +-
fish/rc.c | 115 +--
fish/reopen.c | 6 +-
fish/setenv.c | 6 +-
fish/supported.c | 5 +-
fish/tilde.c | 9 +-
fish/time.c | 12 +-
fish/uri.c | 45 +-
fish/uri.h | 16 +-
fish/windows.c | 19 +-
fish/windows.h | 3 +-
format/format.c | 45 +-
fuse/guestmount.c | 114 +--
fuse/guestunmount.c | 94 +-
fuse/test-fuse.c | 107 +--
fuse/test-guestmount-fd.c | 20 +-
fuse/test-guestunmount-fd.c | 18 +-
inspector/inspector.c | 337 ++++----
make-fs/make-fs.c | 175 ++--
mllib/fsync-c.c | 13 +-
mllib/mkdtemp-c.c | 11 +-
mllib/progress-c.c | 11 +-
mllib/uri-c.c | 14 +-
ocaml/guestfs-c.c | 90 +-
ocaml/guestfs-c.h | 12 +-
p2v/about-authors.c | 19 +-
p2v/about-license.c | 30 +-
p2v/config.c | 30 +-
p2v/conversion.c | 364 ++++----
p2v/gui.c | 627 +++++++-------
p2v/kernel-cmdline.c | 78 +-
p2v/kernel.c | 37 +-
p2v/main.c | 147 ++--
p2v/miniexpect.c | 30 +-
p2v/miniexpect.h | 21 +-
p2v/p2v.h | 36 +-
p2v/ssh.c | 297 +++----
p2v/utils.c | 17 +-
p2v/whole-file.c | 5 +-
python/guestfs-py-byhand.c | 38 +-
python/guestfs-py.h | 28 +-
rescue/rescue.c | 139 +--
sparsify/statvfs-c.c | 5 +-
src/actions-support.c | 24 +-
src/alloc.c | 27 +-
src/appliance.c | 99 ++-
src/available.c | 9 +-
src/canonical-name.c | 19 +-
src/cleanup.c | 23 +-
src/command.c | 138 +--
src/conn-socket.c | 54 +-
src/copy-in-out.c | 63 +-
src/create.c | 62 +-
src/dbdump.c | 72 +-
src/drives.c | 318 +++----
src/errors.c | 98 ++-
src/events.c | 230 +++--
src/file.c | 106 +--
src/filearch.c | 71 +-
src/fuse.c | 335 +++----
src/guestfs-internal-all.h | 87 +-
src/guestfs-internal-frontend.h | 98 ++-
src/guestfs-internal.h | 541 +++++++-----
src/guid.c | 8 +-
src/handle.c | 93 +-
src/info.c | 61 +-
src/inspect-apps.c | 271 +++---
src/inspect-fs-cd.c | 120 +--
src/inspect-fs-unix.c | 603 +++++++------
src/inspect-fs-windows.c | 245 +++---
src/inspect-fs.c | 119 ++-
src/inspect-icon.c | 115 +--
src/inspect.c | 317 +++++--
src/journal.c | 47 +-
src/launch-direct.c | 370 ++++----
src/launch-libvirt.c | 1053 +++++++++++++----------
src/launch-uml.c | 89 +-
src/launch-unix.c | 27 +-
src/launch.c | 141 ++-
src/libvirt-auth.c | 128 +--
src/libvirt-domain.c | 368 ++++----
src/libvirt-is-version.c | 10 +-
src/listfs.c | 60 +-
src/lpj.c | 15 +-
src/match.c | 60 +-
src/mountable.c | 10 +-
src/osinfo.c | 106 +--
src/private-data.c | 14 +-
src/proto.c | 115 +--
src/stringsbuf.c | 11 +-
src/test-utils.c | 29 +-
src/tmpdirs.c | 3 +-
src/utils.c | 72 +-
src/whole-file.c | 5 +-
test-tool/test-tool.c | 119 ++-
tests/c-api/test-add-drive-opts.c | 6 +-
tests/c-api/test-add-libvirt-dom.c | 71 +-
tests/c-api/test-backend-settings.c | 10 +-
tests/c-api/test-command.c | 2 +-
tests/c-api/test-debug-to-file.c | 23 +-
tests/c-api/test-dlopen.c | 8 +-
tests/c-api/test-environment.c | 29 +-
tests/c-api/test-event-string.c | 3 +-
tests/c-api/test-private-data.c | 30 +-
tests/c-api/test-pwd.c | 4 +-
tests/c-api/test-user-cancel.c | 49 +-
tests/c-api/tests-main.c | 56 +-
tests/c-api/tests.h | 9 +-
tests/charsets/test-charset-fidelity.c | 121 ++-
tests/events/test-libvirt-auth-callbacks.c | 86 +-
tests/mount-local/test-parallel-mount-local.c | 53 +-
tests/mountable/test-internal-parse-mountable.c | 45 +-
tests/parallel/test-parallel.c | 20 +-
tests/protocol/test-error-messages.c | 15 +-
tests/qemu/boot-analysis-timeline.c | 415 ++++-----
tests/qemu/boot-analysis-utils.c | 7 +-
tests/qemu/boot-analysis-utils.h | 3 +-
tests/qemu/boot-analysis.c | 176 ++--
tests/qemu/boot-analysis.h | 29 +-
tests/qemu/boot-benchmark.c | 54 +-
tests/qemu/qemu-boot.c | 67 +-
tests/qemu/qemu-speed-test.c | 108 +--
tests/regressions/rhbz1055452.c | 12 +-
tests/regressions/rhbz501893.c | 3 +-
tests/regressions/rhbz790721.c | 27 +-
tests/regressions/rhbz914931.c | 8 +-
tests/regressions/test-big-heap.c | 11 +-
tests/xml/fake-libvirt-xml.c | 6 +-
v2v/changeuid-c.c | 2 +-
v2v/domainxml-c.c | 70 +-
v2v/utils-c.c | 10 +-
v2v/xml-c.c | 127 +--
303 files changed, 10711 insertions(+), 9265 deletions(-)
diff --git a/align/scan.c b/align/scan.c
index 3cc9b35..8f96599 100644
--- a/align/scan.c
+++ b/align/scan.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -64,11 +65,10 @@ int echo_keys = 0;
const char *libvirt_uri = NULL;
int inspector = 0;
-static int quiet = 0; /* --quiet */
-static int uuid = 0; /* --uuid */
+static int quiet = 0; /* --quiet */
+static int uuid = 0; /* --uuid */
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
@@ -116,7 +116,9 @@ main (int argc, char *argv[])
{ "long-options", 0, 0, 0 },
{ "quiet", 0, 0, 'q' },
{ "short-options", 0, 0, 0 },
- { "uuid", 0, 0, 0, },
+ {
+ "uuid", 0, 0, 0,
+ },
{ "verbose", 0, 0, 'v' },
{ "version", 0, 0, 'V' },
{ 0, 0, 0, 0 }
@@ -136,10 +138,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -149,8 +152,7 @@ main (int argc, char *argv[])
} else if (STREQ (long_options[option_index].name, "uuid")) {
uuid = 1;
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -230,9 +232,10 @@ main (int argc, char *argv[])
guestfs_int_program_name);
exit (EXIT_FAILURE);
#endif
- } else { /* Single guest. */
+ } else { /* Single guest. */
if (uuid) {
- fprintf (stderr, _("%s: --uuid option cannot be used with -a or -d\n"),
+ fprintf (stderr,
+ _("%s: --uuid option cannot be used with -a or -d\n"),
guestfs_int_program_name);
exit (EXIT_FAILURE);
}
@@ -305,12 +308,12 @@ scan (guestfs_h *g, const char *prefix, FILE *fp)
if (prefix)
fprintf (fp, "%s:", prefix);
- fprintf (fp, "%s%d %12" PRIu64 " ",
- name, (int) parts->val[j].part_num, start);
+ fprintf (fp, "%s%d %12" PRIu64 " ", name,
+ (int)parts->val[j].part_num, start);
}
/* What's the alignment? */
- if (start == 0) /* Probably not possible, but anyway. */
+ if (start == 0) /* Probably not possible, but anyway. */
alignment = 64;
else
for (alignment = 0; (start & 1) == 0; alignment++, start /= 2)
@@ -318,9 +321,10 @@ scan (guestfs_h *g, const char *prefix, FILE *fp)
if (!quiet) {
if (alignment < 10)
- fprintf (fp, "%12" PRIu64 " ", UINT64_C(1) <<
alignment);
+ fprintf (fp, "%12" PRIu64 " ", UINT64_C (1) <<
alignment);
else if (alignment < 64)
- fprintf (fp, "%12" PRIu64 "K ", UINT64_C(1) <<
(alignment - 10));
+ fprintf (fp, "%12" PRIu64 "K ", UINT64_C (1)
+ << (alignment - 10));
else
fprintf (fp, "- ");
}
@@ -332,7 +336,7 @@ scan (guestfs_h *g, const char *prefix, FILE *fp)
err = pthread_mutex_unlock (&worst_alignment_mutex);
assert (err == 0);
- if (alignment < 12) { /* Bad in general: < 4K alignment */
+ if (alignment < 12) { /* Bad in general: < 4K alignment */
if (!quiet)
fprintf (fp, "bad (%s)\n", _("alignment < 4K"));
} else if (alignment < 16) { /* Bad on NetApps: < 64K alignment */
@@ -359,9 +363,8 @@ scan_work (guestfs_h *g, size_t i, FILE *fp)
{
struct guestfs_add_libvirt_dom_argv optargs;
- optargs.bitmask =
- GUESTFS_ADD_LIBVIRT_DOM_READONLY_BITMASK |
- GUESTFS_ADD_LIBVIRT_DOM_READONLYDISK_BITMASK;
+ optargs.bitmask = GUESTFS_ADD_LIBVIRT_DOM_READONLY_BITMASK |
+ GUESTFS_ADD_LIBVIRT_DOM_READONLYDISK_BITMASK;
optargs.readonly = 1;
optargs.readonlydisk = "read";
diff --git a/builder/index-parser-c.c b/builder/index-parser-c.c
index 52c8b86..4c49c2b 100644
--- a/builder/index-parser-c.c
+++ b/builder/index-parser-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* This file handles the interface between the C/lex/yacc index file
@@ -36,8 +37,8 @@
#ifdef HAVE_CAML_UNIXSUPPORT_H
#include <caml/unixsupport.h>
#else
-#define Nothing ((value) 0)
-extern void unix_error (int errcode, char * cmdname, value arg) Noreturn;
+#define Nothing ((value)0)
+extern void unix_error (int errcode, char *cmdname, value arg) Noreturn;
#endif
#include "index-struct.h"
@@ -45,7 +46,8 @@ extern void unix_error (int errcode, char * cmdname, value arg)
Noreturn;
extern int do_parse (struct parse_context *context, FILE *in);
-extern value virt_builder_parse_index (value progv, value error_suffixv, value
filenamev);
+extern value virt_builder_parse_index (value progv, value error_suffixv,
+ value filenamev);
value
virt_builder_parse_index (value progv, value error_suffixv, value filenamev)
@@ -64,7 +66,7 @@ virt_builder_parse_index (value progv, value error_suffixv, value
filenamev)
in = fopen (String_val (filenamev), "r");
if (in == NULL)
- unix_error (errno, (char *) "fopen", filenamev);
+ unix_error (errno, (char *)"fopen", filenamev);
if (do_parse (&context, in) != 0) {
fclose (in);
@@ -72,11 +74,12 @@ virt_builder_parse_index (value progv, value error_suffixv, value
filenamev)
}
if (fclose (in) == EOF)
- unix_error (errno, (char *) "fclose", filenamev);
+ unix_error (errno, (char *)"fclose", filenamev);
/* Convert the parsed data to OCaml structures. */
nr_sections = 0;
- for (sections = context.parsed_index; sections != NULL; sections = sections->next)
+ for (sections = context.parsed_index; sections != NULL;
+ sections = sections->next)
nr_sections++;
rv = caml_alloc (nr_sections, 0);
@@ -94,7 +97,7 @@ virt_builder_parse_index (value progv, value error_suffixv, value
filenamev)
j++, fields = fields->next) {
v = caml_alloc_tuple (3);
sv = caml_copy_string (fields->key);
- Store_field (v, 0, sv); /* (key, Some subkey, value) */
+ Store_field (v, 0, sv); /* (key, Some subkey, value) */
if (fields->subkey) {
sv2 = caml_copy_string (fields->subkey);
sv = caml_alloc (1, 0);
@@ -104,14 +107,14 @@ virt_builder_parse_index (value progv, value error_suffixv, value
filenamev)
Store_field (v, 1, sv);
sv = caml_copy_string (fields->value);
Store_field (v, 2, sv);
- Store_field (fv, j, v); /* assign to return array of fields */
+ Store_field (fv, j, v); /* assign to return array of fields */
}
v = caml_alloc_tuple (2);
sv = caml_copy_string (sections->name);
- Store_field (v, 0, sv); /* (name, fields) */
+ Store_field (v, 0, sv); /* (name, fields) */
Store_field (v, 1, fv);
- Store_field (rv, i, v); /* assign to return array of sections */
+ Store_field (rv, i, v); /* assign to return array of sections */
}
/* Free parsed data. */
diff --git a/builder/index-struct.c b/builder/index-struct.c
index eacca6c..ebc1978 100644
--- a/builder/index-struct.c
+++ b/builder/index-struct.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/builder/index-struct.h b/builder/index-struct.h
index ada35e3..dbc72ab 100644
--- a/builder/index-struct.h
+++ b/builder/index-struct.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* The data structures produced when parsing the index file. */
@@ -22,14 +23,16 @@
#define INDEX_STRUCT_H
/* A section or list of sections. */
-struct section {
+struct section
+{
struct section *next;
char *name;
struct field *fields;
};
/* A field or list of fields. */
-struct field {
+struct field
+{
struct field *next;
char *key;
char *subkey;
@@ -37,8 +40,9 @@ struct field {
};
/* A struct holding the data needed during the parsing. */
-struct parse_context {
- struct section *parsed_index; /* The result of the parsing. */
+struct parse_context
+{
+ struct section *parsed_index; /* The result of the parsing. */
/* yyparse sets this if any comments were seen. Required for checking
* compatibility with virt-builder 1.24.
*/
diff --git a/builder/index-validate.c b/builder/index-validate.c
index 22e2ccd..cb80263 100644
--- a/builder/index-validate.c
+++ b/builder/index-validate.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -74,25 +75,26 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "compat-1.24.0"))
compat_1_24_0 = compat_1_24_1 = 1;
else if (STREQ (long_options[option_index].name, "compat-1.24.1"))
compat_1_24_1 = 1;
else {
fprintf (stderr, _("%s: unknown long option: %s (%d)\n"),
- guestfs_int_program_name, long_options[option_index].name,
option_index);
+ guestfs_int_program_name, long_options[option_index].name,
+ option_index);
exit (EXIT_FAILURE);
}
break;
case 'V':
- printf ("%s %s%s\n",
- guestfs_int_program_name,
- PACKAGE_VERSION, PACKAGE_VERSION_EXTRA);
+ printf ("%s %s%s\n", guestfs_int_program_name, PACKAGE_VERSION,
+ PACKAGE_VERSION_EXTRA);
exit (EXIT_SUCCESS);
case HELP_OPTION:
@@ -103,7 +105,7 @@ main (int argc, char *argv[])
}
}
- if (optind != argc-1)
+ if (optind != argc - 1)
usage (EXIT_FAILURE);
input = argv[optind++];
@@ -121,27 +123,32 @@ main (int argc, char *argv[])
if (ret != 0) {
parse_context_free (&context);
- fprintf (stderr, _("%s: '%s' could not be validated, see errors
above\n"),
+ fprintf (stderr,
+ _("%s: '%s' could not be validated, see errors above\n"),
guestfs_int_program_name, input);
exit (EXIT_FAILURE);
}
if (compat_1_24_1 && context.seen_comments) {
parse_context_free (&context);
- fprintf (stderr, _("%s: %s contains comments which will not work with
virt-builder 1.24.1\n"),
+ fprintf (stderr, _("%s: %s contains comments which will not work with "
+ "virt-builder 1.24.1\n"),
guestfs_int_program_name, input);
exit (EXIT_FAILURE);
}
/* Iterate over the parsed sections, semantically validating it. */
- for (sections = context.parsed_index; sections != NULL; sections = sections->next)
{
+ for (sections = context.parsed_index; sections != NULL;
+ sections = sections->next) {
int seen_sig = 0;
struct field *fields;
if (compat_1_24_0) {
if (strchr (sections->name, '_')) {
parse_context_free (&context);
- fprintf (stderr, _("%s: %s: section [%s] has invalid characters which will
not work with virt-builder 1.24.0\n"),
+ fprintf (stderr,
+ _("%s: %s: section [%s] has invalid characters which "
+ "will not work with virt-builder 1.24.0\n"),
guestfs_int_program_name, input, sections->name);
exit (EXIT_FAILURE);
}
@@ -149,20 +156,24 @@ main (int argc, char *argv[])
for (fields = sections->fields; fields != NULL; fields = fields->next) {
if (compat_1_24_0) {
- if (strchr (fields->key, '[') ||
- strchr (fields->key, ']')) {
+ if (strchr (fields->key, '[') || strchr (fields->key, ']'))
{
parse_context_free (&context);
- fprintf (stderr, _("%s: %s: section [%s], field '%s' has invalid
characters which will not work with virt-builder 1.24.0\n"),
- guestfs_int_program_name, input, sections->name, fields->key);
+ fprintf (
+ stderr,
+ _("%s: %s: section [%s], field '%s' has invalid characters
"
+ "which will not work with virt-builder 1.24.0\n"),
+ guestfs_int_program_name, input, sections->name, fields->key);
exit (EXIT_FAILURE);
}
}
if (compat_1_24_1) {
- if (strchr (fields->key, '.') ||
- strchr (fields->key, ',')) {
+ if (strchr (fields->key, '.') || strchr (fields->key, ','))
{
parse_context_free (&context);
- fprintf (stderr, _("%s: %s: section [%s], field '%s' has invalid
characters which will not work with virt-builder 1.24.1\n"),
- guestfs_int_program_name, input, sections->name, fields->key);
+ fprintf (
+ stderr,
+ _("%s: %s: section [%s], field '%s' has invalid characters
"
+ "which will not work with virt-builder 1.24.1\n"),
+ guestfs_int_program_name, input, sections->name, fields->key);
exit (EXIT_FAILURE);
}
}
@@ -172,7 +183,8 @@ main (int argc, char *argv[])
if (compat_1_24_0 && !seen_sig) {
parse_context_free (&context);
- fprintf (stderr, _("%s: %s: section [%s] is missing a 'sig' field
which will not work with virt-builder 1.24.0\n"),
+ fprintf (stderr, _("%s: %s: section [%s] is missing a 'sig' field
"
+ "which will not work with virt-builder 1.24.0\n"),
guestfs_int_program_name, input, sections->name);
exit (EXIT_FAILURE);
}
diff --git a/builder/pxzcat-c.c b/builder/pxzcat-c.c
index 1f5ceeb..dce2789 100644
--- a/builder/pxzcat-c.c
+++ b/builder/pxzcat-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -47,13 +48,12 @@
#ifdef HAVE_CAML_UNIXSUPPORT_H
#include <caml/unixsupport.h>
#else
-#define Nothing ((value) 0)
-extern void unix_error (int errcode, char * cmdname, value arg) Noreturn;
+#define Nothing ((value)0)
+extern void unix_error (int errcode, char *cmdname, value arg) Noreturn;
#endif
-#if defined (HAVE_LIBLZMA) && \
- defined (HAVE_LZMA_INDEX_STREAM_FLAGS) && \
- defined (HAVE_LZMA_INDEX_STREAM_PADDING)
+#if defined(HAVE_LIBLZMA) && defined(HAVE_LZMA_INDEX_STREAM_FLAGS) &&
\
+ defined(HAVE_LZMA_INDEX_STREAM_PADDING)
#define PARALLEL_XZCAT 1
#else
#define PARALLEL_XZCAT 0
@@ -68,7 +68,8 @@ virt_builder_using_parallel_xzcat (value unitv)
}
#if PARALLEL_XZCAT
-static void pxzcat (value filenamev, value outputfilev, unsigned nr_threads);
+static void pxzcat (value filenamev, value outputfilev,
+ unsigned nr_threads);
#endif /* PARALLEL_XZCAT */
extern value virt_builder_pxzcat (value inputfilev, value outputfilev);
@@ -90,7 +91,7 @@ virt_builder_pxzcat (value inputfilev, value outputfilev)
perror ("could not get number of cores");
i = 1;
}
- nr_threads = (unsigned) i;
+ nr_threads = (unsigned)i;
/* NB: This might throw an exception if something fails. If it
* does, this function won't return as a regular C function.
@@ -104,18 +105,19 @@ virt_builder_pxzcat (value inputfilev, value outputfilev)
pid_t pid;
int status;
- fd = open (String_val (outputfilev), O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY, 0666);
+ fd = open (String_val (outputfilev),
+ O_WRONLY | O_CREAT | O_TRUNC | O_NOCTTY, 0666);
if (fd == -1)
- unix_error (errno, (char *) "open", outputfilev);
+ unix_error (errno, (char *)"open", outputfilev);
pid = fork ();
if (pid == -1) {
int err = errno;
close (fd);
- unix_error (err, (char *) "fork", Nothing);
+ unix_error (err, (char *)"fork", Nothing);
}
- if (pid == 0) { /* child - run xzcat */
+ if (pid == 0) { /* child - run xzcat */
dup2 (fd, 1);
execlp (XZCAT, XZCAT, String_val (inputfilev), NULL);
perror (XZCAT);
@@ -125,7 +127,7 @@ virt_builder_pxzcat (value inputfilev, value outputfilev)
close (fd);
if (waitpid (pid, &status, 0) == -1)
- unix_error (errno, (char *) "waitpid", Nothing);
+ unix_error (errno, (char *)"waitpid", Nothing);
if (!WIFEXITED (status) || WEXITSTATUS (status) != 0)
caml_failwith (XZCAT " program failed, see earlier error messages");
@@ -139,20 +141,25 @@ virt_builder_pxzcat (value inputfilev, value outputfilev)
#define DEBUG 0
#if DEBUG
-#define debug(fs,...) fprintf (stderr, "pxzcat: debug: " fs "\n", ##
__VA_ARGS__)
+#define debug(fs, ...) \
+ fprintf (stderr, "pxzcat: debug: " fs "\n", ##__VA_ARGS__)
#else
-#define debug(fs,...) /* nothing */
+#define debug(fs, ...) /* nothing */
#endif
/* Size of buffers used in decompression loop. */
-#define BUFFER_SIZE (64*1024)
+#define BUFFER_SIZE (64 * 1024)
-#define XZ_HEADER_MAGIC "\xfd" "7zXZ\0"
+#define XZ_HEADER_MAGIC \
+ "\xfd" \
+ "7zXZ\0"
#define XZ_HEADER_MAGIC_LEN 6
static int check_header_magic (int fd);
static lzma_index *parse_indexes (value filenamev, int fd);
-static void iter_blocks (lzma_index *idx, unsigned nr_threads, value filenamev, int fd,
value outputfilev, int ofd);
+static void iter_blocks (lzma_index *idx, unsigned nr_threads,
+ value filenamev, int fd, value outputfilev,
+ int ofd);
static void
pxzcat (value filenamev, value outputfilev, unsigned nr_threads)
@@ -164,7 +171,7 @@ pxzcat (value filenamev, value outputfilev, unsigned nr_threads)
/* Open the file. */
fd = open (String_val (filenamev), O_RDONLY);
if (fd == -1)
- unix_error (errno, (char *) "open", filenamev);
+ unix_error (errno, (char *)"open", filenamev);
/* Check file magic. */
if (!check_header_magic (fd)) {
@@ -183,40 +190,42 @@ pxzcat (value filenamev, value outputfilev, unsigned nr_threads)
* unless we are very careful about not truncating a regular file
* from non-zero size to zero size. (Thanks Eric Sandeen)
*/
- ofd = open (String_val (outputfilev), O_WRONLY|O_CREAT|O_NOCTTY, 0644);
+ ofd =
+ open (String_val (outputfilev), O_WRONLY | O_CREAT | O_NOCTTY, 0644);
if (ofd == -1) {
int err = errno;
close (fd);
- unix_error (err, (char *) "open", outputfilev);
+ unix_error (err, (char *)"open", outputfilev);
}
if (ftruncate (ofd, 1) == -1) {
int err = errno;
close (fd);
- unix_error (err, (char *) "ftruncate", outputfilev);
+ unix_error (err, (char *)"ftruncate", outputfilev);
}
if (lseek (ofd, 0, SEEK_SET) == -1) {
int err = errno;
close (fd);
- unix_error (err, (char *) "lseek", outputfilev);
+ unix_error (err, (char *)"lseek", outputfilev);
}
if (write (ofd, "\0", 1) == -1) {
int err = errno;
close (fd);
- unix_error (err, (char *) "write", outputfilev);
+ unix_error (err, (char *)"write", outputfilev);
}
if (ftruncate (ofd, size) == -1) {
int err = errno;
close (fd);
- unix_error (err, (char *) "ftruncate", outputfilev);
+ unix_error (err, (char *)"ftruncate", outputfilev);
}
#if defined HAVE_POSIX_FADVISE
/* Tell the kernel we won't read the output file. */
- ignore_value (posix_fadvise (fd, 0, 0, POSIX_FADV_RANDOM|POSIX_FADV_DONTNEED));
+ ignore_value (
+ posix_fadvise (fd, 0, 0, POSIX_FADV_RANDOM | POSIX_FADV_DONTNEED));
#endif
/* Iterate over blocks. */
@@ -225,7 +234,7 @@ pxzcat (value filenamev, value outputfilev, unsigned nr_threads)
lzma_index_end (idx, NULL);
if (close (fd) == -1)
- unix_error (errno, (char *) "close", filenamev);
+ unix_error (errno, (char *)"close", filenamev);
}
static int
@@ -270,28 +279,30 @@ parse_indexes (value filenamev, int fd)
/* Check file size is a multiple of 4 bytes. */
pos = lseek (fd, 0, SEEK_END);
- if (pos == (off_t) -1)
- unix_error (errno, (char *) "lseek", filenamev);
+ if (pos == (off_t)-1)
+ unix_error (errno, (char *)"lseek", filenamev);
if ((pos & 3) != 0)
- caml_invalid_argument ("input not an xz file: size is not a multiple of 4
bytes");
+ caml_invalid_argument (
+ "input not an xz file: size is not a multiple of 4 bytes");
/* Jump backwards through the file identifying each stream. */
while (pos > 0) {
- debug ("looping through streams: pos = %" PRIu64, (uint64_t) pos);
+ debug ("looping through streams: pos = %" PRIu64, (uint64_t)pos);
if (pos < LZMA_STREAM_HEADER_SIZE)
caml_invalid_argument ("corrupted xz file");
if (lseek (fd, -LZMA_STREAM_HEADER_SIZE, SEEK_CUR) == -1)
- unix_error (errno, (char *) "lseek", filenamev);
+ unix_error (errno, (char *)"lseek", filenamev);
- if (read (fd, footer, LZMA_STREAM_HEADER_SIZE) != LZMA_STREAM_HEADER_SIZE)
- unix_error (errno, (char *) "read", filenamev);
+ if (read (fd, footer, LZMA_STREAM_HEADER_SIZE) !=
+ LZMA_STREAM_HEADER_SIZE)
+ unix_error (errno, (char *)"read", filenamev);
/* Skip stream padding. */
- if (footer[8] == 0 && footer[9] == 0 &&
- footer[10] == 0 && footer[11] == 0) {
+ if (footer[8] == 0 && footer[9] == 0 && footer[10] == 0 &&
+ footer[11] == 0) {
stream_padding += 4;
pos -= 4;
continue;
@@ -300,7 +311,7 @@ parse_indexes (value filenamev, int fd)
pos -= LZMA_STREAM_HEADER_SIZE;
nr_streams++;
- debug ("decode stream footer at pos = %" PRIu64, (uint64_t) pos);
+ debug ("decode stream footer at pos = %" PRIu64, (uint64_t)pos);
/* Does the stream footer look reasonable? */
r = lzma_stream_footer_decode (&footer_flags, footer);
@@ -309,17 +320,18 @@ parse_indexes (value filenamev, int fd)
caml_invalid_argument ("invalid stream footer");
}
- debug ("backward_size = %" PRIu64, (uint64_t) footer_flags.backward_size);
+ debug ("backward_size = %" PRIu64,
+ (uint64_t)footer_flags.backward_size);
index_size = footer_flags.backward_size;
if (pos < index_size + LZMA_STREAM_HEADER_SIZE)
caml_invalid_argument ("invalid stream footer");
pos -= index_size;
- debug ("decode index at pos = %" PRIu64, (uint64_t) pos);
+ debug ("decode index at pos = %" PRIu64, (uint64_t)pos);
/* Seek backwards to the index of this stream. */
if (lseek (fd, pos, SEEK_SET) == -1)
- unix_error (errno, (char *) "lseek", filenamev);
+ unix_error (errno, (char *)"lseek", filenamev);
/* Decode the index. */
r = lzma_index_decoder (&strm, &this_index, UINT64_MAX);
@@ -335,7 +347,7 @@ parse_indexes (value filenamev, int fd)
n = read (fd, buf, strm.avail_in);
if (n == -1)
- unix_error (errno, (char *) "read", filenamev);
+ unix_error (errno, (char *)"read", filenamev);
index_size -= strm.avail_in;
@@ -350,14 +362,15 @@ parse_indexes (value filenamev, int fd)
pos -= lzma_index_total_size (this_index) + LZMA_STREAM_HEADER_SIZE;
- debug ("decode stream header at pos = %" PRIu64, (uint64_t) pos);
+ debug ("decode stream header at pos = %" PRIu64, (uint64_t)pos);
/* Read and decode the stream header. */
if (lseek (fd, pos, SEEK_SET) == -1)
- unix_error (errno, (char *) "lseek", filenamev);
+ unix_error (errno, (char *)"lseek", filenamev);
- if (read (fd, header, LZMA_STREAM_HEADER_SIZE) != LZMA_STREAM_HEADER_SIZE)
- unix_error (errno, (char *) "read stream header", filenamev);
+ if (read (fd, header, LZMA_STREAM_HEADER_SIZE) !=
+ LZMA_STREAM_HEADER_SIZE)
+ unix_error (errno, (char *)"read stream header", filenamev);
r = lzma_stream_header_decode (&header_flags, header);
if (r != LZMA_OK) {
@@ -368,15 +381,16 @@ parse_indexes (value filenamev, int fd)
/* Header and footer of the stream should be equal. */
r = lzma_stream_flags_compare (&header_flags, &footer_flags);
if (r != LZMA_OK) {
- fprintf (stderr, "header and footer of stream are not equal - error
%u\n",
- r);
+ fprintf (stderr,
+ "header and footer of stream are not equal - error %u\n", r);
caml_invalid_argument ("header and footer of stream are not equal");
}
/* Store the decoded stream flags in this_index. */
r = lzma_index_stream_flags (this_index, &footer_flags);
if (r != LZMA_OK) {
- fprintf (stderr, "cannot read stream_flags from index - error %u\n", r);
+ fprintf (stderr, "cannot read stream_flags from index - error %u\n",
+ r);
caml_invalid_argument ("cannot read stream_flags from index");
}
@@ -385,7 +399,8 @@ parse_indexes (value filenamev, int fd)
*/
r = lzma_index_stream_padding (this_index, stream_padding);
if (r != LZMA_OK) {
- fprintf (stderr, "cannot set stream_padding in index - error %u\n", r);
+ fprintf (stderr, "cannot set stream_padding in index - error %u\n",
+ r);
caml_invalid_argument ("cannot set stream_padding in index");
}
@@ -424,7 +439,8 @@ is_zero (const unsigned char *buffer, size_t size)
return 1;
}
-struct global_state {
+struct global_state
+{
/* Current iterator. Threads update this, but it is protected by a
* mutex, and each thread takes a copy of it when working on it.
*/
@@ -445,7 +461,8 @@ struct global_state {
int ofd;
};
-struct per_thread_state {
+struct per_thread_state
+{
unsigned thread_num;
struct global_state *global;
int status;
@@ -455,8 +472,8 @@ struct per_thread_state {
static void *worker_thread (void *vp);
static void
-iter_blocks (lzma_index *idx, unsigned nr_threads,
- value filenamev, int fd, value outputfilev, int ofd)
+iter_blocks (lzma_index *idx, unsigned nr_threads, value filenamev, int fd,
+ value outputfilev, int ofd)
{
struct global_state global;
CLEANUP_FREE struct per_thread_state *per_thread = NULL;
@@ -474,7 +491,7 @@ iter_blocks (lzma_index *idx, unsigned nr_threads,
global.iter_finished = 0;
err = pthread_mutex_init (&global.iter_mutex, NULL);
if (err != 0)
- unix_error (err, (char *) "pthread_mutex_init", Nothing);
+ unix_error (err, (char *)"pthread_mutex_init", Nothing);
global.filename = String_val (filenamev);
global.fd = fd;
@@ -490,7 +507,7 @@ iter_blocks (lzma_index *idx, unsigned nr_threads,
for (u = 0; u < nr_threads; ++u) {
err = pthread_create (&thread[u], NULL, worker_thread, &per_thread[u]);
if (err != 0)
- unix_error (err, (char *) "pthread_create", Nothing);
+ unix_error (err, (char *)"pthread_create", Nothing);
}
/* Wait for the threads to exit. */
@@ -562,11 +579,12 @@ worker_thread (void *vp)
for (;;) {
/* Get the next block. */
err = pthread_mutex_lock (&global->iter_mutex);
- if (err != 0) abort ();
+ if (err != 0)
+ abort ();
iter_finished = global->iter_finished;
if (!iter_finished) {
- iter_finished = global->iter_finished =
- lzma_index_iter_next (&global->iter, LZMA_INDEX_ITER_NONEMPTY_BLOCK);
+ iter_finished = global->iter_finished = lzma_index_iter_next (
+ &global->iter, LZMA_INDEX_ITER_NONEMPTY_BLOCK);
if (!iter_finished)
/* Take a local copy of this iterator since another thread will
* update the global version.
@@ -574,7 +592,8 @@ worker_thread (void *vp)
iter = global->iter;
}
err = pthread_mutex_unlock (&global->iter_mutex);
- if (err != 0) abort ();
+ if (err != 0)
+ abort ();
if (iter_finished)
break;
@@ -584,9 +603,10 @@ worker_thread (void *vp)
position = iter.block.compressed_file_offset;
n = pread (global->fd, header, 1, position);
if (n == 0) {
- fprintf (stderr,
- "%s: read: unexpected end of file reading block header byte\n",
- global->filename);
+ fprintf (
+ stderr,
+ "%s: read: unexpected end of file reading block header byte\n",
+ global->filename);
return &state->status;
}
if (n == -1) {
@@ -596,9 +616,10 @@ worker_thread (void *vp)
position++;
if (header[0] == '\0') {
- fprintf (stderr,
- "%s: read: unexpected invalid block in file, header[0] = 0\n",
- global->filename);
+ fprintf (
+ stderr,
+ "%s: read: unexpected invalid block in file, header[0] = 0\n",
+ global->filename);
return &state->status;
}
@@ -608,8 +629,8 @@ worker_thread (void *vp)
block.header_size = lzma_block_header_size_decode (header[0]);
/* Now read and decode the block header. */
- n = pread (global->fd, &header[1], block.header_size-1, position);
- if (n >= 0 && n != (ssize_t) block.header_size-1) {
+ n = pread (global->fd, &header[1], block.header_size - 1, position);
+ if (n >= 0 && n != (ssize_t)block.header_size - 1) {
fprintf (stderr,
"%s: read: unexpected end of file reading block header\n",
global->filename);
@@ -633,8 +654,7 @@ worker_thread (void *vp)
*/
r = lzma_block_compressed_size (&block, iter.block.unpadded_size);
if (r != LZMA_OK) {
- fprintf (stderr,
- "%s: cannot calculate compressed size (error %u)\n",
+ fprintf (stderr, "%s: cannot calculate compressed size (error %u)\n",
global->filename, r);
return &state->status;
}
@@ -645,7 +665,8 @@ worker_thread (void *vp)
/* Read the block data and uncompress it. */
r = lzma_block_decoder (&strm, &block);
if (r != LZMA_OK) {
- fprintf (stderr, "%s: invalid block (error %u)\n", global->filename,
r);
+ fprintf (stderr, "%s: invalid block (error %u)\n", global->filename,
+ r);
return &state->status;
}
@@ -693,8 +714,7 @@ worker_thread (void *vp)
if (r == LZMA_STREAM_END)
break;
if (r != LZMA_OK) {
- fprintf (stderr,
- "%s: could not parse block data (error %u)\n",
+ fprintf (stderr, "%s: could not parse block data (error %u)\n",
global->filename, r);
return &state->status;
}
diff --git a/builder/setlocale-c.c b/builder/setlocale-c.c
index f2ad853..6b306ef 100644
--- a/builder/setlocale-c.c
+++ b/builder/setlocale-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -25,15 +26,9 @@
#include <caml/memory.h>
#include <caml/mlvalues.h>
-static const int lc_string_table[7] = {
- LC_ALL,
- LC_CTYPE,
- LC_NUMERIC,
- LC_TIME,
- LC_COLLATE,
- LC_MONETARY,
- LC_MESSAGES
-};
+static const int lc_string_table[7] = { LC_ALL, LC_CTYPE, LC_NUMERIC,
+ LC_TIME, LC_COLLATE, LC_MONETARY,
+ LC_MESSAGES };
#define Val_none (Val_int (0))
@@ -48,7 +43,8 @@ virt_builder_setlocale (value val_category, value val_name)
int category;
category = lc_string_table[Int_val (val_category)];
- locstring = val_name == Val_none ? NULL : String_val (Field (val_name, 0));
+ locstring =
+ val_name == Val_none ? NULL : String_val (Field (val_name, 0));
ret = setlocale (category, locstring);
if (ret) {
rv2 = caml_copy_string (ret);
diff --git a/builder/yajl-c.c b/builder/yajl-c.c
index f34196e..5c13754 100644
--- a/builder/yajl-c.c
+++ b/builder/yajl-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -42,40 +43,40 @@ convert_yajl_value (yajl_val val, int level)
caml_invalid_argument ("too many levels of object/array nesting");
if (YAJL_IS_OBJECT (val)) {
- size_t len = YAJL_GET_OBJECT(val)->len;
+ size_t len = YAJL_GET_OBJECT (val)->len;
size_t i;
rv = caml_alloc (1, 3);
lv = caml_alloc_tuple (len);
for (i = 0; i < len; ++i) {
v = caml_alloc_tuple (2);
- sv = caml_copy_string (YAJL_GET_OBJECT(val)->keys[i]);
+ sv = caml_copy_string (YAJL_GET_OBJECT (val)->keys[i]);
Store_field (v, 0, sv);
- sv = convert_yajl_value (YAJL_GET_OBJECT(val)->values[i], level + 1);
+ sv = convert_yajl_value (YAJL_GET_OBJECT (val)->values[i], level + 1);
Store_field (v, 1, sv);
Store_field (lv, i, v);
}
Store_field (rv, 0, lv);
} else if (YAJL_IS_ARRAY (val)) {
- size_t len = YAJL_GET_ARRAY(val)->len;
+ size_t len = YAJL_GET_ARRAY (val)->len;
size_t i;
rv = caml_alloc (1, 4);
lv = caml_alloc_tuple (len);
for (i = 0; i < len; ++i) {
- v = convert_yajl_value (YAJL_GET_ARRAY(val)->values[i], level + 1);
+ v = convert_yajl_value (YAJL_GET_ARRAY (val)->values[i], level + 1);
Store_field (lv, i, v);
}
Store_field (rv, 0, lv);
} else if (YAJL_IS_STRING (val)) {
rv = caml_alloc (1, 0);
- v = caml_copy_string (YAJL_GET_STRING(val));
+ v = caml_copy_string (YAJL_GET_STRING (val));
Store_field (rv, 0, v);
} else if (YAJL_IS_DOUBLE (val)) {
rv = caml_alloc (1, 2);
- v = caml_copy_double (YAJL_GET_DOUBLE(val));
+ v = caml_copy_double (YAJL_GET_DOUBLE (val));
Store_field (rv, 0, v);
} else if (YAJL_IS_INTEGER (val)) {
rv = caml_alloc (1, 1);
- v = caml_copy_int64 (YAJL_GET_INTEGER(val));
+ v = caml_copy_int64 (YAJL_GET_INTEGER (val));
Store_field (rv, 0, v);
} else if (YAJL_IS_TRUE (val)) {
rv = caml_alloc (1, 5);
@@ -97,7 +98,8 @@ virt_builder_yajl_tree_parse (value stringv)
yajl_val tree;
char error_buf[256];
- tree = yajl_tree_parse (String_val (stringv), error_buf, sizeof error_buf);
+ tree =
+ yajl_tree_parse (String_val (stringv), error_buf, sizeof error_buf);
if (tree == NULL) {
char buf[256 + sizeof error_buf];
if (strlen (error_buf) > 0)
diff --git a/cat/cat.c b/cat/cat.c
index 0370fbd..a3e81a0 100644
--- a/cat/cat.c
+++ b/cat/cat.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -47,34 +48,35 @@ int inspector = 1;
static int do_cat (int argc, char *argv[]);
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: display files in a virtual machine\n"
- "Copyright (C) 2010 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options] -d domname file [file ...]\n"
- " %s [--options] -a disk.img [-a disk.img ...] file [file
...]\n"
- "Options:\n"
- " -a|--add image Add image\n"
- " -c|--connect uri Specify libvirt URI for -d option\n"
- " -d|--domain guest Add disks from libvirt guest\n"
- " --echo-keys Don't turn off echo for
passphrases\n"
- " --format[=raw|..] Force disk format for -a option\n"
- " --help Display brief help\n"
- " --keys-from-stdin Read passphrases from stdin\n"
- " -m|--mount dev[:mnt[:opts[:fstype]]]\n"
- " Mount dev on mnt (if omitted, /)\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- " -x Trace libguestfs API calls\n"
- "For more information, see the manpage %s(1).\n"),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name, guestfs_int_program_name);
+ printf (
+ _("%s: display files in a virtual machine\n"
+ "Copyright (C) 2010 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options] -d domname file [file ...]\n"
+ " %s [--options] -a disk.img [-a disk.img ...] file [file "
+ "...]\n"
+ "Options:\n"
+ " -a|--add image Add image\n"
+ " -c|--connect uri Specify libvirt URI for -d option\n"
+ " -d|--domain guest Add disks from libvirt guest\n"
+ " --echo-keys Don't turn off echo for passphrases\n"
+ " --format[=raw|..] Force disk format for -a option\n"
+ " --help Display brief help\n"
+ " --keys-from-stdin Read passphrases from stdin\n"
+ " -m|--mount dev[:mnt[:opts[:fstype]]]\n"
+ " Mount dev on mnt (if omitted, /)\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ " -x Trace libguestfs API calls\n"
+ "For more information, see the manpage %s(1).\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name, guestfs_int_program_name);
}
exit (status);
}
@@ -121,10 +123,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -136,8 +139,7 @@ main (int argc, char *argv[])
} else if (STREQ (long_options[option_index].name, "format")) {
OPTION_format;
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -195,7 +197,7 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, errno, "strdup");
drv->next = drvs;
drvs = drv;
- } else { /* simulate -d option */
+ } else { /* simulate -d option */
drv = calloc (1, sizeof (struct drv));
if (!drv)
error (EXIT_FAILURE, errno, "calloc");
@@ -276,8 +278,8 @@ do_cat (int argc, char *argv[])
const char *filename = argv[i];
if (windows) {
- filename = filename_to_free = windows_path (g, root, filename,
- 1 /* readonly */);
+ filename = filename_to_free =
+ windows_path (g, root, filename, 1 /* readonly */);
if (filename == NULL) {
errors++;
continue;
diff --git a/cat/filesystems.c b/cat/filesystems.c
index 3f9d931..d7106b1 100644
--- a/cat/filesystems.c
+++ b/cat/filesystems.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -48,30 +49,30 @@ int echo_keys = 0;
const char *libvirt_uri = NULL;
int inspector = 0;
-static int csv = 0; /* --csv */
-static int human = 0; /* --human-readable|-h */
+static int csv = 0; /* --csv */
+static int human = 0; /* --human-readable|-h */
/* What is selected for output. */
-#define OUTPUT_FILESYSTEMS 1
-#define OUTPUT_FILESYSTEMS_EXTRA 2
-#define OUTPUT_PARTITIONS 4
-#define OUTPUT_BLOCKDEVS 8
-#define OUTPUT_LVS 16
-#define OUTPUT_VGS 32
-#define OUTPUT_PVS 64
-#define OUTPUT_ALL INT_MAX
+#define OUTPUT_FILESYSTEMS 1
+#define OUTPUT_FILESYSTEMS_EXTRA 2
+#define OUTPUT_PARTITIONS 4
+#define OUTPUT_BLOCKDEVS 8
+#define OUTPUT_LVS 16
+#define OUTPUT_VGS 32
+#define OUTPUT_PVS 64
+#define OUTPUT_ALL INT_MAX
static int output = 0;
/* What columns to output. This is in display order. */
-#define COLUMN_NAME 1 /* always shown */
-#define COLUMN_TYPE 2
-#define COLUMN_VFS_TYPE 4 /* if --filesystems */
-#define COLUMN_VFS_LABEL 8 /* if --filesystems */
-#define COLUMN_MBR 16
-#define COLUMN_SIZE 32 /* bytes, or human-readable if -h */
-#define COLUMN_PARENTS 64
-#define COLUMN_UUID 128 /* if --uuid */
-#define NR_COLUMNS 8
+#define COLUMN_NAME 1 /* always shown */
+#define COLUMN_TYPE 2
+#define COLUMN_VFS_TYPE 4 /* if --filesystems */
+#define COLUMN_VFS_LABEL 8 /* if --filesystems */
+#define COLUMN_MBR 16
+#define COLUMN_SIZE 32 /* bytes, or human-readable if -h */
+#define COLUMN_PARENTS 64
+#define COLUMN_UUID 128 /* if --uuid */
+#define NR_COLUMNS 8
static int columns;
static void do_output_title (void);
@@ -81,49 +82,49 @@ static void do_output_end (void);
static struct guestfs_lvm_pv_list *get_pvs (void);
static void free_pvs (void);
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: list filesystems, partitions, block devices, LVM in a VM\n"
- "Copyright (C) 2010 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options] -d domname\n"
- " %s [--options] -a disk.img [-a disk.img ...]\n"
- "Options:\n"
- " -a|--add image Add image\n"
- " --all Display everything\n"
- " --blkdevs|--block-devices\n"
- " Display block devices\n"
- " -c|--connect uri Specify libvirt URI for -d option\n"
- " --csv Output as Comma-Separated Values\n"
- " -d|--domain guest Add disks from libvirt guest\n"
- " --echo-keys Don't turn off echo for
passphrases\n"
- " --extra Display swap and data filesystems\n"
- " --filesystems Display mountable filesystems\n"
- " --format[=raw|..] Force disk format for -a option\n"
- " -h|--human-readable Human-readable sizes in --long output\n"
- " --help Display brief help\n"
- " --keys-from-stdin Read passphrases from stdin\n"
- " -l|--long Long output\n"
- " --lvs|--logvols|--logical-volumes\n"
- " Display LVM logical volumes\n"
- " --no-title No title in --long output\n"
- " --parts|--partitions Display partitions\n"
- " --pvs|--physvols|--physical-volumes\n"
- " Display LVM physical volumes\n"
- " --uuid|--uuids Add UUIDs to --long output\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- " --vgs|--volgroups|--volume-groups\n"
- " Display LVM volume groups\n"
- " -x Trace libguestfs API calls\n"
- "For more information, see the manpage %s(1).\n"),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name, guestfs_int_program_name);
+ printf (
+ _("%s: list filesystems, partitions, block devices, LVM in a VM\n"
+ "Copyright (C) 2010 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options] -d domname\n"
+ " %s [--options] -a disk.img [-a disk.img ...]\n"
+ "Options:\n"
+ " -a|--add image Add image\n"
+ " --all Display everything\n"
+ " --blkdevs|--block-devices\n"
+ " Display block devices\n"
+ " -c|--connect uri Specify libvirt URI for -d option\n"
+ " --csv Output as Comma-Separated Values\n"
+ " -d|--domain guest Add disks from libvirt guest\n"
+ " --echo-keys Don't turn off echo for passphrases\n"
+ " --extra Display swap and data filesystems\n"
+ " --filesystems Display mountable filesystems\n"
+ " --format[=raw|..] Force disk format for -a option\n"
+ " -h|--human-readable Human-readable sizes in --long output\n"
+ " --help Display brief help\n"
+ " --keys-from-stdin Read passphrases from stdin\n"
+ " -l|--long Long output\n"
+ " --lvs|--logvols|--logical-volumes\n"
+ " Display LVM logical volumes\n"
+ " --no-title No title in --long output\n"
+ " --parts|--partitions Display partitions\n"
+ " --pvs|--physvols|--physical-volumes\n"
+ " Display LVM physical volumes\n"
+ " --uuid|--uuids Add UUIDs to --long output\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ " --vgs|--volgroups|--volume-groups\n"
+ " Display LVM volume groups\n"
+ " -x Trace libguestfs API calls\n"
+ "For more information, see the manpage %s(1).\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name, guestfs_int_program_name);
}
exit (status);
}
@@ -179,9 +180,9 @@ main (int argc, char *argv[])
bool format_consumed = true;
int c;
int option_index;
- int no_title = 0; /* --no-title */
- int long_mode = 0; /* --long|-l */
- int uuid = 0; /* --uuid */
+ int no_title = 0; /* --no-title */
+ int long_mode = 0; /* --long|-l */
+ int uuid = 0; /* --uuid */
int title;
g = guestfs_create ();
@@ -190,10 +191,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -216,7 +218,8 @@ main (int argc, char *argv[])
output |= OUTPUT_FILESYSTEMS_EXTRA;
} else if (STREQ (long_options[option_index].name, "filesystems")) {
output |= OUTPUT_FILESYSTEMS;
- } else if (STREQ (long_options[option_index].name, "logical-volumes") ||
+ } else if (STREQ (long_options[option_index].name,
+ "logical-volumes") ||
STREQ (long_options[option_index].name, "logvols") ||
STREQ (long_options[option_index].name, "lvs")) {
output |= OUTPUT_LVS;
@@ -225,7 +228,8 @@ main (int argc, char *argv[])
} else if (STREQ (long_options[option_index].name, "parts") ||
STREQ (long_options[option_index].name, "partitions")) {
output |= OUTPUT_PARTITIONS;
- } else if (STREQ (long_options[option_index].name, "physical-volumes")
||
+ } else if (STREQ (long_options[option_index].name,
+ "physical-volumes") ||
STREQ (long_options[option_index].name, "physvols") ||
STREQ (long_options[option_index].name, "pvs")) {
output |= OUTPUT_PVS;
@@ -237,8 +241,7 @@ main (int argc, char *argv[])
STREQ (long_options[option_index].name, "volume-groups")) {
output |= OUTPUT_VGS;
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -360,7 +363,10 @@ static void do_output_pvs (void);
static void do_output_partitions (void);
static void do_output_blockdevs (void);
-static void write_row (const char *name, const char *type, const char *vfs_type, const
char *vfs_label, int mbr_id, int64_t size, char **parents, const char *uuid);
+static void write_row (const char *name, const char *type,
+ const char *vfs_type, const char *vfs_label,
+ int mbr_id, int64_t size, char **parents,
+ const char *uuid);
static void write_row_strings (char **strings, size_t len);
static char **no_parents (void);
@@ -393,7 +399,7 @@ do_output_title (void)
headings[len++] = "UUID";
assert (len <= NR_COLUMNS);
- write_row_strings ((char **) headings, len);
+ write_row_strings ((char **)headings, len);
}
static void
@@ -437,7 +443,7 @@ do_output_filesystems (void)
/* Skip swap and unknown, unless --extra flag was given. */
if (!(output & OUTPUT_FILESYSTEMS_EXTRA) &&
- (STREQ (fses[i+1], "swap") || STREQ (fses[i+1], "unknown")))
+ (STREQ (fses[i + 1], "swap") || STREQ (fses[i + 1],
"unknown")))
continue;
dev = guestfs_canonical_device_name (g, fses[i]);
@@ -478,8 +484,8 @@ do_output_filesystems (void)
else
parents = no_parents ();
- write_row (dev, "filesystem",
- fses[i+1], vfs_label, -1, size, parents, vfs_uuid);
+ write_row (dev, "filesystem", fses[i + 1], vfs_label, -1, size, parents,
+ vfs_uuid);
}
}
@@ -518,8 +524,7 @@ do_output_lvs (void)
parents[1] = NULL;
}
- write_row (lvs[i], "lv",
- NULL, NULL, -1, size, (char **) parents, uuid);
+ write_row (lvs[i], "lv", NULL, NULL, -1, size, (char **)parents, uuid);
}
}
@@ -529,7 +534,7 @@ do_output_vgs (void)
size_t i;
CLEANUP_FREE_LVM_VG_LIST struct guestfs_lvm_vg_list *vgs =
- guestfs_vgs_full (g);
+ guestfs_vgs_full (g);
if (vgs == NULL)
exit (EXIT_FAILURE);
@@ -546,8 +551,8 @@ do_output_vgs (void)
parents = parents_of_vg (vgs->val[i].vg_name);
- write_row (name, "vg",
- NULL, NULL, -1, (int64_t) vgs->val[i].vg_size, parents, uuid);
+ write_row (name, "vg", NULL, NULL, -1, (int64_t)vgs->val[i].vg_size,
+ parents, uuid);
}
}
@@ -587,15 +592,14 @@ do_output_pvs (void)
const char *parents[1] = { NULL };
CLEANUP_FREE char *dev =
- guestfs_canonical_device_name (g, pvs->val[i].pv_name);
+ guestfs_canonical_device_name (g, pvs->val[i].pv_name);
if (!dev)
exit (EXIT_FAILURE);
memcpy (uuid, pvs->val[i].pv_uuid, 32);
uuid[32] = '\0';
- write_row (dev, "pv",
- NULL, NULL, -1, (int64_t) pvs->val[i].pv_size,
- (char **) parents, uuid);
+ write_row (dev, "pv", NULL, NULL, -1, (int64_t)pvs->val[i].pv_size,
+ (char **)parents, uuid);
}
}
@@ -630,7 +634,8 @@ do_output_partitions (void)
exit (EXIT_FAILURE);
for (i = 0; parts[i] != NULL; ++i) {
- CLEANUP_FREE char *dev = NULL, *parent_name = NULL, *canonical_name = NULL;
+ CLEANUP_FREE char *dev = NULL, *parent_name = NULL,
+ *canonical_name = NULL;
const char *parents[2];
int64_t size = -1;
int mbr_id = -1;
@@ -660,8 +665,8 @@ do_output_partitions (void)
parents[1] = NULL;
}
- write_row (dev, "partition",
- NULL, NULL, mbr_id, size, (char **) parents, NULL);
+ write_row (dev, "partition", NULL, NULL, mbr_id, size, (char **)parents,
+ NULL);
}
}
@@ -694,8 +699,7 @@ do_output_blockdevs (void)
else
parents = no_parents ();
- write_row (dev, "device",
- NULL, NULL, -1, size, parents, NULL);
+ write_row (dev, "device", NULL, NULL, -1, size, parents, NULL);
}
}
@@ -740,7 +744,7 @@ parents_of_md (char *device)
size_t i;
CLEANUP_FREE_MDSTAT_LIST struct guestfs_mdstat_list *stats =
- guestfs_md_stat (g, device);
+ guestfs_md_stat (g, device);
if (!stats)
exit (EXIT_FAILURE);
@@ -811,8 +815,7 @@ parents_of_vg (char *vg)
ret[i] = guestfs_canonical_device_name (g, pvs->val[j].pv_name);
if (!ret[i])
exit (EXIT_FAILURE);
- }
- else {
+ } else {
fprintf (stderr, "%s: warning: unknown PV UUID ignored\n", __func__);
ret[i] = strndup (pvuuids[i], 32);
if (!ret[i])
@@ -826,9 +829,9 @@ parents_of_vg (char *vg)
}
static void
-write_row (const char *name, const char *type,
- const char *vfs_type, const char *vfs_label, int mbr_id,
- int64_t size, char **parents, const char *uuid)
+write_row (const char *name, const char *type, const char *vfs_type,
+ const char *vfs_label, int mbr_id, int64_t size, char **parents,
+ const char *uuid)
{
const char *strings[NR_COLUMNS];
CLEANUP_FREE char *parents_str = NULL;
@@ -847,7 +850,7 @@ write_row (const char *name, const char *type,
strings[len++] = vfs_label;
if ((columns & COLUMN_MBR)) {
if (mbr_id >= 0) {
- snprintf (mbr_id_str, sizeof mbr_id_str, "%02x", (unsigned) mbr_id);
+ snprintf (mbr_id_str, sizeof mbr_id_str, "%02x", (unsigned)mbr_id);
strings[len++] = mbr_id_str;
} else
strings[len++] = NULL;
@@ -855,18 +858,15 @@ write_row (const char *name, const char *type,
if ((columns & COLUMN_SIZE)) {
if (size >= 0) {
if (human) {
- strings[len++] =
- human_readable ((uintmax_t) size, hum,
- human_round_to_nearest|human_autoscale|
- human_base_1024|human_SI,
- 1, 1);
- }
- else {
+ strings[len++] = human_readable (
+ (uintmax_t)size, hum, human_round_to_nearest | human_autoscale |
+ human_base_1024 | human_SI,
+ 1, 1);
+ } else {
snprintf (num, sizeof num, "%" PRIi64, size);
strings[len++] = num;
}
- }
- else
+ } else
strings[len++] = NULL;
}
if ((columns & COLUMN_PARENTS)) {
@@ -878,7 +878,7 @@ write_row (const char *name, const char *type,
strings[len++] = uuid;
assert (len <= NR_COLUMNS);
- write_row_strings ((char **) strings, len);
+ write_row_strings ((char **)strings, len);
}
static void add_row (char **strings, size_t len);
@@ -893,8 +893,7 @@ write_row_strings (char **strings, size_t len)
* output them at the end.
*/
add_row (strings, len);
- }
- else { /* CSV mode: output it directly, quoted */
+ } else { /* CSV mode: output it directly, quoted */
size_t i;
for (i = 0; i < len; ++i) {
@@ -919,8 +918,8 @@ write_csv_field (const char *field)
len = strlen (field);
for (i = 0; i < len; ++i) {
- if (field[i] == ' ' || field[i] == '"' ||
- field[i] == '\n' || field[i] == ',') {
+ if (field[i] == ' ' || field[i] == '"' || field[i] ==
'\n' ||
+ field[i] == ',') {
needs_quoting = 1;
break;
}
@@ -972,8 +971,7 @@ add_row (char **strings, size_t len)
slen = 1; /* because "" is printed as "-" */
if (slen > max_width[i])
max_width[i] = slen;
- }
- else
+ } else
row[i] = NULL;
}
diff --git a/cat/log.c b/cat/log.c
index daefda7..fb689da 100644
--- a/cat/log.c
+++ b/cat/log.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -56,32 +57,32 @@ static int do_log_journal (void);
static int do_log_text_file (const char *filename);
static int do_log_windows_evtx (void);
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: display log files in a virtual machine\n"
- "Copyright (C) 2010-2016 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options] -d domname\n"
- " %s [--options] -a disk.img [-a disk.img ...]\n"
- "Options:\n"
- " -a|--add image Add image\n"
- " -c|--connect uri Specify libvirt URI for -d option\n"
- " -d|--domain guest Add disks from libvirt guest\n"
- " --echo-keys Don't turn off echo for
passphrases\n"
- " --format[=raw|..] Force disk format for -a option\n"
- " --help Display brief help\n"
- " --keys-from-stdin Read passphrases from stdin\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- " -x Trace libguestfs API calls\n"
- "For more information, see the manpage %s(1).\n"),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name, guestfs_int_program_name);
+ printf (
+ _("%s: display log files in a virtual machine\n"
+ "Copyright (C) 2010-2016 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options] -d domname\n"
+ " %s [--options] -a disk.img [-a disk.img ...]\n"
+ "Options:\n"
+ " -a|--add image Add image\n"
+ " -c|--connect uri Specify libvirt URI for -d option\n"
+ " -d|--domain guest Add disks from libvirt guest\n"
+ " --echo-keys Don't turn off echo for passphrases\n"
+ " --format[=raw|..] Force disk format for -a option\n"
+ " --help Display brief help\n"
+ " --keys-from-stdin Read passphrases from stdin\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ " -x Trace libguestfs API calls\n"
+ "For more information, see the manpage %s(1).\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name, guestfs_int_program_name);
}
exit (status);
}
@@ -97,18 +98,12 @@ main (int argc, char *argv[])
static const char *options = "a:c:d:vVx";
static const struct option long_options[] = {
- { "add", 1, 0, 'a' },
- { "connect", 1, 0, 'c' },
- { "domain", 1, 0, 'd' },
- { "echo-keys", 0, 0, 0 },
- { "format", 2, 0, 0 },
- { "help", 0, 0, HELP_OPTION },
- { "keys-from-stdin", 0, 0, 0 },
- { "long-options", 0, 0, 0 },
- { "short-options", 0, 0, 0 },
- { "verbose", 0, 0, 'v' },
- { "version", 0, 0, 'V' },
- { 0, 0, 0, 0 }
+ { "add", 1, 0, 'a' }, { "connect", 1, 0,
'c' },
+ { "domain", 1, 0, 'd' }, { "echo-keys", 0, 0, 0
},
+ { "format", 2, 0, 0 }, { "help", 0, 0, HELP_OPTION },
+ { "keys-from-stdin", 0, 0, 0 }, { "long-options", 0, 0, 0 },
+ { "short-options", 0, 0, 0 }, { "verbose", 0, 0, 'v'
},
+ { "version", 0, 0, 'V' }, { 0, 0, 0, 0 }
};
struct drv *drvs = NULL;
const char *format = NULL;
@@ -123,10 +118,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -138,8 +134,7 @@ main (int argc, char *argv[])
} else if (STREQ (long_options[option_index].name, "format")) {
OPTION_format;
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -239,8 +234,8 @@ do_log (void)
if (guestfs_inspect_get_major_version (g, root) >= 6)
return do_log_windows_evtx ();
- fprintf (stderr,
- _("%s: Windows Event Log for pre-Vista guests is not
supported.\n"),
+ fprintf (stderr, _("%s: Windows Event Log for pre-Vista guests is not "
+ "supported.\n"),
guestfs_int_program_name);
return -1;
}
@@ -249,13 +244,14 @@ do_log (void)
guestfs_push_error_handler (g, NULL, NULL);
journal_files = guestfs_ls (g, JOURNAL_DIR);
guestfs_pop_error_handler (g);
- if (STREQ (type, "linux") &&
- journal_files != NULL && journal_files[0] != NULL)
+ if (STREQ (type, "linux") && journal_files != NULL &&
+ journal_files[0] != NULL)
return do_log_journal ();
/* Regular /var/log text files with different names. */
if (STRNEQ (type, "windows")) {
- const char *logfiles[] = { "/var/log/syslog",
"/var/log/messages", NULL };
+ const char *logfiles[] = { "/var/log/syslog",
"/var/log/messages",
+ NULL };
size_t i;
for (i = 0; logfiles[i] != NULL; ++i) {
@@ -279,8 +275,8 @@ do_log (void)
* function returns the first entry.
*/
static const char *
-get_journal_field (const struct guestfs_xattr_list *xattrs, const char *name,
- size_t *len_rtn)
+get_journal_field (const struct guestfs_xattr_list *xattrs,
+ const char *name, size_t *len_rtn)
{
uint32_t i;
@@ -291,19 +287,17 @@ get_journal_field (const struct guestfs_xattr_list *xattrs, const
char *name,
}
}
- return NULL; /* not found */
+ return NULL; /* not found */
}
-static const char *const log_level_table[] = {
- [LOG_EMERG] = "emerg",
- [LOG_ALERT] = "alert",
- [LOG_CRIT] = "crit",
- [LOG_ERR] = "err",
- [LOG_WARNING] = "warning",
- [LOG_NOTICE] = "notice",
- [LOG_INFO] = "info",
- [LOG_DEBUG] = "debug"
-};
+static const char *const log_level_table[] = {[LOG_EMERG] = "emerg",
+ [LOG_ALERT] = "alert",
+ [LOG_CRIT] = "crit",
+ [LOG_ERR] = "err",
+ [LOG_WARNING] = "warning",
+ [LOG_NOTICE] = "notice",
+ [LOG_INFO] = "info",
+ [LOG_DEBUG] = "debug" };
static int
do_log_journal (void)
@@ -333,9 +327,9 @@ do_log_journal (void)
ts = guestfs_journal_get_realtime_usec (g); /* error checked below */
priority_str = get_journal_field (xattrs, "PRIORITY", &priority_len);
- //hostname = get_journal_field (xattrs, "_HOSTNAME", &hostname_len);
- identifier = get_journal_field (xattrs, "SYSLOG_IDENTIFIER",
- &identifier_len);
+ // hostname = get_journal_field (xattrs, "_HOSTNAME", &hostname_len);
+ identifier =
+ get_journal_field (xattrs, "SYSLOG_IDENTIFIER", &identifier_len);
comm = get_journal_field (xattrs, "_COMM", &comm_len);
pid = get_journal_field (xattrs, "_PID", &pid_len);
message = get_journal_field (xattrs, "MESSAGE", &message_len);
@@ -348,7 +342,8 @@ do_log_journal (void)
if (strftime (buf, sizeof buf, "%b %d %H:%M:%S",
localtime_r (&t, &tm)) <= 0) {
- fprintf (stderr, _("%s: could not format journal entry timestamp\n"),
+ fprintf (stderr,
+ _("%s: could not format journal entry timestamp\n"),
guestfs_int_program_name);
errors++;
continue;
@@ -360,18 +355,18 @@ do_log_journal (void)
/* We don't print this because it is assumed each line from the
* guest will have the same hostname. (XXX)
*/
- //if (hostname)
+ // if (hostname)
// printf (" %.*s", (int) hostname_len, hostname);
/* Identifier. */
if (identifier)
- printf (" %.*s", (int) identifier_len, identifier);
+ printf (" %.*s", (int)identifier_len, identifier);
else if (comm)
- printf (" %.*s", (int) comm_len, comm);
+ printf (" %.*s", (int)comm_len, comm);
/* PID */
if (pid)
- printf ("[%.*s]", (int) pid_len, pid);
+ printf ("[%.*s]", (int)pid_len, pid);
/* Log level. */
if (priority_str && *priority_str >= '0' && *priority_str
<= '7')
@@ -381,11 +376,11 @@ do_log_journal (void)
/* Message. */
if (message)
- printf (" %.*s", (int) message_len, message);
+ printf (" %.*s", (int)message_len, message);
printf ("\n");
}
- if (r == -1) /* error from guestfs_journal_next */
+ if (r == -1) /* error from guestfs_journal_next */
return -1;
if (guestfs_journal_close (g) == -1)
@@ -414,10 +409,14 @@ do_log_windows_evtx (void)
int fd, status;
if (system ("evtxdump.py -h >/dev/null 2>&1") != 0) {
- fprintf (stderr, _("%s: you need to install 'evtxdump.py' (from the
python-evtx package)\n"
- "in order to parse Windows Event Logs. If you cannot install
this, then\n"
- "use virt-copy-out(1) to copy the contents of
/Windows/System32/winevt/Logs\n"
- "from this guest, and examine in a binary file
viewer.\n"),
+ fprintf (stderr,
+ _("%s: you need to install 'evtxdump.py' (from the "
+ "python-evtx package)\n"
+ "in order to parse Windows Event Logs. If you cannot "
+ "install this, then\n"
+ "use virt-copy-out(1) to copy the contents of "
+ "/Windows/System32/winevt/Logs\n"
+ "from this guest, and examine in a binary file viewer.\n"),
guestfs_int_program_name);
return -1;
}
@@ -425,14 +424,14 @@ do_log_windows_evtx (void)
/* Check if System.evtx exists. XXX Allow the filename to be
* configurable, since there are many logs.
*/
- filename = guestfs_case_sensitive_path (g,
"/Windows/System32/winevt/Logs/System.evtx");
+ filename = guestfs_case_sensitive_path (
+ g, "/Windows/System32/winevt/Logs/System.evtx");
if (filename == NULL)
return -1;
/* Note that guestfs_case_sensitive_path does NOT check for existence. */
- if (guestfs_is_file_opts (g, filename,
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
- -1) <= 0) {
+ if (guestfs_is_file_opts (
+ g, filename, GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) <= 0) {
fprintf (stderr, _("%s: Windows Event Log file (%s) not found\n"),
guestfs_int_program_name, filename);
return -1;
@@ -465,10 +464,9 @@ do_log_windows_evtx (void)
status = system (cmd);
if (status) {
char buf[256];
- fprintf (stderr, "%s: %s\n",
- guestfs_int_program_name,
- guestfs_int_exit_status_to_string (status, "evtxdump.py",
- buf, sizeof buf));
+ fprintf (stderr, "%s: %s\n", guestfs_int_program_name,
+ guestfs_int_exit_status_to_string (status, "evtxdump.py", buf,
+ sizeof buf));
return -1;
}
diff --git a/cat/ls.c b/cat/ls.c
index 91f2125..517ef78 100644
--- a/cat/ls.c
+++ b/cat/ls.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -77,45 +78,46 @@ static void output_int64_uid (int64_t);
static void output_string (const char *);
static void output_string_link (const char *);
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: list files in a virtual machine\n"
- "Copyright (C) 2010-2012 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options] -d domname dir [dir ...]\n"
- " %s [--options] -a disk.img [-a disk.img ...] dir [dir ...]\n"
- "Options:\n"
- " -a|--add image Add image\n"
- " --checksum[=...] Display file checksums\n"
- " -c|--connect uri Specify libvirt URI for -d option\n"
- " --csv Comma-Separated Values output\n"
- " -d|--domain guest Add disks from libvirt guest\n"
- " --echo-keys Don't turn off echo for
passphrases\n"
- " --extra-stats Display extra stats\n"
- " --format[=raw|..] Force disk format for -a option\n"
- " --help Display brief help\n"
- " -h|--human-readable Human-readable sizes in output\n"
- " --keys-from-stdin Read passphrases from stdin\n"
- " -l|--long Long listing\n"
- " -m|--mount dev[:mnt[:opts[:fstype]]]\n"
- " Mount dev on mnt (if omitted, /)\n"
- " -R|--recursive Recursive listing\n"
- " --times Display file times\n"
- " --time-days Display file times as days before now\n"
- " --time-relative Display file times as seconds before
now\n"
- " --time-t Display file times as time_t's\n"
- " --uids Display UID, GID\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- " -x Trace libguestfs API calls\n"
- "For more information, see the manpage %s(1).\n"),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name, guestfs_int_program_name);
+ printf (
+ _("%s: list files in a virtual machine\n"
+ "Copyright (C) 2010-2012 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options] -d domname dir [dir ...]\n"
+ " %s [--options] -a disk.img [-a disk.img ...] dir [dir ...]\n"
+ "Options:\n"
+ " -a|--add image Add image\n"
+ " --checksum[=...] Display file checksums\n"
+ " -c|--connect uri Specify libvirt URI for -d option\n"
+ " --csv Comma-Separated Values output\n"
+ " -d|--domain guest Add disks from libvirt guest\n"
+ " --echo-keys Don't turn off echo for passphrases\n"
+ " --extra-stats Display extra stats\n"
+ " --format[=raw|..] Force disk format for -a option\n"
+ " --help Display brief help\n"
+ " -h|--human-readable Human-readable sizes in output\n"
+ " --keys-from-stdin Read passphrases from stdin\n"
+ " -l|--long Long listing\n"
+ " -m|--mount dev[:mnt[:opts[:fstype]]]\n"
+ " Mount dev on mnt (if omitted, /)\n"
+ " -R|--recursive Recursive listing\n"
+ " --times Display file times\n"
+ " --time-days Display file times as days before now\n"
+ " --time-relative Display file times as seconds before "
+ "now\n"
+ " --time-t Display file times as time_t's\n"
+ " --uids Display UID, GID\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ " -x Trace libguestfs API calls\n"
+ "For more information, see the manpage %s(1).\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name, guestfs_int_program_name);
}
exit (status);
}
@@ -172,9 +174,9 @@ main (int argc, char *argv[])
bool format_consumed = true;
int c;
int option_index;
-#define MODE_LS_L 1
-#define MODE_LS_R 2
-#define MODE_LS_LR (MODE_LS_L|MODE_LS_R)
+#define MODE_LS_L 1
+#define MODE_LS_R 2
+#define MODE_LS_LR (MODE_LS_L | MODE_LS_R)
int mode = 0;
g = guestfs_create ();
@@ -183,10 +185,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -226,8 +229,7 @@ main (int argc, char *argv[])
STREQ (long_options[option_index].name, "uids")) {
enable_uids = 1;
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -297,7 +299,7 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, errno, "strdup");
drv->next = drvs;
drvs = drv;
- } else { /* simulate -d option */
+ } else { /* simulate -d option */
drv = calloc (1, sizeof (struct drv));
if (!drv)
error (EXIT_FAILURE, errno, "calloc");
@@ -322,11 +324,11 @@ main (int argc, char *argv[])
CHECK_OPTION_format_consumed;
/* Many flags only apply to -lR mode. */
- if (mode != MODE_LS_LR &&
- (csv || human || enable_uids || enable_times || enable_extra_stats ||
- checksum))
+ if (mode != MODE_LS_LR && (csv || human || enable_uids || enable_times ||
+ enable_extra_stats || checksum))
error (EXIT_FAILURE, 0,
- _("used a flag which can only be combined with -lR mode\nFor more
information, read the virt-ls(1) man page."));
+ _("used a flag which can only be combined with -lR mode\nFor "
+ "more information, read the virt-ls(1) man page."));
/* CSV && human is unsafe because spreadsheets fail to parse these
* fields correctly. (RHBZ#600977).
@@ -364,28 +366,28 @@ main (int argc, char *argv[])
const char *dir = argv[optind];
switch (mode) {
- case 0: /* no -l or -R option */
+ case 0: /* no -l or -R option */
if (do_ls (dir) == -1)
errors++;
break;
- case MODE_LS_L: /* virt-ls -l */
+ case MODE_LS_L: /* virt-ls -l */
if (do_ls_l (dir) == -1)
errors++;
break;
- case MODE_LS_R: /* virt-ls -R */
+ case MODE_LS_R: /* virt-ls -R */
if (do_ls_R (dir) == -1)
errors++;
break;
- case MODE_LS_LR: /* virt-ls -lR */
+ case MODE_LS_LR: /* virt-ls -lR */
if (do_ls_lR (dir) == -1)
errors++;
break;
default:
- abort (); /* can't happen */
+ abort (); /* can't happen */
}
optind++;
@@ -439,7 +441,10 @@ do_ls_R (const char *dir)
return 0;
}
-static int show_file (const char *dir, const char *name, const struct guestfs_statns
*stat, const struct guestfs_xattr_list *xattrs, void *unused);
+static int show_file (const char *dir, const char *name,
+ const struct guestfs_statns *stat,
+ const struct guestfs_xattr_list *xattrs,
+ void *unused);
static int
do_ls_lR (const char *dir)
@@ -457,8 +462,7 @@ do_ls_lR (const char *dir)
static int
show_file (const char *dir, const char *name,
const struct guestfs_statns *stat,
- const struct guestfs_xattr_list *xattrs,
- void *unused)
+ const struct guestfs_xattr_list *xattrs, void *unused)
{
const char *filetype;
CLEANUP_FREE char *path = NULL, *csum = NULL, *link = NULL;
@@ -550,7 +554,8 @@ next_field (void)
int c = csv ? ',' : ' ';
field++;
- if (field == 1) return;
+ if (field == 1)
+ return;
if (putchar (c) == EOF)
error (EXIT_FAILURE, errno, "putchar");
@@ -578,8 +583,7 @@ output_string (const char *s)
print_no_quoting:
if (printf ("%s", s) < 0)
error (EXIT_FAILURE, errno, "printf");
- }
- else {
+ } else {
/* Quote CSV string without requiring an external module. */
size_t i, len;
int needs_quoting = 0;
@@ -587,8 +591,7 @@ output_string (const char *s)
len = strlen (s);
for (i = 0; i < len; ++i) {
- if (s[i] == ' ' || s[i] == '"' ||
- s[i] == '\n' || s[i] == ',') {
+ if (s[i] == ' ' || s[i] == '"' || s[i] == '\n' || s[i]
== ',') {
needs_quoting = 1;
break;
}
@@ -640,7 +643,8 @@ static void
output_int64_size (int64_t size)
{
char buf[LONGEST_HUMAN_READABLE];
- int hopts = human_round_to_nearest|human_autoscale|human_base_1024|human_SI;
+ int hopts =
+ human_round_to_nearest | human_autoscale | human_base_1024 | human_SI;
int r;
next_field ();
@@ -650,14 +654,13 @@ output_int64_size (int64_t size)
r = printf ("%10" PRIi64, size);
else
r = printf ("%10s",
- human_readable ((uintmax_t) size, buf, hopts, 1, 1));
+ human_readable ((uintmax_t)size, buf, hopts, 1, 1));
} else {
/* CSV is the same as non-CSV but we don't need to right-align. */
if (!human)
r = printf ("%" PRIi64, size);
else
- r = printf ("%s",
- human_readable ((uintmax_t) size, buf, hopts, 1, 1));
+ r = printf ("%s", human_readable ((uintmax_t)size, buf, hopts, 1, 1));
}
if (r < 0)
@@ -669,7 +672,7 @@ output_int64_perms (int64_t i)
{
next_field ();
/* csv doesn't need escaping */
- if (printf ("%04" PRIo64, (uint64_t) i) < 0)
+ if (printf ("%04" PRIo64, (uint64_t)i) < 0)
error (EXIT_FAILURE, errno, "printf");
}
@@ -683,20 +686,19 @@ output_int64_time (int64_t secs, int64_t nsecs)
/* csv doesn't need escaping */
if (time_t_output) {
switch (time_relative) {
- case 0: /* --time-t */
+ case 0: /* --time-t */
r = printf ("%10" PRIi64, secs);
break;
- case 1: /* --time-relative */
+ case 1: /* --time-relative */
r = printf ("%8" PRIi64, now - secs);
break;
- case 2: /* --time-days */
+ case 2: /* --time-days */
default:
r = printf ("%3" PRIi64, (now - secs) / 86400);
break;
}
- }
- else {
- time_t t = (time_t) secs;
+ } else {
+ time_t t = (time_t)secs;
char buf[64];
struct tm *tm;
@@ -731,7 +733,7 @@ output_int64_dev (int64_t i)
next_field ();
/* csv doesn't need escaping */
- if (printf ("%ju:%ju",
- (uintmax_t) major (dev), (uintmax_t) minor (dev)) < 0)
+ if (printf ("%ju:%ju", (uintmax_t)major (dev), (uintmax_t)minor (dev)) <
+ 0)
error (EXIT_FAILURE, errno, "printf");
}
diff --git a/cat/visit.c b/cat/visit.c
index 2e08ccc..7a22d3a 100644
--- a/cat/visit.c
+++ b/cat/visit.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* Adapted from
@@ -34,7 +35,8 @@
https://rwmj.wordpress.com/2010/12/15/tip-audit-virtual-machine-for-setui...
#include "visit.h"
-static int _visit (guestfs_h *g, int depth, const char *dir, visitor_function f, void
*opaque);
+static int _visit (guestfs_h *g, int depth, const char *dir,
+ visitor_function f, void *opaque);
int
visit (guestfs_h *g, const char *dir, visitor_function f, void *opaque)
@@ -43,8 +45,8 @@ visit (guestfs_h *g, const char *dir, visitor_function f, void *opaque)
}
static int
-_visit (guestfs_h *g, int depth, const char *dir,
- visitor_function f, void *opaque)
+_visit (guestfs_h *g, int depth, const char *dir, visitor_function f,
+ void *opaque)
{
/* Call 'f' with the top directory. Note that ordinary recursive
* visits will not otherwise do this, so we have to have a special
@@ -114,13 +116,14 @@ _visit (guestfs_h *g, int depth, const char *dir,
xattrs->val[xattrp].attrval_len);
attrval[xattrs->val[xattrp].attrval_len] = '\0';
if (sscanf (attrval, "%zu", &nr_xattrs) != 1) {
- fprintf (stderr, _("%s: error: cannot parse xattr count for %s %s\n"),
+ fprintf (stderr,
+ _("%s: error: cannot parse xattr count for %s %s\n"),
guestfs_int_program_name, dir, names[i]);
return -1;
}
file_xattrs.len = nr_xattrs;
- file_xattrs.val = &xattrs->val[xattrp+1];
+ file_xattrs.val = &xattrs->val[xattrp + 1];
xattrp += nr_xattrs;
/* Call the function. */
diff --git a/cat/visit.h b/cat/visit.h
index d8f7871..a790427 100644
--- a/cat/visit.h
+++ b/cat/visit.h
@@ -13,15 +13,20 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#ifndef VISIT_H
#define VISIT_H
-typedef int (*visitor_function) (const char *dir, const char *name, const struct
guestfs_statns *stat, const struct guestfs_xattr_list *xattrs, void *opaque);
+typedef int (*visitor_function) (const char *dir, const char *name,
+ const struct guestfs_statns *stat,
+ const struct guestfs_xattr_list *xattrs,
+ void *opaque);
-extern int visit (guestfs_h *g, const char *dir, visitor_function f, void *opaque);
+extern int visit (guestfs_h *g, const char *dir, visitor_function f,
+ void *opaque);
extern char *full_path (const char *dir, const char *name);
diff --git a/customize/crypt-c.c b/customize/crypt-c.c
index 70e6ea7..7d79600 100644
--- a/customize/crypt-c.c
+++ b/customize/crypt-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/customize/perl_edit-c.c b/customize/perl_edit-c.c
index 753d990..692383f 100644
--- a/customize/perl_edit-c.c
+++ b/customize/perl_edit-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/daemon/9p.c b/daemon/9p.c
index fefbb71..5b0c0d7 100644
--- a/daemon/9p.c
+++ b/daemon/9p.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -33,7 +34,7 @@
#include "actions.h"
#define BUS_PATH "/sys/bus/virtio/drivers/9pnet_virtio"
-GUESTFSD_EXT_CMD(str_mount, mount);
+GUESTFSD_EXT_CMD (str_mount, mount);
static char *read_whole_file (const char *filename);
@@ -68,7 +69,8 @@ do_list_9p (void)
errno = 0;
d = readdir (dir);
- if (d == NULL) break;
+ if (d == NULL)
+ break;
if (STRPREFIX (d->d_name, "virtio")) {
char mount_tag_path[256];
@@ -127,7 +129,7 @@ read_whole_file (const char *filename)
size_t alloc = 0, size = 0;
int fd;
- fd = open (filename, O_RDONLY|O_CLOEXEC);
+ fd = open (filename, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
perror (filename);
return NULL;
@@ -172,7 +174,8 @@ read_whole_file (const char *filename)
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_mount_9p (const char *mount_tag, const char *mountpoint, const char *options)
+do_mount_9p (const char *mount_tag, const char *mountpoint,
+ const char *options)
{
CLEANUP_FREE char *mp = NULL, *opts = NULL, *err = NULL;
struct stat statbuf;
@@ -203,8 +206,7 @@ do_mount_9p (const char *mount_tag, const char *mountpoint, const char
*options)
reply_with_perror ("asprintf");
return -1;
}
- }
- else {
+ } else {
opts = strdup ("trans=virtio");
if (opts == NULL) {
reply_with_perror ("strdup");
@@ -212,8 +214,8 @@ do_mount_9p (const char *mount_tag, const char *mountpoint, const char
*options)
}
}
- r = command (NULL, &err,
- str_mount, "-o", opts, "-t", "9p",
mount_tag, mp, NULL);
+ r = command (NULL, &err, str_mount, "-o", opts, "-t",
"9p", mount_tag, mp,
+ NULL);
if (r == -1) {
reply_with_error ("%s on %s: %s", mount_tag, mountpoint, err);
return -1;
diff --git a/daemon/acl.c b/daemon/acl.c
index fcb14e1..21bde03 100644
--- a/daemon/acl.c
+++ b/daemon/acl.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -85,7 +86,7 @@ do_acl_get_file (const char *path, const char *acltype)
}
acl_free (r);
- return ret; /* caller frees */
+ return ret; /* caller frees */
}
int
@@ -106,7 +107,8 @@ do_acl_set_file (const char *path, const char *acltype, const char
*aclstr)
acl = acl_from_text (aclstr);
if (acl == NULL) {
- reply_with_perror ("could not parse acl string: %s: acl_from_text",
aclstr);
+ reply_with_perror ("could not parse acl string: %s: acl_from_text",
+ aclstr);
return -1;
}
diff --git a/daemon/augeas.c b/daemon/augeas.c
index ea1163f..ec48bdd 100644
--- a/daemon/augeas.c
+++ b/daemon/augeas.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -29,20 +30,21 @@
#include "actions.h"
#include "optgroups.h"
-#define FPRINTF_AUGEAS_ERROR(aug,fs,...) \
- do { \
- int code = aug_error (aug); \
- if (code == AUG_ENOMEM) \
- reply_with_error (fs ": augeas out of memory", ##__VA_ARGS__); \
- else { \
- const char *aug_err_message = aug_error_message (aug); \
- const char *aug_err_minor = aug_error_minor_message (aug); \
- const char *aug_err_details = aug_error_details (aug); \
- fprintf (stderr, fs ": %s%s%s%s%s", ##__VA_ARGS__, \
- aug_err_message, \
- aug_err_minor ? ": " : "", aug_err_minor ? aug_err_minor :
"", \
- aug_err_details ? ": " : "", aug_err_details ?
aug_err_details : ""); \
- } \
+#define FPRINTF_AUGEAS_ERROR(aug, fs, ...) \
+ do { \
+ int code = aug_error (aug); \
+ if (code == AUG_ENOMEM) \
+ reply_with_error (fs ": augeas out of memory", ##__VA_ARGS__); \
+ else { \
+ const char *aug_err_message = aug_error_message (aug); \
+ const char *aug_err_minor = aug_error_minor_message (aug); \
+ const char *aug_err_details = aug_error_details (aug); \
+ fprintf (stderr, fs ": %s%s%s%s%s", ##__VA_ARGS__, aug_err_message, \
+ aug_err_minor ? ": " : "",
\
+ aug_err_minor ? aug_err_minor : "", \
+ aug_err_details ? ": " : "",
\
+ aug_err_details ? aug_err_details : ""); \
+ } \
} while (0)
int augeas_version;
@@ -97,7 +99,7 @@ aug_read_version (void)
}
/* Clean up the augeas handle on daemon exit. */
-void aug_finalize (void) __attribute__((destructor));
+void aug_finalize (void) __attribute__ ((destructor));
void
aug_finalize (void)
{
@@ -107,14 +109,15 @@ aug_finalize (void)
}
}
-#define NEED_AUG(errcode) \
- do { \
- if (!aug) { \
- reply_with_error ("%s: you must call 'aug-init' first to initialize
Augeas", __func__); \
- return (errcode); \
- } \
- } \
- while (0)
+#define NEED_AUG(errcode) \
+ do { \
+ if (!aug) { \
+ reply_with_error ( \
+ "%s: you must call 'aug-init' first to initialize Augeas",
\
+ __func__); \
+ return (errcode); \
+ } \
+ } while (0)
/* We need to rewrite the root path so it is based at /sysroot. */
int
@@ -173,7 +176,7 @@ do_aug_init (const char *root, int flags)
int
do_aug_close (void)
{
- NEED_AUG(-1);
+ NEED_AUG (-1);
aug_close (aug);
aug = NULL;
@@ -257,7 +260,7 @@ do_aug_get (const char *path)
return NULL;
}
- return v; /* Caller frees. */
+ return v; /* Caller frees. */
}
int
@@ -358,7 +361,7 @@ do_aug_match (const char *path)
/* This returns an array of length r, which we must extend
* and add a terminating NULL.
*/
- vp = realloc (matches, sizeof (char *) * (r+1));
+ vp = realloc (matches, sizeof (char *) * (r + 1));
if (vp == NULL) {
reply_with_perror ("realloc");
free (vp);
@@ -367,7 +370,7 @@ do_aug_match (const char *path)
matches = vp;
matches[r] = NULL;
- return matches; /* Caller frees. */
+ return matches; /* Caller frees. */
}
int
@@ -411,8 +414,8 @@ do_aug_ls (const char *path)
len = strlen (path);
- if (len > 1 &&
- (path[len-1] == '/' || path[len-1] == ']' || path[len-1] ==
'*')) {
+ if (len > 1 && (path[len - 1] == '/' || path[len - 1] == ']'
||
+ path[len - 1] == '*')) {
reply_with_error ("don't use aug-ls with a path that ends with / ]
*");
return NULL;
}
@@ -422,7 +425,7 @@ do_aug_ls (const char *path)
else {
CLEANUP_FREE char *buf = NULL;
- len += 3; /* / * + terminating \0 */
+ len += 3; /* / * + terminating \0 */
buf = malloc (len);
if (buf == NULL) {
reply_with_perror ("malloc");
@@ -434,10 +437,10 @@ do_aug_ls (const char *path)
}
if (matches == NULL)
- return NULL; /* do_aug_match has already sent the error */
+ return NULL; /* do_aug_match has already sent the error */
- sort_strings (matches, count_strings ((void *) matches));
- return matches; /* Caller frees. */
+ sort_strings (matches, count_strings ((void *)matches));
+ return matches; /* Caller frees. */
}
int
@@ -489,5 +492,5 @@ do_aug_label (const char *augpath)
return NULL;
}
- return ret; /* caller frees */
+ return ret; /* caller frees */
}
diff --git a/daemon/available.c b/daemon/available.c
index 9716796..24ca43c 100644
--- a/daemon/available.c
+++ b/daemon/available.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,8 +31,8 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_grep, grep);
-GUESTFSD_EXT_CMD(str_modprobe, modprobe);
+GUESTFSD_EXT_CMD (str_grep, grep);
+GUESTFSD_EXT_CMD (str_modprobe, modprobe);
int
do_internal_feature_available (const char *group)
@@ -63,7 +64,7 @@ do_available_all_groups (void)
if (end_stringsbuf (&groups) == -1)
return NULL;
- return groups.argv; /* caller frees */
+ return groups.argv; /* caller frees */
}
/* Search for filesystem in /proc/filesystems, ignoring "nodev". */
@@ -127,7 +128,8 @@ do_filesystem_available (const char *filesystem)
for (i = 0; i < len; ++i) {
if (!c_isalnum (filesystem[i]) && filesystem[i] != '_') {
- reply_with_error ("filesystem name contains non-alphanumeric
characters");
+ reply_with_error (
+ "filesystem name contains non-alphanumeric characters");
return -1;
}
}
diff --git a/daemon/base64.c b/daemon/base64.c
index 3f7a630..c6ff73c 100644
--- a/daemon/base64.c
+++ b/daemon/base64.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,7 +31,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_base64, base64);
+GUESTFSD_EXT_CMD (str_base64, base64);
static int
write_cb (void *fd_ptr, const void *buf, size_t len)
@@ -74,13 +75,13 @@ do_base64_in (const char *file)
fd = fileno (fp);
r = receive_file (write_cb, &fd);
- if (r == -1) { /* write error */
+ if (r == -1) { /* write error */
cancel_receive ();
reply_with_error ("write error on file: %s", file);
pclose (fp);
return -1;
}
- if (r == -2) { /* cancellation from library */
+ if (r == -2) { /* cancellation from library */
/* This error is ignored by the library since it initiated the
* cancel. Nevertheless we must send an error reply here.
*/
@@ -161,18 +162,18 @@ do_base64_out (const char *file)
if (ferror (fp)) {
fprintf (stderr, "fread: %s: %m\n", file);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
pclose (fp);
return -1;
}
if (pclose (fp) != 0) {
fprintf (stderr, "pclose: %s: %m\n", file);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
diff --git a/daemon/blkdiscard.c b/daemon/blkdiscard.c
index 612c97f..7553aab 100644
--- a/daemon/blkdiscard.c
+++ b/daemon/blkdiscard.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -34,7 +35,8 @@
#include "actions.h"
#include "optgroups.h"
-/*
http://rwmj.wordpress.com/2014/03/11/blkdiscard-blkzeroout-blkdiscardzero...
*/
+/*
http://rwmj.wordpress.com/2014/03/11/blkdiscard-blkzeroout-blkdiscardzero...
+ */
#ifdef BLKDISCARD
@@ -70,9 +72,9 @@ do_blkdiscard (const char *device)
return -1;
range[0] = 0;
- range[1] = (uint64_t) size;
+ range[1] = (uint64_t)size;
- fd = open (device, O_WRONLY|O_CLOEXEC);
+ fd = open (device, O_WRONLY | O_CLOEXEC);
if (fd == -1) {
reply_with_perror ("open: %s", device);
return -1;
@@ -106,7 +108,7 @@ do_blkdiscardzeroes (const char *device)
int fd;
unsigned int arg;
- fd = open (device, O_RDONLY|O_CLOEXEC);
+ fd = open (device, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
reply_with_perror ("open: %s", device);
return -1;
diff --git a/daemon/blkid.c b/daemon/blkid.c
index 99546b4..97251d1 100644
--- a/daemon/blkid.c
+++ b/daemon/blkid.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -28,7 +29,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_blkid, blkid);
+GUESTFSD_EXT_CMD (str_blkid, blkid);
char *
get_blkid_tag (const char *device, const char *tag)
@@ -38,11 +39,9 @@ get_blkid_tag (const char *device, const char *tag)
int r;
size_t len;
- r = commandr (&out, &err,
- str_blkid,
+ r = commandr (&out, &err, str_blkid,
/* Adding -c option kills all caching, even on RHEL 5. */
- "-c", "/dev/null",
- "-o", "value", "-s", tag, device, NULL);
+ "-c", "/dev/null", "-o", "value",
"-s", tag, device, NULL);
if (r != 0 && r != 2) {
if (r >= 0)
reply_with_error ("%s: %s (blkid returned %d)", device, err, r);
@@ -52,7 +51,7 @@ get_blkid_tag (const char *device, const char *tag)
return NULL;
}
- if (r == 2) { /* means UUID etc not found */
+ if (r == 2) { /* means UUID etc not found */
free (out);
out = strdup ("");
if (out == NULL)
@@ -62,10 +61,10 @@ get_blkid_tag (const char *device, const char *tag)
/* Trim trailing \n if present. */
len = strlen (out);
- if (len > 0 && out[len-1] == '\n')
- out[len-1] = '\0';
+ if (len > 0 && out[len - 1] == '\n')
+ out[len - 1] = '\0';
- return out; /* caller frees */
+ return out; /* caller frees */
}
char *
@@ -109,7 +108,7 @@ test_blkid_p_i_opt (void)
r = commandr (NULL, &err, str_blkid, "-p", "/dev/null", NULL);
if (r == -1) {
- /* This means we couldn't run the blkid command at all. */
+ /* This means we couldn't run the blkid command at all. */
command_failed:
reply_with_error ("could not run 'blkid' command: %s", err);
return -1;
@@ -140,8 +139,8 @@ blkid_with_p_i_opt (const char *device)
CLEANUP_FREE_STRING_LIST char **lines = NULL;
DECLARE_STRINGSBUF (ret);
- r = command (&out, &err, str_blkid, "-c", "/dev/null",
- "-p", "-i", "-o", "export",
device, NULL);
+ r = command (&out, &err, str_blkid, "-c", "/dev/null",
"-p", "-i", "-o",
+ "export", device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
goto error;
@@ -172,26 +171,29 @@ blkid_with_p_i_opt (const char *device)
char *line = lines[i];
/* Skip blank lines (shouldn't happen) */
- if (line[0] == '\0') continue;
+ if (line[0] == '\0')
+ continue;
/* Split the line in 2 at the equals sign */
eq = strchr (line, '=');
if (eq) {
- *eq = '\0'; eq++;
+ *eq = '\0';
+ eq++;
/* Add the key/value pair to the output */
- if (add_string (&ret, line) == -1 ||
- add_string (&ret, eq) == -1) goto error;
+ if (add_string (&ret, line) == -1 || add_string (&ret, eq) == -1)
+ goto error;
} else {
fprintf (stderr, "blkid: unexpected blkid output ignored: %s", line);
}
}
- if (end_stringsbuf (&ret) == -1) goto error;
+ if (end_stringsbuf (&ret) == -1)
+ goto error;
return ret.argv;
- error:
+error:
if (ret.argv)
free_strings (ret.argv);
@@ -204,28 +206,35 @@ blkid_without_p_i_opt (const char *device)
char *s;
DECLARE_STRINGSBUF (ret);
- if (add_string (&ret, "TYPE") == -1) goto error;
+ if (add_string (&ret, "TYPE") == -1)
+ goto error;
s = get_blkid_tag (device, "TYPE");
- if (s == NULL) goto error;
+ if (s == NULL)
+ goto error;
if (add_string_nodup (&ret, s) == -1)
goto error;
- if (add_string (&ret, "LABEL") == -1) goto error;
+ if (add_string (&ret, "LABEL") == -1)
+ goto error;
s = get_blkid_tag (device, "LABEL");
- if (s == NULL) goto error;
+ if (s == NULL)
+ goto error;
if (add_string_nodup (&ret, s) == -1)
goto error;
- if (add_string (&ret, "UUID") == -1) goto error;
+ if (add_string (&ret, "UUID") == -1)
+ goto error;
s = get_blkid_tag (device, "UUID");
- if (s == NULL) goto error;
+ if (s == NULL)
+ goto error;
if (add_string_nodup (&ret, s) == -1)
goto error;
- if (end_stringsbuf (&ret) == -1) goto error;
+ if (end_stringsbuf (&ret) == -1)
+ goto error;
return ret.argv;
- error:
+error:
if (ret.argv)
free_stringslen (ret.argv, ret.size);
return NULL;
diff --git a/daemon/blockdev.c b/daemon/blockdev.c
index 6e8821d..f05aa42 100644
--- a/daemon/blockdev.c
+++ b/daemon/blockdev.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -28,24 +29,19 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_blockdev, blockdev);
+GUESTFSD_EXT_CMD (str_blockdev, blockdev);
/* These functions are all about using the blockdev command, so
* we centralize it in one call.
*/
static int64_t
-call_blockdev (const char *device, const char *switc, int extraarg, int prints)
+call_blockdev (const char *device, const char *switc, int extraarg,
+ int prints)
{
int r;
int64_t rv;
CLEANUP_FREE char *out = NULL, *err = NULL;
- const char *argv[] = {
- str_blockdev,
- switc,
- NULL,
- NULL,
- NULL
- };
+ const char *argv[] = { str_blockdev, switc, NULL, NULL, NULL };
char buf[64];
/* When you call close on any block device, udev kicks off a rule
@@ -95,37 +91,37 @@ do_blockdev_setra (const char *device, int sectors)
reply_with_error ("readahead sectors must be >= 0");
return -1;
}
- return (int) call_blockdev (device, "--setra", sectors, 0);
+ return (int)call_blockdev (device, "--setra", sectors, 0);
}
int
do_blockdev_setro (const char *device)
{
- return (int) call_blockdev (device, "--setro", -1, 0);
+ return (int)call_blockdev (device, "--setro", -1, 0);
}
int
do_blockdev_setrw (const char *device)
{
- return (int) call_blockdev (device, "--setrw", -1, 0);
+ return (int)call_blockdev (device, "--setrw", -1, 0);
}
int
do_blockdev_getro (const char *device)
{
- return (int) call_blockdev (device, "--getro", -1, 1);
+ return (int)call_blockdev (device, "--getro", -1, 1);
}
int
do_blockdev_getss (const char *device)
{
- return (int) call_blockdev (device, "--getss", -1, 1);
+ return (int)call_blockdev (device, "--getss", -1, 1);
}
int
do_blockdev_getbsz (const char *device)
{
- return (int) call_blockdev (device, "--getbsz", -1, 1);
+ return (int)call_blockdev (device, "--getbsz", -1, 1);
}
int
diff --git a/daemon/btrfs.c b/daemon/btrfs.c
index 2a20cb0..026d033 100644
--- a/daemon/btrfs.c
+++ b/daemon/btrfs.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -33,17 +34,16 @@
#include "c-ctype.h"
#include "ignore-value.h"
-GUESTFSD_EXT_CMD(str_btrfs, btrfs);
-GUESTFSD_EXT_CMD(str_btrfstune, btrfstune);
-GUESTFSD_EXT_CMD(str_btrfsck, btrfsck);
-GUESTFSD_EXT_CMD(str_mkfs_btrfs, mkfs.btrfs);
-GUESTFSD_EXT_CMD(str_umount, umount);
-GUESTFSD_EXT_CMD(str_btrfsimage, btrfs-image);
+GUESTFSD_EXT_CMD (str_btrfs, btrfs);
+GUESTFSD_EXT_CMD (str_btrfstune, btrfstune);
+GUESTFSD_EXT_CMD (str_btrfsck, btrfsck);
+GUESTFSD_EXT_CMD (str_mkfs_btrfs, mkfs.btrfs);
+GUESTFSD_EXT_CMD (str_umount, umount);
+GUESTFSD_EXT_CMD (str_btrfsimage, btrfs - image);
-COMPILE_REGEXP (re_btrfs_subvolume_list,
- "ID\\s+(\\d+).*\\s"
- "top level\\s+(\\d+).*\\s"
- "path\\s(.*)",
+COMPILE_REGEXP (re_btrfs_subvolume_list, "ID\\s+(\\d+).*\\s"
+ "top level\\s+(\\d+).*\\s"
+ "path\\s(.*)",
0)
COMPILE_REGEXP (re_btrfs_balance_status, "Balance on '.*' is (.*)", 0)
@@ -51,7 +51,7 @@ int
optgroup_btrfs_available (void)
{
return test_mode ||
- (prog_exists (str_btrfs) && filesystem_available ("btrfs") >
0);
+ (prog_exists (str_btrfs) && filesystem_available ("btrfs")
> 0);
}
char *
@@ -62,8 +62,7 @@ btrfs_get_label (const char *device)
char *out = NULL;
size_t len;
- r = command (&out, &err, str_btrfs, "filesystem", "label",
- device, NULL);
+ r = command (&out, &err, str_btrfs, "filesystem", "label",
device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
free (out);
@@ -72,8 +71,8 @@ btrfs_get_label (const char *device)
/* Trim trailing \n if present. */
len = strlen (out);
- if (len > 0 && out[len-1] == '\n')
- out[len-1] = '\0';
+ if (len > 0 && out[len - 1] == '\n')
+ out[len - 1] = '\0';
return out;
}
@@ -84,8 +83,8 @@ btrfs_set_label (const char *device, const char *label)
int r;
CLEANUP_FREE char *err = NULL;
- r = command (NULL, &err, str_btrfs, "filesystem", "label",
- device, label, NULL);
+ r = command (NULL, &err, str_btrfs, "filesystem", "label",
device, label,
+ NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -122,8 +121,7 @@ do_btrfs_filesystem_resize (const char *filesystem, int64_t size)
snprintf (size_str, sizeof size_str, "%" PRIi64, size);
ADD_ARG (argv, i, size_str);
- }
- else
+ } else
ADD_ARG (argv, i, "max");
buf = sysroot_path (filesystem);
@@ -147,10 +145,9 @@ do_btrfs_filesystem_resize (const char *filesystem, int64_t size)
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_mkfs_btrfs (char *const *devices,
- int64_t allocstart, int64_t bytecount, const char *datatype,
- int leafsize, const char *label, const char *metadata,
- int nodesize, int sectorsize)
+do_mkfs_btrfs (char *const *devices, int64_t allocstart, int64_t bytecount,
+ const char *datatype, int leafsize, const char *label,
+ const char *metadata, int nodesize, int sectorsize)
{
size_t nr_devices = count_strings (devices);
size_t MAX_ARGS = nr_devices + 64;
@@ -295,8 +292,7 @@ do_btrfs_subvolume_snapshot (const char *source, const char *dest, int
ro,
ADD_ARG (argv, i, "snapshot");
/* Optional arguments. */
- if ((optargs_bitmask & GUESTFS_BTRFS_SUBVOLUME_SNAPSHOT_RO_BITMASK) &&
- ro)
+ if ((optargs_bitmask & GUESTFS_BTRFS_SUBVOLUME_SNAPSHOT_RO_BITMASK) && ro)
ADD_ARG (argv, i, "-r");
if (optargs_bitmask & GUESTFS_BTRFS_SUBVOLUME_SNAPSHOT_QGROUPID_BITMASK) {
@@ -374,7 +370,6 @@ do_btrfs_subvolume_create (const char *dest, const char *qgroupid)
ADD_ARG (argv, i, qgroupid);
}
-
ADD_ARG (argv, i, dest_buf);
ADD_ARG (argv, i, NULL);
@@ -477,7 +472,8 @@ do_btrfs_subvolume_list (const mountable_t *fs)
}
lines = split_lines (out);
- if (!lines) return NULL;
+ if (!lines)
+ return NULL;
}
/* Output is:
@@ -510,7 +506,7 @@ do_btrfs_subvolume_list (const mountable_t *fs)
ret->guestfs_int_btrfssubvolume_list_len = nr_subvolumes;
ret->guestfs_int_btrfssubvolume_list_val =
- calloc (nr_subvolumes, sizeof (struct guestfs_int_btrfssubvolume));
+ calloc (nr_subvolumes, sizeof (struct guestfs_int_btrfssubvolume));
if (ret->guestfs_int_btrfssubvolume_list_val == NULL) {
reply_with_perror ("calloc");
goto error;
@@ -528,14 +524,16 @@ do_btrfs_subvolume_list (const mountable_t *fs)
if (pcre_exec (re_btrfs_subvolume_list, NULL, line, strlen (line), 0, 0,
ovector, N_MATCHES * 3) < 0)
#undef N_MATCHES
- {
- unexpected_output:
- reply_with_error ("unexpected output from 'btrfs subvolume list' command:
%s", line);
- goto error;
- }
+ {
+ unexpected_output:
+ reply_with_error (
+ "unexpected output from 'btrfs subvolume list' command: %s",
+ line);
+ goto error;
+ }
struct guestfs_int_btrfssubvolume *this =
- &ret->guestfs_int_btrfssubvolume_list_val[i];
+ &ret->guestfs_int_btrfssubvolume_list_val[i];
#if __WORDSIZE == 64
#define XSTRTOU64 xstrtoul
@@ -543,8 +541,8 @@ do_btrfs_subvolume_list (const mountable_t *fs)
#define XSTRTOU64 xstrtoull
#endif
- if (XSTRTOU64 (line + ovector[2], NULL, 10,
- &this->btrfssubvolume_id, NULL) != LONGINT_OK)
+ if (XSTRTOU64 (line + ovector[2], NULL, 10, &this->btrfssubvolume_id,
+ NULL) != LONGINT_OK)
goto unexpected_output;
if (XSTRTOU64 (line + ovector[4], NULL, 10,
&this->btrfssubvolume_top_level_id, NULL) != LONGINT_OK)
@@ -553,17 +551,18 @@ do_btrfs_subvolume_list (const mountable_t *fs)
#undef XSTRTOU64
this->btrfssubvolume_path =
- strndup (line + ovector[6], ovector[7] - ovector[6]);
+ strndup (line + ovector[6], ovector[7] - ovector[6]);
if (this->btrfssubvolume_path == NULL)
goto error;
}
return ret;
- error:
+error:
if (ret->guestfs_int_btrfssubvolume_list_val) {
for (i = 0; i < nr_subvolumes; ++i)
- free (ret->guestfs_int_btrfssubvolume_list_val[i].btrfssubvolume_path);
+ free (
+ ret->guestfs_int_btrfssubvolume_list_val[i].btrfssubvolume_path);
free (ret->guestfs_int_btrfssubvolume_list_val);
}
free (ret);
@@ -639,7 +638,7 @@ do_btrfs_subvolume_get_default (const mountable_t *fs)
goto error;
}
- error:
+error:
if (fs_buf && umount (fs_buf, fs) != 0)
return -1;
return ret;
@@ -818,7 +817,6 @@ do_btrfs_device_delete (char *const *devices, const char *fs)
return 0;
}
-
#if defined(__GNUC__) && GUESTFS_GCC_VERSION >= 40800 /* gcc >= 4.8.0 */
#pragma GCC diagnostic pop
#endif
@@ -1041,9 +1039,8 @@ do_btrfs_subvolume_show (const char *subvolume)
* <path> is btrfs root [in btrfs-progs < 4.4]
* <path> is toplevel subvolume
*/
- if (out &&
- (strstr (out, "is btrfs root") != NULL ||
- strstr (out, "is toplevel subvolume") != NULL)) {
+ if (out && (strstr (out, "is btrfs root") != NULL ||
+ strstr (out, "is toplevel subvolume") != NULL)) {
reply_with_error ("%s is btrfs root", subvolume);
return NULL;
}
@@ -1108,18 +1105,18 @@ do_btrfs_subvolume_show (const char *subvolume)
p = analyze_line (p, &key, &value, ':');
while (key && !value) {
- ss = realloc (ss, ss_len + strlen (key) + 1);
- if (!ss)
- return NULL;
+ ss = realloc (ss, ss_len + strlen (key) + 1);
+ if (!ss)
+ return NULL;
- if (ss_len != 0)
- ss[ss_len++] = ',';
+ if (ss_len != 0)
+ ss[ss_len++] = ',';
- memcpy (ss + ss_len, key, strlen (key));
- ss_len += strlen (key);
- ss[ss_len] = '\0';
+ memcpy (ss + ss_len, key, strlen (key));
+ ss_len += strlen (key);
+ ss[ss_len] = '\0';
- p = analyze_line (p, &key, &value, ':');
+ p = analyze_line (p, &key, &value, ':');
}
if (ss) {
@@ -1181,7 +1178,7 @@ do_btrfs_quota_enable (const mountable_t *fs, int enable)
goto error;
}
- error:
+error:
if (fs_buf && umount (fs_buf, fs) != 0)
return -1;
return r;
@@ -1213,7 +1210,7 @@ do_btrfs_quota_rescan (const mountable_t *fs)
goto error;
}
- error:
+error:
if (fs_buf && umount (fs_buf, fs) != 0)
return -1;
return r;
@@ -1334,7 +1331,8 @@ test_btrfs_qgroup_show_raw_opt (void)
CLEANUP_FREE char *err = NULL;
CLEANUP_FREE char *out = NULL;
- int r = commandr (&out, &err, str_btrfs, "qgroup", "show",
"--help", NULL);
+ int r =
+ commandr (&out, &err, str_btrfs, "qgroup", "show",
"--help", NULL);
if (r == -1) {
reply_with_error ("btrfs qgroup show --help: %s", err);
@@ -1403,7 +1401,7 @@ do_btrfs_qgroup_show (const char *path)
ret->guestfs_int_btrfsqgroup_list_len = nr_qgroups;
ret->guestfs_int_btrfsqgroup_list_val =
- calloc (nr_qgroups, sizeof (struct guestfs_int_btrfsqgroup));
+ calloc (nr_qgroups, sizeof (struct guestfs_int_btrfsqgroup));
if (ret->guestfs_int_btrfsqgroup_list_val == NULL) {
reply_with_perror ("calloc");
goto error;
@@ -1412,19 +1410,20 @@ do_btrfs_qgroup_show (const char *path)
for (i = 0; i < nr_qgroups; ++i) {
char *line = lines[i + 2];
struct guestfs_int_btrfsqgroup *this =
- &ret->guestfs_int_btrfsqgroup_list_val[i];
+ &ret->guestfs_int_btrfsqgroup_list_val[i];
if (sscanf (line, "%m[0-9/] %" SCNu64 " %" SCNu64,
&this->btrfsqgroup_id, &this->btrfsqgroup_rfer,
&this->btrfsqgroup_excl) != 3) {
- reply_with_error ("cannot parse output of qgroup show command: %s",
line);
+ reply_with_error ("cannot parse output of qgroup show command: %s",
+ line);
goto error;
}
}
return ret;
- error:
+error:
if (ret->guestfs_int_btrfsqgroup_list_val) {
for (i = 0; i < nr_qgroups; ++i)
free (ret->guestfs_int_btrfsqgroup_list_val[i].btrfsqgroup_id);
@@ -1689,7 +1688,8 @@ do_btrfs_balance_resume (const char *path)
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_btrfs_filesystem_defragment (const char *path, int flush, const char *compress)
+do_btrfs_filesystem_defragment (const char *path, int flush,
+ const char *compress)
{
const size_t MAX_ARGS = 64;
const char *argv[MAX_ARGS];
@@ -1710,9 +1710,12 @@ do_btrfs_filesystem_defragment (const char *path, int flush, const
char *compres
ADD_ARG (argv, i, "-r");
/* Optional arguments. */
- if ((optargs_bitmask & GUESTFS_BTRFS_FILESYSTEM_DEFRAGMENT_FLUSH_BITMASK)
&& flush)
+ if ((optargs_bitmask &
+ GUESTFS_BTRFS_FILESYSTEM_DEFRAGMENT_FLUSH_BITMASK) &&
+ flush)
ADD_ARG (argv, i, "-f");
- if (optargs_bitmask & GUESTFS_BTRFS_FILESYSTEM_DEFRAGMENT_COMPRESS_BITMASK) {
+ if (optargs_bitmask &
+ GUESTFS_BTRFS_FILESYSTEM_DEFRAGMENT_COMPRESS_BITMASK) {
if (STREQ (compress, "zlib"))
ADD_ARG (argv, i, "-czlib");
else if (STREQ (compress, "lzo"))
@@ -1862,10 +1865,11 @@ do_btrfs_balance_status (const char *path)
return ret;
}
- if (pcre_exec (re_btrfs_balance_status,
- NULL, lines[0], strlen (lines[0]), 0, 0,
- ovector, N_MATCH * 3) < 0) {
- reply_with_error ("unexpected output from 'btrfs balance status'
command: %s", lines[0]);
+ if (pcre_exec (re_btrfs_balance_status, NULL, lines[0], strlen (lines[0]),
+ 0, 0, ovector, N_MATCH * 3) < 0) {
+ reply_with_error (
+ "unexpected output from 'btrfs balance status' command: %s",
+ lines[0]);
goto error;
}
#undef N_MATCH
@@ -1875,26 +1879,31 @@ do_btrfs_balance_status (const char *path)
else if (STREQ (lines[0] + ovector[2], "paused"))
ret->btrfsbalance_status = strdup ("paused");
else {
- reply_with_error ("unexpected output from 'btrfs balance status'
command: %s", lines[0]);
+ reply_with_error (
+ "unexpected output from 'btrfs balance status' command: %s",
+ lines[0]);
goto error;
}
if (nlines < 2) {
- reply_with_error ("truncated output from 'btrfs balance status'
command");
+ reply_with_error (
+ "truncated output from 'btrfs balance status' command");
goto error;
}
if (sscanf (lines[1], "%" SCNu64 " out of about %" SCNu64
- " chunks balanced (%" SCNu64 " considered), %" SCNu64
"%% left",
+ " chunks balanced (%" SCNu64
+ " considered), %" SCNu64 "%% left",
&ret->btrfsbalance_balanced, &ret->btrfsbalance_total,
- &ret->btrfsbalance_considered, &ret->btrfsbalance_left) != 4)
{
+ &ret->btrfsbalance_considered,
+ &ret->btrfsbalance_left) != 4) {
reply_with_perror ("sscanf");
goto error;
}
return ret;
- error:
+error:
free (ret->btrfsbalance_status);
free (ret);
@@ -1934,14 +1943,16 @@ do_btrfs_scrub_status (const char *path)
}
if (verbose)
- fprintf (stderr, "output from 'btrfs scrub status -R %s' is:\n%s",
path, out);
+ fprintf (stderr, "output from 'btrfs scrub status -R %s' is:\n%s",
path,
+ out);
lines = split_lines (out);
if (!lines)
return NULL;
if (count_strings (lines) < 2) {
- reply_with_error ("truncated output from 'btrfs scrub status -R'
command");
+ reply_with_error (
+ "truncated output from 'btrfs scrub status -R' command");
return NULL;
}
@@ -1954,7 +1965,8 @@ do_btrfs_scrub_status (const char *path)
/* Output of `btrfs scrub -R status' is like:
*
* scrub status for 346121d1-1847-40f8-9b7b-2bf3d539c68f
- * scrub started at Mon Feb 2 17:39:38 2015, running for 93 seconds
+ * scrub started at Mon Feb 2 17:39:38 2015, running for 93
+ * seconds
* data_extents_scrubbed: 136670
* tree_extents_scrubbed: 30023
* data_bytes_scrubbed: 4474441728
@@ -1982,63 +1994,64 @@ do_btrfs_scrub_status (const char *path)
else if (STRPREFIX (lines[i], "\tscrub started at"))
continue;
else if (sscanf (lines[i], "\tdata_extents_scrubbed: %" SCNu64,
- &ret->btrfsscrub_data_extents_scrubbed) == 1)
+ &ret->btrfsscrub_data_extents_scrubbed) == 1)
continue;
else if (sscanf (lines[i], "\ttree_extents_scrubbed: %" SCNu64,
- &ret->btrfsscrub_tree_extents_scrubbed) == 1)
+ &ret->btrfsscrub_tree_extents_scrubbed) == 1)
continue;
else if (sscanf (lines[i], "\tdata_bytes_scrubbed: %" SCNu64,
- &ret->btrfsscrub_data_bytes_scrubbed) == 1)
+ &ret->btrfsscrub_data_bytes_scrubbed) == 1)
continue;
else if (sscanf (lines[i], "\ttree_bytes_scrubbed: %" SCNu64,
- &ret->btrfsscrub_tree_bytes_scrubbed) == 1)
+ &ret->btrfsscrub_tree_bytes_scrubbed) == 1)
continue;
else if (sscanf (lines[i], "\tread_errors: %" SCNu64,
- &ret->btrfsscrub_read_errors) == 1)
+ &ret->btrfsscrub_read_errors) == 1)
continue;
else if (sscanf (lines[i], "\tcsum_errors: %" SCNu64,
- &ret->btrfsscrub_csum_errors) == 1)
+ &ret->btrfsscrub_csum_errors) == 1)
continue;
else if (sscanf (lines[i], "\tverify_errors: %" SCNu64,
- &ret->btrfsscrub_verify_errors) == 1)
+ &ret->btrfsscrub_verify_errors) == 1)
continue;
else if (sscanf (lines[i], "\tno_csum: %" SCNu64,
- &ret->btrfsscrub_no_csum) == 1)
+ &ret->btrfsscrub_no_csum) == 1)
continue;
else if (sscanf (lines[i], "\tcsum_discards: %" SCNu64,
- &ret->btrfsscrub_csum_discards) == 1)
+ &ret->btrfsscrub_csum_discards) == 1)
continue;
else if (sscanf (lines[i], "\tsuper_errors: %" SCNu64,
- &ret->btrfsscrub_super_errors) == 1)
+ &ret->btrfsscrub_super_errors) == 1)
continue;
else if (sscanf (lines[i], "\tmalloc_errors: %" SCNu64,
- &ret->btrfsscrub_malloc_errors) == 1)
+ &ret->btrfsscrub_malloc_errors) == 1)
continue;
else if (sscanf (lines[i], "\tuncorrectable_errors: %" SCNu64,
- &ret->btrfsscrub_uncorrectable_errors) == 1)
+ &ret->btrfsscrub_uncorrectable_errors) == 1)
continue;
else if (sscanf (lines[i], "\tunverified_errors: %" SCNu64,
- &ret->btrfsscrub_unverified_errors) == 1)
+ &ret->btrfsscrub_unverified_errors) == 1)
continue;
else if (sscanf (lines[i], "\tcorrected_errors: %" SCNu64,
- &ret->btrfsscrub_corrected_errors) == 1)
+ &ret->btrfsscrub_corrected_errors) == 1)
continue;
else if (sscanf (lines[i], "\tlast_physical: %" SCNu64,
- &ret->btrfsscrub_last_physical) == 1)
+ &ret->btrfsscrub_last_physical) == 1)
continue;
else
goto error;
}
if (i < 17) {
- reply_with_error ("truncated output from 'btrfs scrub status -R'
command");
+ reply_with_error (
+ "truncated output from 'btrfs scrub status -R' command");
free (ret);
return NULL;
}
return ret;
- error:
+error:
reply_with_error ("%s: could not parse btrfs scrub status.", lines[i]);
free (ret);
return NULL;
@@ -2123,10 +2136,9 @@ do_btrfstune_enable_skinny_metadata_extent_refs (const char
*device)
#endif
int
-do_btrfs_image (char *const *sources, const char *image,
- int compresslevel)
+do_btrfs_image (char *const *sources, const char *image, int compresslevel)
{
- size_t nr_sources = count_strings (sources);
+ size_t nr_sources = count_strings (sources);
const size_t MAX_ARGS = 64 + nr_sources;
const char *argv[MAX_ARGS];
size_t i = 0, j;
@@ -2141,8 +2153,8 @@ do_btrfs_image (char *const *sources, const char *image,
ADD_ARG (argv, i, str_btrfsimage);
- if ((optargs_bitmask & GUESTFS_BTRFS_IMAGE_COMPRESSLEVEL_BITMASK)
- && compresslevel >= 0) {
+ if ((optargs_bitmask & GUESTFS_BTRFS_IMAGE_COMPRESSLEVEL_BITMASK) &&
+ compresslevel >= 0) {
snprintf (compresslevel_s, sizeof compresslevel_s, "%d", compresslevel);
ADD_ARG (argv, i, "-c");
ADD_ARG (argv, i, compresslevel_s);
@@ -2169,7 +2181,7 @@ do_btrfs_image (char *const *sources, const char *image,
int
do_btrfs_replace (const char *srcdev, const char *targetdev,
- const char* mntpoint)
+ const char *mntpoint)
{
const size_t MAX_ARGS = 64;
const char *argv[MAX_ARGS];
@@ -2256,8 +2268,8 @@ btrfs_minimum_size (const char *path)
return -1;
}
- r = command (&out, &err, str_btrfs, "inspect-internal",
- "min-dev-size", buf, NULL);
+ r = command (&out, &err, str_btrfs, "inspect-internal",
"min-dev-size",
+ buf, NULL);
if (r == -1) {
reply_with_error ("%s", err);
diff --git a/daemon/cap.c b/daemon/cap.c
index 1d732c5..882141d 100644
--- a/daemon/cap.c
+++ b/daemon/cap.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -86,7 +87,7 @@ do_cap_get_file (const char *path)
}
cap_free (r);
- return ret; /* caller frees */
+ return ret; /* caller frees */
}
int
@@ -97,7 +98,8 @@ do_cap_set_file (const char *path, const char *capstr)
cap = cap_from_text (capstr);
if (cap == NULL) {
- reply_with_perror ("could not parse cap string: %s: cap_from_text",
capstr);
+ reply_with_perror ("could not parse cap string: %s: cap_from_text",
+ capstr);
return -1;
}
diff --git a/daemon/checksum.c b/daemon/checksum.c
index 3045948..e8996f5 100644
--- a/daemon/checksum.c
+++ b/daemon/checksum.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -29,15 +30,15 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_find, find);
-GUESTFSD_EXT_CMD(str_xargs, xargs);
-GUESTFSD_EXT_CMD(str_cksum, cksum);
-GUESTFSD_EXT_CMD(str_md5sum, md5sum);
-GUESTFSD_EXT_CMD(str_sha1sum, sha1sum);
-GUESTFSD_EXT_CMD(str_sha224sum, sha224sum);
-GUESTFSD_EXT_CMD(str_sha256sum, sha256sum);
-GUESTFSD_EXT_CMD(str_sha384sum, sha384sum);
-GUESTFSD_EXT_CMD(str_sha512sum, sha512sum);
+GUESTFSD_EXT_CMD (str_find, find);
+GUESTFSD_EXT_CMD (str_xargs, xargs);
+GUESTFSD_EXT_CMD (str_cksum, cksum);
+GUESTFSD_EXT_CMD (str_md5sum, md5sum);
+GUESTFSD_EXT_CMD (str_sha1sum, sha1sum);
+GUESTFSD_EXT_CMD (str_sha224sum, sha224sum);
+GUESTFSD_EXT_CMD (str_sha256sum, sha256sum);
+GUESTFSD_EXT_CMD (str_sha384sum, sha384sum);
+GUESTFSD_EXT_CMD (str_sha512sum, sha512sum);
static const char *
program_of_csum (const char *csumtype)
@@ -57,7 +58,8 @@ program_of_csum (const char *csumtype)
else if (STRCASEEQ (csumtype, "sha512"))
return str_sha512sum;
else {
- reply_with_error ("unknown checksum type, expecting
crc|md5|sha1|sha224|sha256|sha384|sha512");
+ reply_with_error ("unknown checksum type, expecting "
+ "crc|md5|sha1|sha224|sha256|sha384|sha512");
return NULL;
}
}
@@ -92,7 +94,7 @@ checksum (const char *csumtype, int fd)
pulse_mode_end ();
- return out; /* Caller frees. */
+ return out; /* Caller frees. */
}
char *
@@ -101,7 +103,7 @@ do_checksum (const char *csumtype, const char *path)
CLEANUP_CLOSE int fd = -1;
CHROOT_IN;
- fd = open (path, O_RDONLY|O_CLOEXEC);
+ fd = open (path, O_RDONLY | O_CLOEXEC);
CHROOT_OUT;
if (fd == -1) {
@@ -117,7 +119,7 @@ do_checksum_device (const char *csumtype, const char *device)
{
CLEANUP_CLOSE int fd = -1;
- fd = open (device, O_RDONLY|O_CLOEXEC);
+ fd = open (device, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
reply_with_perror ("%s", device);
return NULL;
@@ -195,18 +197,18 @@ do_checksums_out (const char *csumtype, const char *dir)
if (ferror (fp)) {
fprintf (stderr, "fread: %s: %m\n", dir);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
pclose (fp);
return -1;
}
if (pclose (fp) != 0) {
fprintf (stderr, "pclose: %s: %m\n", dir);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
diff --git a/daemon/cleanups.c b/daemon/cleanups.c
index 5293ff2..e997fbc 100644
--- a/daemon/cleanups.c
+++ b/daemon/cleanups.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,7 +31,7 @@
void
cleanup_free (void *ptr)
{
- free (* (void **) ptr);
+ free (*(void **)ptr);
}
extern void free_strings (char **argv);
@@ -38,13 +39,13 @@ extern void free_strings (char **argv);
void
cleanup_free_string_list (void *ptr)
{
- free_strings (* (char ***) ptr);
+ free_strings (*(char ***)ptr);
}
void
cleanup_unlink_free (void *ptr)
{
- char *filename = * (char **) ptr;
+ char *filename = *(char **)ptr;
if (filename) {
unlink (filename);
@@ -55,7 +56,7 @@ cleanup_unlink_free (void *ptr)
void
cleanup_close (void *ptr)
{
- int fd = * (int *) ptr;
+ int fd = *(int *)ptr;
if (fd >= 0)
close (fd);
@@ -64,7 +65,7 @@ cleanup_close (void *ptr)
void
cleanup_aug_close (void *ptr)
{
- augeas *aug = * (augeas **) ptr;
+ augeas *aug = *(augeas **)ptr;
if (aug != NULL)
aug_close (aug);
@@ -76,5 +77,5 @@ extern void free_stringsbuf (struct stringsbuf *sb);
void
cleanup_free_stringsbuf (void *ptr)
{
- free_stringsbuf ((struct stringsbuf *) ptr);
+ free_stringsbuf ((struct stringsbuf *)ptr);
}
diff --git a/daemon/cleanups.h b/daemon/cleanups.h
index 6746e27..ef5b3ad 100644
--- a/daemon/cleanups.h
+++ b/daemon/cleanups.h
@@ -30,13 +30,14 @@ extern void cleanup_aug_close (void *ptr);
extern void cleanup_free_stringsbuf (void *ptr);
#ifdef HAVE_ATTRIBUTE_CLEANUP
-#define CLEANUP_FREE __attribute__((cleanup(cleanup_free)))
-#define CLEANUP_FREE_STRING_LIST \
- __attribute__((cleanup(cleanup_free_string_list)))
-#define CLEANUP_UNLINK_FREE __attribute__((cleanup(cleanup_unlink_free)))
-#define CLEANUP_CLOSE __attribute__((cleanup(cleanup_close)))
-#define CLEANUP_AUG_CLOSE __attribute__((cleanup(cleanup_aug_close)))
-#define CLEANUP_FREE_STRINGSBUF __attribute__((cleanup(cleanup_free_stringsbuf)))
+#define CLEANUP_FREE __attribute__ ((cleanup (cleanup_free)))
+#define CLEANUP_FREE_STRING_LIST \
+ __attribute__ ((cleanup (cleanup_free_string_list)))
+#define CLEANUP_UNLINK_FREE __attribute__ ((cleanup (cleanup_unlink_free)))
+#define CLEANUP_CLOSE __attribute__ ((cleanup (cleanup_close)))
+#define CLEANUP_AUG_CLOSE __attribute__ ((cleanup (cleanup_aug_close)))
+#define CLEANUP_FREE_STRINGSBUF \
+ __attribute__ ((cleanup (cleanup_free_stringsbuf)))
#else
#define CLEANUP_FREE
#define CLEANUP_FREE_STRING_LIST
diff --git a/daemon/cmp.c b/daemon/cmp.c
index 61506b6..e9fa4f0 100644
--- a/daemon/cmp.c
+++ b/daemon/cmp.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -27,7 +28,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_cmp, cmp);
+GUESTFSD_EXT_CMD (str_cmp, cmp);
int
do_equal (const char *file1, const char *file2)
diff --git a/daemon/command.c b/daemon/command.c
index 2423a4e..b0e317a 100644
--- a/daemon/command.c
+++ b/daemon/command.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -65,7 +66,7 @@ commandf (char **stdoutput, char **stderror, unsigned flags,
perror ("malloc");
return -1;
}
- argv[0] = (char *) name;
+ argv[0] = (char *)name;
argv[1] = NULL;
va_start (args, name);
@@ -78,13 +79,13 @@ commandf (char **stdoutput, char **stderror, unsigned flags,
return -1;
}
argv = p;
- argv[i-2] = s;
- argv[i-1] = NULL;
+ argv[i - 2] = s;
+ argv[i - 1] = NULL;
}
va_end (args);
- r = commandvf (stdoutput, stderror, flags, (const char * const*) argv);
+ r = commandvf (stdoutput, stderror, flags, (const char *const *)argv);
return r;
}
@@ -109,7 +110,7 @@ commandrf (char **stdoutput, char **stderror, unsigned flags,
perror ("malloc");
return -1;
}
- argv[0] = (char *) name;
+ argv[0] = (char *)name;
argv[1] = NULL;
va_start (args, name);
@@ -122,8 +123,8 @@ commandrf (char **stdoutput, char **stderror, unsigned flags,
return -1;
}
argv = p;
- argv[i-2] = s;
- argv[i-1] = NULL;
+ argv[i - 2] = s;
+ argv[i - 1] = NULL;
}
va_end (args);
@@ -140,7 +141,7 @@ commandvf (char **stdoutput, char **stderror, unsigned flags,
{
int r;
- r = commandrvf (stdoutput, stderror, flags, (void *) argv);
+ r = commandrvf (stdoutput, stderror, flags, (void *)argv);
if (r == 0)
return 0;
else
@@ -179,12 +180,12 @@ commandvf (char **stdoutput, char **stderror, unsigned flags,
*/
int
commandrvf (char **stdoutput, char **stderror, unsigned flags,
- char const* const *argv)
+ char const *const *argv)
{
size_t so_size = 0, se_size = 0;
int so_fd[2], se_fd[2];
unsigned flag_copy_stdin = flags & COMMAND_FLAG_CHROOT_COPY_FILE_TO_STDIN;
- int flag_copy_fd = (int) (flags & COMMAND_FLAG_FD_MASK);
+ int flag_copy_fd = (int)(flags & COMMAND_FLAG_FD_MASK);
unsigned flag_out_on_err = flags & COMMAND_FLAG_FOLD_STDOUT_ON_STDERR;
pid_t pid;
int r, quit, i;
@@ -192,8 +193,10 @@ commandrvf (char **stdoutput, char **stderror, unsigned flags,
char buf[256];
char *p;
- if (stdoutput) *stdoutput = NULL;
- if (stderror) *stderror = NULL;
+ if (stdoutput)
+ *stdoutput = NULL;
+ if (stderror)
+ *stderror = NULL;
if (verbose) {
printf ("commandrvf: stdout=%s stderr=%s flags=0x%x\n",
@@ -218,9 +221,11 @@ commandrvf (char **stdoutput, char **stderror, unsigned flags,
quote = 0;
putchar (' ');
- if (quote) putchar (quote);
+ if (quote)
+ putchar (quote);
fputs (argv[i], stdout);
- if (quote) putchar (quote);
+ if (quote)
+ putchar (quote);
}
putchar ('\n');
}
@@ -245,7 +250,7 @@ commandrvf (char **stdoutput, char **stderror, unsigned flags,
abort ();
}
- if (pid == 0) { /* Child process running the command. */
+ if (pid == 0) { /* Child process running the command. */
signal (SIGALRM, SIG_DFL);
signal (SIGPIPE, SIG_DFL);
close (0);
@@ -293,7 +298,7 @@ commandrvf (char **stdoutput, char **stderror, unsigned flags,
_exit (EXIT_FAILURE);
}
- execvp (argv[0], (void *) argv);
+ execvp (argv[0], (void *)argv);
perror (argv[0]);
_exit (EXIT_FAILURE);
}
@@ -310,8 +315,8 @@ commandrvf (char **stdoutput, char **stderror, unsigned flags,
while (quit < 2) {
again:
rset2 = rset;
- r = select (MAX (so_fd[PIPE_READ], se_fd[PIPE_READ]) + 1, &rset2,
- NULL, NULL, NULL);
+ r = select (MAX (so_fd[PIPE_READ], se_fd[PIPE_READ]) + 1, &rset2, NULL,
+ NULL, NULL);
if (r == -1) {
if (errno == EINTR)
goto again;
@@ -334,7 +339,8 @@ commandrvf (char **stdoutput, char **stderror, unsigned flags,
}
close (so_fd[PIPE_READ]);
close (se_fd[PIPE_READ]);
- if (flag_copy_stdin) close (flag_copy_fd);
+ if (flag_copy_stdin)
+ close (flag_copy_fd);
waitpid (pid, NULL, 0);
return -1;
}
@@ -345,7 +351,10 @@ commandrvf (char **stdoutput, char **stderror, unsigned flags,
perror ("read");
goto quit;
}
- if (r == 0) { FD_CLR (so_fd[PIPE_READ], &rset); quit++; }
+ if (r == 0) {
+ FD_CLR (so_fd[PIPE_READ], &rset);
+ quit++;
+ }
if (r > 0 && stdoutput) {
so_size += r;
@@ -365,7 +374,10 @@ commandrvf (char **stdoutput, char **stderror, unsigned flags,
perror ("read");
goto quit;
}
- if (r == 0) { FD_CLR (se_fd[PIPE_READ], &rset); quit++; }
+ if (r == 0) {
+ FD_CLR (se_fd[PIPE_READ], &rset);
+ quit++;
+ }
if (r > 0) {
if (verbose)
@@ -392,7 +404,7 @@ commandrvf (char **stdoutput, char **stderror, unsigned flags,
* trailing \n characters from the error buffer (not from stdout).
*/
if (stdoutput) {
- void *q = realloc (*stdoutput, so_size+1);
+ void *q = realloc (*stdoutput, so_size + 1);
if (q == NULL) {
perror ("realloc");
free (*stdoutput);
@@ -402,7 +414,7 @@ commandrvf (char **stdoutput, char **stderror, unsigned flags,
(*stdoutput)[so_size] = '\0';
}
if (stderror) {
- void *q = realloc (*stderror, se_size+1);
+ void *q = realloc (*stderror, se_size + 1);
if (q == NULL) {
perror ("realloc");
free (*stderror);
@@ -410,7 +422,7 @@ commandrvf (char **stdoutput, char **stderror, unsigned flags,
*stderror = q;
if (*stderror) {
(*stderror)[se_size] = '\0';
- while (se_size > 0 && (*stderror)[se_size-1] == '\n') {
+ while (se_size > 0 && (*stderror)[se_size - 1] == '\n') {
se_size--;
(*stderror)[se_size] = '\0';
}
diff --git a/daemon/command.h b/daemon/command.h
index 60f32b8..8df8209 100644
--- a/daemon/command.h
+++ b/daemon/command.h
@@ -19,23 +19,25 @@
#ifndef GUESTFSD_COMMAND_H
#define GUESTFSD_COMMAND_H
-#define command(out,err,name,...) commandf((out),(err),0,(name),__VA_ARGS__)
-#define commandr(out,err,name,...) commandrf((out),(err),0,(name),__VA_ARGS__)
-#define commandv(out,err,argv) commandvf((out),(err),0,(argv))
-#define commandrv(out,err,argv) commandrvf((out),(err),0,(argv))
+#define command(out, err, name, ...) \
+ commandf ((out), (err), 0, (name), __VA_ARGS__)
+#define commandr(out, err, name, ...) \
+ commandrf ((out), (err), 0, (name), __VA_ARGS__)
+#define commandv(out, err, argv) commandvf ((out), (err), 0, (argv))
+#define commandrv(out, err, argv) commandrvf ((out), (err), 0, (argv))
-#define COMMAND_FLAG_FD_MASK 0x0000ffff
-#define COMMAND_FLAG_FOLD_STDOUT_ON_STDERR 0x00010000
+#define COMMAND_FLAG_FD_MASK 0x0000ffff
+#define COMMAND_FLAG_FOLD_STDOUT_ON_STDERR 0x00010000
#define COMMAND_FLAG_CHROOT_COPY_FILE_TO_STDIN 0x00020000
-#define COMMAND_FLAG_DO_CHROOT 0x00040000
+#define COMMAND_FLAG_DO_CHROOT 0x00040000
extern int commandf (char **stdoutput, char **stderror, unsigned flags,
- const char *name, ...) __attribute__((sentinel));
+ const char *name, ...) __attribute__ ((sentinel));
extern int commandrf (char **stdoutput, char **stderror, unsigned flags,
- const char *name, ...) __attribute__((sentinel));
+ const char *name, ...) __attribute__ ((sentinel));
extern int commandvf (char **stdoutput, char **stderror, unsigned flags,
char const *const *argv);
extern int commandrvf (char **stdoutput, char **stderror, unsigned flags,
- char const* const *argv);
+ char const *const *argv);
#endif /* GUESTFSD_COMMAND_H */
diff --git a/daemon/compress.c b/daemon/compress.c
index 36f4e66..69b34cf 100644
--- a/daemon/compress.c
+++ b/daemon/compress.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -27,11 +28,11 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_compress, compress);
-GUESTFSD_EXT_CMD(str_gzip, gzip);
-GUESTFSD_EXT_CMD(str_bzip2, bzip2);
-GUESTFSD_EXT_CMD(str_xz, xz);
-GUESTFSD_EXT_CMD(str_lzop, lzop);
+GUESTFSD_EXT_CMD (str_compress, compress);
+GUESTFSD_EXT_CMD (str_gzip, gzip);
+GUESTFSD_EXT_CMD (str_bzip2, bzip2);
+GUESTFSD_EXT_CMD (str_xz, xz);
+GUESTFSD_EXT_CMD (str_lzop, lzop);
/* Has one FileOut parameter. */
static int
@@ -95,27 +96,30 @@ do_compressX_out (const char *file, const char *filter, int
is_device)
if (ferror (fp)) {
fprintf (stderr, "fread: %s: %m\n", file);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
pclose (fp);
return -1;
}
if (pclose (fp) != 0) {
fprintf (stderr, "pclose: %s: %m\n", file);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
}
-#define CHECK_SUPPORTED(prog) \
- if (!prog_exists (prog)) \
- /* note: substring "not supported" must appear in this error */ \
- NOT_SUPPORTED (-1, "compression type %s is not supported, because external
program '%s' is not available in the appliance", prog, prog);
+#define CHECK_SUPPORTED(prog) \
+ if (!prog_exists (prog)) \
+ /* note: substring "not supported" must appear in this error */ \
+ NOT_SUPPORTED (-1, "compression type %s is not supported, because " \
+ "external program '%s' is not available in the "
\
+ "appliance", \
+ prog, prog);
static int
get_filter (const char *ctype, int level, char *ret, size_t n)
@@ -123,13 +127,13 @@ get_filter (const char *ctype, int level, char *ret, size_t n)
if (STREQ (ctype, "compress")) {
CHECK_SUPPORTED ("compress");
if (level != -1) {
- reply_with_error ("compress: cannot use optional level parameter with this
compression type");
+ reply_with_error ("compress: cannot use optional level parameter "
+ "with this compression type");
return -1;
}
snprintf (ret, n, "%s -c", str_compress);
return 0;
- }
- else if (STREQ (ctype, "gzip")) {
+ } else if (STREQ (ctype, "gzip")) {
CHECK_SUPPORTED ("gzip");
if (level == -1)
snprintf (ret, n, "%s -c", str_gzip);
@@ -140,8 +144,7 @@ get_filter (const char *ctype, int level, char *ret, size_t n)
return -1;
}
return 0;
- }
- else if (STREQ (ctype, "bzip2")) {
+ } else if (STREQ (ctype, "bzip2")) {
CHECK_SUPPORTED ("bzip2");
if (level == -1)
snprintf (ret, n, "%s -c", str_bzip2);
@@ -152,8 +155,7 @@ get_filter (const char *ctype, int level, char *ret, size_t n)
return -1;
}
return 0;
- }
- else if (STREQ (ctype, "xz")) {
+ } else if (STREQ (ctype, "xz")) {
CHECK_SUPPORTED ("xz");
if (level == -1)
snprintf (ret, n, "%s -c", str_xz);
@@ -164,8 +166,7 @@ get_filter (const char *ctype, int level, char *ret, size_t n)
return -1;
}
return 0;
- }
- else if (STREQ (ctype, "lzop")) {
+ } else if (STREQ (ctype, "lzop")) {
CHECK_SUPPORTED ("lzop");
if (level == -1)
snprintf (ret, n, "%s -c", str_lzop);
diff --git a/daemon/copy.c b/daemon/copy.c
index 2a6720b..ad3c260 100644
--- a/daemon/copy.c
+++ b/daemon/copy.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,7 +31,7 @@
#include "actions.h"
/* wrflags */
-#define DEST_DEVICE_FLAGS O_WRONLY|O_CLOEXEC, 0
+#define DEST_DEVICE_FLAGS O_WRONLY | O_CLOEXEC, 0
/* flags */
#define COPY_UNLINK_DEST_ON_FAILURE 1
@@ -42,10 +43,8 @@
/* Takes optional arguments, consult optargs_bitmask. */
static int
-copy (const char *src, const char *src_display,
- const char *dest, const char *dest_display,
- int wrflags, int wrmode,
- int flags,
+copy (const char *src, const char *src_display, const char *dest,
+ const char *dest_display, int wrflags, int wrmode, int flags,
int64_t srcoffset, int64_t destoffset, int64_t size, int sparse)
{
int64_t saved_size = size;
@@ -66,17 +65,16 @@ copy (const char *src, const char *src_display,
reply_with_error ("srcoffset is negative");
return -1;
}
- }
- else
+ } else
srcoffset = 0;
- if ((optargs_bitmask & GUESTFS_COPY_DEVICE_TO_DEVICE_DESTOFFSET_BITMASK)) {
+ if ((optargs_bitmask &
+ GUESTFS_COPY_DEVICE_TO_DEVICE_DESTOFFSET_BITMASK)) {
if (destoffset < 0) {
reply_with_error ("destoffset is negative");
return -1;
}
- }
- else
+ } else
destoffset = 0;
if ((optargs_bitmask & GUESTFS_COPY_DEVICE_TO_DEVICE_SIZE_BITMASK)) {
@@ -84,21 +82,20 @@ copy (const char *src, const char *src_display,
reply_with_error ("size is negative");
return -1;
}
- }
- else
+ } else
size = -1;
- if (! (optargs_bitmask & GUESTFS_COPY_DEVICE_TO_DEVICE_SPARSE_BITMASK))
+ if (!(optargs_bitmask & GUESTFS_COPY_DEVICE_TO_DEVICE_SPARSE_BITMASK))
sparse = 0;
/* Open source and destination. */
- src_fd = open (src, O_RDONLY|O_CLOEXEC);
+ src_fd = open (src, O_RDONLY | O_CLOEXEC);
if (src_fd == -1) {
reply_with_perror ("%s", src_display);
return -1;
}
- if (srcoffset > 0 && lseek (src_fd, srcoffset, SEEK_SET) == (off_t) -1) {
+ if (srcoffset > 0 && lseek (src_fd, srcoffset, SEEK_SET) == (off_t)-1) {
reply_with_perror ("lseek: %s", src_display);
close (src_fd);
return -1;
@@ -111,7 +108,8 @@ copy (const char *src, const char *src_display,
return -1;
}
- if (destoffset > 0 && lseek (dest_fd, destoffset, SEEK_SET) == (off_t) -1)
{
+ if (destoffset > 0 &&
+ lseek (dest_fd, destoffset, SEEK_SET) == (off_t)-1) {
reply_with_perror ("lseek: %s", dest_display);
close (src_fd);
close (dest_fd);
@@ -161,7 +159,8 @@ copy (const char *src, const char *src_display,
if (size == -1)
pulse_mode_cancel ();
errno = err;
- reply_with_perror ("%s: seek (because of sparse flag)", dest_display);
+ reply_with_perror ("%s: seek (because of sparse flag)",
+ dest_display);
close (src_fd);
close (dest_fd);
if (flags & COPY_UNLINK_DEST_ON_FAILURE)
@@ -187,7 +186,8 @@ copy (const char *src, const char *src_display,
if (size != -1) {
size -= r;
- notify_progress ((uint64_t) (saved_size - size), (uint64_t) saved_size);
+ notify_progress ((uint64_t) (saved_size - size),
+ (uint64_t)saved_size);
}
}
@@ -214,16 +214,16 @@ copy (const char *src, const char *src_display,
int
do_copy_device_to_device (const char *src, const char *dest,
- int64_t srcoffset, int64_t destoffset, int64_t size,
- int sparse, int append)
+ int64_t srcoffset, int64_t destoffset,
+ int64_t size, int sparse, int append)
{
if ((optargs_bitmask & GUESTFS_COPY_DEVICE_TO_DEVICE_APPEND_BITMASK) &&
append) {
reply_with_error ("the append flag cannot be set for this call");
return -1;
}
- return copy (src, src, dest, dest, DEST_DEVICE_FLAGS, 0,
- srcoffset, destoffset, size, sparse);
+ return copy (src, src, dest, dest, DEST_DEVICE_FLAGS, 0, srcoffset,
+ destoffset, size, sparse);
}
int
@@ -232,7 +232,7 @@ do_copy_device_to_file (const char *src, const char *dest,
int sparse, int append)
{
CLEANUP_FREE char *dest_buf = sysroot_path (dest);
- int wrflags = O_WRONLY|O_CREAT|O_NOCTTY|O_CLOEXEC;
+ int wrflags = O_WRONLY | O_CREAT | O_NOCTTY | O_CLOEXEC;
if (!dest_buf) {
reply_with_perror ("malloc");
@@ -245,8 +245,8 @@ do_copy_device_to_file (const char *src, const char *dest,
else
wrflags |= O_TRUNC;
- return copy (src, src, dest_buf, dest, wrflags, 0666, 0,
- srcoffset, destoffset, size, sparse);
+ return copy (src, src, dest_buf, dest, wrflags, 0666, 0, srcoffset,
+ destoffset, size, sparse);
}
int
@@ -267,17 +267,17 @@ do_copy_file_to_device (const char *src, const char *dest,
return -1;
}
- return copy (src_buf, src, dest, dest, DEST_DEVICE_FLAGS, 0,
- srcoffset, destoffset, size, sparse);
+ return copy (src_buf, src, dest, dest, DEST_DEVICE_FLAGS, 0, srcoffset,
+ destoffset, size, sparse);
}
int
-do_copy_file_to_file (const char *src, const char *dest,
- int64_t srcoffset, int64_t destoffset, int64_t size,
- int sparse, int append)
+do_copy_file_to_file (const char *src, const char *dest, int64_t srcoffset,
+ int64_t destoffset, int64_t size, int sparse,
+ int append)
{
CLEANUP_FREE char *src_buf = NULL, *dest_buf = NULL;
- int wrflags = O_WRONLY|O_CREAT|O_NOCTTY|O_CLOEXEC;
+ int wrflags = O_WRONLY | O_CREAT | O_NOCTTY | O_CLOEXEC;
src_buf = sysroot_path (src);
if (!src_buf) {
@@ -298,6 +298,6 @@ do_copy_file_to_file (const char *src, const char *dest,
wrflags |= O_TRUNC;
return copy (src_buf, src, dest_buf, dest, wrflags, 0666,
- COPY_UNLINK_DEST_ON_FAILURE,
- srcoffset, destoffset, size, sparse);
+ COPY_UNLINK_DEST_ON_FAILURE, srcoffset, destoffset, size,
+ sparse);
}
diff --git a/daemon/cpio.c b/daemon/cpio.c
index d1459b1..929692c 100644
--- a/daemon/cpio.c
+++ b/daemon/cpio.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -33,7 +34,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_cpio, cpio);
+GUESTFSD_EXT_CMD (str_cpio, cpio);
/* Has one FileOut parameter. */
/* Takes optional arguments, consult optargs_bitmask. */
@@ -65,7 +66,7 @@ do_cpio_out (const char *dir, const char *format)
return -1;
}
- if (! S_ISDIR (statbuf.st_mode)) {
+ if (!S_ISDIR (statbuf.st_mode)) {
reply_with_error ("%s: not a directory", dir);
return -1;
}
@@ -76,14 +77,12 @@ do_cpio_out (const char *dir, const char *format)
reply_with_error ("%s: format must be 'newc' or 'crc'",
format);
return -1;
}
- }
- else
+ } else
format = "newc";
- if (asprintf_nowarn (&cmd, "cd %Q && find -print0 | %s -0 -o -H %s
--quiet",
- buf,
- str_cpio,
- format) == -1) {
+ if (asprintf_nowarn (&cmd,
+ "cd %Q && find -print0 | %s -0 -o -H %s
--quiet",
+ buf, str_cpio, format) == -1) {
reply_with_perror ("asprintf");
return -1;
}
@@ -112,18 +111,18 @@ do_cpio_out (const char *dir, const char *format)
if (ferror (fp)) {
fprintf (stderr, "fread: %s: %m\n", dir);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
pclose (fp);
return -1;
}
if (pclose (fp) != 0) {
fprintf (stderr, "pclose: %s: %m\n", dir);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
diff --git a/daemon/cpmv.c b/daemon/cpmv.c
index 390b09f..d851ee8 100644
--- a/daemon/cpmv.c
+++ b/daemon/cpmv.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -25,10 +26,11 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_cp, cp);
-GUESTFSD_EXT_CMD(str_mv, mv);
+GUESTFSD_EXT_CMD (str_cp, cp);
+GUESTFSD_EXT_CMD (str_mv, mv);
-static int cpmv_cmd (const char *cmd, const char *flags, const char *src, const char
*dest);
+static int cpmv_cmd (const char *cmd, const char *flags, const char *src,
+ const char *dest);
int
do_cp (const char *src, const char *dest)
@@ -55,7 +57,8 @@ do_mv (const char *src, const char *dest)
}
static int
-cpmv_cmd (const char *cmd, const char *flags, const char *src, const char *dest)
+cpmv_cmd (const char *cmd, const char *flags, const char *src,
+ const char *dest)
{
CLEANUP_FREE char *srcbuf = NULL, *destbuf = NULL;
CLEANUP_FREE char *err = NULL;
diff --git a/daemon/daemon.h b/daemon/daemon.h
index 994b47a..c88e6fd 100644
--- a/daemon/daemon.h
+++ b/daemon/daemon.h
@@ -37,7 +37,8 @@
/* Mountables */
-typedef struct {
+typedef struct
+{
mountable_type_t type;
char *device;
char *volume;
@@ -61,26 +62,27 @@ extern char *sysroot_realpath (const char *path);
extern int is_root_device (const char *device);
extern int xwrite (int sock, const void *buf, size_t len)
- __attribute__((__warn_unused_result__));
+ __attribute__ ((__warn_unused_result__));
extern int xread (int sock, void *buf, size_t len)
- __attribute__((__warn_unused_result__));
+ __attribute__ ((__warn_unused_result__));
extern char *mountable_to_string (const mountable_t *mountable);
/*-- in mount.c --*/
extern int mount_vfs_nochroot (const char *options, const char *vfstype,
- const mountable_t *mountable,
- const char *mp, const char *user_mp);
+ const mountable_t *mountable, const char *mp,
+ const char *user_mp);
/* Growable strings buffer. */
-struct stringsbuf {
+struct stringsbuf
+{
char **argv;
size_t size;
size_t alloc;
};
-#define DECLARE_STRINGSBUF(v) \
- struct stringsbuf (v) = { .argv = NULL, .size = 0, .alloc = 0 }
+#define DECLARE_STRINGSBUF(v) \
+ struct stringsbuf (v) = {.argv = NULL, .size = 0, .alloc = 0 }
/* Append a string to the strings buffer.
*
@@ -95,7 +97,7 @@ struct stringsbuf {
extern int add_string_nodup (struct stringsbuf *sb, char *str);
extern int add_string (struct stringsbuf *sb, const char *str);
extern int add_sprintf (struct stringsbuf *sb, const char *fs, ...)
- __attribute__((format (printf,2,3)));
+ __attribute__ ((format (printf, 2, 3)));
extern int end_stringsbuf (struct stringsbuf *sb);
extern char **take_stringsbuf (struct stringsbuf *sb);
extern void free_stringsbuf (struct stringsbuf *sb);
@@ -120,8 +122,10 @@ extern char **split_lines (char *str);
extern char **empty_list (void);
-#define __external_command __attribute__((__section__(".guestfsd_ext_cmds")))
-#define GUESTFSD_EXT_CMD(___ext_cmd_var, ___ext_cmd_str) static const char
___ext_cmd_var[] __external_command = #___ext_cmd_str
+#define __external_command \
+ __attribute__ ((__section__(".guestfsd_ext_cmds")))
+#define GUESTFSD_EXT_CMD(___ext_cmd_var, ___ext_cmd_str) \
+ static const char ___ext_cmd_var[] __external_command = #___ext_cmd_str
extern int is_power_of_2 (unsigned long v);
@@ -161,9 +165,10 @@ extern guestfs_int_lvm_vg_list *parse_command_line_vgs (void);
extern guestfs_int_lvm_lv_list *parse_command_line_lvs (void);
/*-- in optgroups.c (auto-generated) --*/
-struct optgroup {
- const char *group; /* Name of the optional group. */
- int (*available) (void); /* Function to test availability. */
+struct optgroup
+{
+ const char *group; /* Name of the optional group. */
+ int (*available) (void); /* Function to test availability. */
};
extern struct optgroup optgroups[];
@@ -213,7 +218,7 @@ extern void hivex_finalize (void);
extern void journal_finalize (void);
/*-- in proto.c --*/
-extern void main_loop (int sock) __attribute__((noreturn));
+extern void main_loop (int sock) __attribute__ ((noreturn));
/*-- in xattr.c --*/
extern int copy_xattrs (const char *src, const char *dest);
@@ -227,9 +232,12 @@ extern int xfs_set_label (const char *device, const char *label);
extern int64_t xfs_minimum_size (const char *path);
/*-- debug-bmap.c --*/
-extern char *debug_bmap (const char *subcmd, size_t argc, char *const *const argv);
-extern char *debug_bmap_file (const char *subcmd, size_t argc, char *const *const argv);
-extern char *debug_bmap_device (const char *subcmd, size_t argc, char *const *const
argv);
+extern char *debug_bmap (const char *subcmd, size_t argc,
+ char *const *const argv);
+extern char *debug_bmap_file (const char *subcmd, size_t argc,
+ char *const *const argv);
+extern char *debug_bmap_device (const char *subcmd, size_t argc,
+ char *const *const argv);
/*-- in btrfs.c --*/
extern char *btrfs_get_label (const char *device);
@@ -251,17 +259,18 @@ extern int swap_set_uuid (const char *device, const char *uuid);
* it is added automatically by the client-side RPC stubs.
*/
extern void reply_with_error_errno (int err, const char *fs, ...)
- __attribute__((format (printf,2,3)));
+ __attribute__ ((format (printf, 2, 3)));
extern void reply_with_perror_errno (int err, const char *fs, ...)
- __attribute__((format (printf,2,3)));
-#define reply_with_error(...) reply_with_error_errno(0, __VA_ARGS__)
-#define reply_with_perror(...) reply_with_perror_errno(errno, __VA_ARGS__)
-#define reply_with_unavailable_feature(feature) \
- reply_with_error_errno (ENOTSUP, \
- "feature '%s' is not available in this\n" \
- "build of libguestfs. Read 'AVAILABILITY' in the guestfs(3) man page
for\n" \
- "how to check for the availability of features.", \
- feature)
+ __attribute__ ((format (printf, 2, 3)));
+#define reply_with_error(...) reply_with_error_errno (0, __VA_ARGS__)
+#define reply_with_perror(...) reply_with_perror_errno (errno, __VA_ARGS__)
+#define reply_with_unavailable_feature(feature) \
+ reply_with_error_errno ( \
+ ENOTSUP, "feature '%s' is not available in this\n"
\
+ "build of libguestfs. Read 'AVAILABILITY' in the "
\
+ "guestfs(3) man page for\n" \
+ "how to check for the availability of features.", \
+ feature)
/* daemon functions that receive files (FileIn) should call
* receive_file for each FileIn parameter.
@@ -310,7 +319,8 @@ extern void pulse_mode_cancel (void);
/* Send a progress message without rate-limiting. This is just
* for debugging - DON'T use it in regular code!
*/
-extern void notify_progress_no_ratelimit (uint64_t position, uint64_t total, const struct
timeval *now);
+extern void notify_progress_no_ratelimit (uint64_t position, uint64_t total,
+ const struct timeval *now);
/* Return true iff the buffer is all zero bytes.
*
@@ -333,38 +343,42 @@ is_zero (const char *buffer, size_t size)
/* Helper for building up short lists of arguments. Your code has to
* define MAX_ARGS to a suitable value.
*/
-#define ADD_ARG(argv,i,v) \
- do { \
- if ((i) >= MAX_ARGS) { \
- fprintf (stderr, "%s: %d: internal error: exceeded MAX_ARGS (%zu) when
constructing the command line\n", __FILE__, __LINE__, (size_t) MAX_ARGS); \
- abort (); \
- } \
- (argv)[(i)++] = (v); \
+#define ADD_ARG(argv, i, v) \
+ do { \
+ if ((i) >= MAX_ARGS) { \
+ fprintf (stderr, "%s: %d: internal error: exceeded MAX_ARGS (%zu) " \
+ "when constructing the command line\n", \
+ __FILE__, __LINE__, (size_t)MAX_ARGS); \
+ abort (); \
+ } \
+ (argv)[(i)++] = (v); \
} while (0)
/* Helper for functions that need a root filesystem mounted.
* NB. Cannot be used for FileIn functions.
*/
-#define NEED_ROOT(cancel_stmt,fail_stmt) \
- do { \
- if (!is_root_mounted ()) { \
- cancel_stmt; \
- reply_with_error ("%s: you must call 'mount' first to mount the root
filesystem", __func__); \
- fail_stmt; \
- } \
- } \
- while (0)
+#define NEED_ROOT(cancel_stmt, fail_stmt) \
+ do { \
+ if (!is_root_mounted ()) { \
+ cancel_stmt; \
+ reply_with_error ( \
+ "%s: you must call 'mount' first to mount the root
filesystem", \
+ __func__); \
+ fail_stmt; \
+ } \
+ } while (0)
/* Helper for functions that need an argument ("path") that is absolute.
* NB. Cannot be used for FileIn functions.
*/
-#define ABS_PATH(path,cancel_stmt,fail_stmt) \
- do { \
- if ((path)[0] != '/') { \
- cancel_stmt; \
- reply_with_error ("%s: path must start with a / character", __func__); \
- fail_stmt; \
- } \
+#define ABS_PATH(path, cancel_stmt, fail_stmt) \
+ do { \
+ if ((path)[0] != '/') { \
+ cancel_stmt; \
+ reply_with_error ("%s: path must start with a / character", \
+ __func__); \
+ fail_stmt; \
+ } \
} while (0)
/* NB:
@@ -374,58 +388,55 @@ is_zero (const char *buffer, size_t size)
* (3) All paths specified must be absolute.
* (4) Neither macro affects errno.
*/
-#define CHROOT_IN \
- do { \
- if (sysroot_len > 0) { \
- int __old_errno = errno; \
- if (chroot (sysroot) == -1) \
- perror ("CHROOT_IN: sysroot"); \
- errno = __old_errno; \
- } \
+#define CHROOT_IN \
+ do { \
+ if (sysroot_len > 0) { \
+ int __old_errno = errno; \
+ if (chroot (sysroot) == -1) \
+ perror ("CHROOT_IN: sysroot"); \
+ errno = __old_errno; \
+ } \
} while (0)
-#define CHROOT_OUT \
- do { \
- if (sysroot_len > 0) { \
- int __old_errno = errno; \
- if (chroot (".") == -1) \
- perror ("CHROOT_OUT: ."); \
- errno = __old_errno; \
- } \
+#define CHROOT_OUT \
+ do { \
+ if (sysroot_len > 0) { \
+ int __old_errno = errno; \
+ if (chroot (".") == -1) \
+ perror ("CHROOT_OUT: ."); \
+ errno = __old_errno; \
+ } \
} while (0)
/* Marks functions which are not implemented.
* NB. Cannot be used for FileIn functions.
*/
-#define XXX_NOT_IMPL(errcode) \
- do { \
- reply_with_error ("%s: function not implemented", __func__); \
- return (errcode); \
- } \
- while (0)
+#define XXX_NOT_IMPL(errcode) \
+ do { \
+ reply_with_error ("%s: function not implemented", __func__); \
+ return (errcode); \
+ } while (0)
/* Marks functions which are not supported. */
-#define NOT_SUPPORTED(errcode,...) \
- do { \
- reply_with_error_errno (ENOTSUP, __VA_ARGS__); \
- return (errcode); \
- } \
- while (0)
+#define NOT_SUPPORTED(errcode, ...) \
+ do { \
+ reply_with_error_errno (ENOTSUP, __VA_ARGS__); \
+ return (errcode); \
+ } while (0)
/* Calls reply_with_error, but includes the Augeas error details. */
-#define AUGEAS_ERROR(fs,...) \
- do { \
- int code = aug_error (aug); \
- if (code == AUG_ENOMEM) \
- reply_with_error (fs ": augeas out of memory", ##__VA_ARGS__); \
- else { \
- const char *message = aug_error_message (aug); \
- const char *minor = aug_error_minor_message (aug); \
- const char *details = aug_error_details (aug); \
- reply_with_error (fs ": %s%s%s%s%s", ##__VA_ARGS__, \
- message, \
- minor ? ": " : "", minor ? minor :
"", \
- details ? ": " : "", details ? details :
""); \
- } \
+#define AUGEAS_ERROR(fs, ...) \
+ do { \
+ int code = aug_error (aug); \
+ if (code == AUG_ENOMEM) \
+ reply_with_error (fs ": augeas out of memory", ##__VA_ARGS__); \
+ else { \
+ const char *message = aug_error_message (aug); \
+ const char *minor = aug_error_minor_message (aug); \
+ const char *details = aug_error_details (aug); \
+ reply_with_error (fs ": %s%s%s%s%s", ##__VA_ARGS__, message, \
+ minor ? ": " : "", minor ? minor :
"", \
+ details ? ": " : "", details ? details :
""); \
+ } \
} while (0)
#endif /* GUESTFSD_DAEMON_H */
diff --git a/daemon/dd.c b/daemon/dd.c
index d0390d8..e3bd72a 100644
--- a/daemon/dd.c
+++ b/daemon/dd.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -27,7 +28,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_dd, dd);
+GUESTFSD_EXT_CMD (str_dd, dd);
int
do_dd (const char *src, const char *dest)
@@ -97,7 +98,8 @@ do_copy_size (const char *src, const char *dest, int64_t ssize)
close (src_fd);
return -1;
}
- dest_fd = open (buf, O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY|O_CLOEXEC, 0666);
+ dest_fd = open (
+ buf, O_WRONLY | O_CREAT | O_TRUNC | O_NOCTTY | O_CLOEXEC, 0666);
}
if (dest_fd == -1) {
reply_with_perror ("%s", dest);
@@ -105,7 +107,7 @@ do_copy_size (const char *src, const char *dest, int64_t ssize)
return -1;
}
- uint64_t position = 0, size = (uint64_t) ssize;
+ uint64_t position = 0, size = (uint64_t)ssize;
CLEANUP_FREE char *buf = NULL;
buf = malloc (BUFSIZ);
if (buf == NULL) {
@@ -122,7 +124,7 @@ do_copy_size (const char *src, const char *dest, int64_t ssize)
if (n64 > BUFSIZ)
n = BUFSIZ;
else
- n = (size_t) n64; /* safe because of if condition */
+ n = (size_t)n64; /* safe because of if condition */
ssize_t r = read (src_fd, buf, n);
if (r == -1) {
@@ -146,7 +148,7 @@ do_copy_size (const char *src, const char *dest, int64_t ssize)
}
position += r;
- notify_progress ((uint64_t) position, (uint64_t) size);
+ notify_progress ((uint64_t)position, (uint64_t)size);
}
if (close (src_fd) == -1) {
diff --git a/daemon/debug-bmap.c b/daemon/debug-bmap.c
index fcf3ede..6e79681 100644
--- a/daemon/debug-bmap.c
+++ b/daemon/debug-bmap.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* This file provides some interim APIs for virt-bmap. They will
@@ -43,7 +44,7 @@ static int fd = -1;
static DIR *dir = NULL;
static struct stat statbuf;
-static void bmap_finalize (void) __attribute__((destructor));
+static void bmap_finalize (void) __attribute__ ((destructor));
static void
bmap_finalize (void)
{
@@ -76,8 +77,7 @@ bmap_prepare (const char *path, const char *orig_path)
reply_with_perror ("opendir: %s", orig_path);
return NULL;
}
- }
- else {
+ } else {
/* Open a regular file. */
fd = open (path, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
@@ -85,10 +85,8 @@ bmap_prepare (const char *path, const char *orig_path)
return NULL;
}
- posix_fadvise (fd, 0, 0,
- POSIX_FADV_SEQUENTIAL |
- POSIX_FADV_NOREUSE |
- POSIX_FADV_DONTNEED);
+ posix_fadvise (fd, 0, 0, POSIX_FADV_SEQUENTIAL | POSIX_FADV_NOREUSE |
+ POSIX_FADV_DONTNEED);
}
ret = strdup ("ok");
@@ -160,8 +158,7 @@ debug_bmap (const char *subcmd, size_t argc, char *const *const argv)
reply_with_perror ("ioctl: BLKGETSIZE64");
return NULL;
}
- }
- else
+ } else
n = statbuf.st_size;
while (n > 0) {
@@ -187,7 +184,8 @@ debug_bmap (const char *subcmd, size_t argc, char *const *const argv)
for (;;) {
errno = 0;
d = readdir (dir);
- if (!d) break;
+ if (!d)
+ break;
}
/* Check readdir didn't fail */
diff --git a/daemon/debug.c b/daemon/debug.c
index dac6482..d84ec37 100644
--- a/daemon/debug.c
+++ b/daemon/debug.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -33,15 +34,15 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_printenv, printenv);
-GUESTFSD_EXT_CMD(str_ldd, ldd);
-GUESTFSD_EXT_CMD(str_ls, ls);
-GUESTFSD_EXT_CMD(str_find, find);
-GUESTFSD_EXT_CMD(str_xargs, xargs);
-GUESTFSD_EXT_CMD(str_file, file);
-GUESTFSD_EXT_CMD(str_grep, grep);
-GUESTFSD_EXT_CMD(str_gawk, gawk);
-GUESTFSD_EXT_CMD(str_sh, sh);
+GUESTFSD_EXT_CMD (str_printenv, printenv);
+GUESTFSD_EXT_CMD (str_ldd, ldd);
+GUESTFSD_EXT_CMD (str_ls, ls);
+GUESTFSD_EXT_CMD (str_find, find);
+GUESTFSD_EXT_CMD (str_xargs, xargs);
+GUESTFSD_EXT_CMD (str_file, file);
+GUESTFSD_EXT_CMD (str_grep, grep);
+GUESTFSD_EXT_CMD (str_gawk, gawk);
+GUESTFSD_EXT_CMD (str_sh, sh);
/* This command exposes debugging information, internals and
* status. There is no comprehensive documentation for this
@@ -56,53 +57,69 @@ GUESTFSD_EXT_CMD(str_sh, sh);
* and may change at any time.
*/
-struct cmd {
+struct cmd
+{
const char *cmd;
- char * (*f) (const char *subcmd, size_t argc, char *const *const argv);
+ char *(*f) (const char *subcmd, size_t argc, char *const *const argv);
};
-static char *debug_help (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_binaries (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_core_pattern (const char *subcmd, size_t argc, char *const *const
argv);
-static char *debug_device_speed (const char *subcmd, size_t argc, char *const *const
argv);
-static char *debug_env (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_error (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_fds (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_ldd (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_ls (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_ll (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_print (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_progress (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_qtrace (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_segv (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_setenv (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_sh (const char *subcmd, size_t argc, char *const *const argv);
-static char *debug_spew (const char *subcmd, size_t argc, char *const *const argv);
+static char *debug_help (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_binaries (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_core_pattern (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_device_speed (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_env (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_error (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_fds (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_ldd (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_ls (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_ll (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_print (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_progress (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_qtrace (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_segv (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_setenv (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_sh (const char *subcmd, size_t argc,
+ char *const *const argv);
+static char *debug_spew (const char *subcmd, size_t argc,
+ char *const *const argv);
static void deliberately_cause_a_segfault (void);
-static struct cmd cmds[] = {
- { "help", debug_help },
- { "binaries", debug_binaries },
- { "bmap", debug_bmap },
- { "bmap_device", debug_bmap_device },
- { "bmap_file", debug_bmap_file },
- { "core_pattern", debug_core_pattern },
- { "device_speed", debug_device_speed },
- { "env", debug_env },
- { "error", debug_error },
- { "fds", debug_fds },
- { "ldd", debug_ldd },
- { "ls", debug_ls },
- { "ll", debug_ll },
- { "print", debug_print },
- { "progress", debug_progress },
- { "qtrace", debug_qtrace },
- { "segv", debug_segv },
- { "setenv", debug_setenv },
- { "sh", debug_sh },
- { "spew", debug_spew },
- { NULL, NULL }
-};
+static struct cmd cmds[] = { { "help", debug_help },
+ { "binaries", debug_binaries },
+ { "bmap", debug_bmap },
+ { "bmap_device", debug_bmap_device },
+ { "bmap_file", debug_bmap_file },
+ { "core_pattern", debug_core_pattern },
+ { "device_speed", debug_device_speed },
+ { "env", debug_env },
+ { "error", debug_error },
+ { "fds", debug_fds },
+ { "ldd", debug_ldd },
+ { "ls", debug_ls },
+ { "ll", debug_ll },
+ { "print", debug_print },
+ { "progress", debug_progress },
+ { "qtrace", debug_qtrace },
+ { "segv", debug_segv },
+ { "setenv", debug_setenv },
+ { "sh", debug_sh },
+ { "spew", debug_spew },
+ { NULL, NULL } };
char *
do_debug (const char *subcmd, char *const *argv)
@@ -136,7 +153,7 @@ debug_help (const char *subcmd, size_t argc, char *const *const argv)
len = strlen (r);
for (i = 0; cmds[i].cmd != NULL; ++i) {
len += strlen (cmds[i].cmd) + 1; /* space + new command */
- p = realloc (r, len + 1); /* +1 for the final NUL */
+ p = realloc (r, len + 1); /* +1 for the final NUL */
if (p == NULL) {
reply_with_perror ("realloc");
free (r);
@@ -260,7 +277,7 @@ debug_sh (const char *subcmd, size_t argc, char *const *const argv)
cmd[j] = ' ';
j++;
}
- cmd[j-1] = '\0';
+ cmd[j - 1] = '\0';
/* Set up some environment variables. */
setenv ("root", sysroot, 1);
@@ -285,7 +302,8 @@ debug_sh (const char *subcmd, size_t argc, char *const *const argv)
return err;
}
-/* Print the environment that commands get (by running external printenv). */
+/* Print the environment that commands get (by running external printenv).
+ */
static char *
debug_env (const char *subcmd, size_t argc, char *const *const argv)
{
@@ -334,7 +352,8 @@ debug_error (const char *subcmd, size_t argc, char *const *const
argv)
if (argc != 1) {
error:
- reply_with_error ("debug error: expecting one arg: length of error
message");
+ reply_with_error (
+ "debug error: expecting one arg: length of error message");
return NULL;
}
@@ -374,11 +393,10 @@ debug_binaries (const char *subcmd, size_t argc, char *const *const
argv)
CLEANUP_FREE char *err = NULL;
char cmd[256];
- snprintf (cmd, sizeof (cmd),
- "%s / -xdev -type f -executable "
- "| %s %s -i "
- "| %s application/x-executable "
- "| %s -F: '{print $1}'",
+ snprintf (cmd, sizeof (cmd), "%s / -xdev -type f -executable "
+ "| %s %s -i "
+ "| %s application/x-executable "
+ "| %s -F: '{print $1}'",
str_find, str_xargs, str_file, str_grep, str_gawk);
r = command (&out, &err, str_sh, "-c", cmd, NULL);
@@ -443,7 +461,7 @@ debug_ls (const char *subcmd, size_t argc, char *const *const argv)
char *out;
CLEANUP_FREE char *err = NULL;
- cargv = malloc (sizeof (char *) * (len+3));
+ cargv = malloc (sizeof (char *) * (len + 3));
if (cargv == NULL) {
reply_with_perror ("malloc");
return NULL;
@@ -452,10 +470,10 @@ debug_ls (const char *subcmd, size_t argc, char *const *const argv)
cargv[0] = str_ls;
cargv[1] = "-a";
for (i = 0; i < len; ++i)
- cargv[2+i] = argv[i];
- cargv[2+len] = NULL;
+ cargv[2 + i] = argv[i];
+ cargv[2 + len] = NULL;
- r = commandv (&out, &err, (void *) cargv);
+ r = commandv (&out, &err, (void *)cargv);
if (r == -1) {
reply_with_error ("ls: %s", err);
free (out);
@@ -476,7 +494,7 @@ debug_ll (const char *subcmd, size_t argc, char *const *const argv)
char *out;
CLEANUP_FREE char *err = NULL;
- cargv = malloc (sizeof (char *) * (len+3));
+ cargv = malloc (sizeof (char *) * (len + 3));
if (cargv == NULL) {
reply_with_perror ("malloc");
return NULL;
@@ -485,10 +503,10 @@ debug_ll (const char *subcmd, size_t argc, char *const *const argv)
cargv[0] = str_ls;
cargv[1] = "-la";
for (i = 0; i < len; ++i)
- cargv[2+i] = argv[i];
- cargv[2+len] = NULL;
+ cargv[2 + i] = argv[i];
+ cargv[2 + len] = NULL;
- r = commandv (&out, &err, (void *) cargv);
+ r = commandv (&out, &err, (void *)cargv);
if (r == -1) {
reply_with_error ("ll: %s", err);
free (out);
@@ -523,7 +541,8 @@ debug_print (const char *subcmd, size_t argc, char *const *const
argv)
return ret;
}
-/* Generate progress notification messages in order to test progress bars. */
+/* Generate progress notification messages in order to test progress bars.
+ */
static char *
debug_progress (const char *subcmd, size_t argc, char *const *const argv)
{
@@ -532,7 +551,8 @@ debug_progress (const char *subcmd, size_t argc, char *const *const
argv)
if (argc < 1) {
error:
- reply_with_error ("progress: expecting one or more args: time in seconds [, rate
in microseconds]");
+ reply_with_error ("progress: expecting one or more args: time in "
+ "seconds [, rate in microseconds]");
return NULL;
}
@@ -555,16 +575,15 @@ debug_progress (const char *subcmd, size_t argc, char *const *const
argv)
/* Note the inner loops go to '<= limit' because we want to ensure
* that the final 100% completed message is set.
*/
- if (rate == 0) { /* Ordinary rate-limited progress messages. */
+ if (rate == 0) { /* Ordinary rate-limited progress messages. */
uint64_t tsecs = secs * 10; /* 1/10ths of seconds */
uint64_t i;
- for (i = 1; i < tsecs+1; ++i) {
+ for (i = 1; i < tsecs + 1; ++i) {
usleep (100000);
notify_progress (i, tsecs);
}
- }
- else { /* Send messages at a given rate. */
+ } else { /* Send messages at a given rate. */
uint64_t usecs = secs * 1000000; /* microseconds */
uint64_t i;
struct timeval now;
@@ -587,12 +606,14 @@ debug_progress (const char *subcmd, size_t argc, char *const *const
argv)
/* Enable core dumping to the given core pattern.
* Note that this pattern is relative to any chroot of the process which
- * crashes. This means that if you want to write the core file to the guest's
+ * crashes. This means that if you want to write the core file to the
+ * guest's
* storage the pattern must start with /sysroot only if the command which
* crashes doesn't chroot.
*/
static char *
-debug_core_pattern (const char *subcmd, size_t argc, char *const *const argv)
+debug_core_pattern (const char *subcmd, size_t argc,
+ char *const *const argv)
{
if (argc < 1) {
reply_with_error ("core_pattern: expecting a core pattern");
@@ -603,12 +624,12 @@ debug_core_pattern (const char *subcmd, size_t argc, char *const
*const argv)
const size_t pattern_len = strlen (pattern);
#define CORE_PATTERN "/proc/sys/kernel/core_pattern"
- int fd = open (CORE_PATTERN, O_WRONLY|O_CLOEXEC);
+ int fd = open (CORE_PATTERN, O_WRONLY | O_CLOEXEC);
if (fd == -1) {
reply_with_perror ("open: " CORE_PATTERN);
return NULL;
}
- if (write (fd, pattern, pattern_len) < (ssize_t) pattern_len) {
+ if (write (fd, pattern, pattern_len) < (ssize_t)pattern_len) {
reply_with_perror ("write: " CORE_PATTERN);
close (fd);
return NULL;
@@ -618,10 +639,8 @@ debug_core_pattern (const char *subcmd, size_t argc, char *const
*const argv)
return NULL;
}
- struct rlimit limit = {
- .rlim_cur = RLIM_INFINITY,
- .rlim_max = RLIM_INFINITY
- };
+ struct rlimit limit = {.rlim_cur = RLIM_INFINITY,
+ .rlim_max = RLIM_INFINITY };
if (setrlimit (RLIMIT_CORE, &limit) == -1) {
reply_with_perror ("setrlimit (RLIMIT_CORE)");
return NULL;
@@ -652,16 +671,16 @@ debug_spew (const char *subcmd, size_t argc, char *const *const
argv)
}
if (sscanf (argv[0], "%zu", &n) != 1) {
- reply_with_error ("spew: could not parse number of lines '%s'",
argv[0]);
+ reply_with_error ("spew: could not parse number of lines '%s'",
+ argv[0]);
return NULL;
}
for (i = 0; i < n; ++i)
- fprintf (stderr,
- "abcdefghijklmnopqrstuvwxyz" /* 26 */
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ" /* 52 */
- "01234567890123456789" /* 72 */
- "\n");
+ fprintf (stderr, "abcdefghijklmnopqrstuvwxyz" /* 26 */
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" /* 52 */
+ "01234567890123456789" /* 72 */
+ "\n");
ret = strdup ("ok");
if (!ret) {
@@ -679,7 +698,8 @@ write_cb (void *fd_ptr, const void *buf, size_t len)
return xwrite (fd, buf, len);
}
-/* This requires a non-upstream qemu patch. See contrib/visualize-alignment/
+/* This requires a non-upstream qemu patch. See
+ * contrib/visualize-alignment/
* directory in the libguestfs source tree.
*/
static char *
@@ -704,20 +724,21 @@ debug_qtrace (const char *subcmd, size_t argc, char *const *const
argv)
if (do_drop_caches (3) == -1)
return NULL;
- /* Note this doesn't do device name translation or check this is a device. */
- int fd = open (argv[0], O_RDONLY|O_DIRECT|O_CLOEXEC);
+ /* Note this doesn't do device name translation or check this is a device.
+ */
+ int fd = open (argv[0], O_RDONLY | O_DIRECT | O_CLOEXEC);
if (fd == -1) {
reply_with_perror ("qtrace: %s: open", argv[0]);
return NULL;
}
- /* The pattern of reads is what signals to the analysis program that
- * tracing should be started or stopped. Note this assumes both 512
- * byte sectors, and that O_DIRECT will let us do 512 byte aligned
- * reads. We ought to read the sector size of the device and use
- * that instead (XXX). The analysis program currently assumes 512
- * byte sectors anyway.
- */
+/* The pattern of reads is what signals to the analysis program that
+ * tracing should be started or stopped. Note this assumes both 512
+ * byte sectors, and that O_DIRECT will let us do 512 byte aligned
+ * reads. We ought to read the sector size of the device and use
+ * that instead (XXX). The analysis program currently assumes 512
+ * byte sectors anyway.
+ */
#define QTRACE_SIZE 512
const int patterns[2][5] = {
{ 2, 15, 21, 2, -1 }, /* disable trace */
@@ -738,7 +759,7 @@ debug_qtrace (const char *subcmd, size_t argc, char *const *const
argv)
}
for (i = 0; patterns[enable][i] >= 0; ++i) {
- if (lseek (fd, patterns[enable][i]*QTRACE_SIZE, SEEK_SET) == -1) {
+ if (lseek (fd, patterns[enable][i] * QTRACE_SIZE, SEEK_SET) == -1) {
reply_with_perror ("qtrace: %s: lseek", argv[0]);
close (fd);
return NULL;
@@ -768,7 +789,8 @@ debug_qtrace (const char *subcmd, size_t argc, char *const *const
argv)
/* Used to test read and write speed. */
static char *
-debug_device_speed (const char *subcmd, size_t argc, char *const *const argv)
+debug_device_speed (const char *subcmd, size_t argc,
+ char *const *const argv)
{
const char *device;
int writing, err;
@@ -816,7 +838,8 @@ debug_device_speed (const char *subcmd, size_t argc, char *const
*const argv)
/* Any non-zero data will do. */
memset (buf, 100, BUFSIZ);
- fd = open (device, (writing ? O_WRONLY : O_RDONLY) | O_CLOEXEC | O_DIRECT);
+ fd =
+ open (device, (writing ? O_WRONLY : O_RDONLY) | O_CLOEXEC | O_DIRECT);
if (fd == -1) {
reply_with_perror ("open: %s", device);
return NULL;
@@ -837,7 +860,7 @@ debug_device_speed (const char *subcmd, size_t argc, char *const
*const argv)
(now.tv_sec == end.tv_sec && now.tv_usec > end.tv_usec))
break;
- /* Because of O_DIRECT, only write whole, aligned buffers. */
+ /* Because of O_DIRECT, only write whole, aligned buffers. */
again:
if (size - position < BUFSIZ) {
position = 0;
@@ -857,8 +880,7 @@ debug_device_speed (const char *subcmd, size_t argc, char *const
*const argv)
reply_with_perror ("write: %s", device);
goto error;
}
- }
- else {
+ } else {
r = pread (fd, buf, BUFSIZ, position);
if (r == -1) {
reply_with_perror ("read: %s", device);
@@ -885,7 +907,7 @@ debug_device_speed (const char *subcmd, size_t argc, char *const
*const argv)
return ret;
- error:
+error:
close (fd);
return NULL;
}
@@ -897,7 +919,8 @@ do_debug_upload (const char *filename, int mode)
/* Not chrooted - this command lets you upload a file to anywhere
* in the appliance.
*/
- int fd = open (filename, O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY|O_CLOEXEC, mode);
+ int fd = open (filename,
+ O_WRONLY | O_CREAT | O_TRUNC | O_NOCTTY | O_CLOEXEC, mode);
if (fd == -1) {
int err = errno;
@@ -908,7 +931,7 @@ do_debug_upload (const char *filename, int mode)
}
int r = receive_file (write_cb, &fd);
- if (r == -1) { /* write error */
+ if (r == -1) { /* write error */
int err = errno;
cancel_receive ();
errno = err;
@@ -916,7 +939,7 @@ do_debug_upload (const char *filename, int mode)
close (fd);
return -1;
}
- if (r == -2) { /* cancellation from library */
+ if (r == -2) { /* cancellation from library */
/* This error is ignored by the library since it initiated the
* cancel. Nevertheless we must send an error reply here.
*/
@@ -971,14 +994,14 @@ do_internal_rhbz914931 (int count)
}
r = receive_file (crash_cb, &count);
- if (r == -1) { /* write error */
+ if (r == -1) { /* write error */
int err = errno;
cancel_receive ();
errno = err;
reply_with_error ("write error");
return -1;
}
- if (r == -2) { /* cancellation from library */
+ if (r == -2) { /* cancellation from library */
/* This error is ignored by the library since it initiated the
* cancel. Nevertheless we must send an error reply here.
*/
diff --git a/daemon/devsparts.c b/daemon/devsparts.c
index 7c690f8..cc953d9 100644
--- a/daemon/devsparts.c
+++ b/daemon/devsparts.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -54,12 +55,11 @@ foreach_block_device (block_dev_func_t func)
for (;;) {
errno = 0;
d = readdir (dir);
- if (!d) break;
+ if (!d)
+ break;
- if (STREQLEN (d->d_name, "sd", 2) ||
- STREQLEN (d->d_name, "hd", 2) ||
- STREQLEN (d->d_name, "ubd", 3) ||
- STREQLEN (d->d_name, "vd", 2) ||
+ if (STREQLEN (d->d_name, "sd", 2) || STREQLEN (d->d_name,
"hd", 2) ||
+ STREQLEN (d->d_name, "ubd", 3) || STREQLEN (d->d_name,
"vd", 2) ||
STREQLEN (d->d_name, "sr", 2)) {
snprintf (dev_path, sizeof dev_path, "/dev/%s", d->d_name);
@@ -71,7 +71,7 @@ foreach_block_device (block_dev_func_t func)
* CD-ROM device even though we didn't request it. Try to
* detect this by seeing if the device contains media.
*/
- fd = open (dev_path, O_RDONLY|O_CLOEXEC);
+ fd = open (dev_path, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
perror (dev_path);
continue;
@@ -79,7 +79,7 @@ foreach_block_device (block_dev_func_t func)
close (fd);
/* Call the map function for this device */
- if ((*func)(d->d_name, &r) != 0) {
+ if ((*func) (d->d_name, &r) != 0) {
err = 1;
break;
}
@@ -201,7 +201,7 @@ do_part_to_dev (const char *part)
int err = 1;
size_t n = strlen (part);
- while (n >= 1 && c_isdigit (part[n-1])) {
+ while (n >= 1 && c_isdigit (part[n - 1])) {
err = 0;
n--;
}
@@ -226,7 +226,7 @@ do_part_to_partnum (const char *part)
int err = 1;
size_t n = strlen (part);
- while (n >= 1 && c_isdigit (part[n-1])) {
+ while (n >= 1 && c_isdigit (part[n - 1])) {
err = 0;
n--;
}
@@ -259,7 +259,8 @@ do_is_whole_device (const char *device)
struct stat statbuf;
if (stat (devpath, &statbuf) == -1) {
- if (errno == ENOENT || errno == ENOTDIR) return 0;
+ if (errno == ENOENT || errno == ENOTDIR)
+ return 0;
reply_with_perror ("stat");
return -1;
@@ -280,7 +281,7 @@ do_device_index (const char *device)
for (i = 0; devices[i] != NULL; ++i) {
if (STREQ (device, devices[i]))
- ret = (int) i;
+ ret = (int)i;
}
if (ret == -1)
@@ -301,7 +302,7 @@ do_nr_devices (void)
for (i = 0; devices[i] != NULL; ++i)
;
- return (int) i;
+ return (int)i;
}
#define GUESTFSDIR "/dev/disk/guestfs"
@@ -352,7 +353,7 @@ do_list_disk_labels (void)
if (add_string_nodup (&ret, rawdev) == -1)
goto error;
- rawdev = NULL; /* buffer now owned by the stringsbuf */
+ rawdev = NULL; /* buffer now owned by the stringsbuf */
}
/* Check readdir didn't fail */
@@ -375,9 +376,9 @@ do_list_disk_labels (void)
if (end_stringsbuf (&ret) == -1)
goto error;
- return ret.argv; /* caller frees */
+ return ret.argv; /* caller frees */
- error:
+error:
if (dir)
closedir (dir);
free (rawdev);
diff --git a/daemon/df.c b/daemon/df.c
index f177084..12489d7 100644
--- a/daemon/df.c
+++ b/daemon/df.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -27,7 +28,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_df, df);
+GUESTFSD_EXT_CMD (str_df, df);
char *
do_df (void)
@@ -45,7 +46,7 @@ do_df (void)
return NULL;
}
- return out; /* Caller frees. */
+ return out; /* Caller frees. */
}
char *
@@ -64,5 +65,5 @@ do_df_h (void)
return NULL;
}
- return out; /* Caller frees. */
+ return out; /* Caller frees. */
}
diff --git a/daemon/dir.c b/daemon/dir.c
index 07dc68f..5e24961 100644
--- a/daemon/dir.c
+++ b/daemon/dir.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -29,7 +30,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_rm, rm);
+GUESTFSD_EXT_CMD (str_rm, rm);
int
do_rmdir (const char *path)
@@ -131,35 +132,41 @@ recursive_mkdir (const char *path)
char *p;
struct stat buf;
- again:
+again:
r = mkdir (path, 0777);
if (r == -1) {
- if (errno == EEXIST) { /* Something exists here, might not be a dir. */
+ if (errno == EEXIST) { /* Something exists here, might not be a dir. */
r = lstat (path, &buf);
- if (r == -1) return -1;
- if (!S_ISDIR (buf.st_mode)) return -2;
- return 0; /* OK - directory exists here already. */
+ if (r == -1)
+ return -1;
+ if (!S_ISDIR (buf.st_mode))
+ return -2;
+ return 0; /* OK - directory exists here already. */
}
if (!loop && errno == ENOENT) {
- loop = 1; /* Stops it looping forever. */
+ loop = 1; /* Stops it looping forever. */
/* If we're at the root, and we failed, just give up. */
- if (path[0] == '/' && path[1] == '\0') return -1;
+ if (path[0] == '/' && path[1] == '\0')
+ return -1;
/* Try to make the parent directory first. */
CLEANUP_FREE char *ppath = strdup (path);
- if (ppath == NULL) return -1;
+ if (ppath == NULL)
+ return -1;
p = strrchr (ppath, '/');
- if (p) *p = '\0';
+ if (p)
+ *p = '\0';
r = recursive_mkdir (ppath);
- if (r != 0) return r;
+ if (r != 0)
+ return r;
goto again;
- } else /* Failed for some other reason, so return error. */
+ } else /* Failed for some other reason, so return error. */
return -1;
}
return 0;
diff --git a/daemon/dmesg.c b/daemon/dmesg.c
index 5e16861..4dcb4cb 100644
--- a/daemon/dmesg.c
+++ b/daemon/dmesg.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -27,7 +28,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_dmesg, dmesg);
+GUESTFSD_EXT_CMD (str_dmesg, dmesg);
char *
do_dmesg (void)
@@ -43,5 +44,5 @@ do_dmesg (void)
return NULL;
}
- return out; /* caller frees */
+ return out; /* caller frees */
}
diff --git a/daemon/dropcaches.c b/daemon/dropcaches.c
index 0da882c..b705c95 100644
--- a/daemon/dropcaches.c
+++ b/daemon/dropcaches.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/daemon/du.c b/daemon/du.c
index 1f31783..0aa499f 100644
--- a/daemon/du.c
+++ b/daemon/du.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -28,7 +29,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_du, du);
+GUESTFSD_EXT_CMD (str_du, du);
int64_t
do_du (const char *path)
@@ -53,7 +54,7 @@ do_du (const char *path)
return -1;
}
- if (sscanf (out, "%"SCNi64, &rv) != 1) {
+ if (sscanf (out, "%" SCNi64, &rv) != 1) {
pulse_mode_cancel ();
reply_with_error ("%s: could not read output: %s", path, out);
return -1;
diff --git a/daemon/echo-daemon.c b/daemon/echo-daemon.c
index d566a9b..5653445 100644
--- a/daemon/echo-daemon.c
+++ b/daemon/echo-daemon.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/daemon/ext2.c b/daemon/ext2.c
index 5dd67c7..9099fd6 100644
--- a/daemon/ext2.c
+++ b/daemon/ext2.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -33,20 +34,20 @@
#define MAX_ARGS 128
-GUESTFSD_EXT_CMD(str_tune2fs, tune2fs);
-GUESTFSD_EXT_CMD(str_e2fsck, e2fsck);
-GUESTFSD_EXT_CMD(str_resize2fs, resize2fs);
-GUESTFSD_EXT_CMD(str_mke2fs, mke2fs);
-GUESTFSD_EXT_CMD(str_lsattr, lsattr);
-GUESTFSD_EXT_CMD(str_chattr, chattr);
-GUESTFSD_EXT_CMD(str_e2label, e2label);
+GUESTFSD_EXT_CMD (str_tune2fs, tune2fs);
+GUESTFSD_EXT_CMD (str_e2fsck, e2fsck);
+GUESTFSD_EXT_CMD (str_resize2fs, resize2fs);
+GUESTFSD_EXT_CMD (str_mke2fs, mke2fs);
+GUESTFSD_EXT_CMD (str_lsattr, lsattr);
+GUESTFSD_EXT_CMD (str_chattr, chattr);
+GUESTFSD_EXT_CMD (str_e2label, e2label);
/*
https://bugzilla.redhat.com/show_bug.cgi?id=978302#c1 */
int
fstype_is_extfs (const char *fstype)
{
- return STREQ (fstype, "ext2") || STREQ (fstype, "ext3")
- || STREQ (fstype, "ext4");
+ return STREQ (fstype, "ext2") || STREQ (fstype, "ext3") ||
+ STREQ (fstype, "ext4");
}
char **
@@ -68,7 +69,8 @@ do_tune2fs_l (const char *device)
/* Discard the first line if it contains "tune2fs ...". */
if (STRPREFIX (p, "tune2fs ") || STRPREFIX (p, "tune4fs ")) {
p = strchr (p, '\n');
- if (p) p++;
+ if (p)
+ p++;
else {
reply_with_error ("truncated output");
return NULL;
@@ -83,19 +85,21 @@ do_tune2fs_l (const char *device)
pend++;
}
- if (!*p) continue;
+ if (!*p)
+ continue;
colon = strchr (p, ':');
if (colon) {
*colon = '\0';
- do { colon++; } while (*colon && c_isspace (*colon));
+ do {
+ colon++;
+ } while (*colon && c_isspace (*colon));
if (add_string (&ret, p) == -1) {
return NULL;
}
- if (STREQ (colon, "<none>") ||
- STREQ (colon, "<not available>") ||
+ if (STREQ (colon, "<none>") || STREQ (colon, "<not
available>") ||
STREQ (colon, "(none)")) {
if (add_string (&ret, "") == -1) {
return NULL;
@@ -105,8 +109,7 @@ do_tune2fs_l (const char *device)
return NULL;
}
}
- }
- else {
+ } else {
if (add_string (&ret, p) == -1) {
return NULL;
}
@@ -131,8 +134,8 @@ do_set_e2label (const char *device, const char *label)
CLEANUP_FREE char *err = NULL;
if (strlen (label) > EXT2_LABEL_MAX) {
- reply_with_error ("%s: ext2/3/4 labels are limited to %d bytes",
- label, EXT2_LABEL_MAX);
+ reply_with_error ("%s: ext2/3/4 labels are limited to %d bytes", label,
+ EXT2_LABEL_MAX);
return -1;
}
@@ -150,7 +153,7 @@ do_get_e2label (const char *device)
{
const mountable_t mountable = {
.type = MOUNTABLE_DEVICE,
- .device = /* not really ... */ (char *) device,
+ .device = /* not really ... */ (char *)device,
.volume = NULL,
};
return do_vfs_label (&mountable);
@@ -182,7 +185,7 @@ do_get_e2uuid (const char *device)
{
const mountable_t mountable = {
.type = MOUNTABLE_DEVICE,
- .device = /* not really ... */ (char *) device,
+ .device = /* not really ... */ (char *)device,
.volume = NULL,
};
return do_vfs_uuid (&mountable);
@@ -200,8 +203,7 @@ if_not_mounted_run_e2fsck (const char *device)
return -1;
if (!mounted) {
- r = commandf (NULL, &err,
- COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
+ r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
str_e2fsck, "-fy", device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
@@ -241,8 +243,8 @@ do_resize2fs_size (const char *device, int64_t size)
* kilobytes.
*/
if (size & 1023) {
- reply_with_error ("%" PRIi64 ": size must be a round number of
kilobytes",
- size);
+ reply_with_error (
+ "%" PRIi64 ": size must be a round number of kilobytes",
size);
return -1;
}
size /= 1024;
@@ -294,7 +296,8 @@ get_block_size (const char *device)
for (i = 0; params[i] != NULL; i += 2) {
if (STREQ (params[i], block_pattern)) {
- if (xstrtol (params[i + 1], NULL, 10, &block_size, NULL) != LONGINT_OK) {
+ if (xstrtol (params[i + 1], NULL, 10, &block_size, NULL) !=
+ LONGINT_OK) {
reply_with_error ("cannot parse block size");
return -1;
}
@@ -335,16 +338,17 @@ ext_minimum_size (const char *device)
for (i = 0; lines[i] != NULL; ++i) {
if (STRPREFIX (lines[i], pattern)) {
- if (XSTRTOD64 (lines[i] + strlen (pattern),
- NULL, 10, &ret, NULL) != LONGINT_OK) {
+ if (XSTRTOD64 (lines[i] + strlen (pattern), NULL, 10, &ret, NULL) !=
+ LONGINT_OK) {
reply_with_error ("cannot parse minimum size");
return -1;
}
if ((block_size = get_block_size (device)) == -1)
return -1;
if (verbose) {
- fprintf (stderr, "Minimum size in blocks: %" SCNd64 \
- "\nBlock count: %ld\n", ret, block_size);
+ fprintf (stderr,
+ "Minimum size in blocks: %" SCNd64 "\nBlock count:
%ld\n",
+ ret, block_size);
}
if (INT64_MAX / block_size < ret) {
reply_with_error ("filesystem size too big: overflow");
@@ -356,15 +360,14 @@ ext_minimum_size (const char *device)
#undef XSTRTOD64
- reply_with_error ("minimum size not found. Check output format:\n%s", out);
+ reply_with_error ("minimum size not found. Check output format:\n%s",
+ out);
return -1;
}
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_e2fsck (const char *device,
- int correct,
- int forceall)
+do_e2fsck (const char *device, int correct, int forceall)
{
const char *argv[MAX_ARGS];
CLEANUP_FREE char *err = NULL;
@@ -378,7 +381,8 @@ do_e2fsck (const char *device,
forceall = 0;
if (correct && forceall) {
- reply_with_error ("only one of the options 'correct', 'forceall'
may be specified");
+ reply_with_error (
+ "only one of the options 'correct', 'forceall' may be
specified");
return -1;
}
@@ -394,9 +398,7 @@ do_e2fsck (const char *device,
ADD_ARG (argv, i, device);
ADD_ARG (argv, i, NULL);
- r = commandrvf (NULL, &err,
- COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
- argv);
+ r = commandrvf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR, argv);
/* 0 = no errors, 1 = errors corrected.
*
* >= 4 means uncorrected or other errors.
@@ -430,9 +432,8 @@ do_mke2journal (int blocksize, const char *device)
wipe_device_before_mkfs (device);
- r = command (NULL, &err,
- str_mke2fs, "-F", "-O", "journal_dev",
"-b", blocksize_s,
- device, NULL);
+ r = command (NULL, &err, str_mke2fs, "-F", "-O",
"journal_dev", "-b",
+ blocksize_s, device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -448,8 +449,8 @@ do_mke2journal_L (int blocksize, const char *label, const char
*device)
int r;
if (strlen (label) > EXT2_LABEL_MAX) {
- reply_with_error ("%s: ext2/3/4 labels are limited to %d bytes",
- label, EXT2_LABEL_MAX);
+ reply_with_error ("%s: ext2/3/4 labels are limited to %d bytes", label,
+ EXT2_LABEL_MAX);
return -1;
}
@@ -458,10 +459,8 @@ do_mke2journal_L (int blocksize, const char *label, const char
*device)
wipe_device_before_mkfs (device);
- r = command (NULL, &err,
- str_mke2fs, "-F", "-O", "journal_dev",
"-b", blocksize_s,
- "-L", label,
- device, NULL);
+ r = command (NULL, &err, str_mke2fs, "-F", "-O",
"journal_dev", "-b",
+ blocksize_s, "-L", label, device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -481,10 +480,8 @@ do_mke2journal_U (int blocksize, const char *uuid, const char
*device)
wipe_device_before_mkfs (device);
- r = command (NULL, &err,
- str_mke2fs, "-F", "-O", "journal_dev",
"-b", blocksize_s,
- "-U", uuid,
- device, NULL);
+ r = command (NULL, &err, str_mke2fs, "-F", "-O",
"journal_dev", "-b",
+ blocksize_s, "-U", uuid, device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -516,9 +513,8 @@ do_mke2fs_J (const char *fstype, int blocksize, const char *device,
wipe_device_before_mkfs (device);
- r = command (NULL, &err,
- str_mke2fs, "-F", "-t", fstype, "-J", jdev,
"-b", blocksize_s,
- device, NULL);
+ r = command (NULL, &err, str_mke2fs, "-F", "-t", fstype,
"-J", jdev, "-b",
+ blocksize_s, device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -542,8 +538,8 @@ do_mke2fs_JL (const char *fstype, int blocksize, const char *device,
}
if (strlen (label) > EXT2_LABEL_MAX) {
- reply_with_error ("%s: ext2/3/4 labels are limited to %d bytes",
- label, EXT2_LABEL_MAX);
+ reply_with_error ("%s: ext2/3/4 labels are limited to %d bytes", label,
+ EXT2_LABEL_MAX);
return -1;
}
@@ -556,9 +552,8 @@ do_mke2fs_JL (const char *fstype, int blocksize, const char *device,
wipe_device_before_mkfs (device);
- r = command (NULL, &err,
- str_mke2fs, "-F", "-t", fstype, "-J", jdev,
"-b", blocksize_s,
- device, NULL);
+ r = command (NULL, &err, str_mke2fs, "-F", "-t", fstype,
"-J", jdev, "-b",
+ blocksize_s, device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -590,9 +585,8 @@ do_mke2fs_JU (const char *fstype, int blocksize, const char *device,
wipe_device_before_mkfs (device);
- r = command (NULL, &err,
- str_mke2fs, "-F", "-t", fstype, "-J", jdev,
"-b", blocksize_s,
- device, NULL);
+ r = command (NULL, &err, str_mke2fs, "-F", "-t", fstype,
"-J", jdev, "-b",
+ blocksize_s, device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -604,15 +598,10 @@ do_mke2fs_JU (const char *fstype, int blocksize, const char
*device,
/* Takes optional arguments, consult optargs_bitmask. */
int
do_tune2fs (const char *device, /* only required parameter */
- int force,
- int maxmountcount,
- int mountcount,
- const char *errorbehavior,
- int64_t group,
- int intervalbetweenchecks,
- int reservedblockspercentage,
- const char *lastmounteddirectory,
- int64_t reservedblockscount,
+ int force, int maxmountcount, int mountcount,
+ const char *errorbehavior, int64_t group,
+ int intervalbetweenchecks, int reservedblockspercentage,
+ const char *lastmounteddirectory, int64_t reservedblockscount,
int64_t user)
{
const char *argv[MAX_ARGS];
@@ -658,7 +647,8 @@ do_tune2fs (const char *device, /* only required parameter */
if (STRNEQ (errorbehavior, "continue") &&
STRNEQ (errorbehavior, "remount-ro") &&
STRNEQ (errorbehavior, "panic")) {
- reply_with_error ("invalid errorbehavior parameter: %s", errorbehavior);
+ reply_with_error ("invalid errorbehavior parameter: %s",
+ errorbehavior);
return -1;
}
ADD_ARG (argv, i, "-e");
@@ -688,8 +678,7 @@ do_tune2fs (const char *device, /* only required parameter */
snprintf (intervalbetweenchecks_s, sizeof intervalbetweenchecks_s,
"%ds", intervalbetweenchecks);
ADD_ARG (argv, i, intervalbetweenchecks_s);
- }
- else
+ } else
ADD_ARG (argv, i, "0");
}
@@ -745,8 +734,8 @@ do_tune2fs (const char *device, /* only required parameter */
static int
compare_chars (const void *vc1, const void *vc2)
{
- char c1 = * (char *) vc1;
- char c2 = * (char *) vc2;
+ char c1 = *(char *)vc1;
+ char c2 = *(char *)vc2;
return c1 - c2;
}
@@ -798,7 +787,7 @@ do_set_e2attrs (const char *filename, const char *attrs, int clear)
CLEANUP_FREE char *err = NULL;
size_t i, j;
int lowers[26], uppers[26];
- char attr_arg[26*2+1+1]; /* '+'/'-' + attrs + trailing '\0' */
+ char attr_arg[26 * 2 + 1 + 1]; /* '+'/'-' + attrs + trailing
'\0' */
if (!(optargs_bitmask & GUESTFS_SET_E2ATTRS_CLEAR_BITMASK))
attr_arg[0] = '+';
@@ -824,15 +813,13 @@ do_set_e2attrs (const char *filename, const char *attrs, int clear)
if (*attrs == 'R' || *attrs == 'V' || *attrs == 'f' || *attrs
== 'v') {
reply_with_error ("bad file attribute '%c'", *attrs);
return -1;
- }
- else if (*attrs >= 'a' && *attrs <= 'z') {
+ } else if (*attrs >= 'a' && *attrs <= 'z') {
i = *attrs - 'a';
if (lowers[i] > 0)
goto error_duplicate;
lowers[i]++;
attr_arg[j++] = *attrs;
- }
- else if (*attrs >= 'A' && *attrs <= 'Z') {
+ } else if (*attrs >= 'A' && *attrs <= 'Z') {
i = *attrs - 'A';
if (uppers[i] > 0) {
error_duplicate:
@@ -841,8 +828,7 @@ do_set_e2attrs (const char *filename, const char *attrs, int clear)
}
uppers[i]++;
attr_arg[j++] = *attrs;
- }
- else {
+ } else {
reply_with_error ("unknown file attribute '%c'", *attrs);
return -1;
}
@@ -885,8 +871,8 @@ do_get_e2generation (const char *filename)
}
if (sscanf (out, "%" SCNi64, &ret) != 1) {
- reply_with_error ("cannot parse output from '%s' command: %s",
- "lsattr", out);
+ reply_with_error ("cannot parse output from '%s' command: %s",
"lsattr",
+ out);
return -1;
}
if (ret < 0) {
@@ -911,10 +897,11 @@ do_set_e2generation (const char *filename, int64_t generation)
return -1;
}
- snprintf (generation_str, sizeof generation_str,
- "%" PRIu64, (uint64_t) generation);
+ snprintf (generation_str, sizeof generation_str, "%" PRIu64,
+ (uint64_t)generation);
- r = command (NULL, &err, str_chattr, "-v", generation_str,
"--", buf, NULL);
+ r = command (NULL, &err, str_chattr, "-v", generation_str,
"--", buf,
+ NULL);
if (r == -1) {
reply_with_error ("%s: %s: %s", "chattr", filename, err);
return -1;
@@ -924,45 +911,24 @@ do_set_e2generation (const char *filename, int64_t generation)
}
int
-do_mke2fs (const char *device, /* 0 */
- int64_t blockscount,
- int64_t blocksize,
- int64_t fragsize,
- int64_t blockspergroup,
- int64_t numberofgroups, /* 5 */
- int64_t bytesperinode,
- int64_t inodesize,
- int64_t journalsize,
- int64_t numberofinodes,
- int64_t stridesize, /* 10 */
- int64_t stripewidth,
- int64_t maxonlineresize,
- int reservedblockspercentage,
- int mmpupdateinterval,
- const char *journaldevice, /* 15 */
- const char *label,
- const char *lastmounteddir,
- const char *creatoros,
- const char *fstype,
- const char *usagetype, /* 20 */
- const char *uuid,
- int forcecreate,
- int writesbandgrouponly,
- int lazyitableinit,
- int lazyjournalinit, /* 25 */
- int testfs,
- int discard,
- int quotatype,
- int extent,
- int filetype, /* 30 */
- int flexbg,
- int hasjournal,
- int journaldev,
- int largefile,
- int quota, /* 35 */
- int resizeinode,
- int sparsesuper,
- int uninitbg)
+do_mke2fs (const char *device, /* 0 */
+ int64_t blockscount, int64_t blocksize, int64_t fragsize,
+ int64_t blockspergroup, int64_t numberofgroups, /* 5 */
+ int64_t bytesperinode, int64_t inodesize, int64_t journalsize,
+ int64_t numberofinodes, int64_t stridesize, /* 10 */
+ int64_t stripewidth, int64_t maxonlineresize,
+ int reservedblockspercentage, int mmpupdateinterval,
+ const char *journaldevice, /* 15 */
+ const char *label, const char *lastmounteddir,
+ const char *creatoros, const char *fstype,
+ const char *usagetype, /* 20 */
+ const char *uuid, int forcecreate, int writesbandgrouponly,
+ int lazyitableinit, int lazyjournalinit, /* 25 */
+ int testfs, int discard, int quotatype, int extent,
+ int filetype, /* 30 */
+ int flexbg, int hasjournal, int journaldev, int largefile,
+ int quota, /* 35 */
+ int resizeinode, int sparsesuper, int uninitbg)
{
int r;
CLEANUP_FREE char *err = NULL;
@@ -1014,8 +980,8 @@ do_mke2fs (const char *device, /* 0 */
reply_with_error ("blockspergroup must be >= 0");
return -1;
}
- snprintf (blockspergroup_s, sizeof blockspergroup_s,
- "%" PRIi64, blockspergroup);
+ snprintf (blockspergroup_s, sizeof blockspergroup_s, "%" PRIi64,
+ blockspergroup);
ADD_ARG (argv, i, "-g");
ADD_ARG (argv, i, blockspergroup_s);
}
@@ -1024,8 +990,8 @@ do_mke2fs (const char *device, /* 0 */
reply_with_error ("numberofgroups must be >= 0");
return -1;
}
- snprintf (numberofgroups_s, sizeof numberofgroups_s,
- "%" PRIi64, numberofgroups);
+ snprintf (numberofgroups_s, sizeof numberofgroups_s, "%" PRIi64,
+ numberofgroups);
ADD_ARG (argv, i, "-G");
ADD_ARG (argv, i, numberofgroups_s);
}
@@ -1034,7 +1000,8 @@ do_mke2fs (const char *device, /* 0 */
reply_with_error ("bytesperinode must be >= 0");
return -1;
}
- snprintf (bytesperinode_s, sizeof bytesperinode_s, "%" PRIi64,
bytesperinode);
+ snprintf (bytesperinode_s, sizeof bytesperinode_s, "%" PRIi64,
+ bytesperinode);
ADD_ARG (argv, i, "-i");
ADD_ARG (argv, i, bytesperinode_s);
}
@@ -1052,8 +1019,9 @@ do_mke2fs (const char *device, /* 0 */
reply_with_error ("journalsize must be >= 0");
return -1;
}
- snprintf (journalsize_s, sizeof journalsize_s,
- "size=" "%" PRIi64, journalsize);
+ snprintf (journalsize_s, sizeof journalsize_s, "size="
+ "%" PRIi64,
+ journalsize);
ADD_ARG (argv, i, "-J");
ADD_ARG (argv, i, journalsize_s);
}
@@ -1081,8 +1049,7 @@ do_mke2fs (const char *device, /* 0 */
}
sprintf (journaldevice_s, "device=%s", journaldevice_translated);
- }
- else {
+ } else {
journaldevice_s = malloc (strlen (journaldevice) + 8);
if (!journaldevice_s) {
reply_with_perror ("malloc");
@@ -1123,8 +1090,8 @@ do_mke2fs (const char *device, /* 0 */
reply_with_error ("numberofinodes must be >= 0");
return -1;
}
- snprintf (numberofinodes_s, sizeof numberofinodes_s,
- "%" PRIi64, numberofinodes);
+ snprintf (numberofinodes_s, sizeof numberofinodes_s, "%" PRIi64,
+ numberofinodes);
ADD_ARG (argv, i, "-N");
ADD_ARG (argv, i, numberofinodes_s);
}
@@ -1141,7 +1108,8 @@ do_mke2fs (const char *device, /* 0 */
if (optargs_bitmask & GUESTFS_MKE2FS_FSTYPE_BITMASK) {
if (fstype) {
if (!fstype_is_extfs (fstype)) {
- reply_with_error ("%s: not a valid extended filesystem type", fstype);
+ reply_with_error ("%s: not a valid extended filesystem type",
+ fstype);
return -1;
}
@@ -1167,7 +1135,9 @@ do_mke2fs (const char *device, /* 0 */
return -1;
}
snprintf (mmpupdateinterval_s, sizeof mmpupdateinterval_s,
- "mmp_update_interval=" "%" PRIi32, mmpupdateinterval);
+ "mmp_update_interval="
+ "%" PRIi32,
+ mmpupdateinterval);
ADD_ARG (argv, i, "-E");
ADD_ARG (argv, i, mmpupdateinterval_s);
}
@@ -1176,18 +1146,20 @@ do_mke2fs (const char *device, /* 0 */
reply_with_error ("stridesize must be >= 0");
return -1;
}
- snprintf (stridesize_s, sizeof stridesize_s,
- "stride=" "%" PRIi64, stridesize);
+ snprintf (stridesize_s, sizeof stridesize_s, "stride="
+ "%" PRIi64,
+ stridesize);
ADD_ARG (argv, i, "-E");
ADD_ARG (argv, i, stridesize_s);
}
if (optargs_bitmask & GUESTFS_MKE2FS_STRIPEWIDTH_BITMASK) {
- if (stripewidth< 0) {
+ if (stripewidth < 0) {
reply_with_error ("stripewidth must be >= 0");
return -1;
}
- snprintf (stripewidth_s, sizeof stripewidth_s,
- "stripe_width=" "%" PRIi64, stripewidth);
+ snprintf (stripewidth_s, sizeof stripewidth_s, "stripe_width="
+ "%" PRIi64,
+ stripewidth);
ADD_ARG (argv, i, "-E");
ADD_ARG (argv, i, stripewidth_s);
}
@@ -1196,8 +1168,9 @@ do_mke2fs (const char *device, /* 0 */
reply_with_error ("maxonlineresize must be >= 0");
return -1;
}
- snprintf (maxonlineresize_s, sizeof maxonlineresize_s,
- "resize=" "%" PRIi64, maxonlineresize);
+ snprintf (maxonlineresize_s, sizeof maxonlineresize_s, "resize="
+ "%" PRIi64,
+ maxonlineresize);
ADD_ARG (argv, i, "-E");
ADD_ARG (argv, i, maxonlineresize_s);
}
diff --git a/daemon/fallocate.c b/daemon/fallocate.c
index f98babf..a9c5a75 100644
--- a/daemon/fallocate.c
+++ b/daemon/fallocate.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -45,7 +46,8 @@ do_fallocate64 (const char *path, int64_t len)
int fd;
CHROOT_IN;
- fd = open (path, O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY|O_CLOEXEC, 0666);
+ fd = open (path, O_WRONLY | O_CREAT | O_TRUNC | O_NOCTTY | O_CLOEXEC,
+ 0666);
CHROOT_OUT;
if (fd == -1) {
reply_with_perror ("open: %s", path);
@@ -63,7 +65,7 @@ do_fallocate64 (const char *path, int64_t len)
#else
ssize_t r;
char buf[BUFSIZ];
- const size_t len_sz = (size_t) len;
+ const size_t len_sz = (size_t)len;
size_t n;
memset (buf, 0, BUFSIZ);
diff --git a/daemon/file.c b/daemon/file.c
index 35f41d3..c1644c8 100644
--- a/daemon/file.c
+++ b/daemon/file.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,9 +31,9 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_file, file);
-GUESTFSD_EXT_CMD(str_zcat, zcat);
-GUESTFSD_EXT_CMD(str_bzcat, bzcat);
+GUESTFSD_EXT_CMD (str_file, file);
+GUESTFSD_EXT_CMD (str_zcat, zcat);
+GUESTFSD_EXT_CMD (str_bzcat, bzcat);
int
do_touch (const char *path)
@@ -60,14 +61,15 @@ do_touch (const char *path)
return -1;
}
} else {
- if (! S_ISREG (buf.st_mode)) {
- reply_with_error ("%s: touch can only be used on a regular files",
path);
+ if (!S_ISREG (buf.st_mode)) {
+ reply_with_error ("%s: touch can only be used on a regular files",
+ path);
return -1;
}
}
CHROOT_IN;
- fd = open (path, O_WRONLY|O_CREAT|O_NOCTTY|O_CLOEXEC, 0666);
+ fd = open (path, O_WRONLY | O_CREAT | O_NOCTTY | O_CLOEXEC, 0666);
CHROOT_OUT;
if (fd == -1) {
@@ -140,7 +142,7 @@ do_chmod (int mode, const char *path)
CHROOT_OUT;
if (r == -1) {
- reply_with_perror ("%s: 0%o", path, (unsigned) mode);
+ reply_with_perror ("%s: 0%o", path, (unsigned)mode);
return -1;
}
@@ -201,7 +203,7 @@ do_write_file (const char *path, const char *content, int size)
/* Note content_len must be small because of the limits on protocol
* message size.
*/
- int content_len = (int) strlen (content);
+ int content_len = (int)strlen (content);
if (size == 0)
size = content_len;
@@ -211,7 +213,8 @@ do_write_file (const char *path, const char *content, int size)
}
CHROOT_IN;
- fd = open (path, O_WRONLY|O_TRUNC|O_CREAT|O_NOCTTY|O_CLOEXEC, 0666);
+ fd = open (path, O_WRONLY | O_TRUNC | O_CREAT | O_NOCTTY | O_CLOEXEC,
+ 0666);
CHROOT_OUT;
if (fd == -1) {
@@ -239,7 +242,8 @@ do_internal_write (const char *path, const char *content, size_t
size)
int fd;
CHROOT_IN;
- fd = open (path, O_WRONLY|O_TRUNC|O_CREAT|O_NOCTTY|O_CLOEXEC, 0666);
+ fd = open (path, O_WRONLY | O_TRUNC | O_CREAT | O_NOCTTY | O_CLOEXEC,
+ 0666);
CHROOT_OUT;
if (fd == -1) {
@@ -262,12 +266,14 @@ do_internal_write (const char *path, const char *content, size_t
size)
}
int
-do_internal_write_append (const char *path, const char *content, size_t size)
+do_internal_write_append (const char *path, const char *content,
+ size_t size)
{
int fd;
CHROOT_IN;
- fd = open (path, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY|O_CLOEXEC, 0666);
+ fd = open (path, O_WRONLY | O_APPEND | O_CREAT | O_NOCTTY | O_CLOEXEC,
+ 0666);
CHROOT_OUT;
if (fd == -1) {
@@ -314,7 +320,9 @@ pread_fd (int fd, int count, int64_t offset, size_t *size_r,
* will be caught later when we try to serialize the message.
*/
if (count >= GUESTFS_MESSAGE_MAX) {
- reply_with_error ("%s: count is too large for the protocol, use smaller
reads", display_path);
+ reply_with_error (
+ "%s: count is too large for the protocol, use smaller reads",
+ display_path);
close (fd);
return NULL;
}
@@ -353,7 +361,7 @@ do_pread (const char *path, int count, int64_t offset, size_t
*size_r)
int fd;
CHROOT_IN;
- fd = open (path, O_RDONLY|O_CLOEXEC);
+ fd = open (path, O_RDONLY | O_CLOEXEC);
CHROOT_OUT;
if (fd == -1) {
@@ -365,9 +373,10 @@ do_pread (const char *path, int count, int64_t offset, size_t
*size_r)
}
char *
-do_pread_device (const char *device, int count, int64_t offset, size_t *size_r)
+do_pread_device (const char *device, int count, int64_t offset,
+ size_t *size_r)
{
- int fd = open (device, O_RDONLY|O_CLOEXEC);
+ int fd = open (device, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
reply_with_perror ("open: %s", device);
return NULL;
@@ -410,7 +419,8 @@ pwrite_fd (int fd, const char *content, size_t size, int64_t offset,
}
int
-do_pwrite (const char *path, const char *content, size_t size, int64_t offset)
+do_pwrite (const char *path, const char *content, size_t size,
+ int64_t offset)
{
int fd;
@@ -420,7 +430,7 @@ do_pwrite (const char *path, const char *content, size_t size, int64_t
offset)
}
CHROOT_IN;
- fd = open (path, O_WRONLY|O_CLOEXEC);
+ fd = open (path, O_WRONLY | O_CLOEXEC);
CHROOT_OUT;
if (fd == -1) {
@@ -440,7 +450,7 @@ do_pwrite_device (const char *device, const char *content, size_t
size,
return -1;
}
- int fd = open (device, O_WRONLY|O_CLOEXEC);
+ int fd = open (device, O_WRONLY | O_CLOEXEC);
if (fd == -1) {
reply_with_perror ("open: %s", device);
return -1;
@@ -475,7 +485,7 @@ do_file (const char *path)
return NULL;
}
- if (! S_ISREG (statbuf.st_mode)) {
+ if (!S_ISREG (statbuf.st_mode)) {
char *ret;
if (S_ISDIR (statbuf.st_mode))
@@ -516,17 +526,17 @@ do_file (const char *path)
/* We need to remove the trailing \n from output of file(1). */
size_t len = strlen (out);
- if (len > 0 && out[len-1] == '\n')
+ if (len > 0 && out[len - 1] == '\n')
out[--len] = '\0';
/* Some upstream versions of file add a space at the end of the
* output. This is fixed in the Fedora version, but we might as
* well fix it here too. (RHBZ#928995).
*/
- if (len > 0 && out[len-1] == ' ')
+ if (len > 0 && out[len - 1] == ' ')
out[--len] = '\0';
- return out; /* caller frees */
+ return out; /* caller frees */
}
/* zcat | file */
@@ -574,8 +584,8 @@ do_zfile (const char *method, const char *path)
}
len = strlen (line);
- if (len > 0 && line[len-1] == '\n')
- line[len-1] = '\0';
+ if (len > 0 && line[len - 1] == '\n')
+ line[len - 1] = '\0';
return strdup (line);
}
@@ -587,7 +597,7 @@ do_filesize (const char *path)
struct stat buf;
CHROOT_IN;
- r = stat (path, &buf); /* follow symlinks */
+ r = stat (path, &buf); /* follow symlinks */
CHROOT_OUT;
if (r == -1) {
@@ -599,7 +609,8 @@ do_filesize (const char *path)
}
int
-do_copy_attributes (const char *src, const char *dest, int all, int mode, int
xattributes, int ownership)
+do_copy_attributes (const char *src, const char *dest, int all, int mode,
+ int xattributes, int ownership)
{
int r;
struct stat srcstat, deststat;
@@ -648,8 +659,8 @@ do_copy_attributes (const char *src, const char *dest, int all, int
mode, int xa
}
}
- if (ownership &&
- (srcstat.st_uid != deststat.st_uid || srcstat.st_gid != deststat.st_gid)) {
+ if (ownership && (srcstat.st_uid != deststat.st_uid ||
+ srcstat.st_gid != deststat.st_gid)) {
CHROOT_IN;
r = chown (dest, srcstat.st_uid, srcstat.st_gid);
CHROOT_OUT;
diff --git a/daemon/fill.c b/daemon/fill.c
index 2d19df5..5fe1a59 100644
--- a/daemon/fill.c
+++ b/daemon/fill.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -52,7 +53,7 @@ do_fill (int c, int len, const char *path)
reply_with_error ("%d: length is < 0", len);
return -1;
}
- len_sz = (size_t) len;
+ len_sz = (size_t)len;
CHROOT_IN;
fd = open (path, O_WRONLY | O_CREAT | O_NOCTTY, 0666);
@@ -72,7 +73,7 @@ do_fill (int c, int len, const char *path)
return -1;
}
n += r;
- notify_progress ((uint64_t) n, (uint64_t) len_sz);
+ notify_progress ((uint64_t)n, (uint64_t)len_sz);
}
if (close (fd) == -1) {
@@ -97,7 +98,7 @@ do_fill_pattern (const char *pattern, int len, const char *path)
reply_with_error ("%d: length is < 0", len);
return -1;
}
- size_t len_sz = (size_t) len;
+ size_t len_sz = (size_t)len;
int fd;
CHROOT_IN;
@@ -119,7 +120,7 @@ do_fill_pattern (const char *pattern, int len, const char *path)
return -1;
}
n += wrlen;
- notify_progress ((uint64_t) n, (uint64_t) len_sz);
+ notify_progress ((uint64_t)n, (uint64_t)len_sz);
}
if (close (fd) == -1) {
@@ -145,7 +146,7 @@ do_fill_dir (const char *dir, int n)
}
CHROOT_IN;
- fd = open (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_CLOEXEC, 0666);
+ fd = open (filename, O_WRONLY | O_CREAT | O_NOCTTY | O_CLOEXEC, 0666);
CHROOT_OUT;
if (fd == -1) {
diff --git a/daemon/find.c b/daemon/find.c
index b47caa8..834941e 100644
--- a/daemon/find.c
+++ b/daemon/find.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,7 +31,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_find, find);
+GUESTFSD_EXT_CMD (str_find, find);
static int
input_to_nul (FILE *fp, char *buf, size_t maxlen)
@@ -126,18 +127,18 @@ do_find0 (const char *dir)
if (ferror (fp)) {
fprintf (stderr, "fgetc: %s: %m\n", dir);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
pclose (fp);
return -1;
}
if (pclose (fp) != 0) {
fprintf (stderr, "pclose: %s: %m\n", dir);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
diff --git a/daemon/findfs.c b/daemon/findfs.c
index f441370..a98e154 100644
--- a/daemon/findfs.c
+++ b/daemon/findfs.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -26,7 +27,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_findfs, findfs);
+GUESTFSD_EXT_CMD (str_findfs, findfs);
static char *
findfs (const char *tag, const char *label_or_uuid)
@@ -59,8 +60,8 @@ findfs (const char *tag, const char *label_or_uuid)
/* Trim trailing \n if present. */
len = strlen (out);
- if (len > 0 && out[len-1] == '\n')
- out[len-1] = '\0';
+ if (len > 0 && out[len - 1] == '\n')
+ out[len - 1] = '\0';
if (STRPREFIX (out, "/dev/mapper/") || STRPREFIX (out, "/dev/dm-"))
{
char *canonical;
@@ -78,7 +79,7 @@ findfs (const char *tag, const char *label_or_uuid)
*/
}
- return out; /* caller frees */
+ return out; /* caller frees */
}
char *
diff --git a/daemon/format.c b/daemon/format.c
index 824649f..af8c38a 100644
--- a/daemon/format.c
+++ b/daemon/format.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/daemon/fs-min-size.c b/daemon/fs-min-size.c
index ba0f739..90b9eed 100644
--- a/daemon/fs-min-size.c
+++ b/daemon/fs-min-size.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -25,10 +26,10 @@
#include "daemon.h"
#include "actions.h"
-static char*
+static char *
get_mount_point (const char *device)
{
- CLEANUP_FREE_STRING_LIST char **mountpoints = do_mountpoints();
+ CLEANUP_FREE_STRING_LIST char **mountpoints = do_mountpoints ();
size_t i;
char *path;
@@ -81,7 +82,8 @@ do_vfs_minimum_size (const mountable_t *mountable)
}
else
- NOT_SUPPORTED (-1, "don't know how to get minimum size of '%s'
filesystems",
+ NOT_SUPPORTED (-1,
+ "don't know how to get minimum size of '%s'
filesystems",
vfs_type);
return r;
diff --git a/daemon/fsck.c b/daemon/fsck.c
index 540f779..0c7fc42 100644
--- a/daemon/fsck.c
+++ b/daemon/fsck.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -26,7 +27,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_fsck, fsck);
+GUESTFSD_EXT_CMD (str_fsck, fsck);
int
do_fsck (const char *fstype, const char *device)
diff --git a/daemon/fstrim.c b/daemon/fstrim.c
index 1ad3630..db18bc5 100644
--- a/daemon/fstrim.c
+++ b/daemon/fstrim.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,7 +31,7 @@
#define MAX_ARGS 64
-GUESTFSD_EXT_CMD(str_fstrim, fstrim);
+GUESTFSD_EXT_CMD (str_fstrim, fstrim);
int
optgroup_fstrim_available (void)
@@ -40,8 +41,8 @@ optgroup_fstrim_available (void)
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_fstrim (const char *path,
- int64_t offset, int64_t length, int64_t minimumfreeextent)
+do_fstrim (const char *path, int64_t offset, int64_t length,
+ int64_t minimumfreeextent)
{
const char *argv[MAX_ARGS];
size_t i = 0;
@@ -90,7 +91,8 @@ do_fstrim (const char *path,
ADD_ARG (argv, i, mfe_s);
}
- /* When running in debug mode, use -v, capture stdout and print it below. */
+ /* When running in debug mode, use -v, capture stdout and print it below.
+ */
if (verbose)
ADD_ARG (argv, i, "-v");
diff --git a/daemon/glob.c b/daemon/glob.c
index a22fd33..6161819 100644
--- a/daemon/glob.c
+++ b/daemon/glob.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -29,12 +30,12 @@ char **
do_glob_expand (const char *pattern, int directoryslash)
{
int r;
- glob_t buf = { .gl_pathc = 0, .gl_pathv = NULL, .gl_offs = 0 };
+ glob_t buf = {.gl_pathc = 0, .gl_pathv = NULL, .gl_offs = 0 };
int flags = GLOB_BRACE | GLOB_MARK;
/* GLOB_MARK is default, unless the user explicitly disabled it. */
- if ((optargs_bitmask & GUESTFS_GLOB_EXPAND_DIRECTORYSLASH_BITMASK)
- && !directoryslash) {
+ if ((optargs_bitmask & GUESTFS_GLOB_EXPAND_DIRECTORYSLASH_BITMASK) &&
+ !directoryslash) {
flags &= ~GLOB_MARK;
}
@@ -43,7 +44,7 @@ do_glob_expand (const char *pattern, int directoryslash)
r = glob (pattern, flags, NULL, &buf);
CHROOT_OUT;
- if (r == GLOB_NOMATCH) { /* Return an empty list instead of an error. */
+ if (r == GLOB_NOMATCH) { /* Return an empty list instead of an error. */
char **rv;
rv = malloc (sizeof (char *) * 1);
@@ -52,7 +53,7 @@ do_glob_expand (const char *pattern, int directoryslash)
return NULL;
}
rv[0] = NULL;
- return rv; /* Caller frees. */
+ return rv; /* Caller frees. */
}
if (r != 0) {
diff --git a/daemon/grep.c b/daemon/grep.c
index 6dd9a99..55d43f9 100644
--- a/daemon/grep.c
+++ b/daemon/grep.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -31,8 +32,8 @@
#define MAX_ARGS 64
static char **
-grep (const char *regex, const char *path,
- int extended, int fixed, int insensitive, int compressed)
+grep (const char *regex, const char *path, int extended, int fixed,
+ int insensitive, int compressed)
{
const char *argv[MAX_ARGS];
size_t i = 0;
@@ -41,7 +42,8 @@ grep (const char *regex, const char *path,
char **lines;
if (extended && fixed) {
- reply_with_error ("can't use 'extended' and 'fixed' flags at
the same time");
+ reply_with_error (
+ "can't use 'extended' and 'fixed' flags at the same
time");
return NULL;
}
@@ -63,7 +65,7 @@ grep (const char *regex, const char *path,
ADD_ARG (argv, i, NULL);
CHROOT_IN;
- fd = open (path, O_RDONLY|O_CLOEXEC);
+ fd = open (path, O_RDONLY | O_CLOEXEC);
CHROOT_OUT;
if (fd == -1) {
@@ -82,15 +84,16 @@ grep (const char *regex, const char *path,
}
lines = split_lines (out);
- if (lines == NULL) return NULL;
+ if (lines == NULL)
+ return NULL;
return lines;
}
/* Takes optional arguments, consult optargs_bitmask. */
char **
-do_grep (const char *regex, const char *path,
- int extended, int fixed, int insensitive, int compressed)
+do_grep (const char *regex, const char *path, int extended, int fixed,
+ int insensitive, int compressed)
{
if (!(optargs_bitmask & GUESTFS_GREP_EXTENDED_BITMASK))
extended = 0;
diff --git a/daemon/grub.c b/daemon/grub.c
index 06324b3..ec9ee5c 100644
--- a/daemon/grub.c
+++ b/daemon/grub.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -26,7 +27,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_grub_install, grub-install);
+GUESTFSD_EXT_CMD (str_grub_install, grub - install);
int
optgroup_grub_available (void)
@@ -45,8 +46,8 @@ do_grub_install (const char *root, const char *device)
return -1;
}
- r = command (verbose ? &out : NULL, &err,
- str_grub_install, buf, device, NULL);
+ r = command (verbose ? &out : NULL, &err, str_grub_install, buf, device,
+ NULL);
if (r == -1) {
if (verbose)
diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c
index 00b4a0a..43242e2 100644
--- a/daemon/guestfsd.c
+++ b/daemon/guestfsd.c
@@ -13,13 +13,14 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
#ifdef HAVE_WINDOWS_H
-# include <windows.h>
+#include <windows.h>
#endif
#include <stdio.h>
@@ -45,7 +46,7 @@
#include <termios.h>
#ifdef HAVE_PRINTF_H
-# include <printf.h>
+#include <printf.h>
#endif
#include <augeas.h>
@@ -57,16 +58,16 @@
#include "daemon.h"
-GUESTFSD_EXT_CMD(str_udevadm, udevadm);
-GUESTFSD_EXT_CMD(str_uuidgen, uuidgen);
+GUESTFSD_EXT_CMD (str_udevadm, udevadm);
+GUESTFSD_EXT_CMD (str_uuidgen, uuidgen);
#ifndef MAX
-# define MAX(a,b) ((a)>(b)?(a):(b))
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
#endif
/* Not the end of the world if this open flag is not defined. */
#ifndef O_CLOEXEC
-# define O_CLOEXEC 0
+#define O_CLOEXEC 0
#endif
/* If root device is an ext2 filesystem, this is the major and minor.
@@ -79,13 +80,18 @@ int verbose = 0;
int enable_network = 0;
static void makeraw (const char *channel, int fd);
-static int print_shell_quote (FILE *stream, const struct printf_info *info, const void
*const *args);
-static int print_sysroot_shell_quote (FILE *stream, const struct printf_info *info, const
void *const *args);
+static int print_shell_quote (FILE *stream, const struct printf_info *info,
+ const void *const *args);
+static int print_sysroot_shell_quote (FILE *stream,
+ const struct printf_info *info,
+ const void *const *args);
#ifdef HAVE_REGISTER_PRINTF_SPECIFIER
-static int print_arginfo (const struct printf_info *info, size_t n, int *argtypes, int
*size);
+static int print_arginfo (const struct printf_info *info, size_t n,
+ int *argtypes, int *size);
#else
#ifdef HAVE_REGISTER_PRINTF_FUNCTION
-static int print_arginfo (const struct printf_info *info, size_t n, int *argtypes);
+static int print_arginfo (const struct printf_info *info, size_t n,
+ int *argtypes);
#else
#error "HAVE_REGISTER_PRINTF_{SPECIFIER|FUNCTION} not defined"
#endif
@@ -101,7 +107,7 @@ winsock_init (void)
r = gl_sockets_startup (SOCKETS_2_2);
return r == 0 ? 0 : -1;
}
-#else /* !WIN32 */
+#else /* !WIN32 */
static int
winsock_init (void)
{
@@ -128,8 +134,7 @@ const char *program_name = "guestfsd";
static void
usage (void)
{
- fprintf (stderr,
- "guestfsd [-r] [-v|--verbose]\n");
+ fprintf (stderr, "guestfsd [-r] [-v|--verbose]\n");
}
int
@@ -137,12 +142,9 @@ main (int argc, char *argv[])
{
static const char *options = "c:lnrtv?";
static const struct option long_options[] = {
- { "help", 0, 0, '?' },
- { "channel", 1, 0, 'c' },
- { "listen", 0, 0, 'l' },
- { "network", 0, 0, 'n' },
- { "test", 0, 0, 't' },
- { "verbose", 0, 0, 'v' },
+ { "help", 0, 0, '?' }, { "channel", 1, 0, 'c'
},
+ { "listen", 0, 0, 'l' }, { "network", 0, 0, 'n'
},
+ { "test", 0, 0, 't' }, { "verbose", 0, 0, 'v'
},
{ 0, 0, 0, 0 }
};
int c;
@@ -183,7 +185,8 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, NULL);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
case 'c':
@@ -198,16 +201,16 @@ main (int argc, char *argv[])
enable_network = 1;
break;
- /* The -r flag is used when running standalone. It changes
- * several aspects of the daemon.
- */
+ /* The -r flag is used when running standalone. It changes
+ * several aspects of the daemon.
+ */
case 'r':
sysroot = "";
sysroot_len = 0;
autosync_umount = 0;
break;
- /* Undocumented --test option used for testing guestfsd. */
+ /* Undocumented --test option used for testing guestfsd. */
case 't':
test_mode = 1;
break;
@@ -222,7 +225,7 @@ main (int argc, char *argv[])
default:
fprintf (stderr, "guestfsd: unexpected command line option 0x%x\n",
- (unsigned) c);
+ (unsigned)c);
exit (EXIT_FAILURE);
}
}
@@ -243,7 +246,7 @@ main (int argc, char *argv[])
#endif
#ifdef WIN32
-# define setenv(n,v,f) _putenv(n "=" v)
+#define setenv(n, v, f) _putenv (n "=" v)
#endif
/* Set up a basic environment. After we are called by /init the
* environment is essentially empty.
@@ -282,41 +285,40 @@ main (int argc, char *argv[])
int sock;
if (!listen_mode) {
if (STRPREFIX (channel, "fd:")) {
- if (sscanf (channel+3, "%d", &sock) != 1)
+ if (sscanf (channel + 3, "%d", &sock) != 1)
error (EXIT_FAILURE, 0, "cannot parse --channel %s", channel);
- }
- else {
- sock = open (channel, O_RDWR|O_CLOEXEC);
+ } else {
+ sock = open (channel, O_RDWR | O_CLOEXEC);
if (sock == -1) {
- fprintf (stderr,
- "\n"
- "Failed to connect to virtio-serial channel.\n"
- "\n"
- "This is a fatal error and the appliance will now exit.\n"
- "\n"
- "Usually this error is caused by either QEMU or the
appliance\n"
- "kernel not supporting the vmchannel method that the\n"
- "libguestfs library chose to use. Please run\n"
- "'libguestfs-test-tool' and provide the complete,
unedited\n"
- "output to the libguestfs developers, either in a bug
report\n"
- "or on the libguestfs redhat com mailing list.\n"
- "\n");
+ fprintf (
+ stderr,
+ "\n"
+ "Failed to connect to virtio-serial channel.\n"
+ "\n"
+ "This is a fatal error and the appliance will now exit.\n"
+ "\n"
+ "Usually this error is caused by either QEMU or the appliance\n"
+ "kernel not supporting the vmchannel method that the\n"
+ "libguestfs library chose to use. Please run\n"
+ "'libguestfs-test-tool' and provide the complete,
unedited\n"
+ "output to the libguestfs developers, either in a bug report\n"
+ "or on the libguestfs redhat com mailing list.\n"
+ "\n");
error (EXIT_FAILURE, errno, "open: %s", channel);
}
}
- }
- else {
+ } else {
struct sockaddr_un addr;
- sock = socket (AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0);
+ sock = socket (AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (sock == -1)
error (EXIT_FAILURE, errno, "socket");
addr.sun_family = AF_UNIX;
- if (strlen (channel) > UNIX_PATH_MAX-1)
+ if (strlen (channel) > UNIX_PATH_MAX - 1)
error (EXIT_FAILURE, 0, "%s: socket path is too long", channel);
strcpy (addr.sun_path, channel);
- if (bind (sock, (struct sockaddr *) &addr, sizeof addr) == -1)
+ if (bind (sock, (struct sockaddr *)&addr, sizeof addr) == -1)
error (EXIT_FAILURE, errno, "bind: %s", channel);
if (listen (sock, 4) == -1)
@@ -389,7 +391,8 @@ makeraw (const char *channel, int fd)
static int
is_root_device_stat (struct stat *statbuf)
{
- if (statbuf->st_rdev == root_device) return 1;
+ if (statbuf->st_rdev == root_device)
+ return 1;
return 0;
}
@@ -585,7 +588,8 @@ count_strings (char *const *argv)
return argc;
}
-/*
http://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2 */
+/*
http://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2
+ */
int
is_power_of_2 (unsigned long v)
{
@@ -595,8 +599,8 @@ is_power_of_2 (unsigned long v)
static int
compare (const void *vp1, const void *vp2)
{
- char * const *p1 = (char * const *) vp1;
- char * const *p2 = (char * const *) vp2;
+ char *const *p1 = (char *const *)vp1;
+ char *const *p2 = (char *const *)vp2;
return strcmp (*p1, *p2);
}
@@ -694,8 +698,8 @@ compare_device_names (const char *a, const char *b)
static int
compare_device_names_vp (const void *vp1, const void *vp2)
{
- char * const *p1 = (char * const *) vp1;
- char * const *p2 = (char * const *) vp2;
+ char *const *p1 = (char *const *)vp1;
+ char *const *p2 = (char *const *)vp2;
return compare_device_names (*p1, *p2);
}
@@ -836,8 +840,8 @@ trim (char *str)
{
size_t len = strlen (str);
- while (len > 0 && c_isspace (str[len-1])) {
- str[len-1] = '\0';
+ while (len > 0 && c_isspace (str[len - 1])) {
+ str[len - 1] = '\0';
len--;
}
@@ -847,7 +851,7 @@ trim (char *str)
len--;
}
- memmove (str, p, len+1);
+ memmove (str, p, len + 1);
}
/* printf helper function so we can use %Q ("quoted") and %R to print
@@ -859,26 +863,25 @@ print_shell_quote (FILE *stream,
const struct printf_info *info ATTRIBUTE_UNUSED,
const void *const *args)
{
-#define SAFE(c) (c_isalnum((c)) || \
- (c) == '/' || (c) == '-' || (c) == '_' || (c) ==
'.')
+#define SAFE(c) \
+ (c_isalnum ((c)) || (c) == '/' || (c) == '-' || (c) == '_' ||
(c) == '.')
int i, len;
- const char *str = *((const char **) (args[0]));
+ const char *str = *((const char **)(args[0]));
for (i = len = 0; str[i]; ++i) {
if (!SAFE (str[i])) {
putc ('\\', stream);
- len ++;
+ len++;
}
putc (str[i], stream);
- len ++;
+ len++;
}
return len;
}
static int
-print_sysroot_shell_quote (FILE *stream,
- const struct printf_info *info,
+print_sysroot_shell_quote (FILE *stream, const struct printf_info *info,
const void *const *args)
{
fputs (sysroot, stream);
@@ -887,8 +890,8 @@ print_sysroot_shell_quote (FILE *stream,
#ifdef HAVE_REGISTER_PRINTF_SPECIFIER
static int
-print_arginfo (const struct printf_info *info ATTRIBUTE_UNUSED,
- size_t n, int *argtypes, int *size)
+print_arginfo (const struct printf_info *info ATTRIBUTE_UNUSED, size_t n,
+ int *argtypes, int *size)
{
if (n > 0) {
argtypes[0] = PA_STRING;
@@ -926,7 +929,7 @@ device_name_translation (const char *device)
int fd;
char *ret;
- fd = open (device, O_RDONLY|O_CLOEXEC);
+ fd = open (device, O_RDONLY | O_CLOEXEC);
if (fd >= 0) {
close (fd);
return strdup (device);
@@ -938,12 +941,12 @@ device_name_translation (const char *device)
/* If the name begins with "/dev/sd" then try the alternatives. */
if (!STRPREFIX (device, "/dev/sd"))
return NULL;
- device += 7; /* device == "a1" etc. */
+ device += 7; /* device == "a1" etc. */
/* /dev/vd (virtio-blk) */
if (asprintf (&ret, "/dev/vd%s", device) == -1)
return NULL;
- fd = open (ret, O_RDONLY|O_CLOEXEC);
+ fd = open (ret, O_RDONLY | O_CLOEXEC);
if (fd >= 0) {
close (fd);
return ret;
@@ -953,7 +956,7 @@ device_name_translation (const char *device)
/* /dev/hd (old IDE driver) */
if (asprintf (&ret, "/dev/hd%s", device) == -1)
return NULL;
- fd = open (ret, O_RDONLY|O_CLOEXEC);
+ fd = open (ret, O_RDONLY | O_CLOEXEC);
if (fd >= 0) {
close (fd);
return ret;
@@ -963,7 +966,7 @@ device_name_translation (const char *device)
/* User-Mode Linux */
if (asprintf (&ret, "/dev/ubd%s", device) == -1)
return NULL;
- fd = open (ret, O_RDONLY|O_CLOEXEC);
+ fd = open (ret, O_RDONLY | O_CLOEXEC);
if (fd >= 0) {
close (fd);
return ret;
@@ -1023,8 +1026,7 @@ parse_btrfsvol (const char *desc_orig, mountable_t *mountable)
return -1;
}
- if (!S_ISDIR (statbuf.st_mode) &&
- !is_root_device_stat (&statbuf)) {
+ if (!S_ISDIR (statbuf.st_mode) && !is_root_device_stat (&statbuf)) {
volume = slash + 1;
break;
}
@@ -1032,9 +1034,11 @@ parse_btrfsvol (const char *desc_orig, mountable_t *mountable)
*slash = '/';
}
- if (!device) return -1;
+ if (!device)
+ return -1;
- if (!volume) return -1;
+ if (!volume)
+ return -1;
mountable->volume = strdup (volume);
if (!mountable->volume) {
@@ -1064,8 +1068,8 @@ mountable_to_string (const mountable_t *mountable)
return strdup (mountable->device);
case MOUNTABLE_BTRFSVOL:
- if (asprintf (&desc, "btrfsvol:%s/%s",
- mountable->device, mountable->volume) == -1)
+ if (asprintf (&desc, "btrfsvol:%s/%s", mountable->device,
+ mountable->volume) == -1)
return NULL;
return desc;
@@ -1137,13 +1141,13 @@ random_name (char *template)
unsigned char c;
char *p;
- fd = open ("/dev/urandom", O_RDONLY|O_CLOEXEC);
+ fd = open ("/dev/urandom", O_RDONLY | O_CLOEXEC);
if (fd == -1)
return -1;
p = strrchr (template, '/');
if (p == NULL)
- abort (); /* internal error - bad template */
+ abort (); /* internal error - bad template */
while (*p) {
if (*p == 'X') {
@@ -1175,8 +1179,8 @@ udev_settle (void)
char cmd[80];
int r;
- snprintf (cmd, sizeof cmd, "%s%s settle",
- str_udevadm, verbose ? " --debug" : "");
+ snprintf (cmd, sizeof cmd, "%s%s settle", str_udevadm,
+ verbose ? " --debug" : "");
if (verbose)
printf ("%s\n", cmd);
r = system (cmd);
@@ -1201,5 +1205,4 @@ get_random_uuid (void)
/* caller free */
return out;
-
}
diff --git a/daemon/headtail.c b/daemon/headtail.c
index 1614074..52c9e6a 100644
--- a/daemon/headtail.c
+++ b/daemon/headtail.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -29,14 +30,15 @@
#include "actions.h"
static char **
-headtail (const char *prog, const char *flag, const char *n, const char *path)
+headtail (const char *prog, const char *flag, const char *n,
+ const char *path)
{
CLEANUP_FREE char *out = NULL, *err = NULL;
int fd, flags, r;
char **lines;
CHROOT_IN;
- fd = open (path, O_RDONLY|O_CLOEXEC);
+ fd = open (path, O_RDONLY | O_CLOEXEC);
CHROOT_OUT;
if (fd == -1) {
@@ -58,7 +60,8 @@ headtail (const char *prog, const char *flag, const char *n, const char
*path)
#endif
lines = split_lines (out);
- if (lines == NULL) return NULL;
+ if (lines == NULL)
+ return NULL;
return lines;
}
diff --git a/daemon/hexdump.c b/daemon/hexdump.c
index 3afa48f..677c90e 100644
--- a/daemon/hexdump.c
+++ b/daemon/hexdump.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -35,7 +36,7 @@ do_hexdump (const char *path)
CLEANUP_FREE char *err = NULL;
CHROOT_IN;
- fd = open (path, O_RDONLY|O_CLOEXEC);
+ fd = open (path, O_RDONLY | O_CLOEXEC);
CHROOT_OUT;
if (fd == -1) {
@@ -51,5 +52,5 @@ do_hexdump (const char *path)
return NULL;
}
- return out; /* caller frees */
+ return out; /* caller frees */
}
diff --git a/daemon/hivex.c b/daemon/hivex.c
index b47329e..837c5d9 100644
--- a/daemon/hivex.c
+++ b/daemon/hivex.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -47,7 +48,7 @@ optgroup_hivex_available (void)
static hive_h *h = NULL;
/* Clean up the hivex handle on daemon exit. */
-void hivex_finalize (void) __attribute__((destructor));
+void hivex_finalize (void) __attribute__ ((destructor));
void
hivex_finalize (void)
{
@@ -57,14 +58,15 @@ hivex_finalize (void)
}
}
-#define NEED_HANDLE(errcode) \
- do { \
- if (!h) { \
- reply_with_error ("%s: you must call 'hivex-open' first to initialize
the hivex handle", __func__); \
- return (errcode); \
- } \
- } \
- while (0)
+#define NEED_HANDLE(errcode) \
+ do { \
+ if (!h) { \
+ reply_with_error ("%s: you must call 'hivex-open' first to "
\
+ "initialize the hivex handle", \
+ __func__); \
+ return (errcode); \
+ } \
+ } while (0)
/* Takes optional arguments, consult optargs_bitmask. */
int
@@ -176,7 +178,7 @@ do_hivex_node_children (int64_t nodeh)
ret->guestfs_int_hivex_node_list_len = len;
ret->guestfs_int_hivex_node_list_val =
- malloc (len * sizeof (guestfs_int_hivex_node));
+ malloc (len * sizeof (guestfs_int_hivex_node));
if (ret->guestfs_int_hivex_node_list_val == NULL) {
reply_with_perror ("malloc");
free (ret);
@@ -249,7 +251,7 @@ do_hivex_node_values (int64_t nodeh)
ret->guestfs_int_hivex_value_list_len = len;
ret->guestfs_int_hivex_value_list_val =
- malloc (len * sizeof (guestfs_int_hivex_value));
+ malloc (len * sizeof (guestfs_int_hivex_value));
if (ret->guestfs_int_hivex_value_list_val == NULL) {
reply_with_perror ("malloc");
free (ret);
@@ -257,7 +259,7 @@ do_hivex_node_values (int64_t nodeh)
}
for (i = 0; i < len; ++i)
- ret->guestfs_int_hivex_value_list_val[i].hivex_value_h = (int64_t) r[i];
+ ret->guestfs_int_hivex_value_list_val[i].hivex_value_h = (int64_t)r[i];
return ret;
}
@@ -355,8 +357,7 @@ do_hivex_commit (const char *filename)
reply_with_perror ("%s: commit failed", filename);
return -1;
}
- }
- else {
+ } else {
if (hivex_commit (h, NULL, 0) == -1) {
reply_with_perror ("commit failed");
return -1;
@@ -396,12 +397,12 @@ do_hivex_node_delete_child (int64_t nodeh)
}
int
-do_hivex_node_set_value (int64_t nodeh,
- const char *key, int64_t t,
+do_hivex_node_set_value (int64_t nodeh, const char *key, int64_t t,
const char *val, size_t val_size)
{
- const hive_set_value v =
- { .key = (char *) key, .t = t, .len = val_size, .value = (char *) val };
+ const hive_set_value v = {
+ .key = (char *)key, .t = t, .len = val_size, .value = (char *)val
+ };
NEED_HANDLE (-1);
diff --git a/daemon/hotplug.c b/daemon/hotplug.c
index 234f51e..688c862 100644
--- a/daemon/hotplug.c
+++ b/daemon/hotplug.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -77,7 +78,7 @@ do_internal_hot_add_drive (const char *label)
return -1;
}
-GUESTFSD_EXT_CMD(str_fuser, fuser);
+GUESTFSD_EXT_CMD (str_fuser, fuser);
/* This function is called before a drive is hot-unplugged. */
int
@@ -108,7 +109,8 @@ do_internal_hot_remove_drive_precheck (const char *label)
*/
if (r == 0) {
reply_with_error ("disk with label '%s' is in use "
- "(eg. mounted or belongs to a volume group)", label);
+ "(eg. mounted or belongs to a volume group)",
+ label);
/* Useful for debugging when a drive cannot be unplugged. */
if (verbose)
diff --git a/daemon/htonl.c b/daemon/htonl.c
index c9f1af0..329d397 100644
--- a/daemon/htonl.c
+++ b/daemon/htonl.c
@@ -31,12 +31,10 @@
#ifndef HAVE_NTOHL
-#undef htonl
-#undef ntohl
+#undef htonl
+#undef ntohl
-uint32_t
-htonl (x)
- uint32_t x;
+uint32_t htonl (x) uint32_t x;
{
#if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && defined(LITTLE_ENDIAN)
#if BYTE_ORDER == BIG_ENDIAN
@@ -44,25 +42,27 @@ htonl (x)
#elif BYTE_ORDER == LITTLE_ENDIAN
return bswap_32 (x);
#else
-# error "What kind of system is this?"
+#error "What kind of system is this?"
#endif
#else
#error "BYTE_ORDER/BIG_ENDIAN/LITTLE_ENDIAN are not defined"
#endif
}
-uint32_t ntohl (uint32_t x) { return htonl (x); }
+uint32_t
+ntohl (uint32_t x)
+{
+ return htonl (x);
+}
#endif /* !HAVE_NTOHL */
#ifndef HAVE_NTOHS
-#undef htons
-#undef ntohs
+#undef htons
+#undef ntohs
-uint16_t
-htons (x)
- uint16_t x;
+uint16_t htons (x) uint16_t x;
{
#if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && defined(LITTLE_ENDIAN)
#if BYTE_ORDER == BIG_ENDIAN
@@ -70,13 +70,17 @@ htons (x)
#elif BYTE_ORDER == LITTLE_ENDIAN
return bswap_16 (x);
#else
-# error "What kind of system is this?"
+#error "What kind of system is this?"
#endif
#else
#error "BYTE_ORDER/BIG_ENDIAN/LITTLE_ENDIAN are not defined"
#endif
}
-uint16_t ntohs (uint16_t x) { return htons (x); }
+uint16_t
+ntohs (uint16_t x)
+{
+ return htons (x);
+}
#endif /* !HAVE_NTOHS */
diff --git a/daemon/initrd.c b/daemon/initrd.c
index c9fc2dd..f3d9f48 100644
--- a/daemon/initrd.c
+++ b/daemon/initrd.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -31,8 +32,8 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_zcat, zcat);
-GUESTFSD_EXT_CMD(str_cpio, cpio);
+GUESTFSD_EXT_CMD (str_zcat, zcat);
+GUESTFSD_EXT_CMD (str_cpio, cpio);
char **
do_initrd_list (const char *path)
@@ -46,7 +47,8 @@ do_initrd_list (const char *path)
int ret;
/* "zcat /sysroot/<path> | cpio --quiet -it", but path must be quoted.
*/
- if (asprintf_nowarn (&cmd, "%s %R | %s --quiet -it", str_zcat, path,
str_cpio) == -1) {
+ if (asprintf_nowarn (&cmd, "%s %R | %s --quiet -it", str_zcat, path,
+ str_cpio) == -1) {
reply_with_perror ("asprintf");
return NULL;
}
@@ -62,8 +64,8 @@ do_initrd_list (const char *path)
allocsize = 0;
while ((len = getline (&filename, &allocsize, fp)) != -1) {
- if (len > 0 && filename[len-1] == '\n')
- filename[len-1] = '\0';
+ if (len > 0 && filename[len - 1] == '\n')
+ filename[len - 1] = '\0';
if (add_string (&filenames, filename) == -1) {
pclose (fp);
return NULL;
@@ -111,7 +113,8 @@ do_initrd_cat (const char *path, const char *filename, size_t
*size_r)
* (eg. if the named file does not exist in the cpio archive) --
* cpio is silent in this case.
*/
- /* "zcat /sysroot/<path> | cpio --quiet -id file", but paths must be
quoted */
+ /* "zcat /sysroot/<path> | cpio --quiet -id file", but paths must be
+ * quoted */
if (asprintf_nowarn (&cmd, "cd %Q && zcat %R | cpio --quiet -id
%Q",
tmpdir, path, filename) == -1) {
reply_with_perror ("asprintf");
@@ -140,7 +143,7 @@ do_initrd_cat (const char *path, const char *filename, size_t
*size_r)
}
/* See if we got a file. */
- fd = open (fullpath, O_RDONLY|O_CLOEXEC);
+ fd = open (fullpath, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
reply_with_perror ("open: %s:%s", path, filename);
rmdir (tmpdir);
@@ -161,8 +164,8 @@ do_initrd_cat (const char *path, const char *filename, size_t
*size_r)
* be caught later when we try to serialize the message.
*/
if (statbuf.st_size >= GUESTFS_MESSAGE_MAX) {
- reply_with_error ("%s:%s: file is too large for the protocol",
- path, filename);
+ reply_with_error ("%s:%s: file is too large for the protocol", path,
+ filename);
goto cleanup;
}
@@ -192,7 +195,7 @@ do_initrd_cat (const char *path, const char *filename, size_t
*size_r)
*/
*size_r = statbuf.st_size;
- cleanup:
+cleanup:
if (fd >= 0)
close (fd);
@@ -205,7 +208,8 @@ do_initrd_cat (const char *path, const char *filename, size_t
*size_r)
/* Remove the directories up to and including the temp directory. */
do {
char *p = strrchr (fullpath, '/');
- if (!p) break;
+ if (!p)
+ break;
*p = '\0';
if (rmdir (fullpath) == -1) {
fprintf (stderr, "rmdir: %s: %m\n", fullpath);
diff --git a/daemon/inotify.c b/daemon/inotify.c
index 562365b..7599e1f 100644
--- a/daemon/inotify.c
+++ b/daemon/inotify.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -35,19 +36,20 @@
#include "optgroups.h"
#ifdef HAVE_SYS_INOTIFY_H
-GUESTFSD_EXT_CMD(str_sort, sort);
+GUESTFSD_EXT_CMD (str_sort, sort);
/* Currently open inotify handle, or -1 if not opened. */
static int inotify_fd = -1;
-static char inotify_buf[64*1024*1024]; /* Event buffer, [0..posn-1] is valid */
+static char
+ inotify_buf[64 * 1024 * 1024]; /* Event buffer, [0..posn-1] is valid */
static size_t inotify_posn = 0;
/* Because of use of arbitrary offsets within inotify_buf. */
#pragma GCC diagnostic ignored "-Wcast-align"
/* Clean up the inotify handle on daemon exit. */
-static void inotify_finalize (void) __attribute__((destructor));
+static void inotify_finalize (void) __attribute__ ((destructor));
static void
inotify_finalize (void)
{
@@ -64,12 +66,14 @@ optgroup_inotify_available (void)
}
/* Because inotify_init does NEED_ROOT, NEED_INOTIFY implies NEED_ROOT. */
-#define NEED_INOTIFY(errcode) \
- do { \
- if (inotify_fd == -1) { \
- reply_with_error ("%s: you must call 'inotify_init' first to
initialize inotify", __func__); \
- return (errcode); \
- } \
+#define NEED_INOTIFY(errcode) \
+ do { \
+ if (inotify_fd == -1) { \
+ reply_with_error ( \
+ "%s: you must call 'inotify_init' first to initialize
inotify", \
+ __func__); \
+ return (errcode); \
+ } \
} while (0)
#define MQE_PATH "/proc/sys/fs/inotify/max_queued_events"
@@ -216,14 +220,14 @@ do_inotify_read (void)
r = read (inotify_fd, inotify_buf + inotify_posn,
sizeof (inotify_buf) - inotify_posn);
if (r == -1) {
- /* End of list? */
+ /* End of list? */
if (errno == EWOULDBLOCK ||
(EWOULDBLOCK != EAGAIN && errno == EAGAIN))
break;
reply_with_perror ("read");
goto error;
}
- if (r == 0) { /* End of file - we're not expecting it. */
+ if (r == 0) { /* End of file - we're not expecting it. */
reply_with_error ("unexpected end of file");
goto error;
}
@@ -236,9 +240,9 @@ do_inotify_read (void)
guestfs_int_inotify_event *np;
guestfs_int_inotify_event *in;
- event = (struct inotify_event *) &inotify_buf[n];
+ event = (struct inotify_event *)&inotify_buf[n];
- /* Have we got a complete event in the buffer? */
+/* Have we got a complete event in the buffer? */
#ifdef __GNUC__
if (n + sizeof (struct inotify_event) > inotify_posn ||
n + sizeof (struct inotify_event) + event->len > inotify_posn)
@@ -249,19 +253,21 @@ do_inotify_read (void)
/* Check event->len is reasonable (note the field is uint32_t). */
if (event->len > PATH_MAX) {
- reply_with_error ("event->len = %" PRIu32 " >
PATH_MAX", event->len);
+ reply_with_error ("event->len = %" PRIu32 " >
PATH_MAX",
+ event->len);
goto error;
}
np = realloc (ret->guestfs_int_inotify_event_list_val,
(ret->guestfs_int_inotify_event_list_len + 1) *
- sizeof (guestfs_int_inotify_event));
+ sizeof (guestfs_int_inotify_event));
if (np == NULL) {
reply_with_perror ("realloc");
goto error;
}
ret->guestfs_int_inotify_event_list_val = np;
- in =
&ret->guestfs_int_inotify_event_list_val[ret->guestfs_int_inotify_event_list_len];
+ in = &ret->guestfs_int_inotify_event_list_val
+ [ret->guestfs_int_inotify_event_list_len];
ret->guestfs_int_inotify_event_list_len++;
in->in_wd = event->wd;
@@ -271,7 +277,8 @@ do_inotify_read (void)
if (event->len > 0)
in->in_name = strdup (event->name);
else
- in->in_name = strdup (""); /* Should have optional string fields
XXX. */
+ in->in_name =
+ strdup (""); /* Should have optional string fields XXX. */
if (in->in_name == NULL) {
reply_with_perror ("strdup");
goto error;
@@ -280,7 +287,7 @@ do_inotify_read (void)
/* Estimate space used by this event in the message. */
space -= 16 + 4 + strlen (in->in_name) + 4;
- /* Move pointer to next event. */
+/* Move pointer to next event. */
#ifdef __GNUC__
n += sizeof (struct inotify_event) + event->len;
#else
@@ -298,8 +305,8 @@ do_inotify_read (void)
/* Return the messages. */
return ret;
- error:
- xdr_free ((xdrproc_t) xdr_guestfs_int_inotify_event_list, (char *) ret);
+error:
+ xdr_free ((xdrproc_t)xdr_guestfs_int_inotify_event_list, (char *)ret);
free (ret);
return NULL;
}
@@ -339,17 +346,19 @@ do_inotify_files (void)
if (events->guestfs_int_inotify_event_list_len == 0) {
free (events);
- break; /* End of list of events. */
+ break; /* End of list of events. */
}
for (i = 0; i < events->guestfs_int_inotify_event_list_len; ++i) {
- const char *name = events->guestfs_int_inotify_event_list_val[i].in_name;
+ const char *name =
+ events->guestfs_int_inotify_event_list_val[i].in_name;
if (name[0] != '\0')
fprintf (fp, "%s\n", name);
}
- xdr_free ((xdrproc_t) xdr_guestfs_int_inotify_event_list, (char *) events);
+ xdr_free ((xdrproc_t)xdr_guestfs_int_inotify_event_list,
+ (char *)events);
free (events);
}
@@ -366,8 +375,8 @@ do_inotify_files (void)
while (fgets (buf, sizeof buf, fp) != NULL) {
size_t len = strlen (buf);
- if (len > 0 && buf[len-1] == '\n')
- buf[len-1] = '\0';
+ if (len > 0 && buf[len - 1] == '\n')
+ buf[len - 1] = '\0';
if (add_string (&ret, buf) == -1)
goto error;
@@ -382,7 +391,7 @@ do_inotify_files (void)
unlink (tempfile);
return ret.argv;
- error:
+error:
if (fp != NULL)
fclose (fp);
diff --git a/daemon/internal.c b/daemon/internal.c
index 5fb3d54..640a505 100644
--- a/daemon/internal.c
+++ b/daemon/internal.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* Internal functions are not part of the public API. */
@@ -46,8 +47,7 @@ do_internal_autosync (void)
}
/* NB: Only called when valgrinding the daemon. */
-int __attribute__((noreturn))
-do_internal_exit (void)
+int __attribute__ ((noreturn)) do_internal_exit (void)
{
/* Send a reply before exiting so the protocol doesn't get confused. */
reply (NULL, NULL);
diff --git a/daemon/is.c b/daemon/is.c
index 6b5c9a2..0d09a2d 100644
--- a/daemon/is.c
+++ b/daemon/is.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -48,7 +49,8 @@ do_is_file (const char *path, int followsymlinks)
followsymlinks = 0;
r = get_mode (path, &mode, followsymlinks);
- if (r <= 0) return r;
+ if (r <= 0)
+ return r;
return S_ISREG (mode);
}
@@ -63,7 +65,8 @@ do_is_dir (const char *path, int followsymlinks)
followsymlinks = 0;
r = get_mode (path, &mode, followsymlinks);
- if (r <= 0) return r;
+ if (r <= 0)
+ return r;
return S_ISDIR (mode);
}
@@ -78,7 +81,8 @@ do_is_chardev (const char *path, int followsymlinks)
followsymlinks = 0;
r = get_mode (path, &mode, followsymlinks);
- if (r <= 0) return r;
+ if (r <= 0)
+ return r;
return S_ISCHR (mode);
}
@@ -93,7 +97,8 @@ do_is_blockdev (const char *path, int followsymlinks)
followsymlinks = 0;
r = get_mode (path, &mode, followsymlinks);
- if (r <= 0) return r;
+ if (r <= 0)
+ return r;
return S_ISBLK (mode);
}
@@ -108,7 +113,8 @@ do_is_fifo (const char *path, int followsymlinks)
followsymlinks = 0;
r = get_mode (path, &mode, followsymlinks);
- if (r <= 0) return r;
+ if (r <= 0)
+ return r;
return S_ISFIFO (mode);
}
@@ -119,7 +125,8 @@ do_is_symlink (const char *path)
int r;
r = get_mode (path, &mode, 0);
- if (r <= 0) return r;
+ if (r <= 0)
+ return r;
return S_ISLNK (mode);
}
@@ -134,7 +141,8 @@ do_is_socket (const char *path, int followsymlinks)
followsymlinks = 0;
r = get_mode (path, &mode, followsymlinks);
- if (r <= 0) return r;
+ if (r <= 0)
+ return r;
return S_ISSOCK (mode);
}
@@ -152,9 +160,8 @@ get_mode (const char *path, mode_t *mode, int followsymlinks)
if (errno != ENOENT && errno != ENOTDIR) {
reply_with_perror ("stat: %s", path);
return -1;
- }
- else
- return 0; /* Doesn't exist, means return false. */
+ } else
+ return 0; /* Doesn't exist, means return false. */
}
if (mode)
diff --git a/daemon/isoinfo.c b/daemon/isoinfo.c
index 3e1acf8..cf7b80a 100644
--- a/daemon/isoinfo.c
+++ b/daemon/isoinfo.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,7 +31,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_isoinfo, isoinfo);
+GUESTFSD_EXT_CMD (str_isoinfo, isoinfo);
static int
parse_uint32 (uint32_t *ret, const char *str)
@@ -63,9 +64,8 @@ parse_time_t (int64_t *ret, const char *str)
return 0;
}
- if (sscanf (str, "%04d %02d %02d %02d:%02d:%02d",
- &tm.tm_year, &tm.tm_mon, &tm.tm_mday,
- &tm.tm_hour, &tm.tm_min, &tm.tm_sec) != 6) {
+ if (sscanf (str, "%04d %02d %02d %02d:%02d:%02d", &tm.tm_year,
&tm.tm_mon,
+ &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec) != 6) {
reply_with_error ("cannot parse date from isoinfo: %s", str);
return -1;
}
@@ -99,10 +99,10 @@ parse_isoinfo (char **lines)
}
/* Default each int field in the struct to -1. */
- ret->iso_volume_space_size = (uint32_t) -1;
- ret->iso_volume_set_size = (uint32_t) -1;
- ret->iso_volume_sequence_number = (uint32_t) -1;
- ret->iso_logical_block_size = (uint32_t) -1;
+ ret->iso_volume_space_size = (uint32_t)-1;
+ ret->iso_volume_set_size = (uint32_t)-1;
+ ret->iso_volume_sequence_number = (uint32_t)-1;
+ ret->iso_logical_block_size = (uint32_t)-1;
ret->iso_volume_creation_t = -1;
ret->iso_volume_modification_t = -1;
ret->iso_volume_expiration_t = -1;
@@ -111,69 +111,64 @@ parse_isoinfo (char **lines)
for (i = 0; lines[i] != NULL; ++i) {
if (STRPREFIX (lines[i], "System id: ")) {
ret->iso_system_id = strdup (&lines[i][11]);
- if (ret->iso_system_id == NULL) goto error;
- }
- else if (STRPREFIX (lines[i], "Volume id: ")) {
+ if (ret->iso_system_id == NULL)
+ goto error;
+ } else if (STRPREFIX (lines[i], "Volume id: ")) {
ret->iso_volume_id = strdup (&lines[i][11]);
- if (ret->iso_volume_id == NULL) goto error;
- }
- else if (STRPREFIX (lines[i], "Volume set id: ")) {
+ if (ret->iso_volume_id == NULL)
+ goto error;
+ } else if (STRPREFIX (lines[i], "Volume set id: ")) {
ret->iso_volume_set_id = strdup (&lines[i][15]);
- if (ret->iso_volume_set_id == NULL) goto error;
- }
- else if (STRPREFIX (lines[i], "Publisher id: ")) {
+ if (ret->iso_volume_set_id == NULL)
+ goto error;
+ } else if (STRPREFIX (lines[i], "Publisher id: ")) {
ret->iso_publisher_id = strdup (&lines[i][14]);
- if (ret->iso_publisher_id == NULL) goto error;
- }
- else if (STRPREFIX (lines[i], "Data preparer id: ")) {
+ if (ret->iso_publisher_id == NULL)
+ goto error;
+ } else if (STRPREFIX (lines[i], "Data preparer id: ")) {
ret->iso_data_preparer_id = strdup (&lines[i][18]);
- if (ret->iso_data_preparer_id == NULL) goto error;
- }
- else if (STRPREFIX (lines[i], "Application id: ")) {
+ if (ret->iso_data_preparer_id == NULL)
+ goto error;
+ } else if (STRPREFIX (lines[i], "Application id: ")) {
ret->iso_application_id = strdup (&lines[i][16]);
- if (ret->iso_application_id == NULL) goto error;
- }
- else if (STRPREFIX (lines[i], "Copyright File id: ")) {
+ if (ret->iso_application_id == NULL)
+ goto error;
+ } else if (STRPREFIX (lines[i], "Copyright File id: ")) {
ret->iso_copyright_file_id = strdup (&lines[i][19]);
- if (ret->iso_copyright_file_id == NULL) goto error;
- }
- else if (STRPREFIX (lines[i], "Abstract File id: ")) {
+ if (ret->iso_copyright_file_id == NULL)
+ goto error;
+ } else if (STRPREFIX (lines[i], "Abstract File id: ")) {
ret->iso_abstract_file_id = strdup (&lines[i][18]);
- if (ret->iso_abstract_file_id == NULL) goto error;
- }
- else if (STRPREFIX (lines[i], "Bibliographic File id: ")) {
+ if (ret->iso_abstract_file_id == NULL)
+ goto error;
+ } else if (STRPREFIX (lines[i], "Bibliographic File id: ")) {
ret->iso_bibliographic_file_id = strdup (&lines[i][23]);
- if (ret->iso_bibliographic_file_id == NULL) goto error;
- }
- else if (STRPREFIX (lines[i], "Volume size is: ")) {
+ if (ret->iso_bibliographic_file_id == NULL)
+ goto error;
+ } else if (STRPREFIX (lines[i], "Volume size is: ")) {
if (parse_uint32 (&ret->iso_volume_space_size, &lines[i][16]) == -1)
goto error;
- }
- else if (STRPREFIX (lines[i], "Volume set size is: ")) {
+ } else if (STRPREFIX (lines[i], "Volume set size is: ")) {
if (parse_uint32 (&ret->iso_volume_set_size, &lines[i][20]) == -1)
goto error;
- }
- else if (STRPREFIX (lines[i], "Volume set sequence number is: ")) {
- if (parse_uint32 (&ret->iso_volume_sequence_number, &lines[i][31]) ==
-1)
+ } else if (STRPREFIX (lines[i], "Volume set sequence number is: ")) {
+ if (parse_uint32 (&ret->iso_volume_sequence_number, &lines[i][31]) ==
+ -1)
goto error;
- }
- else if (STRPREFIX (lines[i], "Logical block size is: ")) {
+ } else if (STRPREFIX (lines[i], "Logical block size is: ")) {
if (parse_uint32 (&ret->iso_logical_block_size, &lines[i][23]) == -1)
goto error;
- }
- else if (STRPREFIX (lines[i], "Creation Date: ")) {
+ } else if (STRPREFIX (lines[i], "Creation Date: ")) {
if (parse_time_t (&ret->iso_volume_creation_t, &lines[i][19]) == -1)
goto error;
- }
- else if (STRPREFIX (lines[i], "Modification Date: ")) {
- if (parse_time_t (&ret->iso_volume_modification_t, &lines[i][19]) ==
-1)
+ } else if (STRPREFIX (lines[i], "Modification Date: ")) {
+ if (parse_time_t (&ret->iso_volume_modification_t, &lines[i][19]) ==
+ -1)
goto error;
- }
- else if (STRPREFIX (lines[i], "Expiration Date: ")) {
+ } else if (STRPREFIX (lines[i], "Expiration Date: ")) {
if (parse_time_t (&ret->iso_volume_expiration_t, &lines[i][19]) == -1)
goto error;
- }
- else if (STRPREFIX (lines[i], "Effective Date: ")) {
+ } else if (STRPREFIX (lines[i], "Effective Date: ")) {
if (parse_time_t (&ret->iso_volume_effective_t, &lines[i][19]) == -1)
goto error;
}
@@ -185,44 +180,53 @@ parse_isoinfo (char **lines)
*/
if (ret->iso_system_id == NULL) {
ret->iso_system_id = strdup ("");
- if (ret->iso_system_id == NULL) goto error;
+ if (ret->iso_system_id == NULL)
+ goto error;
}
if (ret->iso_volume_id == NULL) {
ret->iso_volume_id = strdup ("");
- if (ret->iso_volume_id == NULL) goto error;
+ if (ret->iso_volume_id == NULL)
+ goto error;
}
if (ret->iso_volume_set_id == NULL) {
ret->iso_volume_set_id = strdup ("");
- if (ret->iso_volume_set_id == NULL) goto error;
+ if (ret->iso_volume_set_id == NULL)
+ goto error;
}
if (ret->iso_publisher_id == NULL) {
ret->iso_publisher_id = strdup ("");
- if (ret->iso_publisher_id == NULL) goto error;
+ if (ret->iso_publisher_id == NULL)
+ goto error;
}
if (ret->iso_data_preparer_id == NULL) {
ret->iso_data_preparer_id = strdup ("");
- if (ret->iso_data_preparer_id == NULL) goto error;
+ if (ret->iso_data_preparer_id == NULL)
+ goto error;
}
if (ret->iso_application_id == NULL) {
ret->iso_application_id = strdup ("");
- if (ret->iso_application_id == NULL) goto error;
+ if (ret->iso_application_id == NULL)
+ goto error;
}
if (ret->iso_copyright_file_id == NULL) {
ret->iso_copyright_file_id = strdup ("");
- if (ret->iso_copyright_file_id == NULL) goto error;
+ if (ret->iso_copyright_file_id == NULL)
+ goto error;
}
if (ret->iso_abstract_file_id == NULL) {
ret->iso_abstract_file_id = strdup ("");
- if (ret->iso_abstract_file_id == NULL) goto error;
+ if (ret->iso_abstract_file_id == NULL)
+ goto error;
}
if (ret->iso_bibliographic_file_id == NULL) {
ret->iso_bibliographic_file_id = strdup ("");
- if (ret->iso_bibliographic_file_id == NULL) goto error;
+ if (ret->iso_bibliographic_file_id == NULL)
+ goto error;
}
return ret;
- error:
+error:
free (ret->iso_system_id);
free (ret->iso_volume_id);
free (ret->iso_volume_set_id);
diff --git a/daemon/journal.c b/daemon/journal.c
index a2a1c73..d82480b 100644
--- a/daemon/journal.c
+++ b/daemon/journal.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -50,7 +51,7 @@ optgroup_journal_available (void)
static sd_journal *j = NULL;
/* Clean up the handle on daemon exit. */
-void journal_finalize (void) __attribute__((destructor));
+void journal_finalize (void) __attribute__ ((destructor));
void
journal_finalize (void)
{
@@ -60,14 +61,15 @@ journal_finalize (void)
}
}
-#define NEED_HANDLE(errcode) \
- do { \
- if (!j) { \
- reply_with_error ("%s: you must call 'journal-open' first to
initialize the journal handle", __func__); \
- return (errcode); \
- } \
- } \
- while (0)
+#define NEED_HANDLE(errcode) \
+ do { \
+ if (!j) { \
+ reply_with_error ("%s: you must call 'journal-open' first to "
\
+ "initialize the journal handle", \
+ __func__); \
+ return (errcode); \
+ } \
+ } while (0)
int
do_journal_open (const char *directory)
@@ -88,7 +90,8 @@ do_journal_open (const char *directory)
r = sd_journal_open_directory (&j, buf, 0);
if (r < 0) {
- reply_with_perror_errno (-r, "sd_journal_open_directory: %s", directory);
+ reply_with_perror_errno (-r, "sd_journal_open_directory: %s",
+ directory);
return -1;
}
@@ -133,12 +136,12 @@ do_journal_skip (int64_t skip)
return 0;
if (skip > 0)
- r = sd_journal_next_skip (j, (uint64_t) skip);
+ r = sd_journal_next_skip (j, (uint64_t)skip);
else /* skip < 0 */
- r = sd_journal_previous_skip (j, (uint64_t) -skip);
+ r = sd_journal_previous_skip (j, (uint64_t)-skip);
if (r < 0) {
- reply_with_perror_errno (-r, "failed to skip %" PRIi64 " journal
entries",
- skip);
+ reply_with_perror_errno (
+ -r, "failed to skip %" PRIi64 " journal entries", skip);
return -1;
}
@@ -164,8 +167,8 @@ do_internal_journal_get (void)
sd_journal_restart_data (j);
while ((r = sd_journal_enumerate_data (j, &data, &len)) > 0) {
- //fprintf (stderr, "data[%zu] = %.*s\n", len, (int) len, (char*) data);
- len_be = htobe64 ((uint64_t) len);
+ // fprintf (stderr, "data[%zu] = %.*s\n", len, (int) len, (char*) data);
+ len_be = htobe64 ((uint64_t)len);
if (send_file_write (&len_be, sizeof (len_be)) < 0)
return -1;
if (send_file_write (data, len) < 0)
@@ -174,7 +177,7 @@ do_internal_journal_get (void)
/* Failure while enumerating the fields. */
if (r < 0) {
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
errno = -r;
perror ("sd_journal_enumerate_data");
return -1;
@@ -233,7 +236,7 @@ do_journal_get_realtime_usec (void)
return -1;
}
- return (int64_t) usec;
+ return (int64_t)usec;
}
#else /* !HAVE_SD_JOURNAL */
diff --git a/daemon/labels.c b/daemon/labels.c
index 20f27cb..d54bbf9 100644
--- a/daemon/labels.c
+++ b/daemon/labels.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -27,7 +28,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_dosfslabel, dosfslabel);
+GUESTFSD_EXT_CMD (str_dosfslabel, dosfslabel);
static int
dosfslabel (const char *device, const char *label)
@@ -71,8 +72,7 @@ do_set_label (const mountable_t *mountable, const char *label)
if (STREQ (vfs_type, "btrfs"))
r = btrfs_set_label (mountable->device, label);
- else if (STREQ (vfs_type, "msdos") ||
- STREQ (vfs_type, "fat") ||
+ else if (STREQ (vfs_type, "msdos") || STREQ (vfs_type, "fat") ||
STREQ (vfs_type, "vfat"))
r = dosfslabel (mountable->device, label);
@@ -86,7 +86,8 @@ do_set_label (const mountable_t *mountable, const char *label)
r = xfslabel (mountable->device, label);
else
- NOT_SUPPORTED (-1, "don't know how to set the label for '%s'
filesystems",
+ NOT_SUPPORTED (-1,
+ "don't know how to set the label for '%s'
filesystems",
vfs_type);
return r;
diff --git a/daemon/ldm.c b/daemon/ldm.c
index 71cdf46..15a3a2f 100644
--- a/daemon/ldm.c
+++ b/daemon/ldm.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -32,7 +33,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_ldmtool, ldmtool);
+GUESTFSD_EXT_CMD (str_ldmtool, ldmtool);
int
optgroup_ldm_available (void)
@@ -43,7 +44,8 @@ optgroup_ldm_available (void)
static int
glob_errfunc (const char *epath, int eerrno)
{
- fprintf (stderr, "glob: failure reading %s: %s\n", epath, strerror
(eerrno));
+ fprintf (stderr, "glob: failure reading %s: %s\n", epath,
+ strerror (eerrno));
return 1;
}
@@ -73,12 +75,13 @@ get_devices (const char *pattern)
goto error;
}
- if (end_stringsbuf (&ret) == -1) goto error;
+ if (end_stringsbuf (&ret) == -1)
+ goto error;
globfree (&devs);
return ret.argv;
- error:
+error:
globfree (&devs);
if (ret.argv != NULL)
free_stringslen (ret.argv, ret.size);
@@ -171,7 +174,7 @@ parse_json (const char *json, const char *func)
return tree;
}
-#define TYPE_ERROR ((char **) -1)
+#define TYPE_ERROR ((char **)-1)
static char **
json_value_to_string_list (yajl_val node)
@@ -180,13 +183,13 @@ json_value_to_string_list (yajl_val node)
yajl_val n;
size_t i, len;
- if (! YAJL_IS_ARRAY (node))
+ if (!YAJL_IS_ARRAY (node))
return TYPE_ERROR;
len = YAJL_GET_ARRAY (node)->len;
for (i = 0; i < len; ++i) {
n = YAJL_GET_ARRAY (node)->values[i];
- if (! YAJL_IS_STRING (n))
+ if (!YAJL_IS_STRING (n))
return TYPE_ERROR;
if (add_string (&strs, YAJL_GET_STRING (n)) == -1)
return NULL;
@@ -198,8 +201,8 @@ json_value_to_string_list (yajl_val node)
}
static char **
-parse_json_get_string_list (const char *json,
- const char *func, const char *cmd)
+parse_json_get_string_list (const char *json, const char *func,
+ const char *cmd)
{
char **ret;
yajl_val tree = NULL;
@@ -211,7 +214,8 @@ parse_json_get_string_list (const char *json,
ret = json_value_to_string_list (tree);
yajl_tree_free (tree);
if (ret == TYPE_ERROR) {
- reply_with_error ("output of '%s' was not a JSON array of strings",
cmd);
+ reply_with_error ("output of '%s' was not a JSON array of
strings",
+ cmd);
return NULL;
}
return ret;
@@ -231,7 +235,7 @@ parse_json_get_object_string (const char *json, const char *key, int
flags,
if (tree == NULL)
return NULL;
- if (! YAJL_IS_OBJECT (tree))
+ if (!YAJL_IS_OBJECT (tree))
goto bad_type;
len = YAJL_GET_OBJECT (tree)->len;
@@ -256,9 +260,10 @@ parse_json_get_object_string (const char *json, const char *key, int
flags,
}
}
- bad_type:
+bad_type:
reply_with_error ("output of '%s' was not a JSON object "
- "containing a key '%s' of type string", cmd, key);
+ "containing a key '%s' of type string",
+ cmd, key);
yajl_tree_free (tree);
return NULL;
}
@@ -275,7 +280,7 @@ parse_json_get_object_string_list (const char *json, const char *key,
if (tree == NULL)
return NULL;
- if (! YAJL_IS_OBJECT (tree))
+ if (!YAJL_IS_OBJECT (tree))
goto bad_type;
len = YAJL_GET_OBJECT (tree)->len;
@@ -290,7 +295,7 @@ parse_json_get_object_string_list (const char *json, const char *key,
}
}
- bad_type:
+bad_type:
reply_with_error ("output of '%s' was not a JSON object "
"containing a key '%s' of type array of strings",
cmd, key);
@@ -303,11 +308,11 @@ do_ldmtool_scan (void)
{
const char *empty_list[] = { NULL };
- return do_ldmtool_scan_devices ((char * const *) empty_list);
+ return do_ldmtool_scan_devices ((char *const *)empty_list);
}
char **
-do_ldmtool_scan_devices (char * const * devices)
+do_ldmtool_scan_devices (char *const *devices)
{
char **ret;
size_t i, nr_devices;
@@ -325,8 +330,8 @@ do_ldmtool_scan_devices (char * const * devices)
argv[0] = str_ldmtool;
argv[1] = "scan";
for (i = 0; i < nr_devices; ++i)
- argv[2+i] = devices[i];
- argv[2+i] = NULL;
+ argv[2 + i] = devices[i];
+ argv[2 + i] = NULL;
r = commandv (&out, &err, argv);
if (r == -1) {
@@ -344,14 +349,15 @@ do_ldmtool_diskgroup_name (const char *diskgroup)
int r;
CLEANUP_FREE char *out = NULL, *err = NULL;
- r = command (&out, &err, str_ldmtool, "show", "diskgroup",
diskgroup, NULL);
+ r = command (&out, &err, str_ldmtool, "show", "diskgroup",
diskgroup,
+ NULL);
if (r == -1) {
reply_with_error ("%s", err);
return NULL;
}
- return parse_json_get_object_string (out, "name", 0,
- __func__, "ldmtool show diskgroup");
+ return parse_json_get_object_string (out, "name", 0, __func__,
+ "ldmtool show diskgroup");
}
char **
@@ -360,15 +366,16 @@ do_ldmtool_diskgroup_volumes (const char *diskgroup)
int r;
CLEANUP_FREE char *out = NULL, *err = NULL;
- r = command (&out, &err, str_ldmtool, "show", "diskgroup",
diskgroup, NULL);
+ r = command (&out, &err, str_ldmtool, "show", "diskgroup",
diskgroup,
+ NULL);
if (r == -1) {
reply_with_error ("%s", err);
return NULL;
}
free (err);
- return parse_json_get_object_string_list (out, "volumes",
- __func__, "ldmtool show
diskgroup");
+ return parse_json_get_object_string_list (out, "volumes", __func__,
+ "ldmtool show diskgroup");
}
char **
@@ -377,14 +384,15 @@ do_ldmtool_diskgroup_disks (const char *diskgroup)
int r;
CLEANUP_FREE char *out = NULL, *err = NULL;
- r = command (&out, &err, str_ldmtool, "show", "diskgroup",
diskgroup, NULL);
+ r = command (&out, &err, str_ldmtool, "show", "diskgroup",
diskgroup,
+ NULL);
if (r == -1) {
reply_with_error ("%s", err);
return NULL;
}
- return parse_json_get_object_string_list (out, "disks",
- __func__, "ldmtool show
diskgroup");
+ return parse_json_get_object_string_list (out, "disks", __func__,
+ "ldmtool show diskgroup");
}
char *
@@ -393,15 +401,15 @@ do_ldmtool_volume_type (const char *diskgroup, const char *volume)
int r;
CLEANUP_FREE char *out = NULL, *err = NULL;
- r = command (&out, &err,
- str_ldmtool, "show", "volume", diskgroup, volume,
NULL);
+ r = command (&out, &err, str_ldmtool, "show", "volume",
diskgroup, volume,
+ NULL);
if (r == -1) {
reply_with_error ("%s", err);
return NULL;
}
- return parse_json_get_object_string (out, "type", 0,
- __func__, "ldmtool show volume");
+ return parse_json_get_object_string (out, "type", 0, __func__,
+ "ldmtool show volume");
}
char *
@@ -410,15 +418,16 @@ do_ldmtool_volume_hint (const char *diskgroup, const char *volume)
int r;
CLEANUP_FREE char *out = NULL, *err = NULL;
- r = command (&out, &err,
- str_ldmtool, "show", "volume", diskgroup, volume,
NULL);
+ r = command (&out, &err, str_ldmtool, "show", "volume",
diskgroup, volume,
+ NULL);
if (r == -1) {
reply_with_error ("%s", err);
return NULL;
}
- return parse_json_get_object_string (out, "hint", GET_STRING_NULL_TO_EMPTY,
- __func__, "ldmtool show volume");
+ return parse_json_get_object_string (out, "hint",
+ GET_STRING_NULL_TO_EMPTY, __func__,
+ "ldmtool show volume");
}
char **
@@ -427,13 +436,13 @@ do_ldmtool_volume_partitions (const char *diskgroup, const char
*volume)
int r;
CLEANUP_FREE char *out = NULL, *err = NULL;
- r = command (&out, &err,
- str_ldmtool, "show", "volume", diskgroup, volume,
NULL);
+ r = command (&out, &err, str_ldmtool, "show", "volume",
diskgroup, volume,
+ NULL);
if (r == -1) {
reply_with_error ("%s", err);
return NULL;
}
- return parse_json_get_object_string_list (out, "partitions",
- __func__, "ldmtool show volume");
+ return parse_json_get_object_string_list (out, "partitions", __func__,
+ "ldmtool show volume");
}
diff --git a/daemon/link.c b/daemon/link.c
index 43c55f8..87c4c5e 100644
--- a/daemon/link.c
+++ b/daemon/link.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,7 +31,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_ln, ln);
+GUESTFSD_EXT_CMD (str_ln, ln);
char *
do_readlink (const char *path)
@@ -45,7 +46,7 @@ do_readlink (const char *path)
return NULL;
}
- return link; /* caller frees */
+ return link; /* caller frees */
}
char **
@@ -56,7 +57,7 @@ do_internal_readlinklist (const char *path, char *const *names)
DECLARE_STRINGSBUF (ret);
CHROOT_IN;
- fd_cwd = open (path, O_RDONLY|O_DIRECTORY|O_CLOEXEC);
+ fd_cwd = open (path, O_RDONLY | O_DIRECTORY | O_CLOEXEC);
CHROOT_OUT;
if (fd_cwd == -1) {
@@ -139,12 +140,11 @@ _symlink (const char *flag, const char *target, const char
*linkname)
return -1;
}
- r = command (NULL, &err,
- str_ln, flag, "--", /* target could begin with '-' */
+ r = command (NULL, &err, str_ln, flag,
+ "--", /* target could begin with '-' */
target, buf_linkname, NULL);
if (r == -1) {
- reply_with_error ("ln %s: %s: %s: %s",
- flag, target, linkname, err);
+ reply_with_error ("ln %s: %s: %s: %s", flag, target, linkname, err);
return -1;
}
diff --git a/daemon/ls.c b/daemon/ls.c
index 0e2f110..fec3b44 100644
--- a/daemon/ls.c
+++ b/daemon/ls.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,7 +31,7 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_ls, ls);
+GUESTFSD_EXT_CMD (str_ls, ls);
/* Has one FileOut parameter. */
int
@@ -58,7 +59,8 @@ do_ls0 (const char *path)
while (1) {
errno = 0;
d = readdir (dir);
- if (d == NULL) break;
+ if (d == NULL)
+ break;
/* Ignore . and .. */
if (STREQ (d->d_name, ".") || STREQ (d->d_name, ".."))
@@ -70,7 +72,7 @@ do_ls0 (const char *path)
* output.
*/
len = strlen (d->d_name);
- if (send_file_write (d->d_name, len+1) < 0) {
+ if (send_file_write (d->d_name, len + 1) < 0) {
closedir (dir);
return -1;
}
@@ -78,18 +80,18 @@ do_ls0 (const char *path)
if (errno != 0) {
fprintf (stderr, "readdir: %s: %m\n", path);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
closedir (dir);
return -1;
}
if (closedir (dir) == -1) {
fprintf (stderr, "closedir: %s: %m\n", path);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
@@ -125,7 +127,7 @@ do_ll (const char *path)
return NULL;
}
- return out; /* caller frees */
+ return out; /* caller frees */
}
char *
@@ -158,5 +160,5 @@ do_llz (const char *path)
return NULL;
}
- return out; /* caller frees */
+ return out; /* caller frees */
}
diff --git a/daemon/luks.c b/daemon/luks.c
index 53bb820..9f13f83 100644
--- a/daemon/luks.c
+++ b/daemon/luks.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -28,7 +29,7 @@
#define MAX_ARGS 64
-GUESTFSD_EXT_CMD(str_cryptsetup, cryptsetup);
+GUESTFSD_EXT_CMD (str_cryptsetup, cryptsetup);
int
optgroup_luks_available (void)
@@ -70,7 +71,7 @@ write_key_to_temp (const char *key)
return tempfile;
- error:
+error:
unlink (tempfile);
free (tempfile);
return NULL;
@@ -111,14 +112,15 @@ luks_open (const char *device, const char *key, const char
*mapname,
ADD_ARG (argv, i, str_cryptsetup);
ADD_ARG (argv, i, "-d");
ADD_ARG (argv, i, tempfile);
- if (readonly) ADD_ARG (argv, i, "--readonly");
+ if (readonly)
+ ADD_ARG (argv, i, "--readonly");
ADD_ARG (argv, i, "luksOpen");
ADD_ARG (argv, i, device);
ADD_ARG (argv, i, mapname);
ADD_ARG (argv, i, NULL);
CLEANUP_FREE char *err = NULL;
- int r = commandv (NULL, &err, (const char * const *) argv);
+ int r = commandv (NULL, &err, (const char *const *)argv);
remove_temp (tempfile);
if (r == -1) {
@@ -147,8 +149,9 @@ int
do_luks_close (const char *device)
{
/* Must be /dev/mapper/... */
- if (! STRPREFIX (device, "/dev/mapper/")) {
- reply_with_error ("luks_close: you must call this on the /dev/mapper device
created by luks_open");
+ if (!STRPREFIX (device, "/dev/mapper/")) {
+ reply_with_error ("luks_close: you must call this on the /dev/mapper "
+ "device created by luks_open");
return -1;
}
@@ -193,7 +196,7 @@ luks_format (const char *device, const char *key, int keyslot,
ADD_ARG (argv, i, NULL);
CLEANUP_FREE char *err = NULL;
- int r = commandv (NULL, &err, (const char * const *) argv);
+ int r = commandv (NULL, &err, (const char *const *)argv);
remove_temp (tempfile);
if (r == -1) {
@@ -250,7 +253,7 @@ do_luks_add_key (const char *device, const char *key, const char
*newkey,
ADD_ARG (argv, i, NULL);
CLEANUP_FREE char *err = NULL;
- int r = commandv (NULL, &err, (const char * const *) argv);
+ int r = commandv (NULL, &err, (const char *const *)argv);
remove_temp (keyfile);
remove_temp (newkeyfile);
@@ -284,7 +287,7 @@ do_luks_kill_slot (const char *device, const char *key, int keyslot)
ADD_ARG (argv, i, NULL);
CLEANUP_FREE char *err = NULL;
- int r = commandv (NULL, &err, (const char * const *) argv);
+ int r = commandv (NULL, &err, (const char *const *)argv);
remove_temp (tempfile);
if (r == -1) {
diff --git a/daemon/lvm-filter.c b/daemon/lvm-filter.c
index eadc472..72d28e8 100644
--- a/daemon/lvm-filter.c
+++ b/daemon/lvm-filter.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -36,9 +37,9 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_lvm, lvm);
-GUESTFSD_EXT_CMD(str_cp, cp);
-GUESTFSD_EXT_CMD(str_rm, rm);
+GUESTFSD_EXT_CMD (str_lvm, lvm);
+GUESTFSD_EXT_CMD (str_cp, cp);
+GUESTFSD_EXT_CMD (str_rm, rm);
/* This runs during daemon start up and creates a complete copy of
* /etc/lvm so that we can modify it as we desire. We set
@@ -69,7 +70,7 @@ copy_lvm (void)
perror ("copy_lvm: stat: /etc/lvm");
return;
}
- if (! S_ISDIR (statbuf.st_mode)) {
+ if (!S_ISDIR (statbuf.st_mode)) {
fprintf (stderr, "copy_lvm: warning: /etc/lvm is not a directory\n");
return;
}
@@ -218,7 +219,8 @@ static int
rescan (void)
{
char lvm_cache[64];
- snprintf (lvm_cache, sizeof lvm_cache, "%s/lvm/cache/.cache",
lvm_system_dir);
+ snprintf (lvm_cache, sizeof lvm_cache, "%s/lvm/cache/.cache",
+ lvm_system_dir);
unlink (lvm_cache);
@@ -256,7 +258,7 @@ make_filter_strings (char *const *devices)
if (add_sprintf (&ret, "a|^%s$|", devices[i]) == -1)
goto error;
- if (!c_isdigit (devices[i][slen-1])) {
+ if (!c_isdigit (devices[i][slen - 1])) {
/* whole block device */
if (add_sprintf (&ret, "a|^%s[0-9]|", devices[i]) == -1)
goto error;
@@ -270,7 +272,7 @@ make_filter_strings (char *const *devices)
return ret.argv;
- error:
+error:
if (ret.argv)
free_stringslen (ret.argv, ret.size);
return NULL;
@@ -304,7 +306,7 @@ do_lvm_clear_filter (void)
if (deactivate () == -1)
return -1;
- if (set_filter ((char *const *) filters) == -1)
+ if (set_filter ((char *const *)filters) == -1)
return -1;
if (rescan () == -1)
diff --git a/daemon/lvm.c b/daemon/lvm.c
index 2b61357..e8e3f7c 100644
--- a/daemon/lvm.c
+++ b/daemon/lvm.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -32,7 +33,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_lvm, lvm);
+GUESTFSD_EXT_CMD (str_lvm, lvm);
int
optgroup_lvm2_available (void)
@@ -55,21 +56,21 @@ convert_lvm_output (char *out, const char *prefix)
p = out;
while (p) {
- pend = strchr (p, '\n'); /* Get the next line of output. */
+ pend = strchr (p, '\n'); /* Get the next line of output. */
if (pend) {
*pend = '\0';
pend++;
}
- while (*p && c_isspace (*p)) /* Skip any leading whitespace. */
+ while (*p && c_isspace (*p)) /* Skip any leading whitespace. */
p++;
/* Sigh, skip trailing whitespace too. "pvs", I'm looking at you. */
- len = strlen (p)-1;
+ len = strlen (p) - 1;
while (*p && c_isspace (p[len]))
p[len--] = '\0';
- if (!*p) { /* Empty line? Skip it. */
+ if (!*p) { /* Empty line? Skip it. */
p = pend;
continue;
}
@@ -121,21 +122,21 @@ filter_convert_old_lvs_output (char *out)
char *saveptr;
char *lv_attr, *vg_name, *lv_name;
- pend = strchr (p, '\n'); /* Get the next line of output. */
+ pend = strchr (p, '\n'); /* Get the next line of output. */
if (pend) {
*pend = '\0';
pend++;
}
- while (*p && c_isspace (*p)) /* Skip any leading whitespace. */
+ while (*p && c_isspace (*p)) /* Skip any leading whitespace. */
p++;
/* Sigh, skip trailing whitespace too. "pvs", I'm looking at you. */
- len = strlen (p)-1;
+ len = strlen (p) - 1;
while (*p && c_isspace (p[len]))
p[len--] = '\0';
- if (!*p) { /* Empty line? Skip it. */
+ if (!*p) { /* Empty line? Skip it. */
skip_line:
p = pend;
continue;
@@ -193,8 +194,8 @@ do_pvs (void)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (&out, &err,
- str_lvm, "pvs", "-o", "pv_name",
"--noheadings", NULL);
+ r = command (&out, &err, str_lvm, "pvs", "-o",
"pv_name", "--noheadings",
+ NULL);
if (r == -1) {
reply_with_error ("%s", err);
free (out);
@@ -211,8 +212,8 @@ do_vgs (void)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (&out, &err,
- str_lvm, "vgs", "-o", "vg_name",
"--noheadings", NULL);
+ r = command (&out, &err, str_lvm, "vgs", "-o",
"vg_name", "--noheadings",
+ NULL);
if (r == -1) {
reply_with_error ("%s", err);
free (out);
@@ -261,11 +262,8 @@ do_lvs (void)
return NULL;
if (has_S > 0) {
- r = command (&out, &err,
- str_lvm, "lvs",
- "-o", "vg_name,lv_name",
- "-S", "lv_role=public && lv_active=active",
- "--noheadings",
+ r = command (&out, &err, str_lvm, "lvs", "-o",
"vg_name,lv_name", "-S",
+ "lv_role=public && lv_active=active",
"--noheadings",
"--separator", "/", NULL);
if (r == -1) {
reply_with_error ("%s", err);
@@ -275,11 +273,9 @@ do_lvs (void)
return convert_lvm_output (out, "/dev/");
} else {
- r = command (&out, &err,
- str_lvm, "lvs",
- "-o", "lv_attr,vg_name,lv_name",
- "--noheadings",
- "--separator", ":", NULL);
+ r = command (&out, &err, str_lvm, "lvs", "-o",
+ "lv_attr,vg_name,lv_name", "--noheadings",
"--separator",
+ ":", NULL);
if (r == -1) {
reply_with_error ("%s", err);
free (out);
@@ -318,8 +314,7 @@ do_pvcreate (const char *device)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "pvcreate", "--force", device, NULL);
+ r = command (NULL, &err, str_lvm, "pvcreate", "--force",
device, NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -346,10 +341,10 @@ do_vgcreate (const char *volgroup, char *const *physvols)
argv[0] = str_lvm;
argv[1] = "vgcreate";
argv[2] = volgroup;
- for (i = 3; i < argc+1; ++i)
- argv[i] = physvols[i-3];
+ for (i = 3; i < argc + 1; ++i)
+ argv[i] = physvols[i - 3];
- r = commandv (NULL, &err, (const char * const*) argv);
+ r = commandv (NULL, &err, (const char *const *)argv);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -369,9 +364,8 @@ do_lvcreate (const char *logvol, const char *volgroup, int mbytes)
snprintf (size, sizeof size, "%d", mbytes);
- r = command (NULL, &err,
- str_lvm, "lvcreate",
- "-L", size, "-n", logvol, volgroup, NULL);
+ r = command (NULL, &err, str_lvm, "lvcreate", "-L", size,
"-n", logvol,
+ volgroup, NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -396,9 +390,8 @@ do_lvcreate_free (const char *logvol, const char *volgroup, int
percent)
char size[64];
snprintf (size, sizeof size, "%d%%FREE", percent);
- r = command (NULL, &err,
- str_lvm, "lvcreate",
- "-l", size, "-n", logvol, volgroup, NULL);
+ r = command (NULL, &err, str_lvm, "lvcreate", "-l", size,
"-n", logvol,
+ volgroup, NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -417,7 +410,7 @@ static int
ignore_same_size_error (const char *err)
{
return strstr (err, "New size (") != NULL &&
- strstr (err, "extents) matches existing size (") != NULL;
+ strstr (err, "extents) matches existing size (") != NULL;
}
int
@@ -429,9 +422,8 @@ do_lvresize (const char *logvol, int mbytes)
snprintf (size, sizeof size, "%d", mbytes);
- r = command (NULL, &err,
- str_lvm, "lvresize",
- "--force", "-L", size, logvol, NULL);
+ r = command (NULL, &err, str_lvm, "lvresize", "--force",
"-L", size,
+ logvol, NULL);
if (r == -1) {
if (!ignore_same_size_error (err)) {
reply_with_error ("%s", err);
@@ -456,8 +448,7 @@ do_lvresize_free (const char *logvol, int percent)
char size[64];
snprintf (size, sizeof size, "+%d%%FREE", percent);
- r = command (NULL, &err,
- str_lvm, "lvresize", "-l", size, logvol, NULL);
+ r = command (NULL, &err, str_lvm, "lvresize", "-l", size,
logvol, NULL);
if (r == -1) {
if (!ignore_same_size_error (err)) {
reply_with_error ("%s", err);
@@ -489,7 +480,7 @@ do_lvm_remove_all (void)
/* Deactivate the LV first. On Ubuntu, lvremove '-f' option
* does not remove active LVs reliably.
*/
- (void) command (NULL, NULL, str_lvm, "lvchange", "-an", xs[i],
NULL);
+ (void)command (NULL, NULL, str_lvm, "lvchange", "-an", xs[i],
NULL);
udev_settle ();
r = command (NULL, &err, str_lvm, "lvremove", "-f", xs[i],
NULL);
@@ -510,7 +501,7 @@ do_lvm_remove_all (void)
CLEANUP_FREE char *err = NULL;
/* Deactivate the VG first, see note above. */
- (void) command (NULL, NULL, str_lvm, "vgchange", "-an", xs[i],
NULL);
+ (void)command (NULL, NULL, str_lvm, "vgchange", "-an", xs[i],
NULL);
udev_settle ();
r = command (NULL, &err, str_lvm, "vgremove", "-f", xs[i],
NULL);
@@ -550,8 +541,7 @@ do_lvremove (const char *device)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "lvremove", "-f", device, NULL);
+ r = command (NULL, &err, str_lvm, "lvremove", "-f", device,
NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -568,8 +558,7 @@ do_vgremove (const char *device)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "vgremove", "-f", device, NULL);
+ r = command (NULL, &err, str_lvm, "vgremove", "-f", device,
NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -586,8 +575,7 @@ do_pvremove (const char *device)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "pvremove", "-ff", device, NULL);
+ r = command (NULL, &err, str_lvm, "pvremove", "-ff", device,
NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -604,8 +592,7 @@ do_pvresize (const char *device)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "pvresize", device, NULL);
+ r = command (NULL, &err, str_lvm, "pvresize", device, NULL);
if (r == -1) {
reply_with_error ("%s: %s", device, err);
return -1;
@@ -623,10 +610,8 @@ do_pvresize_size (const char *device, int64_t size)
char buf[32];
snprintf (buf, sizeof buf, "%" PRIi64 "b", size);
- r = command (NULL, &err,
- str_lvm, "pvresize",
- "--setphysicalvolumesize", buf,
- device, NULL);
+ r = command (NULL, &err, str_lvm, "pvresize",
"--setphysicalvolumesize",
+ buf, device, NULL);
if (r == -1) {
reply_with_error ("%s: %s", device, err);
return -1;
@@ -643,7 +628,7 @@ do_vg_activate (int activate, char *const *volgroups)
CLEANUP_FREE const char **argv = NULL;
argc = count_strings (volgroups) + 4;
- argv = malloc (sizeof (char *) * (argc+1));
+ argv = malloc (sizeof (char *) * (argc + 1));
if (argv == NULL) {
reply_with_perror ("malloc");
return -1;
@@ -653,10 +638,10 @@ do_vg_activate (int activate, char *const *volgroups)
argv[1] = "vgchange";
argv[2] = "-a";
argv[3] = activate ? "y" : "n";
- for (i = 4; i < argc+1; ++i)
- argv[i] = volgroups[i-4];
+ for (i = 4; i < argc + 1; ++i)
+ argv[i] = volgroups[i - 4];
- r = commandv (NULL, &err, (const char * const*) argv);
+ r = commandv (NULL, &err, (const char *const *)argv);
if (r == -1) {
reply_with_error ("vgchange: %s", err);
return -1;
@@ -680,9 +665,7 @@ do_lvrename (const char *logvol, const char *newlogvol)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "lvrename",
- logvol, newlogvol, NULL);
+ r = command (NULL, &err, str_lvm, "lvrename", logvol, newlogvol, NULL);
if (r == -1) {
reply_with_error ("%s -> %s: %s", logvol, newlogvol, err);
return -1;
@@ -699,9 +682,8 @@ do_vgrename (const char *volgroup, const char *newvolgroup)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "vgrename",
- volgroup, newvolgroup, NULL);
+ r = command (NULL, &err, str_lvm, "vgrename", volgroup, newvolgroup,
+ NULL);
if (r == -1) {
reply_with_error ("%s -> %s: %s", volgroup, newvolgroup, err);
return -1;
@@ -717,10 +699,8 @@ get_lvm_field (const char *cmd, const char *field, const char
*device)
{
char *out;
CLEANUP_FREE char *err = NULL;
- int r = command (&out, &err,
- str_lvm, cmd,
- "--unbuffered", "--noheadings", "-o",
field,
- device, NULL);
+ int r = command (&out, &err, str_lvm, cmd, "--unbuffered",
"--noheadings",
+ "-o", field, device, NULL);
if (r == -1) {
reply_with_error ("%s: %s", device, err);
free (out);
@@ -728,7 +708,7 @@ get_lvm_field (const char *cmd, const char *field, const char
*device)
}
trim (out);
- return out; /* Caller frees. */
+ return out; /* Caller frees. */
}
char *
@@ -754,10 +734,8 @@ get_lvm_fields (const char *cmd, const char *field, const char
*device)
{
CLEANUP_FREE char *out = NULL, *err = NULL;
- int r = command (&out, &err,
- str_lvm, cmd,
- "--unbuffered", "--noheadings", "-o",
field,
- device, NULL);
+ int r = command (&out, &err, str_lvm, cmd, "--unbuffered",
"--noheadings",
+ "-o", field, device, NULL);
if (r == -1) {
reply_with_error ("%s: %s", device, err);
return NULL;
@@ -793,8 +771,7 @@ do_vgscan (void)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "vgscan", NULL);
+ r = command (NULL, &err, str_lvm, "vgscan", NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -882,7 +859,7 @@ do_lvm_canonical_lv_name (const char *device)
return NULL;
}
- return canonical; /* caller frees */
+ return canonical; /* caller frees */
}
/* List everything in /dev/mapper which *isn't* an LV (RHBZ#688062). */
@@ -905,7 +882,8 @@ do_list_dm_devices (void)
errno = 0;
d = readdir (dir);
- if (d == NULL) break;
+ if (d == NULL)
+ break;
/* Ignore . and .. */
if (STREQ (d->d_name, ".") || STREQ (d->d_name, ".."))
@@ -991,7 +969,7 @@ do_vgmeta (const char *vg, size_t *size_r)
}
/* Now read back the temporary file. */
- fd = open (tmp, O_RDONLY|O_CLOEXEC);
+ fd = open (tmp, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
reply_with_error ("%s", tmp);
return NULL;
@@ -1047,7 +1025,7 @@ do_vgmeta (const char *vg, size_t *size_r)
*size_r = size;
- return buf; /* caller will free */
+ return buf; /* caller will free */
}
int
@@ -1056,8 +1034,7 @@ do_pvchange_uuid (const char *device)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "pvchange", "-u", device, NULL);
+ r = command (NULL, &err, str_lvm, "pvchange", "-u", device,
NULL);
if (r == -1) {
reply_with_error ("%s: %s", device, err);
return -1;
@@ -1074,8 +1051,7 @@ do_pvchange_uuid_all (void)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "pvchange", "-u", "-a", NULL);
+ r = command (NULL, &err, str_lvm, "pvchange", "-u",
"-a", NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
@@ -1092,8 +1068,7 @@ do_vgchange_uuid (const char *vg)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "vgchange", "-u", vg, NULL);
+ r = command (NULL, &err, str_lvm, "vgchange", "-u", vg, NULL);
if (r == -1) {
reply_with_error ("%s: %s", vg, err);
return -1;
@@ -1110,8 +1085,7 @@ do_vgchange_uuid_all (void)
CLEANUP_FREE char *err = NULL;
int r;
- r = command (NULL, &err,
- str_lvm, "vgchange", "-u", NULL);
+ r = command (NULL, &err, str_lvm, "vgchange", "-u", NULL);
if (r == -1) {
reply_with_error ("%s", err);
return -1;
diff --git a/daemon/md.c b/daemon/md.c
index 5d60b62..62b352a 100644
--- a/daemon/md.c
+++ b/daemon/md.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -37,7 +38,7 @@
#include "optgroups.h"
#include "c-ctype.h"
-GUESTFSD_EXT_CMD(str_mdadm, mdadm);
+GUESTFSD_EXT_CMD (str_mdadm, mdadm);
int
optgroup_mdadm_available (void)
@@ -65,9 +66,8 @@ count_bits (uint64_t bitmap)
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_md_create (const char *name, char *const *devices,
- int64_t missingbitmap, int nrdevices, int spare,
- int64_t chunk, const char *level)
+do_md_create (const char *name, char *const *devices, int64_t missingbitmap,
+ int nrdevices, int spare, int64_t chunk, const char *level)
{
char nrdevices_s[32];
char spare_s[32];
@@ -75,7 +75,7 @@ do_md_create (const char *name, char *const *devices,
size_t j;
int r;
CLEANUP_FREE char *err = NULL;
- uint64_t umissingbitmap = (uint64_t) missingbitmap;
+ uint64_t umissingbitmap = (uint64_t)missingbitmap;
/* Check the optional parameters and set defaults where appropriate. */
if (!(optargs_bitmask & GUESTFS_MD_CREATE_MISSINGBITMAP_BITMASK))
@@ -86,8 +86,7 @@ do_md_create (const char *name, char *const *devices,
reply_with_error ("spare must not be negative");
return -1;
}
- }
- else
+ } else
spare = 0;
if (optargs_bitmask & GUESTFS_MD_CREATE_NRDEVICES_BITMASK) {
@@ -95,28 +94,27 @@ do_md_create (const char *name, char *const *devices,
reply_with_error ("nrdevices is less than 2");
return -1;
}
- }
- else
+ } else
nrdevices = count_strings (devices) + count_bits (umissingbitmap);
if (optargs_bitmask & GUESTFS_MD_CREATE_LEVEL_BITMASK) {
if (STRNEQ (level, "linear") && STRNEQ (level, "raid0")
&&
STRNEQ (level, "0") && STRNEQ (level, "stripe")
&&
STRNEQ (level, "raid1") && STRNEQ (level, "1")
&&
- STRNEQ (level, "mirror") &&
- STRNEQ (level, "raid4") && STRNEQ (level, "4")
&&
- STRNEQ (level, "raid5") && STRNEQ (level, "5")
&&
- STRNEQ (level, "raid6") && STRNEQ (level, "6")
&&
- STRNEQ (level, "raid10") && STRNEQ (level, "10")) {
+ STRNEQ (level, "mirror") && STRNEQ (level, "raid4")
&&
+ STRNEQ (level, "4") && STRNEQ (level, "raid5")
&&
+ STRNEQ (level, "5") && STRNEQ (level, "raid6")
&&
+ STRNEQ (level, "6") && STRNEQ (level, "raid10")
&&
+ STRNEQ (level, "10")) {
reply_with_error ("unknown level parameter: %s", level);
return -1;
}
- }
- else
+ } else
level = "raid1";
if (optargs_bitmask & GUESTFS_MD_CREATE_CHUNK_BITMASK) {
- /* chunk is bytes in the libguestfs API, but K when we pass it to mdadm */
+ /* chunk is bytes in the libguestfs API, but K when we pass it to mdadm
+ */
if ((chunk & 1023) != 0) {
reply_with_error ("chunk size must be a multiple of 1024 bytes");
return -1;
@@ -126,7 +124,8 @@ do_md_create (const char *name, char *const *devices,
/* Check invariant. */
if (count_strings (devices) + count_bits (umissingbitmap) !=
(size_t) (nrdevices + spare)) {
- reply_with_error ("devices (%zu) + bits set in missingbitmap (%zu) is not equal
to nrdevices (%d) + spare (%d)",
+ reply_with_error ("devices (%zu) + bits set in missingbitmap (%zu) is "
+ "not equal to nrdevices (%d) + spare (%d)",
count_strings (devices), count_bits (umissingbitmap),
nrdevices, spare);
return -1;
@@ -189,7 +188,8 @@ do_md_create (const char *name, char *const *devices,
static int
glob_errfunc (const char *epath, int eerrno)
{
- fprintf (stderr, "glob: failure reading %s: %s\n", epath, strerror
(eerrno));
+ fprintf (stderr, "glob: failure reading %s: %s\n", epath,
+ strerror (eerrno));
return 1;
}
@@ -265,15 +265,17 @@ do_list_md_devices (void)
continue;
}
- if (add_string_nodup (&ret, dev) == -1) goto error;
+ if (add_string_nodup (&ret, dev) == -1)
+ goto error;
}
- if (end_stringsbuf (&ret) == -1) goto error;
+ if (end_stringsbuf (&ret) == -1)
+ goto error;
globfree (&mds);
return ret.argv;
- error:
+error:
globfree (&mds);
if (ret.argv != NULL)
free_stringslen (ret.argv, ret.size);
@@ -315,14 +317,17 @@ do_md_detail (const char *md)
char *line = lines[i];
/* Skip blank lines (shouldn't happen) */
- if (line[0] == '\0') continue;
+ if (line[0] == '\0')
+ continue;
/* Split the line in 2 at the equals sign */
char *eq = strchr (line, '=');
if (eq) {
- *eq = '\0'; eq++;
+ *eq = '\0';
+ eq++;
- /* Remove the MD_ prefix from the key and translate the remainder to lower
+ /* Remove the MD_ prefix from the key and translate the remainder to
+ * lower
* case */
if (STRPREFIX (line, "MD_")) {
line += 3;
@@ -332,12 +337,14 @@ do_md_detail (const char *md)
}
/* Add the key/value pair to the output */
- if (add_string (&ret, line) == -1 ||
- add_string (&ret, eq) == -1) goto error;
+ if (add_string (&ret, line) == -1 || add_string (&ret, eq) == -1)
+ goto error;
} else {
- /* Ignore lines with no equals sign (shouldn't happen). Log to stderr so
+ /* Ignore lines with no equals sign (shouldn't happen). Log to stderr
+ * so
* it will show up in LIBGUESTFS_DEBUG. */
- fprintf (stderr, "md-detail: unexpected mdadm output ignored: %s",
line);
+ fprintf (stderr, "md-detail: unexpected mdadm output ignored: %s",
+ line);
}
}
@@ -346,7 +353,7 @@ do_md_detail (const char *md)
return ret.argv;
- error:
+error:
if (ret.argv != NULL)
free_stringslen (ret.argv, ret.size);
@@ -359,7 +366,7 @@ do_md_stop (const char *md)
int r;
CLEANUP_FREE char *err = NULL;
- const char *mdadm[] = { str_mdadm, "--stop", md, NULL};
+ const char *mdadm[] = { str_mdadm, "--stop", md, NULL };
r = commandv (NULL, &err, mdadm);
if (r == -1) {
reply_with_error ("%s", err);
@@ -401,7 +408,7 @@ parse_md_stat_line (char *line)
*/
spaces = count_spaces (line);
ret->guestfs_int_mdstat_list_val =
- calloc (spaces+1, sizeof (struct guestfs_int_mdstat));
+ calloc (spaces + 1, sizeof (struct guestfs_int_mdstat));
if (ret->guestfs_int_mdstat_list_val == NULL) {
reply_with_perror ("calloc");
free (ret);
@@ -414,7 +421,7 @@ parse_md_stat_line (char *line)
next = &line[len];
else {
line[len] = '\0';
- next = &line[len+1];
+ next = &line[len + 1];
}
if (verbose)
@@ -430,7 +437,7 @@ parse_md_stat_line (char *line)
if (p > q)
continue;
- ret->guestfs_int_mdstat_list_len = n+1;
+ ret->guestfs_int_mdstat_list_len = n + 1;
t = &ret->guestfs_int_mdstat_list_val[n];
/* Device name is everything before the '[' character, but we
@@ -448,7 +455,7 @@ parse_md_stat_line (char *line)
}
/* Device index is the number after '['. */
- line = p+1;
+ line = p + 1;
*q = '\0';
if (sscanf (line, "%" SCNi32, &t->mdstat_index) != 1) {
reply_with_error ("not a device number: %s", line);
@@ -456,9 +463,9 @@ parse_md_stat_line (char *line)
}
/* Looking for flags "(F)(S)...". */
- line = q+1;
+ line = q + 1;
len = strlen (line);
- t->mdstat_flags = malloc (len+1);
+ t->mdstat_flags = malloc (len + 1);
if (!t->mdstat_flags) {
reply_with_error ("malloc");
goto error;
@@ -475,8 +482,8 @@ parse_md_stat_line (char *line)
return ret;
- error:
- for (i = 0; i < spaces+1; ++i) {
+error:
+ for (i = 0; i < spaces + 1; ++i) {
free (ret->guestfs_int_mdstat_list_val[i].mdstat_device);
free (ret->guestfs_int_mdstat_list_val[i].mdstat_flags);
}
@@ -507,10 +514,10 @@ do_md_stat (const char *md)
/* Search for a line which begins with "<md> : ". */
while ((n = getline (&line, &allocsize, fp)) != -1) {
- if (STRPREFIX (line, md) &&
- line[mdlen] == ' ' && line[mdlen+1] == ':' &&
line[mdlen+2] == ' ') {
+ if (STRPREFIX (line, md) && line[mdlen] == ' ' &&
+ line[mdlen + 1] == ':' && line[mdlen + 2] == ' ') {
/* Found it. */
- ret = parse_md_stat_line (&line[mdlen+3]);
+ ret = parse_md_stat_line (&line[mdlen + 3]);
if (!ret) {
fclose (fp);
return NULL;
@@ -525,7 +532,7 @@ do_md_stat (const char *md)
if (fclose (fp) == EOF) {
reply_with_perror ("fclose: %s", "/proc/mdstat");
- xdr_free ((xdrproc_t) xdr_guestfs_int_mdstat_list, (char *) ret);
+ xdr_free ((xdrproc_t)xdr_guestfs_int_mdstat_list, (char *)ret);
return NULL;
}
diff --git a/daemon/mkfs.c b/daemon/mkfs.c
index cef3574..c9f70dd 100644
--- a/daemon/mkfs.c
+++ b/daemon/mkfs.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,8 +31,8 @@
#define MAX_ARGS 64
-GUESTFSD_EXT_CMD(str_mke2fs, mke2fs);
-GUESTFSD_EXT_CMD(str_mkfs, mkfs);
+GUESTFSD_EXT_CMD (str_mke2fs, mke2fs);
+GUESTFSD_EXT_CMD (str_mkfs, mkfs);
/* Takes optional arguments, consult optargs_bitmask. */
int
@@ -111,8 +112,7 @@ do_mkfs (const char *fstype, const char *device, int blocksize,
return -1;
}
- if (STREQ (fstype, "vfat") ||
- STREQ (fstype, "msdos")) {
+ if (STREQ (fstype, "vfat") || STREQ (fstype, "msdos")) {
/* For VFAT map the blocksize into a cluster size. However we
* have to determine the block device sector size in order to do
* this.
@@ -123,33 +123,33 @@ do_mkfs (const char *fstype, const char *device, int blocksize,
int sectors_per_cluster = blocksize / ss;
if (sectors_per_cluster < 1 || sectors_per_cluster > 128) {
- reply_with_error ("unsupported cluster size for %s filesystem (requested
cluster size = %d, sector size = %d, trying sectors per cluster = %d)",
+ reply_with_error ("unsupported cluster size for %s filesystem "
+ "(requested cluster size = %d, sector size = %d, "
+ "trying sectors per cluster = %d)",
fstype, blocksize, ss, sectors_per_cluster);
return -1;
}
- snprintf (blocksize_str, sizeof blocksize_str, "%d",
sectors_per_cluster);
+ snprintf (blocksize_str, sizeof blocksize_str, "%d",
+ sectors_per_cluster);
ADD_ARG (argv, i, "-s");
ADD_ARG (argv, i, blocksize_str);
- }
- else if (STREQ (fstype, "ntfs")) {
+ } else if (STREQ (fstype, "ntfs")) {
/* For NTFS map the blocksize into a cluster size. */
snprintf (blocksize_str, sizeof blocksize_str, "%d", blocksize);
ADD_ARG (argv, i, "-c");
ADD_ARG (argv, i, blocksize_str);
- }
- else if (STREQ (fstype, "btrfs")) {
+ } else if (STREQ (fstype, "btrfs")) {
/* For btrfs, blocksize cannot be specified (RHBZ#807905). */
- reply_with_error ("blocksize cannot be set on btrfs filesystems, use
'mkfs-btrfs'");
+ reply_with_error (
+ "blocksize cannot be set on btrfs filesystems, use
'mkfs-btrfs'");
return -1;
- }
- else if (STREQ (fstype, "xfs")) {
+ } else if (STREQ (fstype, "xfs")) {
/* mkfs -t xfs -b size=<size> (RHBZ#981715). */
snprintf (blocksize_str, sizeof blocksize_str, "size=%d", blocksize);
ADD_ARG (argv, i, "-b");
ADD_ARG (argv, i, blocksize_str);
- }
- else {
+ } else {
/* For all other filesystem types, try the -b option. */
snprintf (blocksize_str, sizeof blocksize_str, "%d", blocksize);
ADD_ARG (argv, i, "-b");
@@ -164,7 +164,8 @@ do_mkfs (const char *fstype, const char *device, int blocksize,
if (optargs_bitmask & GUESTFS_MKFS_INODE_BITMASK) {
if (!extfs) {
- reply_with_error ("inode size (-I) can only be set on ext2/3/4
filesystems");
+ reply_with_error (
+ "inode size (-I) can only be set on ext2/3/4 filesystems");
return -1;
}
@@ -180,7 +181,8 @@ do_mkfs (const char *fstype, const char *device, int blocksize,
if (optargs_bitmask & GUESTFS_MKFS_SECTORSIZE_BITMASK) {
if (!STREQ (fstype, "ufs")) {
- reply_with_error ("sector size (-S) can only be set on ufs
filesystems");
+ reply_with_error (
+ "sector size (-S) can only be set on ufs filesystems");
return -1;
}
@@ -204,33 +206,28 @@ do_mkfs (const char *fstype, const char *device, int blocksize,
ADD_ARG (argv, i, "-L");
ADD_ARG (argv, i, label);
- }
- else if (STREQ (fstype, "fat") || STREQ (fstype, "vfat") ||
- STREQ (fstype, "msdos")) {
+ } else if (STREQ (fstype, "fat") || STREQ (fstype, "vfat") ||
+ STREQ (fstype, "msdos")) {
ADD_ARG (argv, i, "-n");
ADD_ARG (argv, i, label);
- }
- else if (STREQ (fstype, "ntfs")) {
+ } else if (STREQ (fstype, "ntfs")) {
ADD_ARG (argv, i, "-L");
ADD_ARG (argv, i, label);
- }
- else if (STREQ (fstype, "xfs")) {
+ } else if (STREQ (fstype, "xfs")) {
if (strlen (label) > XFS_LABEL_MAX) {
- reply_with_error ("%s: xfs labels are limited to %d bytes",
- label, XFS_LABEL_MAX);
+ reply_with_error ("%s: xfs labels are limited to %d bytes", label,
+ XFS_LABEL_MAX);
return -1;
}
ADD_ARG (argv, i, "-L");
ADD_ARG (argv, i, label);
- }
- else if (STREQ (fstype, "btrfs")) {
+ } else if (STREQ (fstype, "btrfs")) {
ADD_ARG (argv, i, "-L");
ADD_ARG (argv, i, label);
- }
- else {
- reply_with_error ("don't know how to set the label for '%s'
filesystems",
- fstype);
+ } else {
+ reply_with_error (
+ "don't know how to set the label for '%s' filesystems",
fstype);
return -1;
}
}
diff --git a/daemon/mknod.c b/daemon/mknod.c
index d2ae02d..b6ae25f 100644
--- a/daemon/mknod.c
+++ b/daemon/mknod.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -38,13 +39,13 @@ optgroup_mknod_available (void)
return 1;
}
-#define CHECK_MODE \
- do { \
- if ((mode & ~07777) != 0) { \
+#define CHECK_MODE \
+ do { \
+ if ((mode & ~07777) != 0) { \
reply_with_error ("%o: mode must specify only file permission bits", \
- (unsigned int) mode); \
- return -1; \
- } \
+ (unsigned int)mode); \
+ return -1; \
+ } \
} while (0)
int
diff --git a/daemon/mktemp.c b/daemon/mktemp.c
index 39231adf..516f40b 100644
--- a/daemon/mktemp.c
+++ b/daemon/mktemp.c
@@ -14,7 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -49,8 +50,7 @@ do_mkdtemp (const char *template)
}
char *
-do_mktemp (const char *template,
- const char *suffix)
+do_mktemp (const char *template, const char *suffix)
{
char *dest_name = NULL;
size_t suffix_len = 0;
@@ -83,7 +83,7 @@ do_mktemp (const char *template,
}
CHROOT_IN;
- fd = mkstemps (dest_name, (int) suffix_len);
+ fd = mkstemps (dest_name, (int)suffix_len);
CHROOT_OUT;
if (fd == -1) {
diff --git a/daemon/modprobe.c b/daemon/modprobe.c
index 0b7896a..1e5f9d1 100644
--- a/daemon/modprobe.c
+++ b/daemon/modprobe.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -27,7 +28,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_modprobe, modprobe);
+GUESTFSD_EXT_CMD (str_modprobe, modprobe);
int
optgroup_linuxmodules_available (void)
diff --git a/daemon/mount.c b/daemon/mount.c
index ef51d48..c41fd8c 100644
--- a/daemon/mount.c
+++ b/daemon/mount.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -33,8 +34,8 @@
#define MAX_ARGS 64
-GUESTFSD_EXT_CMD(str_mount, mount);
-GUESTFSD_EXT_CMD(str_umount, umount);
+GUESTFSD_EXT_CMD (str_mount, mount);
+GUESTFSD_EXT_CMD (str_umount, umount);
/* You must mount something on "/" first before many operations.
* Hence we have an internal function which can test if something is
@@ -96,7 +97,8 @@ is_device_mounted (const char *device)
while ((m = getmntent (fp)) != NULL) {
if ((sysroot_len > 0 && STREQ (m->mnt_dir, sysroot)) ||
- (STRPREFIX (m->mnt_dir, sysroot) && m->mnt_dir[sysroot_len] ==
'/')) {
+ (STRPREFIX (m->mnt_dir, sysroot) &&
+ m->mnt_dir[sysroot_len] == '/')) {
if (stat (m->mnt_fsname, &stat2) == 0) {
if (stat1.st_rdev == stat2.st_rdev) {
/* found it */
@@ -141,7 +143,8 @@ do_mount_vfs (const char *options, const char *vfstype,
return -1;
}
if (!S_ISDIR (statbuf.st_mode)) {
- reply_with_perror ("mount: %s: mount point is not a directory",
mountpoint);
+ reply_with_perror ("mount: %s: mount point is not a directory",
+ mountpoint);
return -1;
}
@@ -150,20 +153,20 @@ do_mount_vfs (const char *options, const char *vfstype,
int
mount_vfs_nochroot (const char *options, const char *vfstype,
- const mountable_t *mountable,
- const char *mp, const char *user_mp)
+ const mountable_t *mountable, const char *mp,
+ const char *user_mp)
{
CLEANUP_FREE char *options_plus = NULL;
const char *device = mountable->device;
if (mountable->type == MOUNTABLE_BTRFSVOL) {
if (options && strlen (options) > 0) {
- if (asprintf (&options_plus, "subvol=%s,%s",
- mountable->volume, options) == -1) {
+ if (asprintf (&options_plus, "subvol=%s,%s", mountable->volume,
+ options) == -1) {
reply_with_perror ("asprintf");
return -1;
}
}
-
+
else {
if (asprintf (&options_plus, "subvol=%s", mountable->volume) ==
-1) {
reply_with_perror ("asprintf");
@@ -175,16 +178,15 @@ mount_vfs_nochroot (const char *options, const char *vfstype,
CLEANUP_FREE char *error = NULL;
int r;
if (vfstype)
- r = command (NULL, &error,
- str_mount, "-o", options_plus ? options_plus : options,
- "-t", vfstype, device, mp, NULL);
- else
- r = command (NULL, &error,
- str_mount, "-o", options_plus ? options_plus : options,
+ r = command (NULL, &error, str_mount, "-o",
+ options_plus ? options_plus : options, "-t", vfstype,
device, mp, NULL);
+ else
+ r = command (NULL, &error, str_mount, "-o",
+ options_plus ? options_plus : options, device, mp, NULL);
if (r == -1) {
- reply_with_error ("%s on %s (options: '%s'): %s",
- device, user_mp, options, error);
+ reply_with_error ("%s on %s (options: '%s'): %s", device, user_mp,
+ options, error);
return -1;
}
@@ -212,8 +214,7 @@ do_mount_options (const char *options, const mountable_t *mountable,
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_umount (const char *pathordevice,
- int force, int lazyunmount)
+do_umount (const char *pathordevice, int force, int lazyunmount)
{
int r;
CLEANUP_FREE char *err = NULL;
@@ -223,8 +224,7 @@ do_umount (const char *pathordevice,
size_t i = 0;
is_dev = STREQLEN (pathordevice, "/dev/", 5);
- buf = is_dev ? strdup (pathordevice)
- : sysroot_path (pathordevice);
+ buf = is_dev ? strdup (pathordevice) : sysroot_path (pathordevice);
if (buf == NULL) {
reply_with_perror ("malloc");
return -1;
@@ -283,16 +283,14 @@ mounts_or_mountpoints (int mp)
endmntent (fp);
return NULL;
}
- if (mp &&
- add_string (&ret, "/") == -1)
+ if (mp && add_string (&ret, "/") == -1)
goto error;
}
/* Or allow a mount directory like "/sysroot/...". */
if (STRPREFIX (m->mnt_dir, sysroot) && m->mnt_dir[sysroot_len] ==
'/') {
if (add_string (&ret, m->mnt_fsname) == -1)
goto error;
- if (mp &&
- add_string (&ret, &m->mnt_dir[sysroot_len]) == -1)
+ if (mp && add_string (&ret, &m->mnt_dir[sysroot_len]) == -1)
goto error;
}
}
@@ -351,8 +349,8 @@ do_mountpoints (void)
static int
compare_longest_first (const void *vp1, const void *vp2)
{
- char * const *p1 = (char * const *) vp1;
- char * const *p2 = (char * const *) vp2;
+ char *const *p1 = (char *const *)vp1;
+ char *const *p2 = (char *const *)vp2;
int n1 = strlen (*p1);
int n2 = strlen (*p2);
return n2 - n1;
@@ -384,7 +382,8 @@ do_umount_all (void)
while ((m = getmntent (fp)) != NULL) {
if (verbose) {
- fprintf (stderr, "umount-all: /proc/mounts: fsname=%s dir=%s type=%s opts=%s
freq=%d passno=%d\n",
+ fprintf (stderr, "umount-all: /proc/mounts: fsname=%s dir=%s type=%s "
+ "opts=%s freq=%d passno=%d\n",
m->mnt_fsname, m->mnt_dir, m->mnt_type, m->mnt_opts,
m->mnt_freq, m->mnt_passno);
}
@@ -408,7 +407,8 @@ do_umount_all (void)
endmntent (fp);
if (mounts.size > 0)
- qsort (mounts.argv, mounts.size, sizeof (char *), compare_longest_first);
+ qsort (mounts.argv, mounts.size, sizeof (char *),
+ compare_longest_first);
/* Unmount them. */
for (i = 0; i < mounts.size; ++i) {
diff --git a/daemon/mountable.c b/daemon/mountable.c
index 48c6c53..bacd0ee 100644
--- a/daemon/mountable.c
+++ b/daemon/mountable.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/daemon/ntfs.c b/daemon/ntfs.c
index e191a19..55bccb6 100644
--- a/daemon/ntfs.c
+++ b/daemon/ntfs.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -31,10 +32,10 @@
#define MAX_ARGS 64
-GUESTFSD_EXT_CMD(str_ntfs3g_probe, ntfs-3g.probe);
-GUESTFSD_EXT_CMD(str_ntfsresize, ntfsresize);
-GUESTFSD_EXT_CMD(str_ntfsfix, ntfsfix);
-GUESTFSD_EXT_CMD(str_ntfslabel, ntfslabel);
+GUESTFSD_EXT_CMD (str_ntfs3g_probe, ntfs - 3g.probe);
+GUESTFSD_EXT_CMD (str_ntfsresize, ntfsresize);
+GUESTFSD_EXT_CMD (str_ntfsfix, ntfsfix);
+GUESTFSD_EXT_CMD (str_ntfslabel, ntfslabel);
int
optgroup_ntfs3g_available (void)
@@ -65,8 +66,8 @@ ntfs_get_label (const char *device)
/* Trim trailing \n if present. */
len = strlen (out);
- if (len > 0 && out[len-1] == '\n')
- out[len-1] = '\0';
+ if (len > 0 && out[len - 1] == '\n')
+ out[len - 1] = '\0';
return out;
}
@@ -178,7 +179,8 @@ ntfs_minimum_size (const char *device)
if (verbose) {
for (i = 0; lines[i] != NULL; ++i)
- fprintf (stderr, "ntfs_minimum_size: lines[%zu] = \"%s\"\n", i,
lines[i]);
+ fprintf (stderr, "ntfs_minimum_size: lines[%zu] = \"%s\"\n",
i,
+ lines[i]);
}
#if __WORDSIZE == 64
@@ -198,10 +200,9 @@ ntfs_minimum_size (const char *device)
reply_with_error ("cannot parse cluster size");
return -1;
}
- }
- else if (STRPREFIX (lines[i], volume_size_pattern)) {
- if (XSTRTOD64 (lines[i] + strlen (volume_size_pattern),
- NULL, 10, &volume_size, NULL) != LONGINT_OK) {
+ } else if (STRPREFIX (lines[i], volume_size_pattern)) {
+ if (XSTRTOD64 (lines[i] + strlen (volume_size_pattern), NULL, 10,
+ &volume_size, NULL) != LONGINT_OK) {
reply_with_error ("cannot parse volume size");
return -1;
}
@@ -225,8 +226,8 @@ ntfs_minimum_size (const char *device)
for (i = 0; lines[i] != NULL; ++i) {
if (STRPREFIX (lines[i], size_pattern)) {
int64_t ret;
- if (XSTRTOD64 (lines[i] + strlen (size_pattern),
- NULL, 10, &ret, NULL) != LONGINT_OK) {
+ if (XSTRTOD64 (lines[i] + strlen (size_pattern), NULL, 10, &ret,
+ NULL) != LONGINT_OK) {
reply_with_error ("cannot parse minimum size");
return -1;
}
@@ -236,7 +237,8 @@ ntfs_minimum_size (const char *device)
#undef XSTRTOD64
- reply_with_error ("minimum size not found. Check output format:\n%s", out);
+ reply_with_error ("minimum size not found. Check output format:\n%s",
+ out);
return -1;
}
@@ -288,8 +290,8 @@ do_ntfscat_i (const mountable_t *mountable, int64_t inode)
}
/* Construct the command. */
- if (asprintf (&cmd, "ntfscat -i %" PRIi64 " %s",
- inode, mountable->device) == -1) {
+ if (asprintf (&cmd, "ntfscat -i %" PRIi64 " %s", inode,
+ mountable->device) == -1) {
reply_with_perror ("asprintf");
return -1;
}
@@ -318,18 +320,18 @@ do_ntfscat_i (const mountable_t *mountable, int64_t inode)
if (ferror (fp)) {
fprintf (stderr, "fread: %" PRIi64 ": %m\n", inode);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
pclose (fp);
return -1;
}
if (pclose (fp) != 0) {
fprintf (stderr, "pclose: %" PRIi64 ": %m\n", inode);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
diff --git a/daemon/ntfsclone.c b/daemon/ntfsclone.c
index f04017c..c460184 100644
--- a/daemon/ntfsclone.c
+++ b/daemon/ntfsclone.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -32,7 +33,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_ntfsclone, ntfsclone);
+GUESTFSD_EXT_CMD (str_ntfsclone, ntfsclone);
/* Read the error file. Returns a string that the caller must free. */
static char *
@@ -50,10 +51,10 @@ read_error_file (char *error_file)
}
/* Remove trailing \n character if any. */
- if (len > 0 && str[len-1] == '\n')
+ if (len > 0 && str[len - 1] == '\n')
str[--len] = '\0';
- return str; /* caller frees */
+ return str; /* caller frees */
}
static int
@@ -82,8 +83,8 @@ do_ntfsclone_in (const char *device)
close (fd);
/* Construct the command. */
- if (asprintf (&cmd, "%s -O %s --restore-image - 2> %s",
- str_ntfsclone, device, error_file) == -1) {
+ if (asprintf (&cmd, "%s -O %s --restore-image - 2> %s",
str_ntfsclone,
+ device, error_file) == -1) {
err = errno;
r = cancel_receive ();
errno = err;
@@ -111,7 +112,7 @@ do_ntfsclone_in (const char *device)
fd = fileno (fp);
r = receive_file (write_cb, &fd);
- if (r == -1) { /* write error */
+ if (r == -1) { /* write error */
cancel_receive ();
CLEANUP_FREE char *errstr = read_error_file (error_file);
reply_with_error ("write error on device: %s: %s", device, errstr);
@@ -119,7 +120,7 @@ do_ntfsclone_in (const char *device)
pclose (fp);
return -1;
}
- if (r == -2) { /* cancellation from library */
+ if (r == -2) { /* cancellation from library */
/* This error is ignored by the library since it initiated the
* cancel. Nevertheless we must send an error reply here.
*/
@@ -145,9 +146,8 @@ do_ntfsclone_in (const char *device)
/* Has one FileOut parameter. */
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_ntfsclone_out (const char *device,
- int metadataonly, int rescue, int ignorefscheck,
- int preservetimestamps, int force)
+do_ntfsclone_out (const char *device, int metadataonly, int rescue,
+ int ignorefscheck, int preservetimestamps, int force)
{
int r;
FILE *fp;
@@ -161,14 +161,28 @@ do_ntfsclone_out (const char *device,
}
/* Construct the ntfsclone command. */
- if (asprintf (&cmd, "%s -o - --save-image%s%s%s%s%s %s",
- str_ntfsclone,
- (optargs_bitmask & GUESTFS_NTFSCLONE_OUT_METADATAONLY_BITMASK)
&& metadataonly ? " --metadata" : "",
- (optargs_bitmask & GUESTFS_NTFSCLONE_OUT_RESCUE_BITMASK) &&
rescue ? " --rescue" : "",
- (optargs_bitmask & GUESTFS_NTFSCLONE_OUT_IGNOREFSCHECK_BITMASK)
&& ignorefscheck ? " --ignore-fs-check" : "",
- (optargs_bitmask & GUESTFS_NTFSCLONE_OUT_PRESERVETIMESTAMPS_BITMASK)
&& preservetimestamps ? " --preserve-timestamps" : "",
- (optargs_bitmask & GUESTFS_NTFSCLONE_OUT_FORCE_BITMASK) &&
force ? " --force" : "",
- device) == -1) {
+ if (asprintf (
+ &cmd, "%s -o - --save-image%s%s%s%s%s %s", str_ntfsclone,
+ (optargs_bitmask & GUESTFS_NTFSCLONE_OUT_METADATAONLY_BITMASK) &&
+ metadataonly
+ ? " --metadata"
+ : "",
+ (optargs_bitmask & GUESTFS_NTFSCLONE_OUT_RESCUE_BITMASK) && rescue
+ ? " --rescue"
+ : "",
+ (optargs_bitmask & GUESTFS_NTFSCLONE_OUT_IGNOREFSCHECK_BITMASK) &&
+ ignorefscheck
+ ? " --ignore-fs-check"
+ : "",
+ (optargs_bitmask &
+ GUESTFS_NTFSCLONE_OUT_PRESERVETIMESTAMPS_BITMASK) &&
+ preservetimestamps
+ ? " --preserve-timestamps"
+ : "",
+ (optargs_bitmask & GUESTFS_NTFSCLONE_OUT_FORCE_BITMASK) && force
+ ? " --force"
+ : "",
+ device) == -1) {
reply_with_perror ("asprintf");
return -1;
}
@@ -197,18 +211,18 @@ do_ntfsclone_out (const char *device,
if (ferror (fp)) {
fprintf (stderr, "fread: %s: %m\n", device);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
pclose (fp);
return -1;
}
if (pclose (fp) != 0) {
fprintf (stderr, "pclose: %s: %m\n", device);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
diff --git a/daemon/parted.c b/daemon/parted.c
index 00ae424..2e08869 100644
--- a/daemon/parted.c
+++ b/daemon/parted.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,9 +31,9 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_parted, parted);
-GUESTFSD_EXT_CMD(str_sfdisk, sfdisk);
-GUESTFSD_EXT_CMD(str_sgdisk, sgdisk);
+GUESTFSD_EXT_CMD (str_parted, parted);
+GUESTFSD_EXT_CMD (str_sfdisk, sfdisk);
+GUESTFSD_EXT_CMD (str_sgdisk, sgdisk);
/* Notes:
*
@@ -52,16 +53,11 @@ static const char *
check_parttype (const char *parttype)
{
/* Check and translate parttype. */
- if (STREQ (parttype, "aix") ||
- STREQ (parttype, "amiga") ||
- STREQ (parttype, "bsd") ||
- STREQ (parttype, "dasd") ||
- STREQ (parttype, "dvh") ||
- STREQ (parttype, "gpt") ||
- STREQ (parttype, "mac") ||
- STREQ (parttype, "msdos") ||
- STREQ (parttype, "pc98") ||
- STREQ (parttype, "sun"))
+ if (STREQ (parttype, "aix") || STREQ (parttype, "amiga") ||
+ STREQ (parttype, "bsd") || STREQ (parttype, "dasd") ||
+ STREQ (parttype, "dvh") || STREQ (parttype, "gpt") ||
+ STREQ (parttype, "mac") || STREQ (parttype, "msdos") ||
+ STREQ (parttype, "pc98") || STREQ (parttype, "sun"))
return parttype;
else if (STREQ (parttype, "rdb"))
return "amiga";
@@ -81,14 +77,15 @@ do_part_init (const char *device, const char *parttype)
parttype = check_parttype (parttype);
if (!parttype) {
- reply_with_error ("unknown partition type: common choices are \"gpt\"
and \"msdos\"");
+ reply_with_error (
+ "unknown partition type: common choices are \"gpt\" and
\"msdos\"");
return -1;
}
udev_settle ();
- r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
- str_parted, "-s", "--", device, "mklabel",
parttype, NULL);
+ r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR, str_parted,
+ "-s", "--", device, "mklabel", parttype,
NULL);
if (r == -1) {
reply_with_error ("parted: %s: %s", device, err);
return -1;
@@ -100,8 +97,8 @@ do_part_init (const char *device, const char *parttype)
}
int
-do_part_add (const char *device, const char *prlogex,
- int64_t startsect, int64_t endsect)
+do_part_add (const char *device, const char *prlogex, int64_t startsect,
+ int64_t endsect)
{
int r;
CLEANUP_FREE char *err = NULL;
@@ -109,8 +106,7 @@ do_part_add (const char *device, const char *prlogex,
char endstr[32];
/* Check and translate prlogex. */
- if (STREQ (prlogex, "primary") ||
- STREQ (prlogex, "logical") ||
+ if (STREQ (prlogex, "primary") || STREQ (prlogex, "logical") ||
STREQ (prlogex, "extended"))
;
else if (STREQ (prlogex, "p"))
@@ -120,7 +116,9 @@ do_part_add (const char *device, const char *prlogex,
else if (STREQ (prlogex, "e"))
prlogex = "extended";
else {
- reply_with_error ("unknown partition type: %s: this should be
\"primary\", \"logical\" or \"extended\"", prlogex);
+ reply_with_error ("unknown partition type: %s: this should be "
+ "\"primary\", \"logical\" or
\"extended\"",
+ prlogex);
return -1;
}
@@ -140,9 +138,9 @@ do_part_add (const char *device, const char *prlogex,
* name_ to prlogex, eg. "primary". I would essentially describe
* this as a bug in the parted mkpart command.
*/
- r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
- str_parted, "-s", "--",
- device, "mkpart", prlogex, startstr, endstr, NULL);
+ r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR, str_parted,
+ "-s", "--", device, "mkpart", prlogex,
startstr, endstr,
+ NULL);
if (r == -1) {
reply_with_error ("parted: %s: %s", device, err);
return -1;
@@ -169,8 +167,8 @@ do_part_del (const char *device, int partnum)
udev_settle ();
- r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
- str_parted, "-s", "--", device, "rm",
partnum_str, NULL);
+ r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR, str_parted,
+ "-s", "--", device, "rm", partnum_str,
NULL);
if (r == -1) {
reply_with_error ("parted: %s: %s", device, err);
return -1;
@@ -189,7 +187,8 @@ do_part_disk (const char *device, const char *parttype)
parttype = check_parttype (parttype);
if (!parttype) {
- reply_with_error ("unknown partition type: common choices are \"gpt\"
and \"msdos\"");
+ reply_with_error (
+ "unknown partition type: common choices are \"gpt\" and
\"msdos\"");
return -1;
}
@@ -208,10 +207,8 @@ do_part_disk (const char *device, const char *parttype)
udev_settle ();
- r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
- str_parted, "-s", "--",
- device,
- "mklabel", parttype,
+ r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR, str_parted,
+ "-s", "--", device, "mklabel", parttype,
/* See comment about about the parted mkpart command. */
"mkpart", STREQ (parttype, "gpt") ? "p1" :
"primary",
startstr, endstr, NULL);
@@ -242,9 +239,9 @@ do_part_set_bootable (const char *device, int partnum, int bootable)
udev_settle ();
- r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
- str_parted, "-s", "--",
- device, "set", partstr, "boot", bootable ?
"on" : "off", NULL);
+ r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR, str_parted,
+ "-s", "--", device, "set", partstr,
"boot",
+ bootable ? "on" : "off", NULL);
if (r == -1) {
reply_with_error ("parted: %s: %s", device, err);
return -1;
@@ -272,8 +269,8 @@ do_part_set_name (const char *device, int partnum, const char *name)
udev_settle ();
- r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
- str_parted, "-s", "--", device, "name",
partstr, name, NULL);
+ r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR, str_parted,
+ "-s", "--", device, "name", partstr, name,
NULL);
if (r == -1) {
reply_with_error ("parted: %s: %s", device, err);
return -1;
@@ -298,8 +295,8 @@ get_table_field (const char *line, int n)
}
if (n > 0) {
- reply_with_error ("not enough fields in output of parted print command:
%s",
- line);
+ reply_with_error (
+ "not enough fields in output of parted print command: %s", line);
return NULL;
}
@@ -321,12 +318,10 @@ print_partition_table (const char *device, bool add_m_option)
int r;
if (add_m_option)
- r = command (&out, &err, str_parted, "-m", "-s",
"--", device,
- "unit", "b",
- "print", NULL);
+ r = command (&out, &err, str_parted, "-m", "-s",
"--", device, "unit",
+ "b", "print", NULL);
else
- r = command (&out, &err, str_parted, "-s", "--", device,
- "unit", "b",
+ r = command (&out, &err, str_parted, "-s", "--", device,
"unit", "b",
"print", NULL);
if (r == -1) {
int errcode = 0;
@@ -355,7 +350,8 @@ do_part_get_parttype (const char *device)
return NULL;
if (lines[0] == NULL || STRNEQ (lines[0], "BYT;")) {
- reply_with_error ("unknown signature, expected \"BYT;\" as first line
of the output: %s",
+ reply_with_error ("unknown signature, expected \"BYT;\" as first line
"
+ "of the output: %s",
lines[0] ? lines[0] : "(signature was null)");
return NULL;
}
@@ -410,7 +406,7 @@ do_part_list (const char *device)
}
r->guestfs_int_partition_list_len = nr_rows;
r->guestfs_int_partition_list_val =
- malloc (nr_rows * sizeof (guestfs_int_partition));
+ malloc (nr_rows * sizeof (guestfs_int_partition));
if (r->guestfs_int_partition_list_val == NULL) {
reply_with_perror ("malloc");
goto error2;
@@ -424,16 +420,18 @@ do_part_list (const char *device)
&r->guestfs_int_partition_list_val[i].part_start,
&r->guestfs_int_partition_list_val[i].part_end,
&r->guestfs_int_partition_list_val[i].part_size) != 4) {
- reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
+ reply_with_error (
+ "could not parse row from output of parted print command: %s",
+ lines[row]);
goto error3;
}
}
return r;
- error3:
+error3:
free (r->guestfs_int_partition_list_val);
- error2:
+error2:
free (r);
return NULL;
}
@@ -459,7 +457,8 @@ do_part_get_bootable (const char *device, int partnum)
* the matching partition number (RHBZ#602997).
*/
if (lines[0] == NULL || STRNEQ (lines[0], "BYT;")) {
- reply_with_error ("unknown signature, expected \"BYT;\" as first line
of the output: %s",
+ reply_with_error ("unknown signature, expected \"BYT;\" as first line
"
+ "of the output: %s",
lines[0] ? lines[0] : "(signature was null)");
return -1;
}
@@ -473,7 +472,9 @@ do_part_get_bootable (const char *device, int partnum)
int pnum;
for (row = 2; lines[row] != NULL; ++row) {
if (sscanf (lines[row], "%d:", &pnum) != 1) {
- reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
+ reply_with_error (
+ "could not parse row from output of parted print command: %s",
+ lines[row]);
return -1;
}
if (pnum == partnum)
@@ -530,7 +531,8 @@ do_part_get_mbr_id (const char *device, int partnum)
return -1;
}
- const char *param = test_sfdisk_has_part_type () ? "--part-type" :
"--print-id";
+ const char *param =
+ test_sfdisk_has_part_type () ? "--part-type" : "--print-id";
char partnum_str[16];
snprintf (partnum_str, sizeof partnum_str, "%d", partnum);
@@ -566,22 +568,23 @@ do_part_set_mbr_id (const char *device, int partnum, int idbyte)
return -1;
}
- const char *param = test_sfdisk_has_part_type () ? "--part-type" :
"--change-id";
+ const char *param =
+ test_sfdisk_has_part_type () ? "--part-type" : "--change-id";
char partnum_str[16];
snprintf (partnum_str, sizeof partnum_str, "%d", partnum);
char idbyte_str[16];
/* NB: hex */
- snprintf (idbyte_str, sizeof partnum_str, "%x", (unsigned) idbyte);
+ snprintf (idbyte_str, sizeof partnum_str, "%x", (unsigned)idbyte);
CLEANUP_FREE char *err = NULL;
int r;
udev_settle ();
- r = command (NULL, &err, str_sfdisk,
- param, device, partnum_str, idbyte_str, NULL);
+ r = command (NULL, &err, str_sfdisk, param, device, partnum_str,
+ idbyte_str, NULL);
if (r == -1) {
reply_with_error ("sfdisk %s: %s", param, err);
return -1;
@@ -651,7 +654,8 @@ do_part_set_gpt_guid (const char *device, int partnum, const char
*guid)
}
static char *
-sgdisk_info_extract_field (const char *device, int partnum, const char *field,
+sgdisk_info_extract_field (const char *device, int partnum,
+ const char *field,
char *(*extract) (const char *path))
{
if (partnum <= 0) {
@@ -670,21 +674,23 @@ sgdisk_info_extract_field (const char *device, int partnum, const
char *field,
str_sgdisk, device, "-i", partnum_str, NULL);
if (r == -1) {
- reply_with_error ("%s %s -i %s: %s", str_sgdisk, device, partnum_str,
err);
+ reply_with_error ("%s %s -i %s: %s", str_sgdisk, device, partnum_str,
+ err);
return NULL;
}
CLEANUP_FREE_STRING_LIST char **lines = split_lines (err);
if (lines == NULL) {
- reply_with_error ("'%s %s -i %i' returned no output",
- str_sgdisk, device, partnum);
+ reply_with_error ("'%s %s -i %i' returned no output", str_sgdisk,
+ device, partnum);
return NULL;
}
int fieldlen = strlen (field);
/* Parse the output of sgdisk -i:
- * Partition GUID code: 21686148-6449-6E6F-744E-656564454649 (BIOS boot partition)
+ * Partition GUID code: 21686148-6449-6E6F-744E-656564454649 (BIOS boot
+ * partition)
* Partition unique GUID: 19AEC5FE-D63A-4A15-9D37-6FCBFB873DC0
* First sector: 2048 (at 1024.0 KiB)
* Last sector: 411647 (at 201.0 MiB)
@@ -696,14 +702,13 @@ sgdisk_info_extract_field (const char *device, int partnum, const
char *field,
char *line = *i;
/* Skip blank lines */
- if (line[0] == '\0') continue;
+ if (line[0] == '\0')
+ continue;
/* Split the line in 2 at the colon */
char *colon = strchr (line, ':');
if (colon) {
- if (colon - line == fieldlen &&
- memcmp (line, field, fieldlen) == 0)
- {
+ if (colon - line == fieldlen && memcmp (line, field, fieldlen) == 0) {
/* The value starts after the colon */
char *value = colon + 1;
@@ -723,7 +728,8 @@ sgdisk_info_extract_field (const char *device, int partnum, const char
*field,
/* Ignore lines with no colon. Log to stderr so it will show up in
* LIBGUESTFS_DEBUG. */
if (verbose) {
- fprintf (stderr, "get-gpt-type: unexpected sgdisk output ignored:
%s\n",
+ fprintf (stderr,
+ "get-gpt-type: unexpected sgdisk output ignored: %s\n",
line);
}
}
@@ -731,7 +737,8 @@ sgdisk_info_extract_field (const char *device, int partnum, const char
*field,
/* If we got here it means we didn't find the field */
reply_with_error ("sgdisk output did not contain '%s'. "
- "See LIBGUESTFS_DEBUG output for more details", field);
+ "See LIBGUESTFS_DEBUG output for more details",
+ field);
return NULL;
}
@@ -755,8 +762,8 @@ extract_uuid (const char *value)
char *
do_part_get_gpt_type (const char *device, int partnum)
{
- return sgdisk_info_extract_field (device, partnum,
- "Partition GUID code", extract_uuid);
+ return sgdisk_info_extract_field (device, partnum, "Partition GUID code",
+ extract_uuid);
}
char *
@@ -786,13 +793,15 @@ do_part_get_name (const char *device, int partnum)
return NULL;
if (lines[0] == NULL || STRNEQ (lines[0], "BYT;")) {
- reply_with_error ("unknown signature, expected \"BYT;\" as first
line of the output: %s",
+ reply_with_error ("unknown signature, expected \"BYT;\" as first
"
+ "line of the output: %s",
lines[0] ? lines[0] : "(signature was null)");
return NULL;
}
if (lines[1] == NULL) {
- reply_with_error ("parted didn't return a line describing the
device");
+ reply_with_error (
+ "parted didn't return a line describing the device");
return NULL;
}
@@ -800,7 +809,9 @@ do_part_get_name (const char *device, int partnum)
int pnum;
for (row = 2; lines[row] != NULL; ++row) {
if (sscanf (lines[row], "%d:", &pnum) != 1) {
- reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
+ reply_with_error (
+ "could not parse row from output of parted print command: %s",
+ lines[row]);
return NULL;
}
if (pnum == partnum)
@@ -818,7 +829,8 @@ do_part_get_name (const char *device, int partnum)
return name;
} else {
- reply_with_error ("part-get-name can only be used on GUID Partition
Tables");
+ reply_with_error (
+ "part-get-name can only be used on GUID Partition Tables");
return NULL;
}
}
@@ -874,26 +886,25 @@ do_part_get_mbr_part_type (const char *device, int partnum)
size_t i;
int64_t temp_int64;
int part_num;
- char temp_type[16] = {'\0'};
- for (i = 0, row = start; row < end; ++i, ++row) {
+ char temp_type[16] = { '\0' };
+ for (i = 0, row = start; row < end; ++i, ++row) {
if (STREQ (parttype, "gpt")) {
memcpy (temp_type, "primary", strlen ("primary"));
if (sscanf (lines[row], "%d%" SCNi64 "B%" SCNi64 "B%"
SCNi64 "B",
- &part_num,
- &temp_int64,
- &temp_int64,
- &temp_int64) != 4) {
- reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
+ &part_num, &temp_int64, &temp_int64, &temp_int64) != 4)
{
+ reply_with_error (
+ "could not parse row from output of parted print command: %s",
+ lines[row]);
return NULL;
}
} else {
- if (sscanf (lines[row], "%d%" SCNi64 "B%" SCNi64 "B%"
SCNi64 "B" "%15s",
- &part_num,
- &temp_int64,
- &temp_int64,
- &temp_int64,
- temp_type) != 5) {
- reply_with_error ("could not parse row from output of parted print command:
%s", lines[row]);
+ if (sscanf (lines[row], "%d%" SCNi64 "B%" SCNi64 "B%"
SCNi64 "B"
+ "%15s",
+ &part_num, &temp_int64, &temp_int64, &temp_int64,
+ temp_type) != 5) {
+ reply_with_error (
+ "could not parse row from output of parted print command: %s",
+ lines[row]);
return NULL;
}
}
@@ -904,15 +915,15 @@ do_part_get_mbr_part_type (const char *device, int partnum)
if (STRPREFIX (temp_type, "primary")) {
part_type = strdup ("primary");
if (part_type == NULL)
- goto error;
+ goto error;
} else if (STRPREFIX (temp_type, "logical")) {
part_type = strdup ("logical");
if (part_type == NULL)
- goto error;
+ goto error;
} else if (STRPREFIX (temp_type, "extended")) {
part_type = strdup ("extended");
if (part_type == NULL)
- goto error;
+ goto error;
} else
goto error;
@@ -924,7 +935,7 @@ do_part_get_mbr_part_type (const char *device, int partnum)
return NULL;
}
- error:
+error:
reply_with_error ("strdup failed");
return NULL;
}
@@ -945,8 +956,7 @@ do_part_get_disk_guid (const char *device)
CLEANUP_FREE_STRING_LIST char **lines = split_lines (err);
if (lines == NULL) {
- reply_with_error ("'%s %s -p' returned no output",
- str_sgdisk, device);
+ reply_with_error ("'%s %s -p' returned no output", str_sgdisk,
device);
return NULL;
}
@@ -1005,7 +1015,7 @@ do_part_set_disk_guid_random (const char *device)
}
int
-do_part_expand_gpt(const char *device)
+do_part_expand_gpt (const char *device)
{
CLEANUP_FREE char *err = NULL;
@@ -1019,16 +1029,16 @@ do_part_expand_gpt(const char *device)
reply_with_error ("%s --pretend -e %s: %s", str_sgdisk, device, err);
return -1;
}
- if (err && strlen(err) != 0) {
+ if (err && strlen (err) != 0) {
/* Unexpected actions. */
reply_with_error ("%s --pretend -e %s: %s", str_sgdisk, device, err);
return -1;
}
- free(err);
+ free (err);
/* Now we can do a real run. */
- r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
- str_sgdisk, "-e", device, NULL);
+ r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR, str_sgdisk,
+ "-e", device, NULL);
if (r == -1) {
reply_with_error ("%s -e %s: %s", str_sgdisk, device, err);
diff --git a/daemon/pingdaemon.c b/daemon/pingdaemon.c
index eac291d..8aefebc 100644
--- a/daemon/pingdaemon.c
+++ b/daemon/pingdaemon.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/daemon/proto.c b/daemon/proto.c
index 654dd3a..90c708a 100644
--- a/daemon/proto.c
+++ b/daemon/proto.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -27,7 +28,7 @@
#include <unistd.h>
#include <errno.h>
#include <error.h>
-#include <sys/param.h> /* defines MIN */
+#include <sys/param.h> /* defines MIN */
#include <sys/select.h>
#include <sys/time.h>
#include <rpc/types.h>
@@ -98,8 +99,8 @@ main_loop (int _sock)
if (verbose)
fprintf (stderr,
- "guestfsd: main_loop: new request, len 0x%" PRIx32 "\n",
- len);
+ "guestfsd: main_loop: new request, len 0x%" PRIx32
"\n",
+ len);
/* Cancellation sent from the library and received after the
* previous request has finished processing. Just ignore it.
@@ -108,7 +109,8 @@ main_loop (int _sock)
continue;
if (len > GUESTFS_MESSAGE_MAX)
- error (EXIT_FAILURE, 0, "incoming message is too long (%u bytes)", len);
+ error (EXIT_FAILURE, 0, "incoming message is too long (%u bytes)",
+ len);
buf = malloc (len);
if (!buf) {
@@ -125,17 +127,17 @@ main_loop (int _sock)
for (i = 0; i < len; i += 16) {
printf ("%04zx: ", i);
- for (j = i; j < MIN (i+16, len); ++j)
- printf ("%02x ", (unsigned char) buf[j]);
- for (; j < i+16; ++j)
+ for (j = i; j < MIN (i + 16, len); ++j)
+ printf ("%02x ", (unsigned char)buf[j]);
+ for (; j < i + 16; ++j)
printf (" ");
printf ("|");
- for (j = i; j < MIN (i+16, len); ++j)
+ for (j = i; j < MIN (i + 16, len); ++j)
if (c_isprint (buf[j]))
printf ("%c", buf[j]);
else
printf (".");
- for (; j < i+16; ++j)
+ for (; j < i + 16; ++j)
printf (" ");
printf ("|\n");
}
@@ -162,11 +164,11 @@ main_loop (int _sock)
}
if (hdr.direction != GUESTFS_DIRECTION_CALL) {
reply_with_error ("unexpected message direction (%d)",
- (int) hdr.direction);
+ (int)hdr.direction);
goto cont;
}
if (hdr.status != GUESTFS_STATUS_OK) {
- reply_with_error ("unexpected message status (%d)", (int) hdr.status);
+ reply_with_error ("unexpected message status (%d)", (int)hdr.status);
goto cont;
}
@@ -195,17 +197,17 @@ main_loop (int _sock)
gettimeofday (&end_t, NULL);
int64_t start_us, end_us, elapsed_us;
- start_us = (int64_t) start_t.tv_sec * 1000000 + start_t.tv_usec;
- end_us = (int64_t) end_t.tv_sec * 1000000 + end_t.tv_usec;
+ start_us = (int64_t)start_t.tv_sec * 1000000 + start_t.tv_usec;
+ end_us = (int64_t)end_t.tv_sec * 1000000 + end_t.tv_usec;
elapsed_us = end_us - start_us;
fprintf (stderr,
- "guestfsd: main_loop: proc %d (%s) took %d.%02d seconds\n",
- proc_nr,
- proc_nr >= 0 && proc_nr <= GUESTFS_MAX_PROC_NR
- ? function_names[proc_nr] : "UNKNOWN PROCEDURE",
- (int) (elapsed_us / 1000000),
- (int) ((elapsed_us / 10000) % 100));
+ "guestfsd: main_loop: proc %d (%s) took %d.%02d seconds\n",
+ proc_nr, proc_nr >= 0 && proc_nr <= GUESTFS_MAX_PROC_NR
+ ? function_names[proc_nr]
+ : "UNKNOWN PROCEDURE",
+ (int)(elapsed_us / 1000000),
+ (int)((elapsed_us / 10000) % 100));
}
cont:
@@ -247,7 +249,7 @@ reply_with_perror_errno (int err, const char *fs, ...)
if (r == -1)
error:
- error (EXIT_FAILURE, errno, "vasprintf");
+ error (EXIT_FAILURE, errno, "vasprintf");
r = asprintf (&buf2, "%s: %s", buf1, strerror (err));
if (r == -1)
@@ -298,8 +300,8 @@ send_error (int errnum, char *msg)
* to (char *) because they are defined that way in the XDR structs.
*/
err.errno_string =
- (char *) (errnum > 0 ? guestfs_int_errno_to_string (errnum) : "");
- err.error_message = (char *) msg;
+ (char *)(errnum > 0 ? guestfs_int_errno_to_string (errnum) : "");
+ err.error_message = (char *)msg;
if (!xdr_guestfs_message_error (&xdr, &err))
error (EXIT_FAILURE, 0, "failed to encode error message body");
@@ -348,7 +350,9 @@ reply (xdrproc_t xdrp, char *ret)
* we want to return an error message instead. (RHBZ#509597).
*/
if (!(*xdrp) (&xdr, ret)) {
- reply_with_error ("guestfsd: failed to encode reply body\n(maybe the reply
exceeds the maximum message size in the protocol?)");
+ reply_with_error ("guestfsd: failed to encode reply body\n(maybe the "
+ "reply exceeds the maximum message size in the "
+ "protocol?)");
xdr_destroy (&xdr);
return;
}
@@ -363,7 +367,7 @@ reply (xdrproc_t xdrp, char *ret)
if (xwrite (sock, lenbuf, 4) == -1)
error (EXIT_FAILURE, 0, "xwrite failed");
- if (xwrite (sock, buf, (size_t) len) == -1)
+ if (xwrite (sock, buf, (size_t)len) == -1)
error (EXIT_FAILURE, 0, "xwrite failed");
}
@@ -392,10 +396,11 @@ receive_file (receive_cb cb, void *opaque)
xdr_destroy (&xdr);
if (len == GUESTFS_CANCEL_FLAG)
- continue; /* Just ignore it. */
+ continue; /* Just ignore it. */
if (len > GUESTFS_MESSAGE_MAX)
- error (EXIT_FAILURE, 0, "incoming message is too long (%u bytes)", len);
+ error (EXIT_FAILURE, 0, "incoming message is too long (%u bytes)",
+ len);
buf = malloc (len);
if (!buf) {
@@ -415,31 +420,32 @@ receive_file (receive_cb cb, void *opaque)
xdr_destroy (&xdr);
if (verbose)
- fprintf (stderr,
- "guestfsd: receive_file: got chunk: cancel = 0x%x, len = %u, buf =
%p\n",
- (unsigned) chunk.cancel,
- chunk.data.data_len, chunk.data.data_val);
+ fprintf (stderr, "guestfsd: receive_file: got chunk: cancel = 0x%x, "
+ "len = %u, buf = %p\n",
+ (unsigned)chunk.cancel, chunk.data.data_len,
+ chunk.data.data_val);
if (chunk.cancel != 0 && chunk.cancel != 1) {
- fprintf (stderr,
- "guestfsd: receive_file: chunk.cancel != [0|1] ... "
- "continuing even though we have probably lost synchronization with
the library\n");
+ fprintf (stderr, "guestfsd: receive_file: chunk.cancel != [0|1] ... "
+ "continuing even though we have probably lost "
+ "synchronization with the library\n");
return -1;
}
if (chunk.cancel) {
if (verbose)
- fprintf (stderr,
- "guestfsd: receive_file: received cancellation from library\n");
- xdr_free ((xdrproc_t) xdr_guestfs_chunk, (char *) &chunk);
+ fprintf (
+ stderr,
+ "guestfsd: receive_file: received cancellation from library\n");
+ xdr_free ((xdrproc_t)xdr_guestfs_chunk, (char *)&chunk);
return -2;
}
if (chunk.data.data_len == 0) {
if (verbose)
fprintf (stderr,
- "guestfsd: receive_file: end of file, leaving function\n");
- xdr_free ((xdrproc_t) xdr_guestfs_chunk, (char *) &chunk);
- return 0; /* end of file */
+ "guestfsd: receive_file: end of file, leaving function\n");
+ xdr_free ((xdrproc_t)xdr_guestfs_chunk, (char *)&chunk);
+ return 0; /* end of file */
}
/* Note that the callback can generate progress messages. */
@@ -448,8 +454,8 @@ receive_file (receive_cb cb, void *opaque)
else
r = 0;
- xdr_free ((xdrproc_t) xdr_guestfs_chunk, (char *) &chunk);
- if (r == -1) { /* write error */
+ xdr_free ((xdrproc_t)xdr_guestfs_chunk, (char *)&chunk);
+ if (r == -1) { /* write error */
if (verbose)
fprintf (stderr, "guestfsd: receive_file: write error\n");
return -1;
@@ -489,7 +495,8 @@ send_file_write (const void *buf, size_t len)
int cancel;
if (len > GUESTFS_MAX_CHUNK_SIZE) {
- fprintf (stderr, "guestfsd: send_file_write: len (%zu) >
GUESTFS_MAX_CHUNK_SIZE (%d)\n",
+ fprintf (stderr, "guestfsd: send_file_write: len (%zu) > "
+ "GUESTFS_MAX_CHUNK_SIZE (%d)\n",
len, GUESTFS_MAX_CHUNK_SIZE);
return -1;
}
@@ -503,13 +510,14 @@ send_file_write (const void *buf, size_t len)
} else {
chunk.cancel = 0;
chunk.data.data_len = len;
- chunk.data.data_val = (char *) buf;
+ chunk.data.data_val = (char *)buf;
}
if (send_chunk (&chunk) == -1)
return -1;
- if (cancel) return -2;
+ if (cancel)
+ return -2;
return 0;
}
@@ -527,7 +535,7 @@ check_for_library_cancellation (void)
FD_SET (sock, &rset);
tv.tv_sec = 0;
tv.tv_usec = 0;
- r = select (sock+1, &rset, NULL, NULL, &tv);
+ r = select (sock + 1, &rset, NULL, NULL, &tv);
if (r == -1) {
perror ("select");
return 0;
@@ -545,7 +553,8 @@ check_for_library_cancellation (void)
xdr_destroy (&xdr);
if (flag != GUESTFS_CANCEL_FLAG) {
- fprintf (stderr, "guestfsd: check_for_library_cancellation: read 0x%x from
library, expected 0x%x\n",
+ fprintf (stderr, "guestfsd: check_for_library_cancellation: read 0x%x "
+ "from library, expected 0x%x\n",
flag, GUESTFS_CANCEL_FLAG);
return 0;
}
@@ -580,7 +589,7 @@ send_chunk (const guestfs_chunk *chunk)
}
xdrmem_create (&xdr, buf, buf_len, XDR_ENCODE);
- if (!xdr_guestfs_chunk (&xdr, (guestfs_chunk *) chunk)) {
+ if (!xdr_guestfs_chunk (&xdr, (guestfs_chunk *)chunk)) {
fprintf (stderr, "guestfsd: send_chunk: failed to encode chunk\n");
xdr_destroy (&xdr);
return -1;
@@ -593,8 +602,9 @@ send_chunk (const guestfs_chunk *chunk)
xdr_u_int (&xdr, &len);
xdr_destroy (&xdr);
- int err = (xwrite (sock, lenbuf, 4) == 0
- && xwrite (sock, buf, len) == 0 ? 0 : -1);
+ int err =
+ (xwrite (sock, lenbuf, 4) == 0 && xwrite (sock, buf, len) == 0 ? 0
+ : -1);
if (err)
error (EXIT_FAILURE, 0, "send_chunk: write failed");
@@ -606,7 +616,7 @@ send_chunk (const guestfs_chunk *chunk)
* are in microseconds.
*/
#define NOTIFICATION_INITIAL_DELAY 2000000
-#define NOTIFICATION_PERIOD 333333
+#define NOTIFICATION_PERIOD 333333
void
notify_progress (uint64_t position, uint64_t total)
@@ -629,8 +639,8 @@ notify_progress (uint64_t position, uint64_t total)
* was sent out (or since the start of the call).
*/
last_us =
- (int64_t) last_progress_t.tv_sec * 1000000 + last_progress_t.tv_usec;
- now_us = (int64_t) now_t.tv_sec * 1000000 + now_t.tv_usec;
+ (int64_t)last_progress_t.tv_sec * 1000000 + last_progress_t.tv_usec;
+ now_us = (int64_t)now_t.tv_sec * 1000000 + now_t.tv_usec;
elapsed_us = now_us - last_us;
/* Rate limit. */
@@ -670,7 +680,8 @@ notify_progress_no_ratelimit (uint64_t position, uint64_t total,
xdrmem_create (&xdr, buf, sizeof buf, XDR_ENCODE);
if (!xdr_guestfs_progress (&xdr, &message)) {
- fprintf (stderr, "guestfsd: xdr_guestfs_progress: failed to encode
message\n");
+ fprintf (stderr,
+ "guestfsd: xdr_guestfs_progress: failed to encode message\n");
xdr_destroy (&xdr);
return;
}
@@ -714,7 +725,7 @@ pulse_mode_start (void)
void
pulse_mode_end (void)
{
- pulse_mode_cancel (); /* Cancel the itimer. */
+ pulse_mode_cancel (); /* Cancel the itimer. */
notify_progress (1, 1);
}
@@ -722,7 +733,7 @@ pulse_mode_end (void)
void
pulse_mode_cancel (void)
{
- int err = errno; /* Function must preserve errno. */
+ int err = errno; /* Function must preserve errno. */
struct itimerval it;
struct sigaction act;
@@ -752,22 +763,34 @@ static void
async_safe_send_pulse (int sig)
{
/* XDR is a RFC ... */
- unsigned char msg[] = {
- (GUESTFS_PROGRESS_FLAG & 0xff000000) >> 24,
- (GUESTFS_PROGRESS_FLAG & 0x00ff0000) >> 16,
- (GUESTFS_PROGRESS_FLAG & 0x0000ff00) >> 8,
- GUESTFS_PROGRESS_FLAG & 0x000000ff,
- (proc_nr & 0xff000000) >> 24,
- (proc_nr & 0x00ff0000) >> 16,
- (proc_nr & 0x0000ff00) >> 8,
- proc_nr & 0x000000ff,
- (serial & 0xff000000) >> 24,
- (serial & 0x00ff0000) >> 16,
- (serial & 0x0000ff00) >> 8,
- serial & 0x000000ff,
- /* 64 bit position = 0 */ 0, 0, 0, 0, 0, 0, 0, 0,
- /* 64 bit total = 1 */ 0, 0, 0, 0, 0, 0, 0, 1
- };
+ unsigned char msg[] = { (GUESTFS_PROGRESS_FLAG & 0xff000000) >> 24,
+ (GUESTFS_PROGRESS_FLAG & 0x00ff0000) >> 16,
+ (GUESTFS_PROGRESS_FLAG & 0x0000ff00) >> 8,
+ GUESTFS_PROGRESS_FLAG & 0x000000ff,
+ (proc_nr & 0xff000000) >> 24,
+ (proc_nr & 0x00ff0000) >> 16,
+ (proc_nr & 0x0000ff00) >> 8,
+ proc_nr & 0x000000ff,
+ (serial & 0xff000000) >> 24,
+ (serial & 0x00ff0000) >> 16,
+ (serial & 0x0000ff00) >> 8,
+ serial & 0x000000ff,
+ /* 64 bit position = 0 */ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ /* 64 bit total = 1 */ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1 };
if (xwrite (sock, msg, sizeof msg) == -1)
exit (EXIT_FAILURE);
diff --git a/daemon/readdir.c b/daemon/readdir.c
index e488f93..f46d088 100644
--- a/daemon/readdir.c
+++ b/daemon/readdir.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -71,7 +72,7 @@ do_readdir (const char *path)
guestfs_int_dirent *p;
p = realloc (ret->guestfs_int_dirent_list_val,
- sizeof (guestfs_int_dirent) * (i+1));
+ sizeof (guestfs_int_dirent) * (i + 1));
v.name = strdup (d->d_name);
if (!p || !v.name) {
reply_with_perror ("allocate");
@@ -90,15 +91,33 @@ do_readdir (const char *path)
v.ino = d->d_ino;
#ifdef HAVE_STRUCT_DIRENT_D_TYPE
switch (d->d_type) {
- case DT_BLK: v.ftyp = 'b'; break;
- case DT_CHR: v.ftyp = 'c'; break;
- case DT_DIR: v.ftyp = 'd'; break;
- case DT_FIFO: v.ftyp = 'f'; break;
- case DT_LNK: v.ftyp = 'l'; break;
- case DT_REG: v.ftyp = 'r'; break;
- case DT_SOCK: v.ftyp = 's'; break;
- case DT_UNKNOWN: v.ftyp = 'u'; break;
- default: v.ftyp = '?'; break;
+ case DT_BLK:
+ v.ftyp = 'b';
+ break;
+ case DT_CHR:
+ v.ftyp = 'c';
+ break;
+ case DT_DIR:
+ v.ftyp = 'd';
+ break;
+ case DT_FIFO:
+ v.ftyp = 'f';
+ break;
+ case DT_LNK:
+ v.ftyp = 'l';
+ break;
+ case DT_REG:
+ v.ftyp = 'r';
+ break;
+ case DT_SOCK:
+ v.ftyp = 's';
+ break;
+ case DT_UNKNOWN:
+ v.ftyp = 'u';
+ break;
+ default:
+ v.ftyp = '?';
+ break;
}
#else
v.ftyp = 'u';
diff --git a/daemon/realpath.c b/daemon/realpath.c
index 8f28a12..b0c9112 100644
--- a/daemon/realpath.c
+++ b/daemon/realpath.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -46,10 +47,11 @@ do_realpath (const char *path)
return NULL;
}
- return ret; /* caller frees */
+ return ret; /* caller frees */
}
-static int find_path_element (int fd_cwd, int is_end, const char *name, char
**name_ret);
+static int find_path_element (int fd_cwd, int is_end, const char *name,
+ char **name_ret);
char *
do_case_sensitive_path (const char *path)
@@ -68,7 +70,7 @@ do_case_sensitive_path (const char *path)
/* 'fd_cwd' here is a surrogate for the current working directory, so
* that we don't have to actually call chdir(2).
*/
- fd_cwd = open (sysroot, O_RDONLY|O_DIRECTORY|O_CLOEXEC);
+ fd_cwd = open (sysroot, O_RDONLY | O_DIRECTORY | O_CLOEXEC);
if (fd_cwd == -1) {
reply_with_perror ("%s", sysroot);
goto error;
@@ -116,7 +118,7 @@ do_case_sensitive_path (const char *path)
if (next > 1)
ret[next++] = '/';
- t = realloc (ret, next+len+1);
+ t = realloc (ret, next + len + 1);
if (t == NULL) {
reply_with_perror ("realloc");
goto error;
@@ -127,7 +129,7 @@ do_case_sensitive_path (const char *path)
next += len;
/* Is it a directory? Try going into it. */
- fd2 = openat (fd_cwd, name_out, O_RDONLY|O_DIRECTORY|O_CLOEXEC);
+ fd2 = openat (fd_cwd, name_out, O_RDONLY | O_DIRECTORY | O_CLOEXEC);
err = errno;
close (fd_cwd);
fd_cwd = fd2;
@@ -145,9 +147,9 @@ do_case_sensitive_path (const char *path)
if (fd_cwd >= 0)
close (fd_cwd);
- return ret; /* caller frees */
+ return ret; /* caller frees */
- error:
+error:
if (fd_cwd >= 0)
close (fd_cwd);
free (ret);
@@ -166,7 +168,8 @@ do_case_sensitive_path (const char *path)
* and return -1.
*/
static int
-find_path_element (int fd_cwd, int is_end, const char *name, char **name_ret)
+find_path_element (int fd_cwd, int is_end, const char *name,
+ char **name_ret)
{
int fd2;
DIR *dir;
@@ -213,7 +216,8 @@ find_path_element (int fd_cwd, int is_end, const char *name, char
**name_ret)
}
if (d == NULL) {
- reply_with_error ("%s: no file or directory found with this name", name);
+ reply_with_error ("%s: no file or directory found with this name",
+ name);
closedir (dir);
return -1;
}
diff --git a/daemon/rename.c b/daemon/rename.c
index d08c1ab..88caa85 100644
--- a/daemon/rename.c
+++ b/daemon/rename.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/daemon/rsync.c b/daemon/rsync.c
index d238d61..1d9248f 100644
--- a/daemon/rsync.c
+++ b/daemon/rsync.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,7 +31,7 @@
#define MAX_ARGS 64
-GUESTFSD_EXT_CMD(str_rsync, rsync);
+GUESTFSD_EXT_CMD (str_rsync, rsync);
int
optgroup_rsync_available (void)
@@ -39,9 +40,8 @@ optgroup_rsync_available (void)
}
static int
-rsync (const char *src, const char *src_orig,
- const char *dest, const char *dest_orig,
- int archive, int deletedest)
+rsync (const char *src, const char *src_orig, const char *dest,
+ const char *dest_orig, int archive, int deletedest)
{
const char *argv[MAX_ARGS];
size_t i = 0;
@@ -71,8 +71,8 @@ rsync (const char *src, const char *src_orig,
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_rsync (const char *src_orig, const char *dest_orig,
- int archive, int deletedest)
+do_rsync (const char *src_orig, const char *dest_orig, int archive,
+ int deletedest)
{
CLEANUP_FREE char *src = NULL, *dest = NULL;
@@ -93,8 +93,8 @@ do_rsync (const char *src_orig, const char *dest_orig,
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_rsync_in (const char *remote, const char *dest_orig,
- int archive, int deletedest)
+do_rsync_in (const char *remote, const char *dest_orig, int archive,
+ int deletedest)
{
CLEANUP_FREE char *dest = NULL;
@@ -114,8 +114,8 @@ do_rsync_in (const char *remote, const char *dest_orig,
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_rsync_out (const char *src_orig, const char *remote,
- int archive, int deletedest)
+do_rsync_out (const char *src_orig, const char *remote, int archive,
+ int deletedest)
{
CLEANUP_FREE char *src = NULL;
diff --git a/daemon/scrub.c b/daemon/scrub.c
index c10b0a0..e89a581 100644
--- a/daemon/scrub.c
+++ b/daemon/scrub.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -28,7 +29,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_scrub, scrub);
+GUESTFSD_EXT_CMD (str_scrub, scrub);
int
optgroup_scrub_available (void)
diff --git a/daemon/selinux.c b/daemon/selinux.c
index 1c1446d..230307a 100644
--- a/daemon/selinux.c
+++ b/daemon/selinux.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -47,7 +48,7 @@ int
do_setcon (const char *context)
{
#if defined(HAVE_SETCON)
- if (setcon ((char *) context) == -1) {
+ if (setcon ((char *)context) == -1) {
reply_with_perror ("setcon");
return -1;
}
@@ -78,7 +79,7 @@ do_getcon (void)
return NULL;
}
- return r; /* caller frees */
+ return r; /* caller frees */
#else
reply_with_error ("function not available");
return NULL;
diff --git a/daemon/sfdisk.c b/daemon/sfdisk.c
index e32e637..ddddaa1 100644
--- a/daemon/sfdisk.c
+++ b/daemon/sfdisk.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -28,13 +29,12 @@
#include "daemon.h"
#include "actions.h"
-GUESTFSD_EXT_CMD(str_sfdisk, sfdisk);
-GUESTFSD_EXT_CMD(str_blockdev, blockdev);
+GUESTFSD_EXT_CMD (str_sfdisk, sfdisk);
+GUESTFSD_EXT_CMD (str_blockdev, blockdev);
static int
sfdisk (const char *device, int n, int cyls, int heads, int sectors,
- const char *extra_flag,
- char *const *lines)
+ const char *extra_flag, char *const *lines)
{
FILE *fp;
char buf[256];
@@ -57,14 +57,16 @@ sfdisk (const char *device, int n, int cyls, int heads, int sectors,
if (extra_flag) {
if (strlen (buf) + 1 + strlen (extra_flag) >= sizeof buf) {
- reply_with_error ("internal buffer overflow: sfdisk extra_flag too
long");
+ reply_with_error (
+ "internal buffer overflow: sfdisk extra_flag too long");
return -1;
}
sprintf (buf + strlen (buf), " %s", extra_flag);
}
if (strlen (buf) + 1 + strlen (device) >= sizeof buf) {
- reply_with_error ("internal buffer overflow: sfdisk device name too
long");
+ reply_with_error (
+ "internal buffer overflow: sfdisk device name too long");
return -1;
}
sprintf (buf + strlen (buf), " %s", device);
@@ -103,7 +105,7 @@ sfdisk (const char *device, int n, int cyls, int heads, int sectors,
* other component. In any case, reread the partition table
* unconditionally here.
*/
- (void) command (NULL, NULL, str_blockdev, "--rereadpt", device, NULL);
+ (void)command (NULL, NULL, str_blockdev, "--rereadpt", device, NULL);
udev_settle ();
@@ -123,7 +125,7 @@ do_sfdisk_N (const char *device, int n, int cyls, int heads, int
sectors,
{
char const *const lines[2] = { line, NULL };
- return sfdisk (device, n, cyls, heads, sectors, NULL, (void *) lines);
+ return sfdisk (device, n, cyls, heads, sectors, NULL, (void *)lines);
}
int
@@ -148,7 +150,7 @@ sfdisk_flag (const char *device, const char *flag)
udev_settle ();
- return out; /* caller frees */
+ return out; /* caller frees */
}
char *
diff --git a/daemon/sh.c b/daemon/sh.c
index 94f348b..7c6e76a 100644
--- a/daemon/sh.c
+++ b/daemon/sh.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -32,19 +33,21 @@
#include "ignore-value.h"
-GUESTFSD_EXT_CMD(str_cp, cp);
-GUESTFSD_EXT_CMD(str_mount, mount);
-GUESTFSD_EXT_CMD(str_umount, umount);
+GUESTFSD_EXT_CMD (str_cp, cp);
+GUESTFSD_EXT_CMD (str_mount, mount);
+GUESTFSD_EXT_CMD (str_umount, umount);
#ifdef HAVE_ATTRIBUTE_CLEANUP
-#define CLEANUP_BIND_STATE __attribute__((cleanup(free_bind_state)))
-#define CLEANUP_RESOLVER_STATE __attribute__((cleanup(free_resolver_state)))
+#define CLEANUP_BIND_STATE __attribute__ ((cleanup (free_bind_state)))
+#define CLEANUP_RESOLVER_STATE \
+ __attribute__ ((cleanup (free_resolver_state)))
#else
#define CLEANUP_BIND_STATE
#define CLEANUP_RESOLVER_STATE
#endif
-struct bind_state {
+struct bind_state
+{
bool mounted;
char *sysroot_dev;
char *sysroot_dev_pts;
@@ -55,7 +58,8 @@ struct bind_state {
bool dev_ok, dev_pts_ok, proc_ok, selinux_ok, sys_ok, sys_fs_selinux_ok;
};
-struct resolver_state {
+struct resolver_state
+{
bool mounted;
char *sysroot_etc_resolv_conf;
char *sysroot_etc_resolv_conf_old;
@@ -100,20 +104,26 @@ bind_mount (struct bind_state *bs)
* However I have not found a reliable way to unmount the same set
* of directories (umount -R does NOT work).
*/
- r = command (NULL, NULL, str_mount, "--bind", "/dev",
bs->sysroot_dev, NULL);
+ r = command (NULL, NULL, str_mount, "--bind", "/dev",
bs->sysroot_dev,
+ NULL);
bs->dev_ok = r != -1;
- r = command (NULL, NULL, str_mount, "--bind", "/dev/pts",
bs->sysroot_dev_pts, NULL);
+ r = command (NULL, NULL, str_mount, "--bind", "/dev/pts",
+ bs->sysroot_dev_pts, NULL);
bs->dev_pts_ok = r != -1;
- r = command (NULL, NULL, str_mount, "--bind", "/proc",
bs->sysroot_proc, NULL);
+ r = command (NULL, NULL, str_mount, "--bind", "/proc",
bs->sysroot_proc,
+ NULL);
bs->proc_ok = r != -1;
/* Note on the next line we have to bind-mount /sys/fs/selinux (appliance
* kernel) on top of /selinux (where guest is expecting selinux).
*/
- r = command (NULL, NULL, str_mount, "--bind", "/sys/fs/selinux",
bs->sysroot_selinux, NULL);
+ r = command (NULL, NULL, str_mount, "--bind", "/sys/fs/selinux",
+ bs->sysroot_selinux, NULL);
bs->selinux_ok = r != -1;
- r = command (NULL, NULL, str_mount, "--bind", "/sys",
bs->sysroot_sys, NULL);
+ r = command (NULL, NULL, str_mount, "--bind", "/sys",
bs->sysroot_sys,
+ NULL);
bs->sys_ok = r != -1;
- r = command (NULL, NULL, str_mount, "--bind", "/sys/fs/selinux",
bs->sysroot_sys_fs_selinux, NULL);
+ r = command (NULL, NULL, str_mount, "--bind", "/sys/fs/selinux",
+ bs->sysroot_sys_fs_selinux, NULL);
bs->sys_fs_selinux_ok = r != -1;
bs->mounted = true;
@@ -131,17 +141,23 @@ static void
free_bind_state (struct bind_state *bs)
{
if (bs->mounted) {
- if (bs->sys_fs_selinux_ok) umount_ignore_fail (bs->sysroot_sys_fs_selinux);
+ if (bs->sys_fs_selinux_ok)
+ umount_ignore_fail (bs->sysroot_sys_fs_selinux);
free (bs->sysroot_sys_fs_selinux);
- if (bs->sys_ok) umount_ignore_fail (bs->sysroot_sys);
+ if (bs->sys_ok)
+ umount_ignore_fail (bs->sysroot_sys);
free (bs->sysroot_sys);
- if (bs->selinux_ok) umount_ignore_fail (bs->sysroot_selinux);
+ if (bs->selinux_ok)
+ umount_ignore_fail (bs->sysroot_selinux);
free (bs->sysroot_selinux);
- if (bs->proc_ok) umount_ignore_fail (bs->sysroot_proc);
+ if (bs->proc_ok)
+ umount_ignore_fail (bs->sysroot_proc);
free (bs->sysroot_proc);
- if (bs->dev_pts_ok) umount_ignore_fail (bs->sysroot_dev_pts);
+ if (bs->dev_pts_ok)
+ umount_ignore_fail (bs->sysroot_dev_pts);
free (bs->sysroot_dev_pts);
- if (bs->dev_ok) umount_ignore_fail (bs->sysroot_dev);
+ if (bs->dev_ok)
+ umount_ignore_fail (bs->sysroot_dev);
free (bs->sysroot_dev);
bs->mounted = false;
}
@@ -211,7 +227,7 @@ set_up_etc_resolv_conf (struct resolver_state *rs)
rs->mounted = true;
return 0;
- error:
+error:
free (rs->sysroot_etc_resolv_conf);
free (rs->sysroot_etc_resolv_conf_old);
return -1;
@@ -225,7 +241,8 @@ free_resolver_state (struct resolver_state *rs)
if (rs->sysroot_etc_resolv_conf_old) {
if (verbose)
- fprintf (stderr, "renaming %s to %s\n",
rs->sysroot_etc_resolv_conf_old,
+ fprintf (stderr, "renaming %s to %s\n",
+ rs->sysroot_etc_resolv_conf_old,
rs->sysroot_etc_resolv_conf);
if (rename (rs->sysroot_etc_resolv_conf_old,
@@ -246,9 +263,10 @@ do_command (char *const *argv)
char *out;
CLEANUP_FREE char *err = NULL;
int r, flags;
- CLEANUP_BIND_STATE struct bind_state bind_state = { .mounted = false };
- CLEANUP_RESOLVER_STATE struct resolver_state resolver_state =
- { .mounted = false };
+ CLEANUP_BIND_STATE struct bind_state bind_state = {.mounted = false };
+ CLEANUP_RESOLVER_STATE struct resolver_state resolver_state = {
+ .mounted = false
+ };
/* We need a root filesystem mounted to do this. */
NEED_ROOT (, return NULL);
@@ -271,7 +289,7 @@ do_command (char *const *argv)
flags = COMMAND_FLAG_DO_CHROOT;
- r = commandvf (&out, &err, flags, (const char * const *) argv);
+ r = commandvf (&out, &err, flags, (const char *const *)argv);
free_bind_state (&bind_state);
free_resolver_state (&resolver_state);
@@ -282,7 +300,7 @@ do_command (char *const *argv)
return NULL;
}
- return out; /* Caller frees. */
+ return out; /* Caller frees. */
}
char **
@@ -300,7 +318,7 @@ do_command_lines (char *const *argv)
if (lines == NULL)
return NULL;
- return lines; /* Caller frees. */
+ return lines; /* Caller frees. */
}
char *
@@ -308,7 +326,7 @@ do_sh (const char *cmd)
{
const char *argv[] = { "/bin/sh", "-c", cmd, NULL };
- return do_command ((char **) argv);
+ return do_command ((char **)argv);
}
char **
@@ -316,5 +334,5 @@ do_sh_lines (const char *cmd)
{
const char *argv[] = { "/bin/sh", "-c", cmd, NULL };
- return do_command_lines ((char **) argv);
+ return do_command_lines ((char **)argv);
}
diff --git a/daemon/sleep.c b/daemon/sleep.c
index af01d25..0f3ef24 100644
--- a/daemon/sleep.c
+++ b/daemon/sleep.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,6 +31,6 @@ int
do_sleep (int secs)
{
/* According to the man page, this syscall never fails. */
- (void) sleep (secs);
+ (void)sleep (secs);
return 0;
}
diff --git a/daemon/sleuthkit.c b/daemon/sleuthkit.c
index 2f8c97b..77b323f 100644
--- a/daemon/sleuthkit.c
+++ b/daemon/sleuthkit.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -31,7 +32,7 @@
static int file_out (const char *cmd);
-GUESTFSD_EXT_CMD(str_sleuthkit_probe, icat);
+GUESTFSD_EXT_CMD (str_sleuthkit_probe, icat);
int
optgroup_sleuthkit_available (void)
@@ -51,7 +52,8 @@ do_download_inode (const mountable_t *mountable, int64_t inode)
}
/* Construct the command. */
- if (asprintf (&cmd, "icat -r %s %" PRIi64, mountable->device, inode)
== -1) {
+ if (asprintf (&cmd, "icat -r %s %" PRIi64, mountable->device, inode)
==
+ -1) {
reply_with_perror ("asprintf");
return -1;
}
@@ -96,18 +98,18 @@ file_out (const char *cmd)
if (ferror (fp)) {
fprintf (stderr, "fread: %m");
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
pclose (fp);
return -1;
}
if (pclose (fp) != 0) {
fprintf (stderr, "pclose: %m");
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
diff --git a/daemon/stat.c b/daemon/stat.c
index 73f1922..165c3e6 100644
--- a/daemon/stat.c
+++ b/daemon/stat.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -78,8 +79,8 @@ stat_to_statns (guestfs_int_statns *ret, const struct stat *statbuf)
ret->st_ctime_nsec = 0;
#endif
- ret->st_spare1 = ret->st_spare2 = ret->st_spare3 =
- ret->st_spare4 = ret->st_spare5 = ret->st_spare6 = 0;
+ ret->st_spare1 = ret->st_spare2 = ret->st_spare3 = ret->st_spare4 =
+ ret->st_spare5 = ret->st_spare6 = 0;
return ret;
}
@@ -136,7 +137,7 @@ do_internal_lstatnslist (const char *path, char *const *names)
}
ret->guestfs_int_statns_list_len = nr_names;
ret->guestfs_int_statns_list_val =
- calloc (nr_names, sizeof (guestfs_int_statns));
+ calloc (nr_names, sizeof (guestfs_int_statns));
if (ret->guestfs_int_statns_list_val == NULL) {
reply_with_perror ("calloc");
free (ret);
@@ -144,7 +145,7 @@ do_internal_lstatnslist (const char *path, char *const *names)
}
CHROOT_IN;
- path_fd = open (path, O_RDONLY|O_DIRECTORY|O_CLOEXEC);
+ path_fd = open (path, O_RDONLY | O_DIRECTORY | O_CLOEXEC);
CHROOT_OUT;
if (path_fd == -1) {
diff --git a/daemon/statvfs.c b/daemon/statvfs.c
index 987537d..f1a7862 100644
--- a/daemon/statvfs.c
+++ b/daemon/statvfs.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -78,7 +79,7 @@ do_statvfs (const char *path)
return ret;
#else /* !HAVE_STATVFS */
-# if WIN32
+#if WIN32
CLEANUP_FREE char *disk = NULL;
guestfs_int_statvfs *ret;
@@ -92,10 +93,9 @@ do_statvfs (const char *path)
return NULL;
}
- if (!GetDiskFreeSpaceEx (disk,
- (PULARGE_INTEGER) &free_bytes_available,
- (PULARGE_INTEGER) &total_number_of_bytes,
- (PULARGE_INTEGER) &total_number_of_free_bytes)) {
+ if (!GetDiskFreeSpaceEx (disk, (PULARGE_INTEGER)&free_bytes_available,
+ (PULARGE_INTEGER)&total_number_of_bytes,
+ (PULARGE_INTEGER)&total_number_of_free_bytes)) {
reply_with_perror ("GetDiskFreeSpaceEx");
return NULL;
}
@@ -115,11 +115,14 @@ do_statvfs (const char *path)
*/
if (total_number_of_bytes < UINT64_C (16) * 1024 * 1024 * 1024 * 1024)
ret->bsize = 4096;
- else if (total_number_of_bytes < UINT64_C (32) * 1024 * 1024 * 1024 * 1024)
+ else if (total_number_of_bytes <
+ UINT64_C (32) * 1024 * 1024 * 1024 * 1024)
ret->bsize = 8192;
- else if (total_number_of_bytes < UINT64_C (64) * 1024 * 1024 * 1024 * 1024)
+ else if (total_number_of_bytes <
+ UINT64_C (64) * 1024 * 1024 * 1024 * 1024)
ret->bsize = 16384;
- else if (total_number_of_bytes < UINT64_C (128) * 1024 * 1024 * 1024 * 1024)
+ else if (total_number_of_bytes <
+ UINT64_C (128) * 1024 * 1024 * 1024 * 1024)
ret->bsize = 32768;
else
ret->bsize = 65536;
@@ -138,7 +141,7 @@ do_statvfs (const char *path)
return ret;
-# else /* !WIN32 */
+#else /* !WIN32 */
CLEANUP_FREE char *disk = NULL;
int r;
@@ -179,6 +182,6 @@ do_statvfs (const char *path)
return ret;
-# endif /* !WIN32 */
+#endif /* !WIN32 */
#endif /* !HAVE_STATVFS */
}
diff --git a/daemon/strings.c b/daemon/strings.c
index 6e81b9e..c851e92 100644
--- a/daemon/strings.c
+++ b/daemon/strings.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -34,14 +35,13 @@ do_strings_e (const char *encoding, const char *path)
CLEANUP_FREE char *out = NULL, *err = NULL;
char **lines;
- if (strlen (encoding) != 1 ||
- strchr ("sSblBL", encoding[0]) == NULL) {
+ if (strlen (encoding) != 1 || strchr ("sSblBL", encoding[0]) == NULL) {
reply_with_error ("%s: invalid encoding", encoding);
return NULL;
}
CHROOT_IN;
- fd = open (path, O_RDONLY|O_CLOEXEC);
+ fd = open (path, O_RDONLY | O_CLOEXEC);
CHROOT_OUT;
if (fd == -1) {
@@ -61,7 +61,7 @@ do_strings_e (const char *encoding, const char *path)
if (lines == NULL)
return NULL;
- return lines; /* Caller frees. */
+ return lines; /* Caller frees. */
}
char **
diff --git a/daemon/swap.c b/daemon/swap.c
index 9d7839e..8124df9 100644
--- a/daemon/swap.c
+++ b/daemon/swap.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,12 +31,13 @@
#include "ignore-value.h"
-GUESTFSD_EXT_CMD(str_mkswap, mkswap);
-GUESTFSD_EXT_CMD(str_swapon, swapon);
-GUESTFSD_EXT_CMD(str_swapoff, swapoff);
-GUESTFSD_EXT_CMD(str_swaplabel, swaplabel);
+GUESTFSD_EXT_CMD (str_mkswap, mkswap);
+GUESTFSD_EXT_CMD (str_swapon, swapon);
+GUESTFSD_EXT_CMD (str_swapoff, swapoff);
+GUESTFSD_EXT_CMD (str_swaplabel, swaplabel);
-/* Confirmed this is true for Linux swap partitions from the Linux sources. */
+/* Confirmed this is true for Linux swap partitions from the Linux sources.
+ */
#define SWAP_LABEL_MAX 16
int
diff --git a/daemon/sync.c b/daemon/sync.c
index 632995c..d20fb30 100644
--- a/daemon/sync.c
+++ b/daemon/sync.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -61,13 +62,13 @@ sync_disks (void)
#if defined(HAVE_SYNC)
sync ();
- /* On Linux, sync(2) doesn't perform a barrier, so qemu (which may
- * have a writeback cache, even with cache=none) will still have
- * some unwritten data. Force the data out of any qemu caches, by
- * calling fsync on all block devices. Note we still need the
- * call to sync above in order to schedule the writes.
- * Thanks to: Avi Kivity, Kevin Wolf.
- */
+/* On Linux, sync(2) doesn't perform a barrier, so qemu (which may
+ * have a writeback cache, even with cache=none) will still have
+ * some unwritten data. Force the data out of any qemu caches, by
+ * calling fsync on all block devices. Note we still need the
+ * call to sync above in order to schedule the writes.
+ * Thanks to: Avi Kivity, Kevin Wolf.
+ */
#ifdef HAVE_FSYNC
fsync_devices ();
#endif
@@ -98,12 +99,11 @@ fsync_devices (void)
for (;;) {
errno = 0;
d = readdir (dir);
- if (!d) break;
+ if (!d)
+ break;
- if (STREQLEN (d->d_name, "sd", 2) ||
- STREQLEN (d->d_name, "hd", 2) ||
- STREQLEN (d->d_name, "ubd", 3) ||
- STREQLEN (d->d_name, "vd", 2) ||
+ if (STREQLEN (d->d_name, "sd", 2) || STREQLEN (d->d_name,
"hd", 2) ||
+ STREQLEN (d->d_name, "ubd", 3) || STREQLEN (d->d_name,
"vd", 2) ||
STREQLEN (d->d_name, "sr", 2)) {
snprintf (dev_path, sizeof dev_path, "/dev/%s", d->d_name);
@@ -111,7 +111,7 @@ fsync_devices (void)
if (is_root_device (dev_path))
continue;
- fd = open (dev_path, O_RDONLY|O_CLOEXEC);
+ fd = open (dev_path, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
perror (dev_path);
continue;
@@ -149,7 +149,7 @@ sync_win32 (void)
if (n1 == 0)
return -1;
- TCHAR buffer[n1+2]; /* sic */
+ TCHAR buffer[n1 + 2]; /* sic */
n2 = GetLogicalDriveStrings (n1, buffer);
if (n2 == 0)
return -1;
@@ -175,9 +175,9 @@ sync_win32 (void)
if (!GetVolumeNameForVolumeMountPoint (p, volname, 50))
return -1;
- drive = CreateFile (volname, GENERIC_READ|GENERIC_WRITE,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- NULL, OPEN_EXISTING, 0, 0);
+ drive = CreateFile (volname, GENERIC_READ | GENERIC_WRITE,
+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+ OPEN_EXISTING, 0, 0);
if (drive == INVALID_HANDLE_VALUE)
return -1;
@@ -192,7 +192,8 @@ sync_win32 (void)
}
/* Skip to next \0 character. */
- while (*p++);
+ while (*p++)
+ ;
}
return 0;
diff --git a/daemon/syslinux.c b/daemon/syslinux.c
index 08da170..0cf9a60 100644
--- a/daemon/syslinux.c
+++ b/daemon/syslinux.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -28,8 +29,8 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_syslinux, syslinux);
-GUESTFSD_EXT_CMD(str_extlinux, extlinux);
+GUESTFSD_EXT_CMD (str_syslinux, syslinux);
+GUESTFSD_EXT_CMD (str_extlinux, extlinux);
int
optgroup_syslinux_available (void)
diff --git a/daemon/tar.c b/daemon/tar.c
index 6d0403a..aeff0e4 100644
--- a/daemon/tar.c
+++ b/daemon/tar.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -35,7 +36,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_tar, tar);
+GUESTFSD_EXT_CMD (str_tar, tar);
int
optgroup_xz_available (void)
@@ -67,7 +68,7 @@ is_chown_supported (const char *dir)
}
/* Maybe 'dir' is not a directory or filesystem not writable? */
- fd = open (buf, O_WRONLY|O_CREAT|O_NOCTTY|O_CLOEXEC, 0666);
+ fd = open (buf, O_WRONLY | O_CREAT | O_NOCTTY | O_CLOEXEC, 0666);
if (fd == -1) {
err = errno;
r = cancel_receive ();
@@ -118,10 +119,10 @@ read_error_file (char *error_file)
}
/* Remove trailing \n character if any. */
- if (len > 0 && str[len-1] == '\n')
+ if (len > 0 && str[len - 1] == '\n')
str[--len] = '\0';
- return str; /* caller frees */
+ return str; /* caller frees */
}
static int
@@ -134,7 +135,8 @@ write_cb (void *fd_ptr, const void *buf, size_t len)
/* Has one FileIn parameter. */
/* Takes optional arguments, consult optargs_bitmask. */
int
-do_tar_in (const char *dir, const char *compress, int xattrs, int selinux, int acls)
+do_tar_in (const char *dir, const char *compress, int xattrs, int selinux,
+ int acls)
{
const char *filter;
int err, r;
@@ -186,13 +188,10 @@ do_tar_in (const char *dir, const char *compress, int xattrs, int
selinux, int a
close (fd);
/* "tar -C /sysroot%s -xf -" but we have to quote the dir. */
- if (asprintf_nowarn (&cmd, "%s -C %R%s -xf - %s%s%s%s2> %s",
- str_tar,
- dir, filter,
- chown_supported ? "" : "--no-same-owner ",
+ if (asprintf_nowarn (&cmd, "%s -C %R%s -xf - %s%s%s%s2> %s", str_tar,
dir,
+ filter, chown_supported ? "" : "--no-same-owner
",
xattrs ? "--xattrs " : "",
- selinux ? "--selinux " : "",
- acls ? "--acls " : "",
+ selinux ? "--selinux " : "", acls ?
"--acls " : "",
error_file) == -1) {
err = errno;
r = cancel_receive ();
@@ -221,7 +220,7 @@ do_tar_in (const char *dir, const char *compress, int xattrs, int
selinux, int a
fd = fileno (fp);
r = receive_file (write_cb, &fd);
- if (r == -1) { /* write error */
+ if (r == -1) { /* write error */
cancel_receive ();
CLEANUP_FREE char *errstr = read_error_file (error_file);
reply_with_error ("write error on directory: %s: %s", dir, errstr);
@@ -229,7 +228,7 @@ do_tar_in (const char *dir, const char *compress, int xattrs, int
selinux, int a
pclose (fp);
return -1;
}
- if (r == -2) { /* cancellation from library */
+ if (r == -2) { /* cancellation from library */
/* This error is ignored by the library since it initiated the
* cancel. Nevertheless we must send an error reply here.
*/
@@ -241,8 +240,8 @@ do_tar_in (const char *dir, const char *compress, int xattrs, int
selinux, int a
if (pclose (fp) != 0) {
CLEANUP_FREE char *errstr = read_error_file (error_file);
- reply_with_error ("tar subcommand failed on directory: %s: %s",
- dir, errstr);
+ reply_with_error ("tar subcommand failed on directory: %s: %s", dir,
+ errstr);
unlink (error_file);
return -1;
}
@@ -288,7 +287,8 @@ make_exclude_from_file (char *const *excludes)
for (i = 0; excludes[i] != NULL; ++i) {
if (strchr (excludes[i], '\n')) {
- reply_with_error ("tar-out: excludes file patterns cannot contain \\n
character");
+ reply_with_error (
+ "tar-out: excludes file patterns cannot contain \\n character");
goto error;
}
@@ -299,7 +299,8 @@ make_exclude_from_file (char *const *excludes)
}
if (verbose)
- fprintf (stderr, "tar-out: adding excludes pattern '%s'\n",
excludes[i]);
+ fprintf (stderr, "tar-out: adding excludes pattern '%s'\n",
+ excludes[i]);
}
if (close (fd) == -1) {
@@ -317,7 +318,7 @@ make_exclude_from_file (char *const *excludes)
return ret;
- error:
+error:
if (fd >= 0)
close (fd);
unlink (template);
@@ -393,16 +394,14 @@ do_tar_out (const char *dir, const char *compress, int
numericowner,
return -1;
}
- if (! S_ISDIR (statbuf.st_mode)) {
+ if (!S_ISDIR (statbuf.st_mode)) {
reply_with_error ("%s: not a directory", dir);
return -1;
}
/* "tar -C /sysroot%s -cf - ." but we have to quote the dir. */
- if (asprintf_nowarn (&cmd, "%s -C %Q%s%s%s%s%s%s%s -cf - .",
- str_tar,
- buf, filter,
- numericowner ? " --numeric-owner" : "",
+ if (asprintf_nowarn (&cmd, "%s -C %Q%s%s%s%s%s%s%s -cf - .", str_tar,
buf,
+ filter, numericowner ? " --numeric-owner" :
"",
exclude_from_file ? " -X " : "",
exclude_from_file ? exclude_from_file : "",
xattrs ? " --xattrs" : "",
@@ -436,18 +435,18 @@ do_tar_out (const char *dir, const char *compress, int
numericowner,
if (ferror (fp)) {
fprintf (stderr, "fread: %s: %m\n", dir);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
pclose (fp);
return -1;
}
if (pclose (fp) != 0) {
fprintf (stderr, "pclose: %s: %m\n", dir);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
diff --git a/daemon/truncate.c b/daemon/truncate.c
index 0c3731c..6253c1e 100644
--- a/daemon/truncate.c
+++ b/daemon/truncate.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -35,7 +36,7 @@ do_truncate_size (const char *path, int64_t size)
int r;
CHROOT_IN;
- fd = open (path, O_WRONLY|O_NOCTTY|O_CLOEXEC);
+ fd = open (path, O_WRONLY | O_NOCTTY | O_CLOEXEC);
CHROOT_OUT;
if (fd == -1) {
@@ -43,7 +44,7 @@ do_truncate_size (const char *path, int64_t size)
return -1;
}
- r = ftruncate (fd, (off_t) size);
+ r = ftruncate (fd, (off_t)size);
if (r == -1) {
reply_with_perror ("ftruncate: %s", path);
close (fd);
diff --git a/daemon/umask.c b/daemon/umask.c
index 475c820..a100064 100644
--- a/daemon/umask.c
+++ b/daemon/umask.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -36,7 +37,7 @@ do_umask (int mask)
int r;
if (mask < 0 || mask > 0777) {
- reply_with_error ("0%o: mask negative or out of range", (unsigned) mask);
+ reply_with_error ("0%o: mask negative or out of range", (unsigned)mask);
return -1;
}
diff --git a/daemon/upload.c b/daemon/upload.c
index aeb7306..9bd0879 100644
--- a/daemon/upload.c
+++ b/daemon/upload.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -31,9 +32,10 @@
#include "daemon.h"
#include "actions.h"
-struct write_cb_data {
- int fd; /* file descriptor */
- uint64_t written; /* bytes written so far */
+struct write_cb_data
+{
+ int fd; /* file descriptor */
+ uint64_t written; /* bytes written so far */
};
static int
@@ -58,14 +60,16 @@ write_cb (void *data_vp, const void *buf, size_t len)
static int
upload (const char *filename, int flags, int64_t offset)
{
- struct write_cb_data data = { .written = 0 };
+ struct write_cb_data data = {.written = 0 };
int err, r, is_dev;
is_dev = STRPREFIX (filename, "/dev/");
- if (!is_dev) CHROOT_IN;
+ if (!is_dev)
+ CHROOT_IN;
data.fd = open (filename, flags, 0666);
- if (!is_dev) CHROOT_OUT;
+ if (!is_dev)
+ CHROOT_OUT;
if (data.fd == -1) {
err = errno;
r = cancel_receive ();
@@ -85,7 +89,7 @@ upload (const char *filename, int flags, int64_t offset)
}
r = receive_file (write_cb, &data.fd);
- if (r == -1) { /* write error */
+ if (r == -1) { /* write error */
err = errno;
r = cancel_receive ();
errno = err;
@@ -93,7 +97,7 @@ upload (const char *filename, int flags, int64_t offset)
close (data.fd);
return -1;
}
- if (r == -2) { /* cancellation from library */
+ if (r == -2) { /* cancellation from library */
/* This error is ignored by the library since it initiated the
* cancel. Nevertheless we must send an error reply here.
*/
@@ -114,7 +118,8 @@ upload (const char *filename, int flags, int64_t offset)
int
do_upload (const char *filename)
{
- return upload (filename, O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY|O_CLOEXEC, 0);
+ return upload (filename,
+ O_WRONLY | O_CREAT | O_TRUNC | O_NOCTTY | O_CLOEXEC, 0);
}
/* Has one FileIn parameter. */
@@ -126,7 +131,8 @@ do_upload_offset (const char *filename, int64_t offset)
return -1;
}
- return upload (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_CLOEXEC, offset);
+ return upload (filename, O_WRONLY | O_CREAT | O_NOCTTY | O_CLOEXEC,
+ offset);
}
/* Extra check to prevent RHBZ#908321. */
@@ -162,9 +168,11 @@ do_download (const char *filename)
is_dev = STRPREFIX (filename, "/dev/");
- if (!is_dev) CHROOT_IN;
- fd = open (filename, O_RDONLY|O_CLOEXEC);
- if (!is_dev) CHROOT_OUT;
+ if (!is_dev)
+ CHROOT_IN;
+ fd = open (filename, O_RDONLY | O_CLOEXEC);
+ if (!is_dev)
+ CHROOT_OUT;
if (fd == -1) {
reply_with_perror ("%s", filename);
return -1;
@@ -192,7 +200,7 @@ do_download (const char *filename)
close (fd);
return -1;
}
- total = (uint64_t) size;
+ total = (uint64_t)size;
}
/* Now we must send the reply message, before the file contents. After
@@ -213,18 +221,18 @@ do_download (const char *filename)
if (r == -1) {
fprintf (stderr, "read: %s: %m\n", filename);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
close (fd);
return -1;
}
if (close (fd) == -1) {
fprintf (stderr, "close: %s: %m\n", filename);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
@@ -252,13 +260,15 @@ do_download_offset (const char *filename, int64_t offset, int64_t
size)
reply_with_perror ("%s: size is negative", filename);
return -1;
}
- uint64_t usize = (uint64_t) size;
+ uint64_t usize = (uint64_t)size;
is_dev = STRPREFIX (filename, "/dev/");
- if (!is_dev) CHROOT_IN;
- fd = open (filename, O_RDONLY|O_CLOEXEC);
- if (!is_dev) CHROOT_OUT;
+ if (!is_dev)
+ CHROOT_IN;
+ fd = open (filename, O_RDONLY | O_CLOEXEC);
+ if (!is_dev)
+ CHROOT_OUT;
if (fd == -1) {
reply_with_perror ("%s", filename);
return -1;
@@ -286,11 +296,12 @@ do_download_offset (const char *filename, int64_t offset, int64_t
size)
reply (NULL, NULL);
while (usize > 0) {
- r = read (fd, buf,
- usize > GUESTFS_MAX_CHUNK_SIZE ? GUESTFS_MAX_CHUNK_SIZE : usize);
+ r = read (fd, buf, usize > GUESTFS_MAX_CHUNK_SIZE
+ ? GUESTFS_MAX_CHUNK_SIZE
+ : usize);
if (r == -1) {
fprintf (stderr, "read: %s: %m\n", filename);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
close (fd);
return -1;
}
@@ -313,11 +324,11 @@ do_download_offset (const char *filename, int64_t offset, int64_t
size)
if (close (fd) == -1) {
fprintf (stderr, "close: %s: %m\n", filename);
- send_file_end (1); /* Cancel. */
+ send_file_end (1); /* Cancel. */
return -1;
}
- if (send_file_end (0)) /* Normal end of file. */
+ if (send_file_end (0)) /* Normal end of file. */
return -1;
return 0;
diff --git a/daemon/utimens.c b/daemon/utimens.c
index 2df6fc7..4874b52 100644
--- a/daemon/utimens.c
+++ b/daemon/utimens.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -29,8 +30,7 @@
#include "actions.h"
int
-do_utimens (const char *path,
- int64_t atsecs, int64_t atnsecs,
+do_utimens (const char *path, int64_t atsecs, int64_t atnsecs,
int64_t mtsecs, int64_t mtnsecs)
{
int r;
diff --git a/daemon/utsname.c b/daemon/utsname.c
index 17a82c3..6876cef 100644
--- a/daemon/utsname.c
+++ b/daemon/utsname.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -48,8 +49,8 @@ do_utsname (void)
ret->uts_release = strdup (uts.release);
ret->uts_version = strdup (uts.version);
ret->uts_machine = strdup (uts.machine);
- if (!ret->uts_sysname || !ret->uts_release ||
- !ret->uts_version || !ret->uts_machine) {
+ if (!ret->uts_sysname || !ret->uts_release || !ret->uts_version ||
+ !ret->uts_machine) {
reply_with_perror ("strdup");
free (ret->uts_sysname);
free (ret->uts_release);
diff --git a/daemon/uuids.c b/daemon/uuids.c
index 7e69862..51a9864 100644
--- a/daemon/uuids.c
+++ b/daemon/uuids.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -27,7 +28,6 @@
#include "actions.h"
#include "optgroups.h"
-
static int
e2uuid (const char *device, const char *uuid)
{
@@ -78,8 +78,9 @@ do_set_uuid (const char *device, const char *uuid)
r = btrfs_set_uuid (device, uuid);
else
- NOT_SUPPORTED (-1, "don't know how to set the UUID for '%s'
filesystems",
- vfs_type);
+ NOT_SUPPORTED (-1,
+ "don't know how to set the UUID for '%s'
filesystems",
+ vfs_type);
return r;
}
@@ -111,7 +112,8 @@ do_set_uuid_random (const char *device)
r = btrfs_set_uuid_random (device);
else
- NOT_SUPPORTED (-1, "don't know how to set the random UUID for '%s'
filesystems",
- vfs_type);
+ NOT_SUPPORTED (
+ -1, "don't know how to set the random UUID for '%s'
filesystems",
+ vfs_type);
return r;
}
diff --git a/daemon/wc.c b/daemon/wc.c
index 454cdf3..3c85954 100644
--- a/daemon/wc.c
+++ b/daemon/wc.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -35,7 +36,7 @@ wc (const char *flag, const char *path)
int fd, flags, r;
CHROOT_IN;
- fd = open (path, O_RDONLY|O_CLOEXEC);
+ fd = open (path, O_RDONLY | O_CLOEXEC);
CHROOT_OUT;
if (fd == -1) {
diff --git a/daemon/xattr.c b/daemon/xattr.c
index 7de5554..6c6c08a 100644
--- a/daemon/xattr.c
+++ b/daemon/xattr.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -27,23 +28,23 @@
#include "actions.h"
#include "optgroups.h"
-#if (defined(HAVE_ATTR_XATTR_H) || defined(HAVE_SYS_XATTR_H)) && \
- defined(HAVE_LISTXATTR) && defined(HAVE_LLISTXATTR) && \
- defined(HAVE_GETXATTR) && defined(HAVE_LGETXATTR) && \
- defined(HAVE_REMOVEXATTR) && defined(HAVE_LREMOVEXATTR) && \
- defined(HAVE_SETXATTR) && defined(HAVE_LSETXATTR)
-# define HAVE_LINUX_XATTRS
+#if (defined(HAVE_ATTR_XATTR_H) || defined(HAVE_SYS_XATTR_H)) && \
+ defined(HAVE_LISTXATTR) && defined(HAVE_LLISTXATTR) &&
\
+ defined(HAVE_GETXATTR) && defined(HAVE_LGETXATTR) &&
\
+ defined(HAVE_REMOVEXATTR) && defined(HAVE_LREMOVEXATTR) &&
\
+ defined(HAVE_SETXATTR) && defined(HAVE_LSETXATTR)
+#define HAVE_LINUX_XATTRS
#endif
#ifdef HAVE_LINUX_XATTRS
-# ifdef HAVE_ATTR_XATTR_H
-# include <attr/xattr.h>
-# else
-# ifdef HAVE_SYS_XATTR_H
-# include <sys/xattr.h>
-# endif
-# endif
+#ifdef HAVE_ATTR_XATTR_H
+#include <attr/xattr.h>
+#else
+#ifdef HAVE_SYS_XATTR_H
+#include <sys/xattr.h>
+#endif
+#endif
int
optgroup_linuxxattrs_available (void)
@@ -51,11 +52,27 @@ optgroup_linuxxattrs_available (void)
return 1;
}
-static guestfs_int_xattr_list *getxattrs (const char *path, ssize_t (*listxattr) (const
char *path, char *list, size_t size), ssize_t (*getxattr) (const char *path, const char
*name, void *value, size_t size));
-static int _setxattr (const char *xattr, const char *val, int vallen, const char *path,
int (*setxattr) (const char *path, const char *name, const void *value, size_t size, int
flags));
-static int _removexattr (const char *xattr, const char *path, int (*removexattr) (const
char *path, const char *name));
-static char *_listxattrs (const char *path, ssize_t (*listxattr) (const char *path, char
*list, size_t size), ssize_t *size);
-static char *_getxattr (const char *name, const char *path, ssize_t (*getxattr) (const
char *path, const char *name, void *value, size_t size), size_t *size_r);
+static guestfs_int_xattr_list *
+getxattrs (const char *path,
+ ssize_t (*listxattr) (const char *path, char *list, size_t size),
+ ssize_t (*getxattr) (const char *path, const char *name,
+ void *value, size_t size));
+static int
+_setxattr (const char *xattr, const char *val, int vallen, const char *path,
+ int (*setxattr) (const char *path, const char *name,
+ const void *value, size_t size, int flags));
+static int _removexattr (const char *xattr, const char *path,
+ int (*removexattr) (const char *path,
+ const char *name));
+static char *_listxattrs (const char *path,
+ ssize_t (*listxattr) (const char *path,
+ char *list, size_t size),
+ ssize_t *size);
+static char *_getxattr (const char *name, const char *path,
+ ssize_t (*getxattr) (const char *path,
+ const char *name, void *value,
+ size_t size),
+ size_t *size_r);
guestfs_int_xattr_list *
do_getxattrs (const char *path)
@@ -70,13 +87,15 @@ do_lgetxattrs (const char *path)
}
int
-do_setxattr (const char *xattr, const char *val, int vallen, const char *path)
+do_setxattr (const char *xattr, const char *val, int vallen,
+ const char *path)
{
return _setxattr (xattr, val, vallen, path, setxattr);
}
int
-do_lsetxattr (const char *xattr, const char *val, int vallen, const char *path)
+do_lsetxattr (const char *xattr, const char *val, int vallen,
+ const char *path)
{
return _setxattr (xattr, val, vallen, path, lsetxattr);
}
@@ -128,17 +147,17 @@ getxattrs (const char *path,
* len. First count the strings.
*/
r->guestfs_int_xattr_list_len = 0;
- for (i = 0; i < (size_t) len; i += strlen (&buf[i]) + 1)
+ for (i = 0; i < (size_t)len; i += strlen (&buf[i]) + 1)
r->guestfs_int_xattr_list_len++;
r->guestfs_int_xattr_list_val =
- calloc (r->guestfs_int_xattr_list_len, sizeof (guestfs_int_xattr));
+ calloc (r->guestfs_int_xattr_list_len, sizeof (guestfs_int_xattr));
if (r->guestfs_int_xattr_list_val == NULL) {
reply_with_perror ("calloc");
goto error;
}
- for (i = 0, j = 0; i < (size_t) len; i += strlen (&buf[i]) + 1, ++j) {
+ for (i = 0, j = 0; i < (size_t)len; i += strlen (&buf[i]) + 1, ++j) {
CHROOT_IN;
vlen = getxattr (path, &buf[i], NULL, 0);
CHROOT_OUT;
@@ -176,13 +195,12 @@ getxattrs (const char *path,
/* Sort the entries by attrname. */
qsort (&r->guestfs_int_xattr_list_val[0],
- (size_t) r->guestfs_int_xattr_list_len,
- sizeof (guestfs_int_xattr),
+ (size_t)r->guestfs_int_xattr_list_len, sizeof (guestfs_int_xattr),
compare_xattrs);
return r;
- error:
+error:
if (r) {
if (r->guestfs_int_xattr_list_val) {
size_t k;
@@ -239,7 +257,8 @@ _removexattr (const char *xattr, const char *path,
static char *
_listxattrs (const char *path,
- ssize_t (*listxattr) (const char *path, char *list, size_t size),
+ ssize_t (*listxattr) (const char *path, char *list,
+ size_t size),
ssize_t *size)
{
char *buf = NULL;
@@ -271,7 +290,7 @@ _listxattrs (const char *path,
*size = len;
return buf;
- error:
+error:
free (buf);
return NULL;
}
@@ -315,8 +334,8 @@ do_internal_lxattrlist (const char *path, char *const *names)
/* Reserve space for the special attribute. */
newptr = realloc (ret->guestfs_int_xattr_list_val,
- (ret->guestfs_int_xattr_list_len+1) *
- sizeof (guestfs_int_xattr));
+ (ret->guestfs_int_xattr_list_len + 1) *
+ sizeof (guestfs_int_xattr));
if (newptr == NULL) {
reply_with_perror ("realloc");
goto error;
@@ -325,7 +344,8 @@ do_internal_lxattrlist (const char *path, char *const *names)
ret->guestfs_int_xattr_list_len++;
guestfs_int_xattr *entry =
- &ret->guestfs_int_xattr_list_val[ret->guestfs_int_xattr_list_len-1];
+ &ret->guestfs_int_xattr_list_val[ret->guestfs_int_xattr_list_len -
+ 1];
entry->attrname = NULL;
entry->attrval.attrval_len = 0;
entry->attrval.attrval_val = NULL;
@@ -358,13 +378,12 @@ do_internal_lxattrlist (const char *path, char *const *names)
* len. First count the strings.
*/
nr_attrs = 0;
- for (i = 0; i < (size_t) len; i += strlen (&buf[i]) + 1)
+ for (i = 0; i < (size_t)len; i += strlen (&buf[i]) + 1)
nr_attrs++;
- newptr =
- realloc (ret->guestfs_int_xattr_list_val,
- (ret->guestfs_int_xattr_list_len+nr_attrs) *
- sizeof (guestfs_int_xattr));
+ newptr = realloc (ret->guestfs_int_xattr_list_val,
+ (ret->guestfs_int_xattr_list_len + nr_attrs) *
+ sizeof (guestfs_int_xattr));
if (newptr == NULL) {
reply_with_perror ("realloc");
goto error;
@@ -375,14 +394,16 @@ do_internal_lxattrlist (const char *path, char *const *names)
/* entry[0] is the special attribute,
* entry[1..nr_attrs] are the attributes.
*/
- entry =
&ret->guestfs_int_xattr_list_val[ret->guestfs_int_xattr_list_len-nr_attrs-1];
- for (m = 1; m < nr_attrs+1; ++m) {
+ entry =
+ &ret->guestfs_int_xattr_list_val[ret->guestfs_int_xattr_list_len -
+ nr_attrs - 1];
+ for (m = 1; m < nr_attrs + 1; ++m) {
entry[m].attrname = NULL;
entry[m].attrval.attrval_len = 0;
entry[m].attrval.attrval_val = NULL;
}
- for (i = 0, j = 0; i < (size_t) len; i += strlen (&buf[i]) + 1, ++j) {
+ for (i = 0, j = 0; i < (size_t)len; i += strlen (&buf[i]) + 1, ++j) {
CHROOT_IN;
vlen = lgetxattr (pathname, &buf[i], NULL, 0);
CHROOT_OUT;
@@ -396,19 +417,19 @@ do_internal_lxattrlist (const char *path, char *const *names)
goto error;
}
- entry[j+1].attrname = strdup (&buf[i]);
- entry[j+1].attrval.attrval_val = malloc (vlen);
- entry[j+1].attrval.attrval_len = vlen;
+ entry[j + 1].attrname = strdup (&buf[i]);
+ entry[j + 1].attrval.attrval_val = malloc (vlen);
+ entry[j + 1].attrval.attrval_len = vlen;
- if (entry[j+1].attrname == NULL ||
- entry[j+1].attrval.attrval_val == NULL) {
+ if (entry[j + 1].attrname == NULL ||
+ entry[j + 1].attrval.attrval_val == NULL) {
reply_with_perror ("malloc");
goto error;
}
CHROOT_IN;
- vlen = lgetxattr (pathname, &buf[i],
- entry[j+1].attrval.attrval_val, vlen);
+ vlen = lgetxattr (pathname, &buf[i], entry[j + 1].attrval.attrval_val,
+ vlen);
CHROOT_OUT;
if (vlen == -1) {
reply_with_perror ("getxattr");
@@ -432,7 +453,7 @@ do_internal_lxattrlist (const char *path, char *const *names)
return ret;
- error:
+error:
if (ret) {
if (ret->guestfs_int_xattr_list_val) {
for (k = 0; k < ret->guestfs_int_xattr_list_len; ++k) {
@@ -492,7 +513,7 @@ _getxattr (const char *name, const char *path,
return NULL;
}
- if (len != (size_t) r) {
+ if (len != (size_t)r) {
reply_with_error ("getxattr: unexpected size (%zu/%zd)", len, r);
free (buf);
return NULL;
@@ -524,7 +545,7 @@ copy_xattrs (const char *src, const char *dest)
/* What we get from the kernel is a string "foo\0bar\0baz" of length
* len.
*/
- for (i = 0; i < (size_t) len; i += strlen (&buf[i]) + 1) {
+ for (i = 0; i < (size_t)len; i += strlen (&buf[i]) + 1) {
CHROOT_IN;
vlen = getxattr (src, &buf[i], NULL, 0);
CHROOT_OUT;
@@ -568,7 +589,7 @@ copy_xattrs (const char *src, const char *dest)
return 1;
- error:
+error:
return 0;
}
diff --git a/daemon/xfs.c b/daemon/xfs.c
index 7f72e6a..21e32fd 100644
--- a/daemon/xfs.c
+++ b/daemon/xfs.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -32,11 +33,11 @@
#define MAX_ARGS 64
-GUESTFSD_EXT_CMD(str_mkfs_xfs, mkfs.xfs);
-GUESTFSD_EXT_CMD(str_xfs_admin, xfs_admin);
-GUESTFSD_EXT_CMD(str_xfs_info, xfs_info);
-GUESTFSD_EXT_CMD(str_xfs_growfs, xfs_growfs);
-GUESTFSD_EXT_CMD(str_xfs_repair, xfs_repair);
+GUESTFSD_EXT_CMD (str_mkfs_xfs, mkfs.xfs);
+GUESTFSD_EXT_CMD (str_xfs_admin, xfs_admin);
+GUESTFSD_EXT_CMD (str_xfs_info, xfs_info);
+GUESTFSD_EXT_CMD (str_xfs_growfs, xfs_growfs);
+GUESTFSD_EXT_CMD (str_xfs_repair, xfs_repair);
int
optgroup_xfs_available (void)
@@ -94,7 +95,7 @@ parse_uint64 (uint64_t *ret, const char *str)
*
* meta-data=/dev/sda1 isize=256 agcount=4, agsize=6392 blks
* = sectsz=512 attr=2
- *[ = crc=0 ]
+ *[ = crc=0 ]
* data = bsize=4096 blocks=25568, imaxpct=25
* = sunit=0 swidth=0 blks
* naming =version 2 bsize=4096 ascii-ci=0
@@ -111,7 +112,8 @@ static guestfs_int_xfsinfo *
parse_xfs_info (char **lines)
{
guestfs_int_xfsinfo *ret;
- CLEANUP_FREE char *section = NULL; /* first column, eg "meta-data",
"data" */
+ CLEANUP_FREE char *section =
+ NULL; /* first column, eg "meta-data", "data" */
char *p;
size_t i;
@@ -157,145 +159,164 @@ parse_xfs_info (char **lines)
if (c_isalpha (lines[i][0])) {
free (section);
section = split_strdup (lines[i]);
- if (!section) goto error;
+ if (!section)
+ goto error;
if (verbose)
- fprintf (stderr, "xfs_info: new section %s\n", section);
+ fprintf (stderr, "xfs_info: new section %s\n", section);
}
if ((p = strstr (lines[i], "meta-data="))) {
ret->xfs_mntpoint = split_strdup (p + 10);
- if (ret->xfs_mntpoint == NULL) goto error;
+ if (ret->xfs_mntpoint == NULL)
+ goto error;
}
if ((p = strstr (lines[i], "isize="))) {
CLEANUP_FREE char *buf = split_strdup (p + 6);
- if (buf == NULL) goto error;
+ if (buf == NULL)
+ goto error;
if (parse_uint32 (&ret->xfs_inodesize, buf) == -1)
goto error;
}
if ((p = strstr (lines[i], "agcount="))) {
CLEANUP_FREE char *buf = split_strdup (p + 8);
- if (buf == NULL) goto error;
+ if (buf == NULL)
+ goto error;
if (parse_uint32 (&ret->xfs_agcount, buf) == -1)
goto error;
}
if ((p = strstr (lines[i], "agsize="))) {
CLEANUP_FREE char *buf = split_strdup (p + 7);
- if (buf == NULL) goto error;
+ if (buf == NULL)
+ goto error;
if (parse_uint32 (&ret->xfs_agsize, buf) == -1)
goto error;
}
if ((p = strstr (lines[i], "sectsz="))) {
if (section) {
- CLEANUP_FREE char *buf = split_strdup (p + 7);
- if (buf == NULL) goto error;
- if (STREQ (section, "meta-data")) {
- if (parse_uint32 (&ret->xfs_sectsize, buf) == -1)
- goto error;
- } else if (STREQ (section, "log")) {
- if (parse_uint32 (&ret->xfs_logsectsize, buf) == -1)
- goto error;
- }
+ CLEANUP_FREE char *buf = split_strdup (p + 7);
+ if (buf == NULL)
+ goto error;
+ if (STREQ (section, "meta-data")) {
+ if (parse_uint32 (&ret->xfs_sectsize, buf) == -1)
+ goto error;
+ } else if (STREQ (section, "log")) {
+ if (parse_uint32 (&ret->xfs_logsectsize, buf) == -1)
+ goto error;
+ }
}
}
if ((p = strstr (lines[i], "attr="))) {
CLEANUP_FREE char *buf = split_strdup (p + 5);
- if (buf == NULL) goto error;
+ if (buf == NULL)
+ goto error;
if (parse_uint32 (&ret->xfs_attr, buf) == -1)
goto error;
}
if ((p = strstr (lines[i], "bsize="))) {
if (section) {
- CLEANUP_FREE char *buf = split_strdup (p + 6);
- if (buf == NULL) goto error;
- if (STREQ (section, "data")) {
- if (parse_uint32 (&ret->xfs_blocksize, buf) == -1)
- goto error;
- } else if (STREQ (section, "naming")) {
- if (parse_uint32 (&ret->xfs_dirblocksize, buf) == -1)
- goto error;
- } else if (STREQ (section, "log")) {
- if (parse_uint32 (&ret->xfs_logblocksize, buf) == -1)
- goto error;
- }
+ CLEANUP_FREE char *buf = split_strdup (p + 6);
+ if (buf == NULL)
+ goto error;
+ if (STREQ (section, "data")) {
+ if (parse_uint32 (&ret->xfs_blocksize, buf) == -1)
+ goto error;
+ } else if (STREQ (section, "naming")) {
+ if (parse_uint32 (&ret->xfs_dirblocksize, buf) == -1)
+ goto error;
+ } else if (STREQ (section, "log")) {
+ if (parse_uint32 (&ret->xfs_logblocksize, buf) == -1)
+ goto error;
+ }
}
}
if ((p = strstr (lines[i], "blocks="))) {
if (section) {
- CLEANUP_FREE char *buf = split_strdup (p + 7);
- if (buf == NULL) goto error;
- if (STREQ (section, "data")) {
- if (parse_uint64 (&ret->xfs_datablocks, buf) == -1)
- goto error;
- } else if (STREQ (section, "log")) {
- if (parse_uint32 (&ret->xfs_logblocks, buf) == -1)
- goto error;
- } else if (STREQ (section, "realtime")) {
- if (parse_uint64 (&ret->xfs_rtblocks, buf) == -1)
- goto error;
- }
+ CLEANUP_FREE char *buf = split_strdup (p + 7);
+ if (buf == NULL)
+ goto error;
+ if (STREQ (section, "data")) {
+ if (parse_uint64 (&ret->xfs_datablocks, buf) == -1)
+ goto error;
+ } else if (STREQ (section, "log")) {
+ if (parse_uint32 (&ret->xfs_logblocks, buf) == -1)
+ goto error;
+ } else if (STREQ (section, "realtime")) {
+ if (parse_uint64 (&ret->xfs_rtblocks, buf) == -1)
+ goto error;
+ }
}
}
if ((p = strstr (lines[i], "imaxpct="))) {
CLEANUP_FREE char *buf = split_strdup (p + 8);
- if (buf == NULL) goto error;
+ if (buf == NULL)
+ goto error;
if (parse_uint32 (&ret->xfs_imaxpct, buf) == -1)
goto error;
}
if ((p = strstr (lines[i], "sunit="))) {
if (section) {
- CLEANUP_FREE char *buf = split_strdup (p + 6);
- if (buf == NULL) goto error;
- if (STREQ (section, "data")) {
- if (parse_uint32 (&ret->xfs_sunit, buf) == -1)
- goto error;
- } else if (STREQ (section, "log")) {
- if (parse_uint32 (&ret->xfs_logsunit, buf) == -1)
- goto error;
- }
+ CLEANUP_FREE char *buf = split_strdup (p + 6);
+ if (buf == NULL)
+ goto error;
+ if (STREQ (section, "data")) {
+ if (parse_uint32 (&ret->xfs_sunit, buf) == -1)
+ goto error;
+ } else if (STREQ (section, "log")) {
+ if (parse_uint32 (&ret->xfs_logsunit, buf) == -1)
+ goto error;
+ }
}
}
if ((p = strstr (lines[i], "swidth="))) {
CLEANUP_FREE char *buf = split_strdup (p + 7);
- if (buf == NULL) goto error;
+ if (buf == NULL)
+ goto error;
if (parse_uint32 (&ret->xfs_swidth, buf) == -1)
goto error;
}
if ((p = strstr (lines[i], "naming =version "))) {
CLEANUP_FREE char *buf = split_strdup (p + 18);
- if (buf == NULL) goto error;
+ if (buf == NULL)
+ goto error;
if (parse_uint32 (&ret->xfs_dirversion, buf) == -1)
goto error;
}
if ((p = strstr (lines[i], "ascii-ci="))) {
CLEANUP_FREE char *buf = split_strdup (p + 9);
- if (buf == NULL) goto error;
+ if (buf == NULL)
+ goto error;
if (parse_uint32 (&ret->xfs_cimode, buf) == -1)
goto error;
}
if ((p = strstr (lines[i], "log ="))) {
ret->xfs_logname = split_strdup (p + 10);
- if (ret->xfs_logname == NULL) goto error;
+ if (ret->xfs_logname == NULL)
+ goto error;
}
if ((p = strstr (lines[i], "version="))) {
CLEANUP_FREE char *buf = split_strdup (p + 8);
- if (buf == NULL) goto error;
+ if (buf == NULL)
+ goto error;
if (parse_uint32 (&ret->xfs_logversion, buf) == -1)
goto error;
}
if ((p = strstr (lines[i], "lazy-count="))) {
CLEANUP_FREE char *buf = split_strdup (p + 11);
- if (buf == NULL) goto error;
+ if (buf == NULL)
+ goto error;
if (parse_uint32 (&ret->xfs_lazycount, buf) == -1)
goto error;
}
if ((p = strstr (lines[i], "realtime ="))) {
ret->xfs_rtname = split_strdup (p + 10);
- if (ret->xfs_rtname == NULL) goto error;
+ if (ret->xfs_rtname == NULL)
+ goto error;
}
if ((p = strstr (lines[i], "rtextents="))) {
CLEANUP_FREE char *buf = split_strdup (p + 10);
- if (buf == NULL) goto error;
+ if (buf == NULL)
+ goto error;
if (parse_uint64 (&ret->xfs_rtextents, buf) == -1)
goto error;
}
@@ -303,20 +324,23 @@ parse_xfs_info (char **lines)
if (ret->xfs_mntpoint == NULL) {
ret->xfs_mntpoint = strdup ("");
- if (ret->xfs_mntpoint == NULL) goto error;
+ if (ret->xfs_mntpoint == NULL)
+ goto error;
}
if (ret->xfs_logname == NULL) {
ret->xfs_logname = strdup ("");
- if (ret->xfs_logname == NULL) goto error;
+ if (ret->xfs_logname == NULL)
+ goto error;
}
if (ret->xfs_rtname == NULL) {
ret->xfs_rtname = strdup ("");
- if (ret->xfs_rtname == NULL) goto error;
+ if (ret->xfs_rtname == NULL)
+ goto error;
}
return ret;
- error:
+error:
free (ret->xfs_mntpoint);
free (ret->xfs_logname);
free (ret->xfs_rtname);
@@ -334,8 +358,7 @@ do_xfs_info (const char *pathordevice)
int is_dev;
is_dev = STREQLEN (pathordevice, "/dev/", 5);
- buf = is_dev ? strdup (pathordevice)
- : sysroot_path (pathordevice);
+ buf = is_dev ? strdup (pathordevice) : sysroot_path (pathordevice);
if (buf == NULL) {
reply_with_perror ("malloc");
return NULL;
@@ -355,8 +378,7 @@ do_xfs_info (const char *pathordevice)
}
int
-do_xfs_growfs (const char *path,
- int datasec, int logsec, int rtsec,
+do_xfs_growfs (const char *path, int datasec, int logsec, int rtsec,
int64_t datasize, int64_t logsize, int64_t rtsize,
int64_t rtextsize, int32_t maxpct)
{
@@ -477,10 +499,9 @@ xfs_set_label (const char *device, const char *label)
}
int
-do_xfs_admin (const char *device,
- int extunwritten, int imgfile, int v2log,
- int projid32bit,
- int lazycounter, const char *label, const char *uuid)
+do_xfs_admin (const char *device, int extunwritten, int imgfile, int v2log,
+ int projid32bit, int lazycounter, const char *label,
+ const char *uuid)
{
int r;
CLEANUP_FREE char *err = NULL;
@@ -520,8 +541,8 @@ do_xfs_admin (const char *device,
if (optargs_bitmask & GUESTFS_XFS_ADMIN_LABEL_BITMASK) {
if (strlen (label) > XFS_LABEL_MAX) {
- reply_with_error ("%s: xfs labels are limited to %d bytes",
- label, XFS_LABEL_MAX);
+ reply_with_error ("%s: xfs labels are limited to %d bytes", label,
+ XFS_LABEL_MAX);
return -1;
}
@@ -547,11 +568,9 @@ do_xfs_admin (const char *device,
}
int
-do_xfs_repair (const char *device,
- int forcelogzero, int nomodify,
- int noprefetch, int forcegeometry,
- int64_t maxmem, int64_t ihashsize,
- int64_t bhashsize, int64_t agstride,
+do_xfs_repair (const char *device, int forcelogzero, int nomodify,
+ int noprefetch, int forcegeometry, int64_t maxmem,
+ int64_t ihashsize, int64_t bhashsize, int64_t agstride,
const char *logdev, const char *rtdev)
{
int r;
@@ -601,7 +620,9 @@ do_xfs_repair (const char *device,
reply_with_error ("ihashsize must be >= 0");
return -1;
}
- snprintf (ihashsize_s, sizeof ihashsize_s, "ihash=" "%" PRIi64,
ihashsize);
+ snprintf (ihashsize_s, sizeof ihashsize_s, "ihash="
+ "%" PRIi64,
+ ihashsize);
ADD_ARG (argv, i, "-o");
ADD_ARG (argv, i, ihashsize_s);
}
@@ -611,7 +632,9 @@ do_xfs_repair (const char *device,
reply_with_error ("bhashsize must be >= 0");
return -1;
}
- snprintf (bhashsize_s, sizeof bhashsize_s, "bhash=" "%" PRIi64,
bhashsize);
+ snprintf (bhashsize_s, sizeof bhashsize_s, "bhash="
+ "%" PRIi64,
+ bhashsize);
ADD_ARG (argv, i, "-o");
ADD_ARG (argv, i, bhashsize_s);
}
@@ -621,12 +644,13 @@ do_xfs_repair (const char *device,
reply_with_error ("agstride must be >= 0");
return -1;
}
- snprintf (agstride_s, sizeof agstride_s, "ag_stride=" "%" PRIi64,
agstride);
+ snprintf (agstride_s, sizeof agstride_s, "ag_stride="
+ "%" PRIi64,
+ agstride);
ADD_ARG (argv, i, "-o");
ADD_ARG (argv, i, agstride_s);
}
-
if (optargs_bitmask & GUESTFS_XFS_REPAIR_LOGDEV_BITMASK) {
ADD_ARG (argv, i, "-l");
ADD_ARG (argv, i, logdev);
diff --git a/daemon/zero.c b/daemon/zero.c
index c545753..9a133fd 100644
--- a/daemon/zero.c
+++ b/daemon/zero.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -32,7 +33,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_wipefs, wipefs);
+GUESTFSD_EXT_CMD (str_wipefs, wipefs);
static const char zero_buf[4096];
@@ -43,7 +44,7 @@ do_zero (const char *device)
int fd;
size_t i, offset;
- fd = open (device, O_RDWR|O_CLOEXEC);
+ fd = open (device, O_RDWR | O_CLOEXEC);
if (fd == -1) {
reply_with_perror ("%s", device);
return -1;
@@ -60,14 +61,15 @@ do_zero (const char *device)
}
if (!is_zero (buf, sizeof buf)) {
- if (pwrite (fd, zero_buf, sizeof zero_buf, offset) != sizeof zero_buf) {
+ if (pwrite (fd, zero_buf, sizeof zero_buf, offset) !=
+ sizeof zero_buf) {
reply_with_perror ("pwrite: %s", device);
close (fd);
return -1;
}
}
- notify_progress ((uint64_t) i, 32);
+ notify_progress ((uint64_t)i, 32);
}
if (close (fd) == -1) {
@@ -140,9 +142,9 @@ do_zero_device (const char *device)
int64_t ssize = do_blockdev_getsize64 (device);
if (ssize == -1)
return -1;
- uint64_t size = (uint64_t) ssize;
+ uint64_t size = (uint64_t)ssize;
- int fd = open (device, O_RDWR|O_CLOEXEC);
+ int fd = open (device, O_RDWR | O_CLOEXEC);
if (fd == -1) {
reply_with_perror ("%s", device);
return -1;
@@ -158,7 +160,7 @@ do_zero_device (const char *device)
if (n64 > sizeof buf)
n = sizeof buf;
else
- n = (size_t) n64; /* safe because of if condition */
+ n = (size_t)n64; /* safe because of if condition */
/* Check if the block is already zero before overwriting it. */
ssize_t r;
@@ -172,14 +174,14 @@ do_zero_device (const char *device)
if (!is_zero (buf, sizeof buf)) {
r = pwrite (fd, zero_buf, n, pos);
if (r == -1) {
- reply_with_perror ("pwrite: %s (with %" PRIu64 " bytes left to
write)",
+ reply_with_perror ("pwrite: %s (with %" PRIu64
+ " bytes left to write)",
device, size);
close (fd);
return -1;
}
pos += r;
- }
- else
+ } else
pos += n;
notify_progress (pos, size);
@@ -207,7 +209,7 @@ do_is_zero (const char *path)
}
CHROOT_IN;
- fd = open (path, O_RDONLY|O_CLOEXEC);
+ fd = open (path, O_RDONLY | O_CLOEXEC);
CHROOT_OUT;
if (fd == -1) {
@@ -249,7 +251,7 @@ do_is_zero_device (const char *device)
return -1;
}
- fd = open (device, O_RDONLY|O_CLOEXEC);
+ fd = open (device, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
reply_with_perror ("open: %s", device);
return -1;
@@ -311,7 +313,8 @@ do_zero_free_space (const char *dir)
printf ("random filename: %s\n", filename);
/* Open file and fill with zeroes until we run out of space. */
- fd = open (filename, O_WRONLY|O_CREAT|O_EXCL|O_NOCTTY|O_CLOEXEC, 0600);
+ fd = open (filename, O_WRONLY | O_CREAT | O_EXCL | O_NOCTTY | O_CLOEXEC,
+ 0600);
if (fd == -1) {
reply_with_perror ("open: %s", filename);
return -1;
@@ -329,7 +332,7 @@ do_zero_free_space (const char *dir)
for (;;) {
if (write (fd, zero_buf, sizeof zero_buf) == -1) {
- if (errno == ENOSPC) /* expected error */
+ if (errno == ENOSPC) /* expected error */
break;
reply_with_perror ("write: %s", filename);
close (fd);
diff --git a/daemon/zerofree.c b/daemon/zerofree.c
index 4ba17dd..367668b 100644
--- a/daemon/zerofree.c
+++ b/daemon/zerofree.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -28,7 +29,7 @@
#include "actions.h"
#include "optgroups.h"
-GUESTFSD_EXT_CMD(str_zerofree, zerofree);
+GUESTFSD_EXT_CMD (str_zerofree, zerofree);
int
optgroup_zerofree_available (void)
diff --git a/df/df.c b/df/df.c
index a13cc59..1e4c343 100644
--- a/df/df.c
+++ b/df/df.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -54,9 +55,8 @@ df_on_handle (guestfs_h *g, const char *name, const char *uuid, FILE
*fp)
return -1;
for (i = 0; fses[i] != NULL; i += 2) {
- if (STRNEQ (fses[i+1], "") &&
- STRNEQ (fses[i+1], "swap") &&
- STRNEQ (fses[i+1], "unknown")) {
+ if (STRNEQ (fses[i + 1], "") && STRNEQ (fses[i + 1],
"swap") &&
+ STRNEQ (fses[i + 1], "unknown")) {
const char *dev = fses[i];
CLEANUP_FREE_STATVFS struct guestfs_statvfs *stat = NULL;
@@ -96,9 +96,8 @@ df_work (guestfs_h *g, size_t i, FILE *fp)
{
struct guestfs_add_libvirt_dom_argv optargs;
- optargs.bitmask =
- GUESTFS_ADD_LIBVIRT_DOM_READONLY_BITMASK |
- GUESTFS_ADD_LIBVIRT_DOM_READONLYDISK_BITMASK;
+ optargs.bitmask = GUESTFS_ADD_LIBVIRT_DOM_READONLY_BITMASK |
+ GUESTFS_ADD_LIBVIRT_DOM_READONLYDISK_BITMASK;
optargs.readonly = 1;
optargs.readonlydisk = "read";
diff --git a/df/domains.c b/df/domains.c
index 2407eec..6357856 100644
--- a/df/domains.c
+++ b/df/domains.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -67,7 +68,8 @@ free_domains (void)
}
static void add_domains_by_id (virConnectPtr conn, int *ids, size_t n);
-static void add_domains_by_name (virConnectPtr conn, char **names, size_t n);
+static void add_domains_by_name (virConnectPtr conn, char **names,
+ size_t n);
static void add_domain (virDomainPtr dom);
void
@@ -84,18 +86,20 @@ get_all_libvirt_domains (const char *libvirt_uri)
VIR_CONNECT_RO);
if (!conn) {
err = virGetLastError ();
- fprintf (stderr,
- _("%s: could not connect to libvirt (code %d, domain %d): %s\n"),
- guestfs_int_program_name, err->code, err->domain, err->message);
+ fprintf (
+ stderr,
+ _("%s: could not connect to libvirt (code %d, domain %d): %s\n"),
+ guestfs_int_program_name, err->code, err->domain, err->message);
exit (EXIT_FAILURE);
}
n = virConnectNumOfDomains (conn);
if (n == -1) {
err = virGetLastError ();
- fprintf (stderr,
- _("%s: could not get number of running domains (code %d, domain %d):
%s\n"),
- guestfs_int_program_name, err->code, err->domain, err->message);
+ fprintf (stderr, _("%s: could not get number of running domains (code "
+ "%d, domain %d): %s\n"),
+ guestfs_int_program_name, err->code, err->domain,
+ err->message);
exit (EXIT_FAILURE);
}
@@ -105,9 +109,10 @@ get_all_libvirt_domains (const char *libvirt_uri)
n = virConnectListDomains (conn, ids, n);
if (n == -1) {
err = virGetLastError ();
- fprintf (stderr,
- _("%s: could not list running domains (code %d, domain %d):
%s\n"),
- guestfs_int_program_name, err->code, err->domain, err->message);
+ fprintf (
+ stderr,
+ _("%s: could not list running domains (code %d, domain %d): %s\n"),
+ guestfs_int_program_name, err->code, err->domain, err->message);
exit (EXIT_FAILURE);
}
@@ -116,9 +121,10 @@ get_all_libvirt_domains (const char *libvirt_uri)
n = virConnectNumOfDefinedDomains (conn);
if (n == -1) {
err = virGetLastError ();
- fprintf (stderr,
- _("%s: could not get number of inactive domains (code %d, domain %d):
%s\n"),
- guestfs_int_program_name, err->code, err->domain, err->message);
+ fprintf (stderr, _("%s: could not get number of inactive domains "
+ "(code %d, domain %d): %s\n"),
+ guestfs_int_program_name, err->code, err->domain,
+ err->message);
exit (EXIT_FAILURE);
}
@@ -128,9 +134,10 @@ get_all_libvirt_domains (const char *libvirt_uri)
n = virConnectListDefinedDomains (conn, names, n);
if (n == -1) {
err = virGetLastError ();
- fprintf (stderr,
- _("%s: could not list inactive domains (code %d, domain %d):
%s\n"),
- guestfs_int_program_name, err->code, err->domain, err->message);
+ fprintf (stderr, _("%s: could not list inactive domains (code %d, "
+ "domain %d): %s\n"),
+ guestfs_int_program_name, err->code, err->domain,
+ err->message);
exit (EXIT_FAILURE);
}
@@ -139,7 +146,7 @@ get_all_libvirt_domains (const char *libvirt_uri)
/* You must free these even though the libvirt documentation doesn't
* mention it.
*/
- for (i = 0; i < (size_t) n; ++i)
+ for (i = 0; i < (size_t)n; ++i)
free (names[i]);
/* No domains? */
@@ -157,9 +164,9 @@ add_domains_by_id (virConnectPtr conn, int *ids, size_t n)
virDomainPtr dom;
for (i = 0; i < n; ++i) {
- if (ids[i] != 0) { /* RHBZ#538041 */
+ if (ids[i] != 0) { /* RHBZ#538041 */
dom = virDomainLookupByID (conn, ids[i]);
- if (dom) /* transient errors are possible here, ignore them */
+ if (dom) /* transient errors are possible here, ignore them */
add_domain (dom);
}
}
@@ -173,7 +180,7 @@ add_domains_by_name (virConnectPtr conn, char **names, size_t n)
for (i = 0; i < n; ++i) {
dom = virDomainLookupByName (conn, names[i]);
- if (dom) /* transient errors are possible here, ignore them */
+ if (dom) /* transient errors are possible here, ignore them */
add_domain (dom);
}
}
@@ -201,8 +208,7 @@ add_domain (virDomainPtr dom)
domain->uuid = strdup (uuid);
if (domain->uuid == NULL)
error (EXIT_FAILURE, errno, "strdup");
- }
- else
+ } else
domain->uuid = NULL;
}
diff --git a/df/domains.h b/df/domains.h
index fd0f9a0..0aa3ffa 100644
--- a/df/domains.h
+++ b/df/domains.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#ifndef GUESTFS_DOMAINS_H_
@@ -24,7 +25,8 @@
#include <libvirt/libvirt.h>
/* The list of domains that we build up in get_all_libvirt_guests. */
-struct domain {
+struct domain
+{
virDomainPtr dom;
char *name;
char *uuid;
diff --git a/df/estimate-max-threads.c b/df/estimate-max-threads.c
index ca1fd42..2b4f887 100644
--- a/df/estimate-max-threads.c
+++ b/df/estimate-max-threads.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -67,7 +68,8 @@ read_line_from (const char *cmd)
error (EXIT_FAILURE, errno, "%s: external command failed", cmd);
if (getline (&ret, &allocsize, pp) == -1)
- error (EXIT_FAILURE, errno, "could not read line from external command");
+ error (EXIT_FAILURE, errno,
+ "could not read line from external command");
if (pclose (pp) == -1)
error (EXIT_FAILURE, errno, "pclose");
diff --git a/df/estimate-max-threads.h b/df/estimate-max-threads.h
index 11d458c..f29f8ca 100644
--- a/df/estimate-max-threads.h
+++ b/df/estimate-max-threads.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#ifndef GUESTFS_ESTIMATE_MAX_THREADS_H_
diff --git a/df/main.c b/df/main.c
index e04b14e..0c57ccf 100644
--- a/df/main.c
+++ b/df/main.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -53,43 +54,43 @@ int echo_keys = 0;
const char *libvirt_uri = NULL;
int inspector = 0;
-int csv = 0; /* --csv */
-int human = 0; /* --human-readable|-h */
-int inodes = 0; /* --inodes */
-int uuid = 0; /* --uuid */
+int csv = 0; /* --csv */
+int human = 0; /* --human-readable|-h */
+int inodes = 0; /* --inodes */
+int uuid = 0; /* --uuid */
static char *make_display_name (struct drv *drvs);
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: display free space on virtual filesystems\n"
- "Copyright (C) 2010 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options] -d domname\n"
- " %s [--options] -a disk.img [-a disk.img ...]\n"
- "Options:\n"
- " -a|--add image Add image\n"
- " -c|--connect uri Specify libvirt URI for -d option\n"
- " --csv Output as Comma-Separated Values\n"
- " -d|--domain guest Add disks from libvirt guest\n"
- " --format[=raw|..] Force disk format for -a option\n"
- " -h|--human-readable Human-readable sizes in --long output\n"
- " --help Display brief help\n"
- " -i|--inodes Display inodes\n"
- " --one-per-guest Separate appliance per guest\n"
- " -P nr_threads Use at most nr_threads\n"
- " --uuid Add UUIDs to --long output\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- " -x Trace libguestfs API calls\n"
- "For more information, see the manpage %s(1).\n"),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name, guestfs_int_program_name);
+ printf (
+ _("%s: display free space on virtual filesystems\n"
+ "Copyright (C) 2010 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options] -d domname\n"
+ " %s [--options] -a disk.img [-a disk.img ...]\n"
+ "Options:\n"
+ " -a|--add image Add image\n"
+ " -c|--connect uri Specify libvirt URI for -d option\n"
+ " --csv Output as Comma-Separated Values\n"
+ " -d|--domain guest Add disks from libvirt guest\n"
+ " --format[=raw|..] Force disk format for -a option\n"
+ " -h|--human-readable Human-readable sizes in --long output\n"
+ " --help Display brief help\n"
+ " -i|--inodes Display inodes\n"
+ " --one-per-guest Separate appliance per guest\n"
+ " -P nr_threads Use at most nr_threads\n"
+ " --uuid Add UUIDs to --long output\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ " -x Trace libguestfs API calls\n"
+ "For more information, see the manpage %s(1).\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name, guestfs_int_program_name);
}
exit (status);
}
@@ -136,10 +137,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -153,8 +155,7 @@ main (int argc, char *argv[])
} else if (STREQ (long_options[option_index].name, "uuid")) {
uuid = 1;
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -219,7 +220,7 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, errno, "strdup");
drv->next = drvs;
drvs = drv;
- } else { /* simulate -d option */
+ } else { /* simulate -d option */
drv = calloc (1, sizeof (struct drv));
if (!drv)
error (EXIT_FAILURE, errno, "calloc");
@@ -251,7 +252,8 @@ main (int argc, char *argv[])
* fields. (RHBZ#600977).
*/
if (human && csv)
- error (EXIT_FAILURE, 0, _("you cannot use -h and --csv options
together."));
+ error (EXIT_FAILURE, 0,
+ _("you cannot use -h and --csv options together."));
/* virt-df has two modes. If the user didn't specify any drives,
* then we do the df on every libvirt guest. That's the if-clause
@@ -265,11 +267,9 @@ main (int argc, char *argv[])
err = start_threads (max_threads, g, df_work);
free_domains ();
#else
- error (EXIT_FAILURE, 0,
- _("compiled without support for libvirt."));
+ error (EXIT_FAILURE, 0, _("compiled without support for libvirt."));
#endif
- }
- else { /* Single guest. */
+ } else { /* Single guest. */
CLEANUP_FREE char *name = NULL;
/* Add domains/drives from the command line (for a single guest). */
@@ -318,7 +318,7 @@ single_drive_display_name (struct drv *drvs)
if (name == NULL)
name = drvs->a.filename;
else
- name++; /* skip '/' character */
+ name++; /* skip '/' character */
name = strdup (name);
if (name == NULL)
error (EXIT_FAILURE, errno, "strdup");
@@ -333,7 +333,7 @@ single_drive_display_name (struct drv *drvs)
*/
p = strrchr (name, '/');
if (p && strlen (p) > 1) {
- p = strdup (p+1);
+ p = strdup (p + 1);
if (!p)
error (EXIT_FAILURE, errno, "strdup");
free (name);
diff --git a/df/output.c b/df/output.c
index b9bbcb6..65cfba3 100644
--- a/df/output.c
+++ b/df/output.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -65,10 +66,9 @@ print_title (void)
if (!csv) {
/* ignore cols[0] in this mode */
- printf ("%-36s%10s %10s %10s %5s\n",
- cols[1], cols[2], cols[3], cols[4], cols[5]);
- }
- else {
+ printf ("%-36s%10s %10s %10s %5s\n", cols[1], cols[2], cols[3], cols[4],
+ cols[5]);
+ } else {
size_t i;
for (i = 0; i < 6; ++i) {
@@ -81,23 +81,23 @@ print_title (void)
}
void
-print_stat (FILE *fp,
- const char *name, const char *uuid_param,
- const char *dev_param,
- const struct guestfs_statvfs *stat)
+print_stat (FILE *fp, const char *name, const char *uuid_param,
+ const char *dev_param, const struct guestfs_statvfs *stat)
{
- /* First two columns are always 'name' and 'dev', followed by four
- * other data columns. In text mode the 'name' and 'dev' are
- * combined into a single 'name:dev' column. In CSV mode they are
- * kept as two separate columns. In UUID mode the name might be
- * replaced by 'uuid', if available.
- */
-#define MAX_LEN (LONGEST_HUMAN_READABLE > 128 ? LONGEST_HUMAN_READABLE : 128)
+/* First two columns are always 'name' and 'dev', followed by four
+ * other data columns. In text mode the 'name' and 'dev' are
+ * combined into a single 'name:dev' column. In CSV mode they are
+ * kept as two separate columns. In UUID mode the name might be
+ * replaced by 'uuid', if available.
+ */
+#define MAX_LEN \
+ (LONGEST_HUMAN_READABLE > 128 ? LONGEST_HUMAN_READABLE : 128)
char buf[4][MAX_LEN];
const char *cols[4];
int64_t factor, v;
float percent;
- int hopts = human_round_to_nearest|human_autoscale|human_base_1024|human_SI;
+ int hopts =
+ human_round_to_nearest | human_autoscale | human_base_1024 | human_SI;
size_t i, len;
char *dev;
@@ -106,7 +106,7 @@ print_stat (FILE *fp,
if (!dev)
exit (EXIT_FAILURE);
- if (!inodes) { /* 1K blocks */
+ if (!inodes) { /* 1K blocks */
if (!human) {
factor = stat->bsize / 1024;
@@ -120,23 +120,20 @@ print_stat (FILE *fp,
snprintf (buf[2], MAX_LEN, "%" PRIi64, v);
cols[2] = buf[2];
} else {
- cols[0] =
- human_readable ((uintmax_t) stat->blocks, buf[0],
- hopts, stat->bsize, 1);
+ cols[0] = human_readable ((uintmax_t)stat->blocks, buf[0], hopts,
+ stat->bsize, 1);
v = stat->blocks - stat->bfree;
cols[1] =
- human_readable ((uintmax_t) v, buf[1], hopts, stat->bsize, 1);
- cols[2] =
- human_readable ((uintmax_t) stat->bavail, buf[2],
- hopts, stat->bsize, 1);
+ human_readable ((uintmax_t)v, buf[1], hopts, stat->bsize, 1);
+ cols[2] = human_readable ((uintmax_t)stat->bavail, buf[2], hopts,
+ stat->bsize, 1);
}
if (stat->blocks != 0)
percent = 100. - 100. * stat->bfree / stat->blocks;
else
percent = 0;
- }
- else { /* inodes */
+ } else { /* inodes */
snprintf (buf[0], MAX_LEN, "%" PRIi64, stat->files);
cols[0] = buf[0];
snprintf (buf[1], MAX_LEN, "%" PRIi64, stat->files - stat->ffree);
@@ -151,10 +148,11 @@ print_stat (FILE *fp,
}
if (!csv)
- /* Use 'ceil' on the percentage in order to emulate what df itself does. */
+ /* Use 'ceil' on the percentage in order to emulate what df itself does.
+ */
snprintf (buf[3], MAX_LEN, "%3.0f%%", ceil (percent));
else
- snprintf (buf[3], MAX_LEN, "%.1f", (double) percent);
+ snprintf (buf[3], MAX_LEN, "%.1f", (double)percent);
cols[3] = buf[3];
#undef MAX_LEN
@@ -172,9 +170,9 @@ print_stat (FILE *fp,
fprintf (fp, "\n ");
}
- fprintf (fp, "%10s %10s %10s %5s\n", cols[0], cols[1], cols[2], cols[3]);
- }
- else {
+ fprintf (fp, "%10s %10s %10s %5s\n", cols[0], cols[1], cols[2],
+ cols[3]);
+ } else {
write_csv_field (fp, name);
fputc (',', fp);
write_csv_field (fp, dev);
@@ -202,8 +200,8 @@ write_csv_field (FILE *fp, const char *field)
len = strlen (field);
for (i = 0; i < len; ++i) {
- if (field[i] == ' ' || field[i] == '"' ||
- field[i] == '\n' || field[i] == ',') {
+ if (field[i] == ' ' || field[i] == '"' || field[i] ==
'\n' ||
+ field[i] == ',') {
needs_quoting = 1;
break;
}
diff --git a/df/parallel.c b/df/parallel.c
index aa37bc3..144bee7 100644
--- a/df/parallel.c
+++ b/df/parallel.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -69,11 +70,12 @@ static pthread_cond_t retire_cond = PTHREAD_COND_INITIALIZER;
static void thread_failure (const char *fn, int err);
static void *worker_thread (void *arg);
-struct thread_data {
- size_t thread_num; /* Thread number. */
- int trace, verbose; /* Flags from the options_handle. */
+struct thread_data
+{
+ size_t thread_num; /* Thread number. */
+ int trace, verbose; /* Flags from the options_handle. */
work_fn work;
- int r; /* Used to store the error status. */
+ int r; /* Used to store the error status. */
};
/* Start threads. */
@@ -81,21 +83,24 @@ int
start_threads (size_t option_P, guestfs_h *options_handle, work_fn work)
{
const int trace = options_handle ? guestfs_get_trace (options_handle) : 0;
- const int verbose = options_handle ? guestfs_get_verbose (options_handle) : 0;
+ const int verbose =
+ options_handle ? guestfs_get_verbose (options_handle) : 0;
size_t i, nr_threads;
int err, errors;
void *status;
CLEANUP_FREE struct thread_data *thread_data = NULL;
CLEANUP_FREE pthread_t *threads = NULL;
- if (nr_domains == 0) /* Nothing to do. */
+ if (nr_domains == 0) /* Nothing to do. */
return 0;
- /* If the user selected the -P option, then we use up to that many threads. */
+ /* If the user selected the -P option, then we use up to that many
+ * threads. */
if (option_P > 0)
nr_threads = MIN (nr_domains, option_P);
else
- nr_threads = MIN (nr_domains, MIN (MAX_THREADS, estimate_max_threads ()));
+ nr_threads =
+ MIN (nr_domains, MIN (MAX_THREADS, estimate_max_threads ()));
if (verbose)
fprintf (stderr, "parallel: creating %zu threads\n", nr_threads);
@@ -114,7 +119,8 @@ start_threads (size_t option_P, guestfs_h *options_handle, work_fn
work)
/* Start the worker threads. */
for (i = 0; i < nr_threads; ++i) {
- err = pthread_create (&threads[i], NULL, worker_thread, &thread_data[i]);
+ err =
+ pthread_create (&threads[i], NULL, worker_thread, &thread_data[i]);
if (err != 0)
error (EXIT_FAILURE, err, "pthread_create [%zu]", i);
}
@@ -147,7 +153,7 @@ worker_thread (void *thread_data_vp)
thread_data->thread_num);
while (1) {
- size_t i; /* The current domain we're working on. */
+ size_t i; /* The current domain we're working on. */
FILE *fp;
CLEANUP_FREE char *output = NULL;
size_t output_len = 0;
@@ -174,7 +180,7 @@ worker_thread (void *thread_data_vp)
return &thread_data->r;
}
- if (i >= nr_domains) /* Work finished. */
+ if (i >= nr_domains) /* Work finished. */
break;
if (thread_data->verbose)
@@ -222,7 +228,8 @@ worker_thread (void *thread_data_vp)
* may mean waiting for another thread to finish here.
*/
if (thread_data->verbose)
- fprintf (stderr, "parallel: thread %zu waiting to retire domain %zu\n",
+ fprintf (stderr,
+ "parallel: thread %zu waiting to retire domain %zu\n",
thread_data->thread_num, i);
err = pthread_mutex_lock (&retire_mutex);
@@ -249,7 +256,7 @@ worker_thread (void *thread_data_vp)
printf ("%s", output);
/* Update next_domain_to_retire and tell other threads. */
- next_domain_to_retire = i+1;
+ next_domain_to_retire = i + 1;
pthread_cond_broadcast (&retire_cond);
err = pthread_mutex_unlock (&retire_mutex);
if (err != 0) {
@@ -269,8 +276,8 @@ worker_thread (void *thread_data_vp)
static void
thread_failure (const char *fn, int err)
{
- fprintf (stderr, "%s: %s: %s\n",
- guestfs_int_program_name, fn, strerror (err));
+ fprintf (stderr, "%s: %s: %s\n", guestfs_int_program_name, fn,
+ strerror (err));
}
#endif /* HAVE_LIBVIRT */
diff --git a/df/parallel.h b/df/parallel.h
index 44f03bc..02cc00c 100644
--- a/df/parallel.h
+++ b/df/parallel.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#ifndef GUESTFS_PARALLEL_H_
@@ -41,7 +42,8 @@ typedef int (*work_fn) (guestfs_h *g, size_t i, FILE *fp);
* Returns 0 if all work items completed successfully, or -1 if there
* was an error.
*/
-extern int start_threads (size_t option_P, guestfs_h *options_handle, work_fn work);
+extern int start_threads (size_t option_P, guestfs_h *options_handle,
+ work_fn work);
#endif /* HAVE_LIBVIRT */
diff --git a/df/virt-df.h b/df/virt-df.h
index a93a5a6..58298b2 100644
--- a/df/virt-df.h
+++ b/df/virt-df.h
@@ -13,25 +13,29 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#ifndef GUESTFS_VIRT_DF_H_
#define GUESTFS_VIRT_DF_H_
-extern int csv; /* --csv */
-extern int human; /* --human-readable|-h */
-extern int inodes; /* --inodes */
-extern int uuid; /* --uuid */
+extern int csv; /* --csv */
+extern int human; /* --human-readable|-h */
+extern int inodes; /* --inodes */
+extern int uuid; /* --uuid */
/* df.c */
-extern int df_on_handle (guestfs_h *g, const char *name, const char *uuid, FILE *fp);
+extern int df_on_handle (guestfs_h *g, const char *name, const char *uuid,
+ FILE *fp);
#if defined(HAVE_LIBVIRT)
extern int df_work (guestfs_h *g, size_t i, FILE *fp);
#endif
/* output.c */
extern void print_title (void);
-extern void print_stat (FILE *fp, const char *name, const char *uuid, const char *dev,
const struct guestfs_statvfs *stat);
+extern void print_stat (FILE *fp, const char *name, const char *uuid,
+ const char *dev,
+ const struct guestfs_statvfs *stat);
#endif /* GUESTFS_VIRT_DF_H_ */
diff --git a/diff/diff.c b/diff/diff.c
index d7542fc..7f1303f 100644
--- a/diff/diff.c
+++ b/diff/diff.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -86,48 +87,50 @@ static void output_string (const char *);
static void output_string_link (const char *);
static void output_binary (const char *, size_t len);
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: list differences between virtual machines\n"
- "Copyright (C) 2010-2016 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options] -d domain1 -D domain2\n"
- " %s [--options] -a disk1.img -A disk2.img [-a|-A ...]\n"
- "Options:\n"
- " -a|--add image Add image from first guest\n"
- " --all Same as: --extra-stats --times --uids
--xattrs\n"
- " --atime Don't ignore access time changes\n"
- " -A image Add image from second guest\n"
- " --checksum[=...] Use checksum of file content\n"
- " -c|--connect uri Specify libvirt URI for -d option\n"
- " --csv Comma-Separated Values output\n"
- " --dir-links Don't ignore directory nlink
changes\n"
- " --dir-times Don't ignore directory time
changes\n"
- " -d|--domain guest Add disks from first libvirt guest\n"
- " -D guest Add disks from second libvirt guest\n"
- " --echo-keys Don't turn off echo for
passphrases\n"
- " --extra-stats Display extra stats\n"
- " --format[=raw|..] Force disk format for -a or -A option\n"
- " --help Display brief help\n"
- " -h|--human-readable Human-readable sizes in output\n"
- " --keys-from-stdin Read passphrases from stdin\n"
- " --times Display file times\n"
- " --time-days Display file times as days before now\n"
- " --time-relative Display file times as seconds before
now\n"
- " --time-t Display file times as time_t's\n"
- " --uids Display UID, GID\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- " -x Trace libguestfs API calls\n"
- " --xattrs Display extended attributes\n"
- "For more information, see the manpage %s(1).\n"),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name, guestfs_int_program_name);
+ printf (
+ _("%s: list differences between virtual machines\n"
+ "Copyright (C) 2010-2016 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options] -d domain1 -D domain2\n"
+ " %s [--options] -a disk1.img -A disk2.img [-a|-A ...]\n"
+ "Options:\n"
+ " -a|--add image Add image from first guest\n"
+ " --all Same as: --extra-stats --times --uids "
+ "--xattrs\n"
+ " --atime Don't ignore access time changes\n"
+ " -A image Add image from second guest\n"
+ " --checksum[=...] Use checksum of file content\n"
+ " -c|--connect uri Specify libvirt URI for -d option\n"
+ " --csv Comma-Separated Values output\n"
+ " --dir-links Don't ignore directory nlink changes\n"
+ " --dir-times Don't ignore directory time changes\n"
+ " -d|--domain guest Add disks from first libvirt guest\n"
+ " -D guest Add disks from second libvirt guest\n"
+ " --echo-keys Don't turn off echo for passphrases\n"
+ " --extra-stats Display extra stats\n"
+ " --format[=raw|..] Force disk format for -a or -A option\n"
+ " --help Display brief help\n"
+ " -h|--human-readable Human-readable sizes in output\n"
+ " --keys-from-stdin Read passphrases from stdin\n"
+ " --times Display file times\n"
+ " --time-days Display file times as days before now\n"
+ " --time-relative Display file times as seconds before "
+ "now\n"
+ " --time-t Display file times as time_t's\n"
+ " --uids Display UID, GID\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ " -x Trace libguestfs API calls\n"
+ " --xattrs Display extended attributes\n"
+ "For more information, see the manpage %s(1).\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name, guestfs_int_program_name);
}
exit (status);
}
@@ -181,8 +184,8 @@ main (int argc, char *argv[])
{ "xattrs", 0, 0, 0 },
{ 0, 0, 0, 0 }
};
- struct drv *drvs = NULL; /* First guest. */
- struct drv *drvs2 = NULL; /* Second guest. */
+ struct drv *drvs = NULL; /* First guest. */
+ struct drv *drvs2 = NULL; /* Second guest. */
const char *format = NULL;
bool format_consumed = true;
int c;
@@ -199,10 +202,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -257,8 +261,7 @@ main (int argc, char *argv[])
STREQ (long_options[option_index].name, "xattrs")) {
enable_xattrs = 1;
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -312,9 +315,10 @@ main (int argc, char *argv[])
}
if (drvs == NULL || drvs2 == NULL) {
- fprintf (stderr,
- _("%s: you must specify some -a|-A|-d|-D options, see %s(1)\n"),
- guestfs_int_program_name, guestfs_int_program_name);
+ fprintf (
+ stderr,
+ _("%s: you must specify some -a|-A|-d|-D options, see %s(1)\n"),
+ guestfs_int_program_name, guestfs_int_program_name);
usage (EXIT_FAILURE);
}
@@ -322,7 +326,8 @@ main (int argc, char *argv[])
* fields correctly. (RHBZ#600977).
*/
if (human && csv)
- error (EXIT_FAILURE, 0, _("you cannot use -h and --csv options
together."));
+ error (EXIT_FAILURE, 0,
+ _("you cannot use -h and --csv options together."));
if (optind != argc)
error (EXIT_FAILURE, 0, _("extra arguments on the command line"));
@@ -378,7 +383,8 @@ main (int argc, char *argv[])
exit (errors == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
}
-struct tree {
+struct tree
+{
/* We store the handle here in case we need to go and dig into
* the disk to get file content.
*/
@@ -389,11 +395,12 @@ struct tree {
size_t nr_files, allocated;
};
-struct file {
+struct file
+{
char *path;
struct guestfs_statns *stat;
struct guestfs_xattr_list *xattrs;
- char *csum; /* Checksum. If NULL, use file times and size. */
+ char *csum; /* Checksum. If NULL, use file times and size. */
};
static void
@@ -413,7 +420,9 @@ free_tree (struct tree *t)
free (t);
}
-static int visit_entry (const char *dir, const char *name, const struct guestfs_statns
*stat, const struct guestfs_xattr_list *xattrs, void *vt);
+static int visit_entry (const char *dir, const char *name,
+ const struct guestfs_statns *stat,
+ const struct guestfs_xattr_list *xattrs, void *vt);
static struct tree *
visit_guest (guestfs_h *g)
@@ -448,8 +457,7 @@ visit_guest (guestfs_h *g)
static int
visit_entry (const char *dir, const char *name,
const struct guestfs_statns *stat_orig,
- const struct guestfs_xattr_list *xattrs_orig,
- void *vt)
+ const struct guestfs_xattr_list *xattrs_orig, void *vt)
{
struct tree *t = vt;
char *path = NULL, *csum = NULL;
@@ -494,7 +502,7 @@ visit_entry (const char *dir, const char *name,
*/
if (!dir_times && is_dir (stat->st_mode))
stat->st_atime_sec = stat->st_mtime_sec = stat->st_ctime_sec =
- stat->st_atime_nsec = stat->st_mtime_nsec = stat->st_ctime_nsec = 0;
+ stat->st_atime_nsec = stat->st_mtime_nsec = stat->st_ctime_nsec = 0;
/* Add the pathname and stats to the list. */
i = t->nr_files++;
@@ -526,7 +534,7 @@ visit_entry (const char *dir, const char *name,
return 0;
- error:
+error:
free (path);
free (csum);
guestfs_free_statns (stat);
@@ -537,7 +545,8 @@ visit_entry (const char *dir, const char *name,
static void deleted (guestfs_h *, struct file *);
static void added (guestfs_h *, struct file *);
static int compare_stats (struct file *, struct file *);
-static void changed (guestfs_h *, struct file *, guestfs_h *, struct file *, int st, int
cst);
+static void changed (guestfs_h *, struct file *, guestfs_h *, struct file *,
+ int st, int cst);
static void diff (struct file *, guestfs_h *, struct file *, guestfs_h *);
static void output_file (guestfs_h *, struct file *);
@@ -628,9 +637,8 @@ compare_stats (struct file *file1, struct file *file2)
}
static void
-changed (guestfs_h *g1, struct file *file1,
- guestfs_h *g2, struct file *file2,
- int st, int cst)
+changed (guestfs_h *g1, struct file *file1, guestfs_h *g2,
+ struct file *file2, int st, int cst)
{
/* Did file content change? */
if (cst != 0 ||
@@ -665,8 +673,9 @@ changed (guestfs_h *g1, struct file *file1,
output_start_line ();
output_string ("#");
output_string ("changed:");
-#define COMPARE_STAT(n) \
- if (file1->stat->n != file2->stat->n) output_string (#n)
+#define COMPARE_STAT(n) \
+ if (file1->stat->n != file2->stat->n) \
+ output_string (#n)
COMPARE_STAT (st_dev);
COMPARE_STAT (st_ino);
COMPARE_STAT (st_mode);
@@ -722,13 +731,14 @@ diff (struct file *file1, guestfs_h *g1, struct file *file2,
guestfs_h *g2)
fprintf (stderr, "%s\n", cmd);
r = system (cmd);
if (!WIFEXITED (r) || WEXITSTATUS (r) != 0) {
- fprintf (stderr, _("%s: external diff command failed\n"),
guestfs_int_program_name);
+ fprintf (stderr, _("%s: external diff command failed\n"),
+ guestfs_int_program_name);
goto out;
}
printf ("@@ %s @@\n", _("End of diff"));
- out:
+out:
unlink (tmpda);
unlink (tmpdb);
rmdir (tmpd);
@@ -771,7 +781,8 @@ output_file (guestfs_h *g, struct file *file)
if (enable_times) {
if (atime)
- output_int64_time (file->stat->st_atime_sec,
file->stat->st_atime_nsec);
+ output_int64_time (file->stat->st_atime_sec,
+ file->stat->st_atime_nsec);
output_int64_time (file->stat->st_mtime_sec, file->stat->st_mtime_nsec);
output_int64_time (file->stat->st_ctime_sec, file->stat->st_ctime_nsec);
}
@@ -817,7 +828,8 @@ next_field (void)
int c = csv ? ',' : ' ';
field++;
- if (field == 1) return;
+ if (field == 1)
+ return;
if (putchar (c) == EOF)
error (EXIT_FAILURE, errno, "putchar");
@@ -852,8 +864,7 @@ output_string (const char *s)
print_no_quoting:
if (printf ("%s", s) < 0)
error (EXIT_FAILURE, errno, "printf");
- }
- else {
+ } else {
/* Quote CSV string without requiring an external module. */
size_t i, len;
int needs_quoting = 0;
@@ -861,8 +872,7 @@ output_string (const char *s)
len = strlen (s);
for (i = 0; i < len; ++i) {
- if (s[i] == ' ' || s[i] == '"' ||
- s[i] == '\n' || s[i] == ',') {
+ if (s[i] == ' ' || s[i] == '"' || s[i] == '\n' || s[i]
== ',') {
needs_quoting = 1;
break;
}
@@ -915,18 +925,17 @@ output_binary (const char *s, size_t len)
if (putchar (s[i]) == EOF)
error (EXIT_FAILURE, errno, "putchar");
} else {
- if (printf ("\\x%02x", (unsigned char) s[i]) < 0)
+ if (printf ("\\x%02x", (unsigned char)s[i]) < 0)
error (EXIT_FAILURE, errno, "putchar");
}
}
- }
- else {
+ } else {
/* Quote CSV string without requiring an external module. */
int needs_quoting = 0;
for (i = 0; i < len; ++i) {
- if (!c_isprint (s[i]) || s[i] == ' ' || s[i] == '"' ||
- s[i] == '\n' || s[i] == ',') {
+ if (!c_isprint (s[i]) || s[i] == ' ' || s[i] == '"' || s[i] ==
'\n' ||
+ s[i] == ',') {
needs_quoting = 1;
break;
}
@@ -947,7 +956,7 @@ output_binary (const char *s, size_t len)
if (putchar (s[i]) == EOF)
error (EXIT_FAILURE, errno, "putchar");
} else {
- if (printf ("\\x%2x", (unsigned) s[i]) < 0)
+ if (printf ("\\x%2x", (unsigned)s[i]) < 0)
error (EXIT_FAILURE, errno, "printf");
}
}
@@ -970,7 +979,8 @@ static void
output_int64_size (int64_t size)
{
char buf[LONGEST_HUMAN_READABLE];
- int hopts = human_round_to_nearest|human_autoscale|human_base_1024|human_SI;
+ int hopts =
+ human_round_to_nearest | human_autoscale | human_base_1024 | human_SI;
int r;
next_field ();
@@ -980,14 +990,13 @@ output_int64_size (int64_t size)
r = printf ("%10" PRIi64, size);
else
r = printf ("%10s",
- human_readable ((uintmax_t) size, buf, hopts, 1, 1));
+ human_readable ((uintmax_t)size, buf, hopts, 1, 1));
} else {
/* CSV is the same as non-CSV but we don't need to right-align. */
if (!human)
r = printf ("%" PRIi64, size);
else
- r = printf ("%s",
- human_readable ((uintmax_t) size, buf, hopts, 1, 1));
+ r = printf ("%s", human_readable ((uintmax_t)size, buf, hopts, 1, 1));
}
if (r < 0)
@@ -999,7 +1008,7 @@ output_int64_perms (int64_t i)
{
next_field ();
/* csv doesn't need escaping */
- if (printf ("%04" PRIo64, (uint64_t) i) < 0)
+ if (printf ("%04" PRIo64, (uint64_t)i) < 0)
error (EXIT_FAILURE, errno, "printf");
}
@@ -1013,20 +1022,19 @@ output_int64_time (int64_t secs, int64_t nsecs)
/* csv doesn't need escaping */
if (time_t_output) {
switch (time_relative) {
- case 0: /* --time-t */
+ case 0: /* --time-t */
r = printf ("%10" PRIi64, secs);
break;
- case 1: /* --time-relative */
+ case 1: /* --time-relative */
r = printf ("%8" PRIi64, now - secs);
break;
- case 2: /* --time-days */
+ case 2: /* --time-days */
default:
r = printf ("%3" PRIi64, (now - secs) / 86400);
break;
}
- }
- else {
- time_t t = (time_t) secs;
+ } else {
+ time_t t = (time_t)secs;
char buf[64];
struct tm *tm;
@@ -1061,7 +1069,7 @@ output_int64_dev (int64_t i)
next_field ();
/* csv doesn't need escaping */
- if (printf ("%ju:%ju",
- (uintmax_t) major (dev), (uintmax_t) minor (dev)) < 0)
+ if (printf ("%ju:%ju", (uintmax_t)major (dev), (uintmax_t)minor (dev)) <
+ 0)
error (EXIT_FAILURE, errno, "printf");
}
diff --git a/edit/edit.c b/edit/edit.c
index 6e7aee4..c73667d 100644
--- a/edit/edit.c
+++ b/edit/edit.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -57,36 +58,38 @@ static const char *perl_expr = NULL;
static void edit_files (int argc, char *argv[]);
static void edit (const char *filename, const char *root);
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: Edit a file in a virtual machine\n"
- "Copyright (C) 2009-2016 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options] -d domname file [file ...]\n"
- " %s [--options] -a disk.img [-a disk.img ...] file [file
...]\n"
- "Options:\n"
- " -a|--add image Add image\n"
- " -b|--backup .ext Backup original as original.ext\n"
- " -c|--connect uri Specify libvirt URI for -d option\n"
- " -d|--domain guest Add disks from libvirt guest\n"
- " --echo-keys Don't turn off echo for
passphrases\n"
- " -e|--expr expr Non-interactive editing using Perl
expr\n"
- " --format[=raw|..] Force disk format for -a option\n"
- " --help Display brief help\n"
- " --keys-from-stdin Read passphrases from stdin\n"
- " -m|--mount dev[:mnt[:opts[:fstype]]]\n"
- " Mount dev on mnt (if omitted, /)\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- " -x Trace libguestfs API calls\n"
- "For more information, see the manpage %s(1).\n"),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name, guestfs_int_program_name);
+ printf (
+ _("%s: Edit a file in a virtual machine\n"
+ "Copyright (C) 2009-2016 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options] -d domname file [file ...]\n"
+ " %s [--options] -a disk.img [-a disk.img ...] file [file "
+ "...]\n"
+ "Options:\n"
+ " -a|--add image Add image\n"
+ " -b|--backup .ext Backup original as original.ext\n"
+ " -c|--connect uri Specify libvirt URI for -d option\n"
+ " -d|--domain guest Add disks from libvirt guest\n"
+ " --echo-keys Don't turn off echo for passphrases\n"
+ " -e|--expr expr Non-interactive editing using Perl "
+ "expr\n"
+ " --format[=raw|..] Force disk format for -a option\n"
+ " --help Display brief help\n"
+ " --keys-from-stdin Read passphrases from stdin\n"
+ " -m|--mount dev[:mnt[:opts[:fstype]]]\n"
+ " Mount dev on mnt (if omitted, /)\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ " -x Trace libguestfs API calls\n"
+ "For more information, see the manpage %s(1).\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name, guestfs_int_program_name);
}
exit (status);
}
@@ -105,22 +108,14 @@ main (int argc, char *argv[])
static const char *options = "a:b:c:d:e:m:vVx";
static const struct option long_options[] = {
- { "add", 1, 0, 'a' },
- { "backup", 1, 0, 'b' },
- { "connect", 1, 0, 'c' },
- { "domain", 1, 0, 'd' },
- { "echo-keys", 0, 0, 0 },
- { "edit", 1, 0, 'e' },
- { "expr", 1, 0, 'e' },
- { "format", 2, 0, 0 },
- { "help", 0, 0, HELP_OPTION },
- { "keys-from-stdin", 0, 0, 0 },
- { "long-options", 0, 0, 0 },
- { "mount", 1, 0, 'm' },
- { "short-options", 0, 0, 0 },
- { "verbose", 0, 0, 'v' },
- { "version", 0, 0, 'V' },
- { 0, 0, 0, 0 }
+ { "add", 1, 0, 'a' }, { "backup", 1, 0,
'b' },
+ { "connect", 1, 0, 'c' }, { "domain", 1, 0,
'd' },
+ { "echo-keys", 0, 0, 0 }, { "edit", 1, 0, 'e' },
+ { "expr", 1, 0, 'e' }, { "format", 2, 0, 0 },
+ { "help", 0, 0, HELP_OPTION }, { "keys-from-stdin", 0, 0, 0 },
+ { "long-options", 0, 0, 0 }, { "mount", 1, 0, 'm' },
+ { "short-options", 0, 0, 0 }, { "verbose", 0, 0, 'v' },
+ { "version", 0, 0, 'V' }, { 0, 0, 0, 0 }
};
struct drv *drvs = NULL;
struct drv *drv;
@@ -138,10 +133,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -153,8 +149,7 @@ main (int argc, char *argv[])
} else if (STREQ (long_options[option_index].name, "format")) {
OPTION_format;
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -224,7 +219,7 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, errno, "strdup");
drv->next = drvs;
drvs = drv;
- } else { /* simulate -d option */
+ } else { /* simulate -d option */
drv = calloc (1, sizeof (struct drv));
if (!drv)
error (EXIT_FAILURE, errno, "calloc");
@@ -312,8 +307,8 @@ edit (const char *filename, const char *root)
/* Windows? Special handling is required. */
if (root != NULL && is_windows (g, root)) {
- filename = filename_to_free = windows_path (g, root, filename,
- 0 /* not read only */);
+ filename = filename_to_free =
+ windows_path (g, root, filename, 0 /* not read only */);
if (filename == NULL)
exit (EXIT_FAILURE);
}
diff --git a/erlang/erl-guestfs-proto.c b/erlang/erl-guestfs-proto.c
index 24295ef..7c93541 100644
--- a/erlang/erl-guestfs-proto.c
+++ b/erlang/erl-guestfs-proto.c
@@ -56,7 +56,7 @@ extern int64_t get_int64 (ETERM *term);
/* This stops things getting out of hand, but also lets us detect
* protocol problems quickly.
*/
-#define MAX_MESSAGE_SIZE (32*1024*1024)
+#define MAX_MESSAGE_SIZE (32 * 1024 * 1024)
static unsigned char *read_message (void);
static void write_reply (ETERM *);
@@ -165,7 +165,8 @@ atom_equals (ETERM *atom, const char *name)
{
size_t namelen = strlen (name);
size_t atomlen = ERL_ATOM_SIZE (atom);
- if (namelen != atomlen) return 0;
+ if (namelen != atomlen)
+ return 0;
return strncmp (ERL_ATOM_PTR (atom), name, atomlen) == 0;
}
@@ -229,17 +230,17 @@ make_table (char **r)
for (size = 0; r[size] != NULL; ++size)
;
- t = malloc (sizeof (ETERM *) * (size/2));
+ t = malloc (sizeof (ETERM *) * (size / 2));
if (t == NULL)
return make_error ("make_table");
for (i = 0; r[i] != NULL; i += 2) {
a[0] = erl_mk_string (r[i]);
- a[1] = erl_mk_string (r[i+1]);
- t[i/2] = erl_mk_tuple (a, 2);
+ a[1] = erl_mk_string (r[i + 1]);
+ t[i / 2] = erl_mk_tuple (a, 2);
}
- return erl_mk_list (t, size/2);
+ return erl_mk_list (t, size / 2);
}
ETERM *
@@ -262,7 +263,7 @@ get_string_list (ETERM *term)
size++, t = ERL_CONS_TAIL (t))
;
- r = malloc ((size+1) * sizeof (char *));
+ r = malloc ((size + 1) * sizeof (char *));
if (r == NULL)
error (EXIT_FAILURE, errno, "malloc");
@@ -289,13 +290,13 @@ get_int (ETERM *term)
case ERL_INTEGER:
return ERL_INT_VALUE (term);
case ERL_U_INTEGER:
- return (int) ERL_INT_UVALUE (term);
+ return (int)ERL_INT_UVALUE (term);
case ERL_LONGLONG:
/* XXX check for overflow */
- return (int) ERL_LL_VALUE (term);
+ return (int)ERL_LL_VALUE (term);
case ERL_U_LONGLONG:
/* XXX check for overflow */
- return (int) ERL_LL_UVALUE (term);
+ return (int)ERL_LL_UVALUE (term);
default:
/* XXX fail in some way */
return -1;
@@ -313,7 +314,7 @@ get_int64 (ETERM *term)
case ERL_LONGLONG:
return ERL_LL_VALUE (term);
case ERL_U_LONGLONG:
- return (int64_t) ERL_LL_UVALUE (term);
+ return (int64_t)ERL_LL_UVALUE (term);
default:
/* XXX fail in some way */
return -1;
diff --git a/examples/copy-over.c b/examples/copy-over.c
index d92a4d2..418139c 100644
--- a/examples/copy-over.c
+++ b/examples/copy-over.c
@@ -22,7 +22,8 @@
#include <guestfs.h>
-struct threaddata {
+struct threaddata
+{
const char *src;
const char *srcdir;
int fd;
@@ -31,25 +32,27 @@ struct threaddata {
static void *start_srcthread (void *);
static int open_guest (guestfs_h *g, const char *dom, int readonly);
-static int64_t timeval_diff (const struct timeval *x, const struct timeval *y);
+static int64_t timeval_diff (const struct timeval *x,
+ const struct timeval *y);
static int compare_keys_len (const void *p1, const void *p2);
static size_t count_strings (char *const *argv);
static void
usage (void)
{
- fprintf (stderr,
- "Usage: copy-over source srcdir dest destdir\n"
- "\n"
- " source : the source domain (a libvirt guest name)\n"
- " srcdir : the directory to copy from the source guest\n"
- " dest : the destination domain (a libvirt guest name)\n"
- " destdir : the destination directory (must exist at destination)\n"
- "\n"
- "eg: copy-over Src /home/rjones Dest /tmp/dir\n"
- "would copy /home/rjones from Src to /tmp/dir on Dest\n"
- "\n"
- "The destination guest cannot be running.\n");
+ fprintf (
+ stderr,
+ "Usage: copy-over source srcdir dest destdir\n"
+ "\n"
+ " source : the source domain (a libvirt guest name)\n"
+ " srcdir : the directory to copy from the source guest\n"
+ " dest : the destination domain (a libvirt guest name)\n"
+ " destdir : the destination directory (must exist at destination)\n"
+ "\n"
+ "eg: copy-over Src /home/rjones Dest /tmp/dir\n"
+ "would copy /home/rjones from Src to /tmp/dir on Dest\n"
+ "\n"
+ "The destination guest cannot be running.\n");
}
int
@@ -205,8 +208,7 @@ open_guest (guestfs_h *g, const char *dom, int readonly)
size_t i;
/* Use libvirt to find the guest disks and add them to the handle. */
- if (guestfs_add_domain (g, dom,
- GUESTFS_ADD_DOMAIN_READONLY, readonly,
+ if (guestfs_add_domain (g, dom, GUESTFS_ADD_DOMAIN_READONLY, readonly,
-1) == -1)
return -1;
@@ -219,7 +221,9 @@ open_guest (guestfs_h *g, const char *dom, int readonly)
return -1;
if (roots[0] == NULL || roots[1] != NULL) {
- fprintf (stderr, "copy-over: %s: no operating systems or multiple operating
systems found\n", dom);
+ fprintf (stderr, "copy-over: %s: no operating systems or multiple "
+ "operating systems found\n",
+ dom);
return -1;
}
@@ -236,10 +240,10 @@ open_guest (guestfs_h *g, const char *dom, int readonly)
/* Ignore failures from this call, since bogus entries can
* appear in the guest's /etc/fstab.
*/
- (readonly ? guestfs_mount_ro : guestfs_mount)
- (g, mountpoints[i+1], mountpoints[i]);
+ (readonly ? guestfs_mount_ro : guestfs_mount) (g, mountpoints[i + 1],
+ mountpoints[i]);
free (mountpoints[i]);
- free (mountpoints[i+1]);
+ free (mountpoints[i + 1]);
}
free (mountpoints);
@@ -268,8 +272,8 @@ timeval_diff (const struct timeval *x, const struct timeval *y)
static int
compare_keys_len (const void *p1, const void *p2)
{
- const char *key1 = * (char * const *) p1;
- const char *key2 = * (char * const *) p2;
+ const char *key1 = *(char *const *)p1;
+ const char *key2 = *(char *const *)p2;
return strlen (key1) - strlen (key2);
}
diff --git a/examples/create-disk.c b/examples/create-disk.c
index 81e4dbd..ff5c83c 100644
--- a/examples/create-disk.c
+++ b/examples/create-disk.c
@@ -23,15 +23,16 @@ main (int argc, char *argv[])
guestfs_set_trace (g, 1);
/* Create a raw-format sparse disk image, 512 MB in size. */
- if (guestfs_disk_create (g, "disk.img", "raw",
UINT64_C(512)*1024*1024,
- -1) == -1)
+ if (guestfs_disk_create (g, "disk.img", "raw",
+ UINT64_C (512) * 1024 * 1024, -1) == -1)
exit (EXIT_FAILURE);
/* Add the disk image to libguestfs. */
- if (guestfs_add_drive_opts (g, "disk.img",
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", /* raw format */
- GUESTFS_ADD_DRIVE_OPTS_READONLY, 0, /* for write */
- -1) /* this marks end of optional arguments */
+ if (guestfs_add_drive_opts (g, "disk.img", GUESTFS_ADD_DRIVE_OPTS_FORMAT,
+ "raw", /* raw format */
+ GUESTFS_ADD_DRIVE_OPTS_READONLY,
+ 0, /* for write */
+ -1) /* this marks end of optional arguments */
== -1)
exit (EXIT_FAILURE);
@@ -62,7 +63,8 @@ main (int argc, char *argv[])
if (partitions == NULL)
exit (EXIT_FAILURE);
if (partitions[0] == NULL || partitions[1] != NULL) {
- fprintf (stderr, "error: expected a single partition from
list-partitions\n");
+ fprintf (stderr,
+ "error: expected a single partition from list-partitions\n");
exit (EXIT_FAILURE);
}
diff --git a/examples/debug-logging.c b/examples/debug-logging.c
index 755e69b..12f75c0 100644
--- a/examples/debug-logging.c
+++ b/examples/debug-logging.c
@@ -11,16 +11,17 @@
#include <syslog.h>
#include <guestfs.h>
-static void message_callback (guestfs_h *g, void *opaque, uint64_t event, int
event_handle, int flags, const char *buf, size_t buf_len, const uint64_t *array, size_t
array_len);
+static void message_callback (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len);
/* Events we are interested in. This bitmask covers all trace and
* debug messages.
*/
static const uint64_t event_bitmask =
- GUESTFS_EVENT_LIBRARY |
- GUESTFS_EVENT_WARNING |
- GUESTFS_EVENT_APPLIANCE |
- GUESTFS_EVENT_TRACE;
+ GUESTFS_EVENT_LIBRARY | GUESTFS_EVENT_WARNING |
+ GUESTFS_EVENT_APPLIANCE | GUESTFS_EVENT_TRACE;
int
main (int argc, char *argv[])
@@ -40,8 +41,8 @@ main (int argc, char *argv[])
*
* For more information see EVENTS in guestfs(3).
*/
- if (guestfs_set_event_callback (g, message_callback,
- event_bitmask, 0, NULL) == -1)
+ if (guestfs_set_event_callback (g, message_callback, event_bitmask, 0,
+ NULL) == -1)
exit (EXIT_FAILURE);
/* This is how debugging is enabled:
@@ -97,13 +98,11 @@ main (int argc, char *argv[])
* obviously you could do something more advanced here.
*/
static void
-message_callback (guestfs_h *g, void *opaque,
- uint64_t event, int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+message_callback (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array, size_t array_len)
{
- const int priority = LOG_USER|LOG_INFO;
+ const int priority = LOG_USER | LOG_INFO;
char *event_name, *msg;
if (buf_len > 0) {
diff --git a/examples/display-icon.c b/examples/display-icon.c
index b408364..ef7ace1 100644
--- a/examples/display-icon.c
+++ b/examples/display-icon.c
@@ -11,8 +11,8 @@
static int
compare_keys_len (const void *p1, const void *p2)
{
- const char *key1 = * (char * const *) p1;
- const char *key2 = * (char * const *) p2;
+ const char *key1 = *(char *const *)p1;
+ const char *key2 = *(char *const *)p2;
return strlen (key1) - strlen (key2);
}
@@ -49,9 +49,9 @@ main (int argc, char *argv[])
/* Attach the disk image read-only to libguestfs. */
if (guestfs_add_drive_opts (g, disk,
- /* GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", */
- GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
- -1) /* this marks end of optional arguments */
+ /* GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", */
+ GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
+ -1) /* this marks end of optional arguments */
== -1)
exit (EXIT_FAILURE);
@@ -80,15 +80,15 @@ main (int argc, char *argv[])
if (mountpoints == NULL)
exit (EXIT_FAILURE);
- qsort (mountpoints, count_strings (mountpoints) / 2, 2 * sizeof (char *),
- compare_keys_len);
+ qsort (mountpoints, count_strings (mountpoints) / 2,
+ 2 * sizeof (char *), compare_keys_len);
for (i = 0; mountpoints[i] != NULL; i += 2) {
/* Ignore failures from this call, since bogus entries can
* appear in the guest's /etc/fstab.
*/
- guestfs_mount_ro (g, mountpoints[i+1], mountpoints[i]);
+ guestfs_mount_ro (g, mountpoints[i + 1], mountpoints[i]);
free (mountpoints[i]);
- free (mountpoints[i+1]);
+ free (mountpoints[i + 1]);
}
free (mountpoints);
@@ -99,10 +99,11 @@ main (int argc, char *argv[])
* was an error.
*/
icon = guestfs_inspect_get_icon (g, root, &icon_size, -1);
- if (!icon) /* actual libguestfs error */
+ if (!icon) /* actual libguestfs error */
exit (EXIT_FAILURE);
- if (icon_size == 0) /* no icon available */
- fprintf (stderr, "%s: %s: no icon available for this operating
system\n",
+ if (icon_size == 0) /* no icon available */
+ fprintf (stderr,
+ "%s: %s: no icon available for this operating system\n",
disk, root);
else {
/* Display the icon. */
diff --git a/examples/inspect-vm.c b/examples/inspect-vm.c
index 50fe49a..6a415ed 100644
--- a/examples/inspect-vm.c
+++ b/examples/inspect-vm.c
@@ -8,8 +8,8 @@
static int
compare_keys_len (const void *p1, const void *p2)
{
- const char *key1 = * (char * const *) p1;
- const char *key2 = * (char * const *) p2;
+ const char *key1 = *(char *const *)p1;
+ const char *key2 = *(char *const *)p2;
return strlen (key1) - strlen (key2);
}
@@ -45,9 +45,9 @@ main (int argc, char *argv[])
/* Attach the disk image read-only to libguestfs. */
if (guestfs_add_drive_opts (g, disk,
- /* GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", */
- GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
- -1) /* this marks end of optional arguments */
+ /* GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", */
+ GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
+ -1) /* this marks end of optional arguments */
== -1)
exit (EXIT_FAILURE);
@@ -97,15 +97,15 @@ main (int argc, char *argv[])
if (mountpoints == NULL)
exit (EXIT_FAILURE);
- qsort (mountpoints, count_strings (mountpoints) / 2, 2 * sizeof (char *),
- compare_keys_len);
+ qsort (mountpoints, count_strings (mountpoints) / 2,
+ 2 * sizeof (char *), compare_keys_len);
for (i = 0; mountpoints[i] != NULL; i += 2) {
/* Ignore failures from this call, since bogus entries can
* appear in the guest's /etc/fstab.
*/
- guestfs_mount_ro (g, mountpoints[i+1], mountpoints[i]);
+ guestfs_mount_ro (g, mountpoints[i + 1], mountpoints[i]);
free (mountpoints[i]);
- free (mountpoints[i+1]);
+ free (mountpoints[i + 1]);
}
free (mountpoints);
diff --git a/examples/libvirt-auth.c b/examples/libvirt-auth.c
index 12825f4..baff501 100644
--- a/examples/libvirt-auth.c
+++ b/examples/libvirt-auth.c
@@ -13,37 +13,43 @@
static void
usage (void)
{
- fprintf (stderr,
- "Usage:\n"
- "\n"
- " libvirt-auth URI domain\n"
- "\n"
- "where:\n"
- "\n"
- " URI is the libvirt URI, eg. qemu+libssh2://USER@localhost/system\n"
- " domain is the name of the guest\n"
- "\n"
- "Example:\n"
- "\n"
- " libvirt-auth 'qemu+libssh2://USER@localhost/system'
'foo'\n"
- "\n"
- "would connect (read-only) to libvirt URI given and open the guest\n"
- "called 'foo' and list some information about its filesystems.\n"
- "\n"
- "The important point of this example is that any libvirt authentication\n"
- "required to connect to the server should be done.\n"
- "\n");
+ fprintf (
+ stderr,
+ "Usage:\n"
+ "\n"
+ " libvirt-auth URI domain\n"
+ "\n"
+ "where:\n"
+ "\n"
+ " URI is the libvirt URI, eg. "
+ "qemu+libssh2://USER@localhost/system\n"
+ " domain is the name of the guest\n"
+ "\n"
+ "Example:\n"
+ "\n"
+ " libvirt-auth 'qemu+libssh2://USER@localhost/system'
'foo'\n"
+ "\n"
+ "would connect (read-only) to libvirt URI given and open the guest\n"
+ "called 'foo' and list some information about its
filesystems.\n"
+ "\n"
+ "The important point of this example is that any libvirt "
+ "authentication\n"
+ "required to connect to the server should be done.\n"
+ "\n");
}
-static void auth_callback (guestfs_h *g, void *opaque, uint64_t event, int event_handle,
int flags, const char *buf, size_t buf_len, const uint64_t *array, size_t array_len);
+static void auth_callback (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len);
int
main (int argc, char *argv[])
{
const char *uri, *dom;
guestfs_h *g;
- const char *creds[] = { "authname", "passphrase",
- "echoprompt", "noechoprompt", NULL };
+ const char *creds[] = { "authname", "passphrase",
"echoprompt",
+ "noechoprompt", NULL };
int r, eh;
char **filesystems;
size_t i;
@@ -59,7 +65,7 @@ main (int argc, char *argv[])
if (!g)
exit (EXIT_FAILURE);
- r = guestfs_set_libvirt_supported_credentials (g, (char **) creds);
+ r = guestfs_set_libvirt_supported_credentials (g, (char **)creds);
if (r == -1)
exit (EXIT_FAILURE);
@@ -70,9 +76,7 @@ main (int argc, char *argv[])
exit (EXIT_FAILURE);
/* Add the named domain. */
- r = guestfs_add_domain (g, dom,
- GUESTFS_ADD_DOMAIN_LIBVIRTURI, uri,
- -1);
+ r = guestfs_add_domain (g, dom, GUESTFS_ADD_DOMAIN_LIBVIRTURI, uri, -1);
if (r == -1)
exit (EXIT_FAILURE);
@@ -86,10 +90,10 @@ main (int argc, char *argv[])
exit (EXIT_FAILURE);
for (i = 0; filesystems[i] != NULL; i += 2) {
- printf ("%s:%s is a %s filesystem\n",
- dom, filesystems[i], filesystems[i+1]);
+ printf ("%s:%s is a %s filesystem\n", dom, filesystems[i],
+ filesystems[i + 1]);
free (filesystems[i]);
- free (filesystems[i+1]);
+ free (filesystems[i + 1]);
}
free (filesystems);
@@ -97,12 +101,8 @@ main (int argc, char *argv[])
}
static void
-auth_callback (guestfs_h *g,
- void *opaque,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
+auth_callback (guestfs_h *g, void *opaque, uint64_t event, int event_handle,
+ int flags, const char *buf, size_t buf_len,
const uint64_t *array, size_t array_len)
{
char **creds;
@@ -114,8 +114,9 @@ auth_callback (guestfs_h *g,
ssize_t len;
int r;
- printf ("libvirt-auth.c: authentication required for libvirt URI
'%s'\n\n",
- buf);
+ printf (
+ "libvirt-auth.c: authentication required for libvirt URI
'%s'\n\n",
+ buf);
/* Ask libguestfs what credentials libvirt is demanding. */
creds = guestfs_get_libvirt_requested_credentials (g);
@@ -123,8 +124,7 @@ auth_callback (guestfs_h *g,
exit (EXIT_FAILURE);
/* Now ask the user for answers. */
- for (i = 0; creds[i] != NULL; ++i)
- {
+ for (i = 0; creds[i] != NULL; ++i) {
printf ("libvirt-auth.c: credential '%s'\n", creds[i]);
if (strcmp (creds[i], "authname") == 0 ||
@@ -139,7 +139,7 @@ auth_callback (guestfs_h *g,
perror ("getline");
exit (EXIT_FAILURE);
}
- if (len > 0 && reply[len-1] == '\n')
+ if (len > 0 && reply[len - 1] == '\n')
reply[--len] = '\0';
r = guestfs_set_libvirt_requested_credential (g, i, reply, len);
diff --git a/examples/mount-local.c b/examples/mount-local.c
index ce12ffe..53d1372 100644
--- a/examples/mount-local.c
+++ b/examples/mount-local.c
@@ -32,11 +32,10 @@
static void
usage (void)
{
- fprintf (stderr,
- "Usage: mount-local disk.img\n"
- "\n"
- "NOTE: disk.img will be created or overwritten.\n"
- "\n");
+ fprintf (stderr, "Usage: mount-local disk.img\n"
+ "\n"
+ "NOTE: disk.img will be created or overwritten.\n"
+ "\n");
}
int
@@ -58,11 +57,12 @@ main (int argc, char *argv[])
exit (EXIT_FAILURE);
}
- printf ("\n"
- "This is the 'mount-local' demonstration program. Follow
the\n"
- "instructions on screen.\n"
- "\n"
- "Creating and formatting the disk image, please wait a moment
...\n");
+ printf (
+ "\n"
+ "This is the 'mount-local' demonstration program. Follow the\n"
+ "instructions on screen.\n"
+ "\n"
+ "Creating and formatting the disk image, please wait a moment ...\n");
fflush (stdout);
/* Guestfs handle. */
@@ -73,13 +73,14 @@ main (int argc, char *argv[])
}
/* Create the output disk image: raw sparse. */
- if (guestfs_disk_create (g, argv[1], "raw", SIZE_MB * 1024 * 1024, -1) ==
-1)
+ if (guestfs_disk_create (g, argv[1], "raw", SIZE_MB * 1024 * 1024, -1) ==
+ -1)
exit (EXIT_FAILURE);
- /* Create the disk image and format it with a partition and a filesystem. */
- if (guestfs_add_drive_opts (g, argv[1],
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
- -1) == -1)
+ /* Create the disk image and format it with a partition and a filesystem.
+ */
+ if (guestfs_add_drive_opts (g, argv[1], GUESTFS_ADD_DRIVE_OPTS_FORMAT,
+ "raw", -1) == -1)
exit (EXIT_FAILURE);
if (guestfs_launch (g) == -1)
@@ -116,23 +117,24 @@ main (int argc, char *argv[])
exit (EXIT_FAILURE);
}
- if (pid == 0) { /* Child. */
+ if (pid == 0) { /* Child. */
if (chdir (tempdir) == -1) {
perror (tempdir);
_exit (EXIT_FAILURE);
}
- printf ("\n"
- "The *current directory* is a FUSE filesystem backed by the
disk\n"
- "image which is managed by libguestfs. Any files or
directories\n"
- "you copy into here (up to %d MB) will be saved into the disk\n"
- "image. You can also delete files, create certain special
files\n"
- "and so on.\n"
- "\n"
- "When you have finished adding files, hit ^D or type 'exit'
to\n"
- "exit the shell and return to the mount-local program.\n"
- "\n",
- SIZE_MB);
+ printf (
+ "\n"
+ "The *current directory* is a FUSE filesystem backed by the disk\n"
+ "image which is managed by libguestfs. Any files or directories\n"
+ "you copy into here (up to %d MB) will be saved into the disk\n"
+ "image. You can also delete files, create certain special files\n"
+ "and so on.\n"
+ "\n"
+ "When you have finished adding files, hit ^D or type 'exit'
to\n"
+ "exit the shell and return to the mount-local program.\n"
+ "\n",
+ SIZE_MB);
shell = getenv ("SHELL");
if (!shell)
@@ -140,7 +142,7 @@ main (int argc, char *argv[])
else {
/* Set a magic prompt. We only know how to do this for bash. */
p = strrchr (shell, '/');
- if (p && strcmp (p+1, "bash") == 0) {
+ if (p && strcmp (p + 1, "bash") == 0) {
size_t len = 64 + strlen (shell);
char *buf;
@@ -149,7 +151,8 @@ main (int argc, char *argv[])
perror ("malloc");
_exit (EXIT_FAILURE);
}
- snprintf (buf, len, "PS1='mount-local-shell> ' %s --norc
-i", shell);
+ snprintf (buf, len, "PS1='mount-local-shell> ' %s --norc
-i",
+ shell);
r = system (buf);
free (buf);
} else
@@ -157,9 +160,9 @@ main (int argc, char *argv[])
}
if (r == -1) {
fprintf (stderr, "error: failed to run sub-shell (%s) "
- "(is $SHELL set correctly?)\n",
+ "(is $SHELL set correctly?)\n",
shell);
- //FALLTHROUGH
+ // FALLTHROUGH
}
if (chdir ("/") == -1)
@@ -191,15 +194,16 @@ main (int argc, char *argv[])
guestfs_close (g);
- printf ("\n"
- "Any files or directories that you copied in have been saved into\n"
- "the disk image called '%s'.\n"
- "\n"
- "Try opening the disk image with guestfish to see those files:\n"
- "\n"
- " guestfish -a %s -m /dev/sda1\n"
- "\n",
- argv[1], argv[1]);
+ printf (
+ "\n"
+ "Any files or directories that you copied in have been saved into\n"
+ "the disk image called '%s'.\n"
+ "\n"
+ "Try opening the disk image with guestfish to see those files:\n"
+ "\n"
+ " guestfish -a %s -m /dev/sda1\n"
+ "\n",
+ argv[1], argv[1]);
exit (EXIT_SUCCESS);
}
diff --git a/examples/virt-dhcp-address.c b/examples/virt-dhcp-address.c
index df06ebe..bf8ade4 100644
--- a/examples/virt-dhcp-address.c
+++ b/examples/virt-dhcp-address.c
@@ -23,7 +23,8 @@ static size_t count_strings (char *const *argv);
static void free_strings (char **argv);
static void mount_disks (guestfs_h *g, char *root);
static void print_dhcp_address (guestfs_h *g, char *root);
-static void print_dhcp_address_linux (guestfs_h *g, char *root, const char *logfile);
+static void print_dhcp_address_linux (guestfs_h *g, char *root,
+ const char *logfile);
static void print_dhcp_address_windows (guestfs_h *g, char *root);
int
@@ -34,9 +35,10 @@ main (int argc, char *argv[])
char **roots, *root;
if (argc < 2) {
- fprintf (stderr,
- "Usage: virt-dhcp-address disk.img [disk.img [...]]\n"
- "Note that all disks must come from a single virtual
machine.\n");
+ fprintf (
+ stderr,
+ "Usage: virt-dhcp-address disk.img [disk.img [...]]\n"
+ "Note that all disks must come from a single virtual machine.\n");
exit (EXIT_FAILURE);
}
@@ -46,12 +48,13 @@ main (int argc, char *argv[])
exit (EXIT_FAILURE);
}
- for (i = 1; i < (size_t) argc; ++i) {
+ for (i = 1; i < (size_t)argc; ++i) {
/* Attach the disk image(s) read-only to libguestfs. */
- if (guestfs_add_drive_opts (g, argv[i],
- /* GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", */
- GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
- -1) /* this marks end of optional arguments */
+ if (guestfs_add_drive_opts (
+ g, argv[i],
+ /* GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", */
+ GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
+ -1) /* this marks end of optional arguments */
== -1)
exit (EXIT_FAILURE);
}
@@ -110,7 +113,7 @@ mount_disks (guestfs_h *g, char *root)
/* Ignore failures from this call, since bogus entries can
* appear in the guest's /etc/fstab.
*/
- guestfs_mount_ro (g, mountpoints[i+1], mountpoints[i]);
+ guestfs_mount_ro (g, mountpoints[i + 1], mountpoints[i]);
}
free_strings (mountpoints);
@@ -135,25 +138,24 @@ print_dhcp_address (guestfs_h *g, char *root)
strcmp (guest_distro, "rhel") == 0 ||
strcmp (guest_distro, "redhat-based") == 0) {
print_dhcp_address_linux (g, root, "/var/log/messages");
- }
- else if (strcmp (guest_distro, "debian") == 0 ||
- strcmp (guest_distro, "ubuntu") == 0) {
+ } else if (strcmp (guest_distro, "debian") == 0 ||
+ strcmp (guest_distro, "ubuntu") == 0) {
print_dhcp_address_linux (g, root, "/var/log/syslog");
- }
- else {
- fprintf (stderr, "virt-dhcp-address: don't know how to get DHCP address
from '%s'\n",
+ } else {
+ fprintf (stderr, "virt-dhcp-address: don't know how to get DHCP "
+ "address from '%s'\n",
guest_distro);
exit (EXIT_FAILURE);
}
free (guest_distro);
- }
- else if (strcmp (guest_type, "windows") == 0) {
+ } else if (strcmp (guest_type, "windows") == 0) {
print_dhcp_address_windows (g, root);
- }
- else {
- fprintf (stderr, "virt-dhcp-address: don't know how to get DHCP address from
'%s'\n",
- guest_type);
+ } else {
+ fprintf (
+ stderr,
+ "virt-dhcp-address: don't know how to get DHCP address from
'%s'\n",
+ guest_type);
exit (EXIT_FAILURE);
}
@@ -169,19 +171,20 @@ print_dhcp_address_linux (guestfs_h *g, char *root, const char
*logfile)
size_t len;
lines = guestfs_grep_opts (g, "dhclient.*: bound to ", logfile,
- GUESTFS_GREP_OPTS_EXTENDED, 1,
- -1);
+ GUESTFS_GREP_OPTS_EXTENDED, 1, -1);
if (lines == NULL)
exit (EXIT_FAILURE);
len = count_strings (lines);
if (len == 0) {
- fprintf (stderr, "virt-dhcp-address: cannot find DHCP address for this
guest.\n");
+ fprintf (
+ stderr,
+ "virt-dhcp-address: cannot find DHCP address for this guest.\n");
exit (EXIT_FAILURE);
}
/* Only want the last message. */
- p = strstr (lines[len-1], "bound to ");
+ p = strstr (lines[len - 1], "bound to ");
assert (p);
p += 9;
len = strcspn (p, " ");
@@ -205,7 +208,7 @@ print_dhcp_address_windows (guestfs_h *g, char *root_fs)
/* Locate the SYSTEM hive case-sensitive path. */
system_path =
- guestfs_case_sensitive_path (g, "/windows/system32/config/system");
+ guestfs_case_sensitive_path (g, "/windows/system32/config/system");
if (!system_path)
exit (EXIT_FAILURE);
@@ -238,7 +241,11 @@ print_dhcp_address_windows (guestfs_h *g, char *root_fs)
exit (EXIT_FAILURE);
if (node == 0) {
- fprintf (stderr, "virt-dhcp-address:
HKLM\\System\\%s\\Services\\Tcpip\\Parameters\\Interfaces not found.", controlset);
+ fprintf (stderr, "virt-dhcp-address: "
+ "HKLM\\System\\%"
+ "s\\Services\\Tcpip\\Parameters\\Interfaces not "
+ "found.",
+ controlset);
exit (EXIT_FAILURE);
}
@@ -258,7 +265,9 @@ print_dhcp_address_windows (guestfs_h *g, char *root_fs)
}
if (value == 0) {
- fprintf (stderr, "virt-dhcp-address: cannot find DHCP address for this
guest.\n");
+ fprintf (
+ stderr,
+ "virt-dhcp-address: cannot find DHCP address for this guest.\n");
exit (EXIT_FAILURE);
}
@@ -282,8 +291,8 @@ print_dhcp_address_windows (guestfs_h *g, char *root_fs)
static int
compare_keys_len (const void *p1, const void *p2)
{
- const char *key1 = * (char * const *) p1;
- const char *key2 = * (char * const *) p2;
+ const char *key1 = *(char *const *)p1;
+ const char *key2 = *(char *const *)p2;
return strlen (key1) - strlen (key2);
}
diff --git a/fish/alloc.c b/fish/alloc.c
index 7ec6a15..0bcc73f 100644
--- a/fish/alloc.c
+++ b/fish/alloc.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -49,7 +50,8 @@ int
run_sparse (const char *cmd, size_t argc, char *argv[])
{
if (argc != 2) {
- fprintf (stderr, _("use 'sparse file size' to create a sparse
image\n"));
+ fprintf (stderr,
+ _("use 'sparse file size' to create a sparse image\n"));
return -1;
}
@@ -71,15 +73,14 @@ alloc_disk (const char *filename, const char *size_str, int add, int
sparse)
if (parse_size (size_str, &size) == -1)
return -1;
- if (guestfs_disk_create (g, filename, "raw", (int64_t) size,
+ if (guestfs_disk_create (g, filename, "raw", (int64_t)size,
GUESTFS_DISK_CREATE_PREALLOCATION, prealloc,
-1) == -1)
return -1;
if (add) {
- if (guestfs_add_drive_opts (g, filename,
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
- -1) == -1) {
+ if (guestfs_add_drive_opts (g, filename, GUESTFS_ADD_DRIVE_OPTS_FORMAT,
+ "raw", -1) == -1) {
unlink (filename);
return -1;
}
@@ -96,9 +97,8 @@ parse_size (const char *str, off_t *size_rtn)
xerr = xstrtoull (str, NULL, 0, &size, "0kKMGTPEZY");
if (xerr != LONGINT_OK) {
- fprintf (stderr,
- _("%s: invalid integer parameter (%s returned %u)\n"),
- "parse_size", "xstrtoull", xerr);
+ fprintf (stderr, _("%s: invalid integer parameter (%s returned %u)\n"),
+ "parse_size", "xstrtoull", xerr);
return -1;
}
diff --git a/fish/cmds-gperf.h b/fish/cmds-gperf.h
index bcb3b5d..da7ec17 100644
--- a/fish/cmds-gperf.h
+++ b/fish/cmds-gperf.h
@@ -22,10 +22,11 @@
/* There is one of these structures for each individual command that
* guestfish can execute.
*/
-struct command_entry {
- const char *name; /* Short name. */
- const char *help; /* Online help. */
- const char *synopsis; /* Synopsis. */
+struct command_entry
+{
+ const char *name; /* Short name. */
+ const char *help; /* Online help. */
+ const char *synopsis; /* Synopsis. */
/* The run_* function. */
int (*run) (const char *cmd, size_t argc, char *argv[]);
@@ -35,11 +36,13 @@ struct command_entry {
* Multiple rows in this table can and do point to a single command
* entry. This is used to implement aliases.
*/
-struct command_table {
+struct command_table
+{
char *name;
struct command_entry *entry;
};
-const struct command_table *lookup_fish_command (register const char *str, register
unsigned int len);
+const struct command_table *lookup_fish_command (register const char *str,
+ register unsigned int len);
#endif /* FISH_CMDS_GPERF_H */
diff --git a/fish/config.c b/fish/config.c
index 4463d9f..6780ee3 100644
--- a/fish/config.c
+++ b/fish/config.c
@@ -62,10 +62,11 @@ read_config_from_file (const char *filename)
*/
if (config_read (&conf, fp) == CONFIG_FALSE) {
- fprintf (stderr,
- _("%s: %s: line %d: error parsing configuration file: %s\n"),
- guestfs_int_program_name, filename, config_error_line (&conf),
- config_error_text (&conf));
+ fprintf (
+ stderr,
+ _("%s: %s: line %d: error parsing configuration file: %s\n"),
+ guestfs_int_program_name, filename, config_error_line (&conf),
+ config_error_text (&conf));
exit (EXIT_FAILURE);
}
@@ -100,7 +101,8 @@ parse_config (void)
CLEANUP_FREE char *path = NULL;
const char *dir = xdg_config_dirs[i - 1];
- if (asprintf (&path, "%s/libguestfs/" GLOBAL_CONFIG_FILENAME, dir) ==
-1)
+ if (asprintf (&path, "%s/libguestfs/" GLOBAL_CONFIG_FILENAME, dir)
==
+ -1)
error (EXIT_FAILURE, errno, "asprintf");
read_config_from_file (path);
@@ -131,7 +133,8 @@ parse_config (void)
xdg_env = getenv ("XDG_CONFIG_HOME");
if (xdg_env == NULL) {
- if (asprintf (&path, "%s/.config/libguestfs/"
GLOBAL_CONFIG_FILENAME,
+ if (asprintf (&path,
+ "%s/.config/libguestfs/" GLOBAL_CONFIG_FILENAME,
home_copy) == -1)
error (EXIT_FAILURE, errno, "asprintf");
} else {
@@ -153,7 +156,8 @@ parse_config (void)
/*
if (verbose)
fprintf (stderr,
- _("%s: compiled without libconfig, guestfish configuration file
ignored\n"),
+ _("%s: compiled without libconfig, guestfish configuration file
+ ignored\n"),
guestfs_int_program_name);
*/
}
diff --git a/fish/copy.c b/fish/copy.c
index e5655e1..1e45a78 100644
--- a/fish/copy.c
+++ b/fish/copy.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -33,19 +34,19 @@ run_copy_in (const char *cmd, size_t argc, char *argv[])
CLEANUP_FREE char *remote = NULL;
if (argc < 2) {
- fprintf (stderr,
- _("use 'copy-in <local> [<local>...]
<remotedir>' to copy files into the image\n"));
+ fprintf (stderr, _("use 'copy-in <local> [<local>...]
<remotedir>' to "
+ "copy files into the image\n"));
return -1;
}
/* Remote directory is always the last arg.
* Allow "win:" prefix on remote.
*/
- remote = win_prefix (argv[argc-1]);
+ remote = win_prefix (argv[argc - 1]);
if (remote == NULL)
return -1;
- int nr_locals = argc-1;
+ int nr_locals = argc - 1;
/* Upload each local one at a time using copy-in. */
int i;
@@ -62,14 +63,14 @@ int
run_copy_out (const char *cmd, size_t argc, char *argv[])
{
if (argc < 2) {
- fprintf (stderr,
- _("use 'copy-out <remote> [<remote>...]
<localdir>' to copy files out of the image\n"));
+ fprintf (stderr, _("use 'copy-out <remote> [<remote>...]
<localdir>' "
+ "to copy files out of the image\n"));
return -1;
}
/* Local directory is always the last arg. */
- const char *local = argv[argc-1];
- int nr_remotes = argc-1;
+ const char *local = argv[argc - 1];
+ int nr_remotes = argc - 1;
/* Download each remote one at a time using copy-out. */
int i, r;
diff --git a/fish/destpaths.c b/fish/destpaths.c
index 31dd6a9..51c5849 100644
--- a/fish/destpaths.c
+++ b/fish/destpaths.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -45,7 +46,7 @@
sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for
exactly-SIZE_MAX allocations on such hosts; this avoids a test and
branch when S is known to be 1. */
-# define xalloc_oversized(n, s) \
+#define xalloc_oversized(n, s) \
((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
#endif
@@ -55,7 +56,8 @@
int complete_dest_paths = 1;
-struct word {
+struct word
+{
char *name;
int is_dir;
};
@@ -75,8 +77,8 @@ free_words (struct word *words, size_t nr_words)
static int
compare_words (const void *vp1, const void *vp2)
{
- const struct word *w1 = (const struct word *) vp1;
- const struct word *w2 = (const struct word *) vp2;
+ const struct word *w1 = (const struct word *)vp1;
+ const struct word *w2 = (const struct word *)vp2;
return strcmp (w1->name, w2->name);
}
#endif
@@ -96,40 +98,42 @@ complete_dest_paths_generator (const char *text, int state)
len = strlen (text);
index = 0;
- if (words) free_words (words, nr_words);
+ if (words)
+ free_words (words, nr_words);
words = NULL;
nr_words = 0;
guestfs_push_error_handler (g, NULL, NULL);
- /* Silently do nothing if an allocation fails */
-#define APPEND_STRS_AND_FREE \
- do { \
- if (strs) { \
- size_t i; \
- size_t n = guestfs_int_count_strings (strs); \
- \
- if ( n > 0 && ! xalloc_oversized (nr_words + n, sizeof (struct word))) { \
- struct word *w; \
- w = realloc (words, sizeof (struct word) * (nr_words + n)); \
- \
- if (w == NULL) { \
- free_words (words, nr_words); \
- words = NULL; \
- nr_words = 0; \
- } else { \
- words = w; \
- for (i = 0; i < n; ++i) { \
- words[nr_words].name = strs[i]; \
- words[nr_words].is_dir = 0; \
- nr_words++; \
- } \
- } \
- } \
- free (strs); \
- } \
- } while (0)
+/* Silently do nothing if an allocation fails */
+#define APPEND_STRS_AND_FREE \
+ do { \
+ if (strs) { \
+ size_t i; \
+ size_t n = guestfs_int_count_strings (strs); \
+ \
+ if (n > 0 && \
+ !xalloc_oversized (nr_words + n, sizeof (struct word))) { \
+ struct word *w; \
+ w = realloc (words, sizeof (struct word) * (nr_words + n)); \
+ \
+ if (w == NULL) { \
+ free_words (words, nr_words); \
+ words = NULL; \
+ nr_words = 0; \
+ } else { \
+ words = w; \
+ for (i = 0; i < n; ++i) { \
+ words[nr_words].name = strs[i]; \
+ words[nr_words].is_dir = 0; \
+ nr_words++; \
+ } \
+ } \
+ } \
+ free (strs); \
+ } \
+ } while (0)
/* Is it a device? */
if (len < 5 || STREQLEN (text, "/dev/", 5)) {
@@ -179,23 +183,25 @@ complete_dest_paths_generator (const char *text, int state)
else
err = asprintf (&p, "%s/%s", dir,
dirents->val[i].name);
if (err >= 0) {
- if (!xalloc_oversized (nr_words+1, sizeof (struct word))) {
+ if (!xalloc_oversized (nr_words + 1,
+ sizeof (struct word))) {
struct word *w;
- w = realloc (words, sizeof (struct word) * (nr_words+1));
+ w = realloc (words,
+ sizeof (struct word) * (nr_words + 1));
if (w == NULL) {
free_words (words, nr_words);
words = NULL;
nr_words = 0;
- }
- else {
+ } else {
words = w;
words[nr_words].name = p;
- if (dirents->val[i].ftyp == 'u'
- || dirents->val[i].ftyp == 'l'
- || dirents->val[i].ftyp == '?') {
- int is_dir = guestfs_is_dir_opts (g, words[nr_words].name,
- GUESTFS_IS_DIR_OPTS_FOLLOWSYMLINKS, 1, -1);
+ if (dirents->val[i].ftyp == 'u' ||
+ dirents->val[i].ftyp == 'l' ||
+ dirents->val[i].ftyp == '?') {
+ int is_dir = guestfs_is_dir_opts (
+ g, words[nr_words].name,
+ GUESTFS_IS_DIR_OPTS_FOLLOWSYMLINKS, 1, -1);
words[nr_words].is_dir = is_dir;
} else
words[nr_words].is_dir = dirents->val[i].ftyp == 'd';
@@ -241,9 +247,8 @@ complete_dest_paths_generator (const char *text, int state)
if (cic_var && STREQ (cic_var, "off"))
cic = 0;
- int matches =
- cic ? STRCASEEQLEN (word->name, text, len)
- : STREQLEN (word->name, text, len);
+ int matches = cic ? STRCASEEQLEN (word->name, text, len)
+ : STREQLEN (word->name, text, len);
if (matches) {
if (word->is_dir)
diff --git a/fish/display.c b/fish/display.c
index a1781c5..4f78cde 100644
--- a/fish/display.c
+++ b/fish/display.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/fish/domain.c b/fish/domain.c
index d3be8e7..966c686 100644
--- a/fish/domain.c
+++ b/fish/domain.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -32,7 +33,7 @@
int
add_libvirt_drives (guestfs_h *g, const char *guest)
{
- struct guestfs_add_domain_argv optargs = { .bitmask = 0 };
+ struct guestfs_add_domain_argv optargs = {.bitmask = 0 };
if (libvirt_uri) {
optargs.bitmask |= GUESTFS_ADD_DOMAIN_LIBVIRTURI_BITMASK;
diff --git a/fish/echo.c b/fish/echo.c
index 810243b..ae15c89 100644
--- a/fish/echo.c
+++ b/fish/echo.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,7 +31,8 @@ run_echo (const char *cmd, size_t argc, char *argv[])
size_t i;
for (i = 0; i < argc; ++i) {
- if (i > 0) printf (" ");
+ if (i > 0)
+ printf (" ");
printf ("%s", argv[i]);
}
printf ("\n");
diff --git a/fish/edit.c b/fish/edit.c
index bf9fdb5..95e5b4c 100644
--- a/fish/edit.c
+++ b/fish/edit.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -55,7 +56,8 @@ run_edit (const char *cmd, size_t argc, char *argv[])
if (remotefilename == NULL)
return -1;
- r = edit_file_editor (g, remotefilename, editor, NULL, 0 /* not verbose */);
+ r = edit_file_editor (g, remotefilename, editor, NULL,
+ 0 /* not verbose */);
return r == -1 ? -1 : 0;
}
diff --git a/fish/events.c b/fish/events.c
index 8660fc4..0a085e9 100644
--- a/fish/events.c
+++ b/fish/events.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -40,12 +41,13 @@
/* The hash table maps names to multiple (linked list of) event handlers. */
static Hash_table *event_handlers;
-struct entry {
- struct entry *next; /* Next entry in linked list. */
- char *name; /* Event name. */
- char *command; /* Shell script / command that runs. */
- uint64_t event_bitmask; /* Events this is registered for. */
- int eh; /* Event handle (from guestfs_set_event_callback). */
+struct entry
+{
+ struct entry *next; /* Next entry in linked list. */
+ char *name; /* Event name. */
+ char *command; /* Shell script / command that runs. */
+ uint64_t event_bitmask; /* Events this is registered for. */
+ int eh; /* Event handle (from guestfs_set_event_callback). */
};
static void
@@ -80,7 +82,7 @@ init_event_handlers (void)
{
assert (event_handlers == NULL);
event_handlers =
- hash_initialize (64, NULL, entry_hash, entry_compare, entry_free);
+ hash_initialize (64, NULL, entry_hash, entry_compare, entry_free);
}
void
@@ -92,13 +94,9 @@ free_event_handlers (void)
}
static void
-do_event_handler (guestfs_h *g,
- void *opaque,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+do_event_handler (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array, size_t array_len)
{
pid_t pid;
CLEANUP_FREE const char **argv = NULL;
@@ -119,7 +117,7 @@ do_event_handler (guestfs_h *g,
return;
}
- if (pid == 0) { /* Child process. */
+ if (pid == 0) { /* Child process. */
char *str;
shell = getenv ("SHELL");
@@ -153,7 +151,7 @@ do_event_handler (guestfs_h *g,
argv[i++] = NULL;
- execvp (argv[0], (void *) argv);
+ execvp (argv[0], (void *)argv);
perror (argv[0]);
_exit (EXIT_FAILURE);
@@ -170,8 +168,8 @@ run_event (const char *cmd, size_t argc, char *argv[])
struct entry *entry = NULL, *old_entry;
if (argc != 3) {
- fprintf (stderr,
- _("use 'event <name> <eventset> <script>' to
register an event handler\n"));
+ fprintf (stderr, _("use 'event <name> <eventset>
<script>' to "
+ "register an event handler\n"));
goto error;
}
@@ -197,16 +195,16 @@ run_event (const char *cmd, size_t argc, char *argv[])
goto error;
}
- entry->eh =
- guestfs_set_event_callback (g, do_event_handler,
- entry->event_bitmask, 0, entry);
+ entry->eh = guestfs_set_event_callback (g, do_event_handler,
+ entry->event_bitmask, 0, entry);
if (entry->eh == -1)
goto error;
- r = hash_insert_if_absent (event_handlers, entry, (const void **) &old_entry);
+ r = hash_insert_if_absent (event_handlers, entry,
+ (const void **)&old_entry);
if (r == -1)
goto error;
- if (r == 0) { /* old_entry set to existing entry */
+ if (r == 0) { /* old_entry set to existing entry */
entry->next = old_entry->next;
/* XXX are we allowed to update the old entry? */
old_entry->next = entry;
@@ -214,7 +212,7 @@ run_event (const char *cmd, size_t argc, char *argv[])
return 0;
- error:
+error:
if (entry) {
if (entry->eh >= 0)
guestfs_delete_event_callback (g, entry->eh);
@@ -234,12 +232,13 @@ run_delete_event (const char *cmd, size_t argc, char *argv[])
return -1;
}
- const struct entry key = { .name = argv[0] };
+ const struct entry key = {.name = argv[0] };
struct entry *entry, *p;
entry = hash_delete (event_handlers, &key);
if (!entry) {
- fprintf (stderr, _("delete-event: %s: no such event handler\n"), argv[0]);
+ fprintf (stderr, _("delete-event: %s: no such event handler\n"),
+ argv[0]);
return -1;
}
@@ -288,8 +287,7 @@ int
run_list_events (const char *cmd, size_t argc, char *argv[])
{
if (argc != 0) {
- fprintf (stderr,
- _("use 'list-events' to list event handlers\n"));
+ fprintf (stderr, _("use 'list-events' to list event handlers\n"));
return -1;
}
diff --git a/fish/file-edit.c b/fish/file-edit.c
index 713b741..333b9ae 100644
--- a/fish/file-edit.c
+++ b/fish/file-edit.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -36,9 +37,10 @@
#include "guestfs-internal-frontend.h"
-static int do_download (guestfs_h *g, const char *filename, char **tempfile);
-static int do_upload (guestfs_h *g, const char *filename, const char *tempfile,
- const char *backup_extension);
+static int do_download (guestfs_h *g, const char *filename,
+ char **tempfile);
+static int do_upload (guestfs_h *g, const char *filename,
+ const char *tempfile, const char *backup_extension);
static char *generate_random_name (const char *filename);
static char *generate_backup_name (const char *filename,
const char *backup_extension);
@@ -142,18 +144,17 @@ edit_file_perl (guestfs_h *g, const char *filename, const char
*perl_expr,
setenv ("virt_edit_expr", perl_expr, 1);
/* Call out to a canned Perl script. */
- if (asprintf (&cmd,
- "perl -e '"
- "$lineno = 0; "
- "$expr = $ENV{virt_edit_expr}; "
- "while (<STDIN>) { "
- " $lineno++; "
- " eval $expr; "
- " die if $@; "
- " print STDOUT $_ or die \"print: $!\"; "
- "} "
- "close STDOUT or die \"close: $!\"; "
- "' < %s > %s",
+ if (asprintf (&cmd, "perl -e '"
+ "$lineno = 0; "
+ "$expr = $ENV{virt_edit_expr}; "
+ "while (<STDIN>) { "
+ " $lineno++; "
+ " eval $expr; "
+ " die if $@; "
+ " print STDOUT $_ or die \"print: $!\"; "
+ "} "
+ "close STDOUT or die \"close: $!\"; "
+ "' < %s > %s",
tmpfilename, outfile) == -1) {
perror ("asprintf");
return -1;
@@ -252,7 +253,7 @@ do_upload (guestfs_h *g, const char *fn, const char *tempfile,
* file to match the old file (RHBZ#788641).
*/
if (guestfs_copy_attributes (g, filename, newname,
- GUESTFS_COPY_ATTRIBUTES_ALL, 1, -1) == -1)
+ GUESTFS_COPY_ATTRIBUTES_ALL, 1, -1) == -1)
return -1;
/* Backup or overwrite the file. */
@@ -275,7 +276,8 @@ do_upload (guestfs_h *g, const char *fn, const char *tempfile,
static char
random_char (void)
{
- const char c[] =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+ const char c[] =
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
return c[random () % (sizeof c - 1)];
}
diff --git a/fish/file-edit.h b/fish/file-edit.h
index cd92e5a..8ed18f5 100644
--- a/fish/file-edit.h
+++ b/fish/file-edit.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#ifndef FISH_FILE_EDIT_H
@@ -33,8 +34,8 @@
* the file (e.g. the user closed the editor without saving).
*/
extern int edit_file_editor (guestfs_h *g, const char *filename,
- const char *editor, const char *backup_extension,
- int verbose);
+ const char *editor,
+ const char *backup_extension, int verbose);
/**
* Edit 'filename' running the specified 'perl_expr' using Perl.
diff --git a/fish/fish.c b/fish/fish.c
index bfb4f82..4bc78d0 100644
--- a/fish/fish.c
+++ b/fish/fish.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -50,7 +51,8 @@
#include "ignore-value.h"
/* Return from parse_command_line. See description below. */
-struct parsed_command {
+struct parsed_command
+{
int status;
char *pipe;
char *cmd;
@@ -64,7 +66,8 @@ static void interactive (void);
static void shell_script (void);
static void script (int prompt);
static void cmdline (char *argv[], size_t optind, size_t argc);
-static struct parsed_command parse_command_line (char *buf, int *exit_on_error_rtn);
+static struct parsed_command parse_command_line (char *buf,
+ int *exit_on_error_rtn);
static ssize_t parse_quoted_string (char *p);
static int execute_and_inline (const char *cmd, int exit_on_error);
static void error_cb (guestfs_h *g, void *data, const char *msg);
@@ -99,63 +102,67 @@ int is_interactive = 0;
const char *input_file = NULL;
int input_lineno = 0;
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: guest filesystem shell\n"
- "%s lets you edit virtual machine filesystems\n"
- "Copyright (C) 2009-2016 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options] cmd [: cmd : cmd ...]\n"
- "Options:\n"
- " -h|--cmd-help List available commands\n"
- " -h|--cmd-help cmd Display detailed help on
'cmd'\n"
- " -a|--add image Add image\n"
- " -c|--connect uri Specify libvirt URI for -d option\n"
- " --csh Make --listen csh-compatible\n"
- " -d|--domain guest Add disks from libvirt guest\n"
- " --echo-keys Don't turn off echo for
passphrases\n"
- " -f|--file file Read commands from file\n"
- " --format[=raw|..] Force disk format for -a option\n"
- " -i|--inspector Automatically mount filesystems\n"
- " --keys-from-stdin Read passphrases from stdin\n"
- " --listen Listen for remote commands\n"
- " --live Connect to a live virtual machine\n"
- " -m|--mount dev[:mnt[:opts[:fstype]]]\n"
- " Mount dev on mnt (if omitted, /)\n"
- " --network Enable network\n"
- " -N|--new [filename=]type\n"
- " Create prepared disk (test<N>.img or
filename)\n"
- " -n|--no-sync Don't autosync\n"
- " --no-dest-paths Don't tab-complete paths from guest
fs\n"
- " --pipe-error Pipe commands can detect write errors\n"
- " --progress-bars Enable progress bars even when not
interactive\n"
- " --no-progress-bars Disable progress bars\n"
- " --remote[=pid] Send commands to remote %s\n"
- " -r|--ro Mount read-only\n"
- " --selinux Enable SELinux support\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- " -w|--rw Mount read-write\n"
- " -x Echo each command before executing it\n"
- "\n"
- "To examine a disk image, ISO, hard disk, filesystem etc:\n"
- " %s [--ro|--rw] -i -a /path/to/disk.img\n"
- "or\n"
- " %s [--ro|--rw] -i -d name-of-libvirt-domain\n"
- "\n"
- "--ro recommended to avoid any writes to the disk image. If -i option
fails\n"
- "run again without -i and use 'run' +
'list-filesystems' + 'mount' cmds.\n"
- "\n"
- "For more information, see the manpage %s(1).\n"),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name);
+ printf (
+ _("%s: guest filesystem shell\n"
+ "%s lets you edit virtual machine filesystems\n"
+ "Copyright (C) 2009-2016 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options] cmd [: cmd : cmd ...]\n"
+ "Options:\n"
+ " -h|--cmd-help List available commands\n"
+ " -h|--cmd-help cmd Display detailed help on 'cmd'\n"
+ " -a|--add image Add image\n"
+ " -c|--connect uri Specify libvirt URI for -d option\n"
+ " --csh Make --listen csh-compatible\n"
+ " -d|--domain guest Add disks from libvirt guest\n"
+ " --echo-keys Don't turn off echo for passphrases\n"
+ " -f|--file file Read commands from file\n"
+ " --format[=raw|..] Force disk format for -a option\n"
+ " -i|--inspector Automatically mount filesystems\n"
+ " --keys-from-stdin Read passphrases from stdin\n"
+ " --listen Listen for remote commands\n"
+ " --live Connect to a live virtual machine\n"
+ " -m|--mount dev[:mnt[:opts[:fstype]]]\n"
+ " Mount dev on mnt (if omitted, /)\n"
+ " --network Enable network\n"
+ " -N|--new [filename=]type\n"
+ " Create prepared disk (test<N>.img or "
+ "filename)\n"
+ " -n|--no-sync Don't autosync\n"
+ " --no-dest-paths Don't tab-complete paths from guest
fs\n"
+ " --pipe-error Pipe commands can detect write errors\n"
+ " --progress-bars Enable progress bars even when not "
+ "interactive\n"
+ " --no-progress-bars Disable progress bars\n"
+ " --remote[=pid] Send commands to remote %s\n"
+ " -r|--ro Mount read-only\n"
+ " --selinux Enable SELinux support\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ " -w|--rw Mount read-write\n"
+ " -x Echo each command before executing it\n"
+ "\n"
+ "To examine a disk image, ISO, hard disk, filesystem etc:\n"
+ " %s [--ro|--rw] -i -a /path/to/disk.img\n"
+ "or\n"
+ " %s [--ro|--rw] -i -d name-of-libvirt-domain\n"
+ "\n"
+ "--ro recommended to avoid any writes to the disk image. If -i "
+ "option fails\n"
+ "run again without -i and use 'run' + 'list-filesystems' +
"
+ "'mount' cmds.\n"
+ "\n"
+ "For more information, see the manpage %s(1).\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name);
}
exit (status);
}
@@ -239,10 +246,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -264,11 +272,13 @@ main (int argc, char *argv[])
} else if (STREQ (long_options[option_index].name, "selinux")) {
if (guestfs_set_selinux (g, 1) == -1)
exit (EXIT_FAILURE);
- } else if (STREQ (long_options[option_index].name, "keys-from-stdin")) {
+ } else if (STREQ (long_options[option_index].name,
+ "keys-from-stdin")) {
keys_from_stdin = 1;
} else if (STREQ (long_options[option_index].name, "progress-bars")) {
override_progress_bars = 1;
- } else if (STREQ (long_options[option_index].name, "no-progress-bars"))
{
+ } else if (STREQ (long_options[option_index].name,
+ "no-progress-bars")) {
override_progress_bars = 0;
} else if (STREQ (long_options[option_index].name, "echo-keys")) {
echo_keys = 1;
@@ -286,8 +296,7 @@ main (int argc, char *argv[])
} else if (STREQ (long_options[option_index].name, "no-dest-paths")) {
complete_dest_paths = 0;
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -304,7 +313,8 @@ main (int argc, char *argv[])
break;
case 'D':
- fprintf (stderr, _("%s: warning: -D option is deprecated, use --no-dest-paths
instead\n"),
+ fprintf (stderr, _("%s: warning: -D option is deprecated, use "
+ "--no-dest-paths instead\n"),
guestfs_int_program_name);
complete_dest_paths = 0;
break;
@@ -343,10 +353,8 @@ main (int argc, char *argv[])
case 'N': {
char *p;
- if (STRCASEEQ (optarg, "list") ||
- STRCASEEQ (optarg, "help") ||
- STRCASEEQ (optarg, "h") ||
- STRCASEEQ (optarg, "?")) {
+ if (STRCASEEQ (optarg, "list") || STRCASEEQ (optarg, "help")
||
+ STRCASEEQ (optarg, "h") || STRCASEEQ (optarg, "?")) {
list_prepared_drives ();
exit (EXIT_SUCCESS);
}
@@ -358,7 +366,7 @@ main (int argc, char *argv[])
p = strchr (optarg, '=');
if (p != NULL) {
*p = '\0';
- p = p+1;
+ p = p + 1;
drv->N.filename = strdup (optarg);
if (drv->N.filename == NULL)
error (EXIT_FAILURE, errno, "strdup");
@@ -441,7 +449,7 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, errno, "strdup");
drv->next = drvs;
drvs = drv;
- } else { /* simulate -d option */
+ } else { /* simulate -d option */
drv = calloc (1, sizeof (struct drv));
if (!drv)
error (EXIT_FAILURE, errno, "calloc");
@@ -477,7 +485,8 @@ main (int argc, char *argv[])
exit (EXIT_FAILURE);
}
- if (launch () == -1) exit (EXIT_FAILURE);
+ if (launch () == -1)
+ exit (EXIT_FAILURE);
if (inspector)
inspect_mount ();
@@ -509,7 +518,7 @@ main (int argc, char *argv[])
/* -f (file) parameter? */
if (file) {
close (0);
- if (open (file, O_RDONLY|O_CLOEXEC) == -1)
+ if (open (file, O_RDONLY | O_CLOEXEC) == -1)
error (EXIT_FAILURE, errno, "open: %s", file);
}
@@ -526,10 +535,9 @@ main (int argc, char *argv[])
input_lineno = 0;
/* Decide if we display progress bars. */
- progress_bars =
- override_progress_bars >= 0
- ? override_progress_bars
- : (optind >= argc && is_interactive);
+ progress_bars = override_progress_bars >= 0
+ ? override_progress_bars
+ : (optind >= argc && is_interactive);
if (progress_bars) {
bar = progress_bar_init (0);
@@ -546,8 +554,7 @@ main (int argc, char *argv[])
interactive ();
else
shell_script ();
- }
- else
+ } else
cmdline (argv, optind, argc);
if (guestfs_shutdown (g) == -1)
@@ -555,7 +562,7 @@ main (int argc, char *argv[])
guestfs_close (g);
- out_after_handle_close:
+out_after_handle_close:
cleanup_readline ();
if (progress_bars)
@@ -612,7 +619,7 @@ static char *ps1 = NULL; /* GUESTFISH_PS1 */
static char *ps_output = NULL; /* GUESTFISH_OUTPUT */
static char *ps_init = NULL; /* GUESTFISH_INIT */
static char *ps_restore = NULL; /* GUESTFISH_RESTORE */
-#endif /* HAVE_LIBREADLINE */
+#endif /* HAVE_LIBREADLINE */
static char *line_read = NULL;
static char *
@@ -630,7 +637,7 @@ rl_gets (int prompt)
p = ps1 ? decode_ps1 (ps1) : NULL;
line_read = readline (ps1 ? p : FISH);
- if (ps_output) { /* GUESTFISH_OUTPUT */
+ if (ps_output) { /* GUESTFISH_OUTPUT */
CLEANUP_FREE char *po = decode_ps1 (ps_output);
printf ("%s", po);
}
@@ -646,12 +653,14 @@ rl_gets (int prompt)
static char buf[8192];
size_t len;
- if (prompt) printf (FISH);
+ if (prompt)
+ printf (FISH);
line_read = fgets (buf, sizeof buf, stdin);
if (line_read) {
len = strlen (line_read);
- if (len > 0 && buf[len-1] == '\n') buf[len-1] = '\0';
+ if (len > 0 && buf[len - 1] == '\n')
+ buf[len - 1] = '\0';
}
return line_read;
@@ -667,7 +676,7 @@ script (int prompt)
if (prompt) {
#ifdef HAVE_LIBREADLINE
- if (ps_init) { /* GUESTFISH_INIT */
+ if (ps_init) { /* GUESTFISH_INIT */
CLEANUP_FREE char *pi = decode_ps1 (ps_init);
printf ("%s", pi);
}
@@ -703,8 +712,10 @@ script (int prompt)
if (pcmd.status == -1 && exit_on_error)
exit (EXIT_FAILURE);
if (pcmd.status == 1) {
- if (issue_command (pcmd.cmd, pcmd.argv, pcmd.pipe, exit_on_error) == -1) {
- if (exit_on_error) exit (EXIT_FAILURE);
+ if (issue_command (pcmd.cmd, pcmd.argv, pcmd.pipe, exit_on_error) ==
+ -1) {
+ if (exit_on_error)
+ exit (EXIT_FAILURE);
}
}
}
@@ -712,7 +723,7 @@ script (int prompt)
#ifdef HAVE_LIBREADLINE
if (prompt) {
printf ("\n");
- if (ps_restore) { /* GUESTFISH_RESTORE */
+ if (ps_restore) { /* GUESTFISH_RESTORE */
CLEANUP_FREE char *pr = decode_ps1 (ps_restore);
printf ("%s", pr);
}
@@ -747,7 +758,7 @@ parse_command_line (char *buf, int *exit_on_error_rtn)
*/
memset (&pcmd, 0, sizeof pcmd);
- again:
+again:
/* Skip any initial whitespace before the command. */
while (*buf && c_isspace (*buf))
buf++;
@@ -765,10 +776,9 @@ parse_command_line (char *buf, int *exit_on_error_rtn)
/* If the next character is '!' then pass the whole lot to system(3). */
if (*buf == '!') {
- r = system (buf+1);
- if (r == -1 ||
- (WIFSIGNALED (r) &&
- (WTERMSIG (r) == SIGINT || WTERMSIG (r) == SIGQUIT)) ||
+ r = system (buf + 1);
+ if (r == -1 || (WIFSIGNALED (r) &&
+ (WTERMSIG (r) == SIGINT || WTERMSIG (r) == SIGQUIT)) ||
WEXITSTATUS (r) != 0)
pcmd.status = -1;
else
@@ -814,7 +824,7 @@ parse_command_line (char *buf, int *exit_on_error_rtn)
}
buf[len] = '\0';
- p = &buf[len+1];
+ p = &buf[len + 1];
p += strspn (p, " \t");
/* Get the parameters. */
@@ -831,23 +841,24 @@ parse_command_line (char *buf, int *exit_on_error_rtn)
pcmd.status = -1;
return pcmd;
}
- if (p[len+1] && (p[len+1] != ' ' && p[len+1] !=
'\t')) {
+ if (p[len + 1] && (p[len + 1] != ' ' && p[len + 1] !=
'\t')) {
fprintf (stderr,
_("%s: command arguments not separated by whitespace\n"),
guestfs_int_program_name);
pcmd.status = -1;
return pcmd;
}
- pend = p[len+1] ? &p[len+2] : &p[len+1];
+ pend = p[len + 1] ? &p[len + 2] : &p[len + 1];
} else if (*p == '\'') {
p++;
len = strcspn (p, "'");
if (p[len] == '\0') {
- fprintf (stderr, _("%s: unterminated single quote\n"),
guestfs_int_program_name);
+ fprintf (stderr, _("%s: unterminated single quote\n"),
+ guestfs_int_program_name);
pcmd.status = -1;
return pcmd;
}
- if (p[len+1] && (p[len+1] != ' ' && p[len+1] !=
'\t')) {
+ if (p[len + 1] && (p[len + 1] != ' ' && p[len + 1] !=
'\t')) {
fprintf (stderr,
_("%s: command arguments not separated by whitespace\n"),
guestfs_int_program_name);
@@ -855,10 +866,10 @@ parse_command_line (char *buf, int *exit_on_error_rtn)
return pcmd;
}
p[len] = '\0';
- pend = p[len+1] ? &p[len+2] : &p[len+1];
+ pend = p[len + 1] ? &p[len + 2] : &p[len + 1];
} else if (*p == '|') {
*p = '\0';
- pcmd.pipe = p+1;
+ pcmd.pipe = p + 1;
continue;
} else if (*p != ' ' && *p != '\t') {
/* If the first character is a ~ then note that this parameter
@@ -869,7 +880,7 @@ parse_command_line (char *buf, int *exit_on_error_rtn)
len = strcspn (p, " \t");
if (p[len]) {
p[len] = '\0';
- pend = &p[len+1];
+ pend = &p[len + 1];
} else
pend = &p[len];
} else {
@@ -890,7 +901,8 @@ parse_command_line (char *buf, int *exit_on_error_rtn)
}
if (i == argv_len) {
- fprintf (stderr, _("%s: too many arguments\n"), guestfs_int_program_name);
+ fprintf (stderr, _("%s: too many arguments\n"),
+ guestfs_int_program_name);
pcmd.status = -1;
return pcmd;
}
@@ -905,10 +917,14 @@ static int
hexdigit (char d)
{
switch (d) {
- case '0'...'9': return d - '0';
- case 'a'...'f': return d - 'a' + 10;
- case 'A'...'F': return d - 'A' + 10;
- default: return -1;
+ case '0' ... '9':
+ return d - '0';
+ case 'a' ... 'f':
+ return d - 'a' + 10;
+ case 'A' ... 'F':
+ return d - 'A' + 10;
+ default:
+ return -1;
}
}
@@ -926,55 +942,75 @@ parse_quoted_string (char *p)
int m = 1, c;
switch (p[1]) {
- case '\\': break;
- case 'a': *p = '\a'; break;
- case 'b': *p = '\b'; break;
- case 'f': *p = '\f'; break;
- case 'n': *p = '\n'; break;
- case 'r': *p = '\r'; break;
- case 't': *p = '\t'; break;
- case 'v': *p = '\v'; break;
- case '"': *p = '"'; break;
- case '\'': *p = '\''; break;
- case '?': *p = '?'; break;
+ case '\\':
+ break;
+ case 'a':
+ *p = '\a';
+ break;
+ case 'b':
+ *p = '\b';
+ break;
+ case 'f':
+ *p = '\f';
+ break;
+ case 'n':
+ *p = '\n';
+ break;
+ case 'r':
+ *p = '\r';
+ break;
+ case 't':
+ *p = '\t';
+ break;
+ case 'v':
+ *p = '\v';
+ break;
+ case '"':
+ *p = '"';
+ break;
+ case '\'':
+ *p = '\'';
+ break;
+ case '?':
+ *p = '?';
+ break;
- case '0'...'7': /* octal escape - always 3 digits */
+ case '0' ... '7': /* octal escape - always 3 digits */
m = 3;
- if (p[2] >= '0' && p[2] <= '7' &&
- p[3] >= '0' && p[3] <= '7') {
+ if (p[2] >= '0' && p[2] <= '7' && p[3]
>= '0' && p[3] <= '7') {
c = (p[1] - '0') * 0100 + (p[2] - '0') * 010 + (p[3] -
'0');
if (c < 1 || c > 255)
goto error;
*p = c;
- }
- else
+ } else
goto error;
break;
- case 'x': /* hex escape - always 2 digits */
+ case 'x': /* hex escape - always 2 digits */
m = 3;
if (c_isxdigit (p[2]) && c_isxdigit (p[3])) {
c = hexdigit (p[2]) * 0x10 + hexdigit (p[3]);
if (c < 1 || c > 255)
goto error;
*p = c;
- }
- else
+ } else
goto error;
break;
default:
error:
- fprintf (stderr, _("%s: invalid escape sequence in string (starting at
offset %d)\n"),
- guestfs_int_program_name, (int) (p - start));
+ fprintf (stderr, _("%s: invalid escape sequence in string "
+ "(starting at offset %d)\n"),
+ guestfs_int_program_name, (int)(p - start));
return -1;
}
- memmove (p+1, p+1+m, strlen (p+1+m) + 1);
+ memmove (p + 1, p + 1 + m, strlen (p + 1 + m) + 1);
}
}
if (!*p) {
- fprintf (stderr, _("%s: unterminated double quote\n"),
guestfs_int_program_name);
+ fprintf (stderr, _("%s: unterminated double quote\n"),
+ guestfs_int_program_name);
return -1;
}
@@ -1003,15 +1039,17 @@ execute_and_inline (const char *cmd, int global_exit_on_error)
exit_on_error = global_exit_on_error;
/* Chomp final line ending which parse_command_line would not expect. */
- if (n > 0 && line[n-1] == '\n')
- line[n-1] = '\0';
+ if (n > 0 && line[n - 1] == '\n')
+ line[n - 1] = '\0';
pcmd = parse_command_line (line, &exit_on_error);
if (pcmd.status == -1 && exit_on_error)
exit (EXIT_FAILURE);
if (pcmd.status == 1) {
- if (issue_command (pcmd.cmd, pcmd.argv, pcmd.pipe, exit_on_error) == -1) {
- if (exit_on_error) exit (EXIT_FAILURE);
+ if (issue_command (pcmd.cmd, pcmd.argv, pcmd.pipe, exit_on_error) ==
+ -1) {
+ if (exit_on_error)
+ exit (EXIT_FAILURE);
}
}
}
@@ -1033,7 +1071,8 @@ cmdline (char *argv[], size_t optind, size_t argc)
exit_on_error = 1;
- if (optind >= argc) return;
+ if (optind >= argc)
+ return;
cmd = argv[optind++];
if (STREQ (cmd, ":"))
@@ -1054,13 +1093,15 @@ cmdline (char *argv[], size_t optind, size_t argc)
optind++;
if (optind == argc) {
- if (issue_command (cmd, params, NULL, exit_on_error) == -1 && exit_on_error)
+ if (issue_command (cmd, params, NULL, exit_on_error) == -1 &&
+ exit_on_error)
exit (EXIT_FAILURE);
} else {
argv[optind] = NULL;
- if (issue_command (cmd, params, NULL, exit_on_error) == -1 && exit_on_error)
+ if (issue_command (cmd, params, NULL, exit_on_error) == -1 &&
+ exit_on_error)
exit (EXIT_FAILURE);
- cmdline (argv, optind+1, argc);
+ cmdline (argv, optind + 1, argc);
}
}
@@ -1101,7 +1142,7 @@ issue_command (const char *cmd, char *argv[], const char *pipecmd,
return -1;
}
- if (pid == 0) { /* Child process. */
+ if (pid == 0) { /* Child process. */
close (fd[1]);
if (dup2 (fd[0], 0) < 0) {
perror ("dup2 of stdin failed");
@@ -1143,14 +1184,11 @@ issue_command (const char *cmd, char *argv[], const char
*pipecmd,
r = 0;
} else
r = display_command (argv[0]);
- }
- else if (STRCASEEQ (cmd, "quit") ||
- STRCASEEQ (cmd, "exit") ||
- STRCASEEQ (cmd, "q")) {
+ } else if (STRCASEEQ (cmd, "quit") || STRCASEEQ (cmd, "exit") ||
+ STRCASEEQ (cmd, "q")) {
quit = 1;
r = 0;
- }
- else
+ } else
r = run_action (cmd, argc, argv);
/* Always flush stdout after every command, so that messages, results
@@ -1192,10 +1230,9 @@ void
list_builtin_commands (void)
{
/* help and quit should appear at the top */
- printf ("%-20s %s\n",
- "help", _("display a list of commands or help on a
command"));
- printf ("%-20s %s\n",
- "quit", _("quit guestfish"));
+ printf ("%-20s %s\n", "help",
+ _("display a list of commands or help on a command"));
+ printf ("%-20s %s\n", "quit", _("quit guestfish"));
/* actions are printed after this (see list_commands) */
}
@@ -1210,16 +1247,14 @@ display_builtin_command (const char *cmd)
" help cmd\n"
" help\n"));
return 0;
- }
- else if (STRCASEEQ (cmd, "quit") ||
- STRCASEEQ (cmd, "exit") ||
- STRCASEEQ (cmd, "q")) {
+ } else if (STRCASEEQ (cmd, "quit") || STRCASEEQ (cmd, "exit") ||
+ STRCASEEQ (cmd, "q")) {
printf (_("quit - quit guestfish\n"
" quit\n"));
return 0;
- }
- else {
- fprintf (stderr, _("%s: command not known, use -h to list all
commands\n"),
+ } else {
+ fprintf (stderr,
+ _("%s: command not known, use -h to list all commands\n"),
cmd);
return -1;
}
@@ -1244,8 +1279,8 @@ extended_help_message (void)
static void
error_cb (guestfs_h *g, void *data, const char *msg)
{
- fprintf (stderr, _("%s:%d: libguestfs: error: %s\n"),
- input_file, input_lineno, msg);
+ fprintf (stderr, _("%s:%d: libguestfs: error: %s\n"), input_file,
+ input_lineno, msg);
}
void
@@ -1263,7 +1298,7 @@ print_table (char *const *argv)
size_t i;
for (i = 0; argv[i] != NULL; i += 2)
- printf ("%s: %s\n", argv[i], argv[i+1]);
+ printf ("%s: %s\n", argv[i], argv[i + 1]);
}
/* Free strings from a non-NULL terminated char** */
@@ -1294,7 +1329,8 @@ parse_string_list (const char *str)
* or contain embedded single-quoted sections:
* This' is a sing'l'e to'ken
*
- * The latter may seem over-complicated, but it's what a normal shell does.
+ * The latter may seem over-complicated, but it's what a normal shell
+ * does.
* Not doing it risks surprising somebody.
*
* This outer loop is over complete tokens.
@@ -1308,9 +1344,12 @@ parse_string_list (const char *str)
char in_quote = 0;
- /* This loop is over token 'fragments'. A token can be in multiple bits if
- * it contains single quotes. We also treat both sides of an escaped quote
- * as separate fragments because we can't just copy it: we have to remove
+ /* This loop is over token 'fragments'. A token can be in multiple bits
+ * if
+ * it contains single quotes. We also treat both sides of an escaped
+ * quote
+ * as separate fragments because we can't just copy it: we have to
+ * remove
* the \.
*/
while (*p && (!c_isblank (*p) || in_quote)) {
@@ -1322,7 +1361,8 @@ parse_string_list (const char *str)
in_quote = !in_quote;
/* Skip the quote */
- p++; end++;
+ p++;
+ end++;
}
/* If we're in a quote, look for an end quote */
@@ -1348,12 +1388,12 @@ parse_string_list (const char *str)
tok = tok_new;
/* Check if we stopped on an escaped quote */
- if ('\'' == *end && end != p && *(end-1) ==
'\\') {
+ if ('\'' == *end && end != p && *(end - 1) ==
'\\') {
/* Add everything before \' to the token */
memcpy (&tok[tok_end], p, end - p - 1);
/* Add the quote */
- tok[tok_len-1] = '\'';
+ tok[tok_len - 1] = '\'';
/* Already processed the quote */
p = end + 1;
@@ -1386,13 +1426,13 @@ parse_string_list (const char *str)
char **argv_new = realloc (argv, sizeof (*argv) * argv_len);
if (NULL == argv_new) {
perror ("realloc");
- free_n_strings (argv, argv_len-1);
+ free_n_strings (argv, argv_len - 1);
free (tok);
exit (EXIT_FAILURE);
}
argv = argv_new;
- argv[argv_len-1] = tok;
+ argv[argv_len - 1] = tok;
}
}
@@ -1401,12 +1441,12 @@ parse_string_list (const char *str)
char **argv_new = realloc (argv, sizeof (*argv) * argv_len);
if (NULL == argv_new) {
perror ("realloc");
- free_n_strings (argv, argv_len-1);
+ free_n_strings (argv, argv_len - 1);
exit (EXIT_FAILURE);
}
argv = argv_new;
- argv[argv_len-1] = NULL;
+ argv[argv_len - 1] = NULL;
return argv;
}
@@ -1430,14 +1470,14 @@ initialize_readline (void)
* provide default values which can be overridden by the user if
* they wish.
*/
- (void) rl_variable_bind ("completion-ignore-case", "on");
+ (void)rl_variable_bind ("completion-ignore-case", "on");
/* Set up the history file. */
str = getenv ("HOME");
if (str) {
snprintf (histfile, sizeof histfile, "%s/.guestfish", str);
using_history ();
- (void) read_history (histfile);
+ (void)read_history (histfile);
}
/* Set up the prompt. */
@@ -1474,7 +1514,7 @@ cleanup_readline (void)
int fd;
if (histfile[0] != '\0') {
- fd = open (histfile, O_WRONLY|O_CREAT|O_NOCTTY|O_CLOEXEC, 0600);
+ fd = open (histfile, O_WRONLY | O_CREAT | O_NOCTTY | O_CLOEXEC, 0600);
if (fd == -1) {
perror (histfile);
return;
@@ -1482,9 +1522,9 @@ cleanup_readline (void)
close (fd);
#ifdef HAVE_APPEND_HISTORY
- (void) append_history (nr_history_lines, histfile);
+ (void)append_history (nr_history_lines, histfile);
#else
- (void) write_history (histfile);
+ (void)write_history (histfile);
#endif
clear_history ();
}
@@ -1519,8 +1559,8 @@ decode_ps1 (const char *str)
error (EXIT_FAILURE, errno, "malloc");
for (i = j = 0; i < len; ++i) {
- if (str[i] == '\\') { /* Start of an escape sequence. */
- if (i < len-1)
+ if (str[i] == '\\') { /* Start of an escape sequence. */
+ if (i < len - 1)
i++;
switch (str[i]) {
case '\\':
@@ -1544,7 +1584,7 @@ decode_ps1 (const char *str)
case 'r':
ret[j++] = '\r';
break;
- case '0'...'7':
+ case '0' ... '7':
ret[j++] = decode_ps1_octal (str, &i);
i--;
break;
@@ -1556,13 +1596,12 @@ decode_ps1 (const char *str)
default:
ret[j++] = '?';
}
- }
- else
+ } else
ret[j++] = str[i];
}
ret[j] = '\0';
- return ret; /* caller frees */
+ return ret; /* caller frees */
}
static int
@@ -1599,7 +1638,7 @@ decode_ps1_hex (const char *s, size_t *i)
lim--;
}
- if (lim == 2) /* \x not followed by any hex digits */
+ if (lim == 2) /* \x not followed by any hex digits */
return '?';
return ret;
@@ -1639,7 +1678,8 @@ win_prefix (const char *path)
char *ret;
size_t i;
- /* If there is not a "win:..." prefix on the path, return strdup'd
string. */
+ /* If there is not a "win:..." prefix on the path, return strdup'd
string.
+ */
if (STRCASENEQLEN (path, "win:", 4)) {
ret = strdup (path);
if (ret == NULL)
@@ -1656,15 +1696,13 @@ win_prefix (const char *path)
ret = win_prefix_drive_letter (drive_letter, path + 2);
if (ret == NULL)
return NULL;
- }
- else if (!*path) {
+ } else if (!*path) {
ret = strdup ("/");
if (ret == NULL) {
perror ("strdup");
return NULL;
}
- }
- else {
+ } else {
ret = strdup (path);
if (ret == NULL) {
perror ("strdup");
@@ -1698,13 +1736,16 @@ win_prefix_drive_letter (char drive_letter, const char *path)
if (roots == NULL)
return NULL;
if (roots[0] == NULL) {
- fprintf (stderr, _("%s: to use Windows drive letters, you must inspect the guest
(\"-i\" option or run \"inspect-os\" command)\n"),
+ fprintf (stderr,
+ _("%s: to use Windows drive letters, you must inspect the "
+ "guest (\"-i\" option or run \"inspect-os\"
command)\n"),
guestfs_int_program_name);
return NULL;
}
drives = guestfs_inspect_get_drive_mappings (g, roots[0]);
if (drives == NULL || drives[0] == NULL) {
- fprintf (stderr, _("%s: to use Windows drive letters, this must be a Windows
guest\n"),
+ fprintf (stderr, _("%s: to use Windows drive letters, this must be a "
+ "Windows guest\n"),
guestfs_int_program_name);
return NULL;
}
@@ -1712,13 +1753,14 @@ win_prefix_drive_letter (char drive_letter, const char *path)
device = NULL;
for (i = 0; drives[i] != NULL; i += 2) {
if (c_tolower (drives[i][0]) == drive_letter && drives[i][1] == '\0')
{
- device = drives[i+1];
+ device = drives[i + 1];
break;
}
}
if (device == NULL) {
- fprintf (stderr, _("%s: drive '%c:' not found. To list available drives
do:\n inspect-get-drive-mappings %s\n"),
+ fprintf (stderr, _("%s: drive '%c:' not found. To list available
"
+ "drives do:\n inspect-get-drive-mappings %s\n"),
guestfs_int_program_name, drive_letter, roots[0]);
return NULL;
}
@@ -1731,20 +1773,21 @@ win_prefix_drive_letter (char drive_letter, const char *path)
mountpoint = NULL;
for (i = 0; mountpoints[i] != NULL; i += 2) {
if (STREQ (mountpoints[i], device)) {
- mountpoint = mountpoints[i+1];
+ mountpoint = mountpoints[i + 1];
break;
}
}
if (mountpoint == NULL) {
- fprintf (stderr, _("%s: to access '%c:', mount %s first. One way to do
this is:\n umount-all\n mount %s /\n"),
+ fprintf (stderr, _("%s: to access '%c:', mount %s first. One way to
"
+ "do this is:\n umount-all\n mount %s /\n"),
guestfs_int_program_name, drive_letter, device, device);
return NULL;
}
/* Rewrite the path, eg. if C: => /c then C:/foo => /c/foo */
- if (asprintf (&ret, "%s%s%s",
- mountpoint, STRNEQ (mountpoint, "/") ? "/" :
"", path) == -1) {
+ if (asprintf (&ret, "%s%s%s", mountpoint,
+ STRNEQ (mountpoint, "/") ? "/" : "", path)
== -1) {
perror ("asprintf");
return NULL;
}
@@ -1770,8 +1813,7 @@ file_in (const char *arg)
perror ("strdup");
return NULL;
}
- }
- else if (STRPREFIX (arg, "-<<")) {
+ } else if (STRPREFIX (arg, "-<<")) {
const char *endmarker = &arg[3];
if (*endmarker == '\0') {
fprintf (stderr, "%s: missing end marker in -<< expression\n",
@@ -1781,8 +1823,7 @@ file_in (const char *arg)
ret = file_in_heredoc (endmarker);
if (ret == NULL)
return NULL;
- }
- else {
+ } else {
ret = strdup (arg);
if (!ret) {
perror ("strdup");
@@ -1832,11 +1873,12 @@ file_in_heredoc (const char *endmarker)
size_t blen = strlen (buffer);
if (STREQLEN (buffer, endmarker, markerlen) &&
(blen == markerlen ||
- (blen == markerlen+1 && buffer[markerlen] == '\n')))
+ (blen == markerlen + 1 && buffer[markerlen] == '\n')))
goto found_end;
if (xwrite (fd, buffer, blen) == -1) {
- if (!write_error) perror ("write");
+ if (!write_error)
+ perror ("write");
write_error = 1;
/* continue reading up to the end marker */
}
@@ -1849,7 +1891,7 @@ file_in_heredoc (const char *endmarker)
guestfs_int_program_name, endmarker);
goto error2;
- found_end:
+found_end:
if (write_error) {
close (fd);
goto error2;
@@ -1862,10 +1904,10 @@ file_in_heredoc (const char *endmarker)
return file_in_tmpfile;
- error2:
+error2:
unlink (file_in_tmpfile);
- error1:
+error1:
free (file_in_tmpfile);
file_in_tmpfile = NULL;
return NULL;
@@ -1909,10 +1951,9 @@ file_out (const char *arg)
/* Callback which displays a progress bar. */
void
-progress_callback (guestfs_h *g, void *data,
- uint64_t event, int event_handle, int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+progress_callback (guestfs_h *g, void *data, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array, size_t array_len)
{
if (array_len < 4)
return;
diff --git a/fish/fish.h b/fish/fish.h
index df22e34..5bb0265 100644
--- a/fish/fish.h
+++ b/fish/fish.h
@@ -36,7 +36,8 @@ extern int remote_control_csh;
extern const char *libvirt_uri;
extern int input_lineno;
-extern int issue_command (const char *cmd, char *argv[], const char *pipe, int
rc_exit_on_error_flag);
+extern int issue_command (const char *cmd, char *argv[], const char *pipe,
+ int rc_exit_on_error_flag);
extern void list_builtin_commands (void);
extern int display_builtin_command (const char *cmd);
extern void print_strings (char *const *argv);
@@ -49,7 +50,10 @@ extern char *file_in (const char *arg);
extern void free_file_in (char *s);
extern char *file_out (const char *arg);
extern void extended_help_message (void);
-extern void progress_callback (guestfs_h *g, void *data, uint64_t event, int
event_handle, int flags, const char *buf, size_t buf_len, const uint64_t *array, size_t
array_len);
+extern void progress_callback (guestfs_h *g, void *data, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len);
/* in cmds.c (auto-generated) */
extern void list_commands (void);
@@ -71,15 +75,16 @@ extern void free_event_handlers (void);
extern int event_bitmask_of_event_set (const char *arg, uint64_t *);
/* in alloc.c */
-extern int alloc_disk (const char *filename, const char *size,
- int add, int sparse);
+extern int alloc_disk (const char *filename, const char *size, int add,
+ int sparse);
extern int parse_size (const char *str, off_t *size_rtn);
/* in help.c */
extern void display_help (void);
/* in prep.c */
-struct prep_data {
+struct prep_data
+{
const struct prep *prep;
const char *orig_type_string;
char **params;
@@ -90,7 +95,9 @@ extern prep_data *create_prepared_file (const char *type_string,
const char *filename);
extern void prepare_drive (const char *filename, prep_data *data,
const char *device);
-extern void prep_error (prep_data *data, const char *filename, const char *fs, ...)
__attribute__((noreturn, format (printf,3,4)));
+extern void prep_error (prep_data *data, const char *filename,
+ const char *fs, ...)
+ __attribute__ ((noreturn, format (printf, 3, 4)));
extern void free_prep_data (void *data);
/* in prep_lv.c */
@@ -107,8 +114,6 @@ extern char *try_tilde_expansion (char *path);
/* This should just list all the built-in commands so they can
* be added to the generated auto-completion code.
*/
-#define BUILTIN_COMMANDS_FOR_COMPLETION \
- "help", \
- "quit", "exit", "q"
+#define BUILTIN_COMMANDS_FOR_COMPLETION "help", "quit",
"exit", "q"
#endif /* FISH_H */
diff --git a/fish/glob.c b/fish/glob.c
index 5bf1ad6..82e964f 100644
--- a/fish/glob.c
+++ b/fish/glob.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -34,10 +35,12 @@
static char **expand_pathname (guestfs_h *g, const char *path);
static char **expand_devicename (guestfs_h *g, const char *device);
-static int add_strings_matching (char **pp, const char *glob, char ***ret, size_t
*size_r);
+static int add_strings_matching (char **pp, const char *glob, char ***ret,
+ size_t *size_r);
static int add_string (const char *str, char ***ret, size_t *size_r);
static char **single_element_list (const char *element);
-static int glob_issue (char *cmd, size_t argc, char ***globs, size_t *posn, size_t
*count, int *r);
+static int glob_issue (char *cmd, size_t argc, char ***globs, size_t *posn,
+ size_t *count, int *r);
int
run_glob (const char *cmd, size_t argc, char *argv[])
@@ -120,8 +123,8 @@ run_glob (const char *cmd, size_t argc, char *argv[])
goto error;
}
- /* Free resources. */
- error:
+/* Free resources. */
+error:
for (i = 1; i < argc; ++i)
if (globs[i])
guestfs_int_free_string_list (globs[i]);
@@ -134,8 +137,9 @@ expand_pathname (guestfs_h *g, const char *path)
char **pp;
pp = guestfs_glob_expand (g, path);
- if (pp == NULL) { /* real error in glob_expand */
- fprintf (stderr, _("glob: guestfs_glob_expand call failed: %s\n"), path);
+ if (pp == NULL) { /* real error in glob_expand */
+ fprintf (stderr, _("glob: guestfs_glob_expand call failed: %s\n"),
+ path);
return NULL;
}
@@ -179,24 +183,32 @@ expand_devicename (guestfs_h *g, const char *device)
const char *lvm2[] = { "lvm2", NULL };
pp = guestfs_list_devices (g);
- if (pp == NULL) goto error;
- if (add_strings_matching (pp, device, &ret, &size) == -1) goto error;
+ if (pp == NULL)
+ goto error;
+ if (add_strings_matching (pp, device, &ret, &size) == -1)
+ goto error;
guestfs_int_free_string_list (pp);
pp = guestfs_list_partitions (g);
- if (pp == NULL) goto error;
- if (add_strings_matching (pp, device, &ret, &size) == -1) goto error;
+ if (pp == NULL)
+ goto error;
+ if (add_strings_matching (pp, device, &ret, &size) == -1)
+ goto error;
guestfs_int_free_string_list (pp);
pp = guestfs_list_md_devices (g);
- if (pp == NULL) goto error;
- if (add_strings_matching (pp, device, &ret, &size) == -1) goto error;
+ if (pp == NULL)
+ goto error;
+ if (add_strings_matching (pp, device, &ret, &size) == -1)
+ goto error;
guestfs_int_free_string_list (pp);
- if (guestfs_feature_available (g, (char **) lvm2)) {
+ if (guestfs_feature_available (g, (char **)lvm2)) {
pp = guestfs_lvs (g);
- if (pp == NULL) goto error;
- if (add_strings_matching (pp, device, &ret, &size) == -1) goto error;
+ if (pp == NULL)
+ goto error;
+ if (add_strings_matching (pp, device, &ret, &size) == -1)
+ goto error;
guestfs_int_free_string_list (pp);
pp = NULL;
}
@@ -206,7 +218,7 @@ expand_devicename (guestfs_h *g, const char *device)
ret = single_element_list (device);
return ret;
- error:
+error:
if (pp)
guestfs_int_free_string_list (pp);
if (ret)
@@ -221,8 +233,8 @@ expand_devicename (guestfs_h *g, const char *device)
* size.
*/
static int
-add_strings_matching (char **pp, const char *glob,
- char ***ret, size_t *size_r)
+add_strings_matching (char **pp, const char *glob, char ***ret,
+ size_t *size_r)
{
size_t i;
int r;
@@ -230,17 +242,16 @@ add_strings_matching (char **pp, const char *glob,
for (i = 0; pp[i] != NULL; ++i) {
errno = 0;
r = fnmatch (glob, pp[i], FNM_PATHNAME);
- if (r == 0) { /* matches - add it */
+ if (r == 0) { /* matches - add it */
if (add_string (pp[i], ret, size_r) == -1)
return -1;
- }
- else if (r != FNM_NOMATCH) { /* error */
+ } else if (r != FNM_NOMATCH) { /* error */
/* I checked the glibc impl and it returns random negative
* numbers for errors. It doesn't always set errno. Do our
* best here to record the error state.
*/
- fprintf (stderr, "glob: fnmatch: error (r = %d, errno = %d)\n",
- r, errno);
+ fprintf (stderr, "glob: fnmatch: error (r = %d, errno = %d)\n", r,
+ errno);
return -1;
}
}
@@ -297,14 +308,13 @@ single_element_list (const char *element)
}
static int
-glob_issue (char *cmd, size_t argc,
- char ***globs, size_t *posn, size_t *count,
- int *r)
+glob_issue (char *cmd, size_t argc, char ***globs, size_t *posn,
+ size_t *count, int *r)
{
size_t i;
CLEANUP_FREE char **argv = NULL;
- argv = malloc (sizeof (char *) * (argc+1));
+ argv = malloc (sizeof (char *) * (argc + 1));
if (argv == NULL) {
perror ("malloc");
return -1;
@@ -313,20 +323,20 @@ glob_issue (char *cmd, size_t argc,
argv[0] = cmd;
argv[argc] = NULL;
- again:
+again:
for (i = 1; i < argc; ++i)
argv[i] = globs[i][posn[i]];
if (issue_command (argv[0], &argv[1], NULL, 0) == -1)
- *r = -1; /* ... but don't exit */
+ *r = -1; /* ... but don't exit */
- for (i = argc-1; i >= 1; --i) {
+ for (i = argc - 1; i >= 1; --i) {
posn[i]++;
if (posn[i] < count[i])
break;
posn[i] = 0;
}
- if (i == 0) /* All done. */
+ if (i == 0) /* All done. */
return 0;
goto again;
diff --git a/fish/help.c b/fish/help.c
index cf00dce..f62949b 100644
--- a/fish/help.c
+++ b/fish/help.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -35,25 +36,23 @@ void
display_help (void)
{
if (guestfs_is_config (g))
- printf (_(
-"Add disk images to examine using the -a or -d options, or the 'add'
command.\n"
-"Or create a new disk image using -N, or the 'alloc' or 'sparse'
commands.\n"
-"Once you have done this, use the 'run' command.\n"
- ));
+ printf (_("Add disk images to examine using the -a or -d options, or "
+ "the 'add' command.\n"
+ "Or create a new disk image using -N, or the 'alloc' or
"
+ "'sparse' commands.\n"
+ "Once you have done this, use the 'run' command.\n"));
else
- printf (_(
-"Find out what filesystems are available using 'list-filesystems' and
then\n"
-"mount them to examine or modify the contents using 'mount-ro' or\n"
-"'mount'.\n"
- ));
+ printf (_ (
+ "Find out what filesystems are available using 'list-filesystems'
"
+ "and then\n"
+ "mount them to examine or modify the contents using 'mount-ro'
or\n"
+ "'mount'.\n"));
printf ("\n");
- printf (_(
-"For more information about a command, use 'help cmd'.\n"
-"\n"
-"To read the manual, type 'man'.\n"
- ));
+ printf (_("For more information about a command, use 'help cmd'.\n"
+ "\n"
+ "To read the manual, type 'man'.\n"));
printf ("\n");
}
diff --git a/fish/hexedit.c b/fish/hexedit.c
index e30352f..d28e92c 100644
--- a/fish/hexedit.c
+++ b/fish/hexedit.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -49,37 +50,36 @@ run_hexedit (const char *cmd, size_t argc, char *argv[])
return -1;
if (size == 0) {
- fprintf (stderr,
- _("hexedit: %s is a zero length file or device\n"), filename);
+ fprintf (stderr, _("hexedit: %s is a zero length file or device\n"),
+ filename);
return -1;
}
off_t start;
off_t max;
- if (argc == 1) { /* hexedit device */
+ if (argc == 1) { /* hexedit device */
/* Check we're not going to download a huge file. */
if (size > MAX_DOWNLOAD_SIZE) {
- fprintf (stderr,
- _("hexedit: %s is larger than %s. You must supply a limit using\n"
- " 'hexedit %s <max>' (eg. 'hexedit %s 1M') or a
range using\n"
- " 'hexedit %s <start> <max>'.\n"),
- filename, MAX_DOWNLOAD_SIZE_TEXT,
- filename, filename,
- filename);
+ fprintf (
+ stderr,
+ _("hexedit: %s is larger than %s. You must supply a limit "
+ "using\n"
+ " 'hexedit %s <max>' (eg. 'hexedit %s 1M') or a
range using\n"
+ " 'hexedit %s <start> <max>'.\n"),
+ filename, MAX_DOWNLOAD_SIZE_TEXT, filename, filename, filename);
return -1;
}
start = 0;
max = size;
- }
- else {
- if (argc == 3) { /* hexedit device start max */
+ } else {
+ if (argc == 3) { /* hexedit device start max */
if (parse_size (argv[1], &start) == -1)
return -1;
if (parse_size (argv[2], &max) == -1)
return -1;
- } else { /* hexedit device max */
+ } else { /* hexedit device max */
start = 0;
if (parse_size (argv[1], &max) == -1)
return -1;
@@ -187,8 +187,7 @@ get_size (const char *filename)
size = guestfs_blockdev_getsize64 (g, filename);
if (size == -1)
return -1;
- }
- else {
+ } else {
size = guestfs_filesize (g, filename);
if (size == -1)
return -1;
@@ -197,5 +196,5 @@ get_size (const char *filename)
/* This case should be safe because we always compile with
* 64 bit file offsets.
*/
- return (off_t) size;
+ return (off_t)size;
}
diff --git a/fish/inspect.c b/fish/inspect.c
index 97e46ae..3d6fdd1 100644
--- a/fish/inspect.c
+++ b/fish/inspect.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -28,7 +29,8 @@
#include "guestfs.h"
-/* These definitions ensure we get all extern definitions from the header. */
+/* These definitions ensure we get all extern definitions from the header.
+ */
#define COMPILING_GUESTFISH 1
#define COMPILING_VIRT_INSPECTOR 1
#include "options.h"
@@ -41,16 +43,16 @@ static char *root = NULL;
static int
compare_keys_len (const void *p1, const void *p2)
{
- const char *key1 = * (char * const *) p1;
- const char *key2 = * (char * const *) p2;
+ const char *key1 = *(char *const *)p1;
+ const char *key2 = *(char *const *)p2;
return strlen (key1) - strlen (key2);
}
static int
compare_keys (const void *p1, const void *p2)
{
- const char *key1 = * (char * const *) p1;
- const char *key2 = * (char * const *) p2;
+ const char *key1 = *(char *const *)p1;
+ const char *key2 = *(char *const *)p2;
return strcasecmp (key1, key2);
}
@@ -71,43 +73,50 @@ inspect_mount_handle (guestfs_h *g)
exit (EXIT_FAILURE);
if (roots[0] == NULL) {
- fprintf (stderr,
- _("%s: no operating system was found on this disk\n"
- "\n"
- "If using guestfish '-i' option, remove this option and
instead\n"
- "use the commands 'run' followed by
'list-filesystems'.\n"
- "You can then mount filesystems you want by hand using the\n"
- "'mount' or 'mount-ro' command.\n"
- "\n"
- "If using guestmount '-i', remove this option and choose
the\n"
- "filesystem(s) you want to see by manually adding '-m'
option(s).\n"
- "Use 'virt-filesystems' to see what filesystems are
available.\n"
- "\n"
- "If using other virt tools, this disk image won't work\n"
- "with these tools. Use the guestfish equivalent commands\n"
- "(see the virt tool manual page).\n"),
- guestfs_int_program_name);
+ fprintf (
+ stderr,
+ _("%s: no operating system was found on this disk\n"
+ "\n"
+ "If using guestfish '-i' option, remove this option and "
+ "instead\n"
+ "use the commands 'run' followed by
'list-filesystems'.\n"
+ "You can then mount filesystems you want by hand using the\n"
+ "'mount' or 'mount-ro' command.\n"
+ "\n"
+ "If using guestmount '-i', remove this option and choose
the\n"
+ "filesystem(s) you want to see by manually adding '-m' "
+ "option(s).\n"
+ "Use 'virt-filesystems' to see what filesystems are
available.\n"
+ "\n"
+ "If using other virt tools, this disk image won't work\n"
+ "with these tools. Use the guestfish equivalent commands\n"
+ "(see the virt tool manual page).\n"),
+ guestfs_int_program_name);
guestfs_int_free_string_list (roots);
exit (EXIT_FAILURE);
}
if (roots[1] != NULL) {
- fprintf (stderr,
- _("%s: multi-boot operating systems are not supported\n"
- "\n"
- "If using guestfish '-i' option, remove this option and
instead\n"
- "use the commands 'run' followed by
'list-filesystems'.\n"
- "You can then mount filesystems you want by hand using the\n"
- "'mount' or 'mount-ro' command.\n"
- "\n"
- "If using guestmount '-i', remove this option and choose
the\n"
- "filesystem(s) you want to see by manually adding '-m'
option(s).\n"
- "Use 'virt-filesystems' to see what filesystems are
available.\n"
- "\n"
- "If using other virt tools, multi-boot operating systems won't
work\n"
- "with these tools. Use the guestfish equivalent commands\n"
- "(see the virt tool manual page).\n"),
- guestfs_int_program_name);
+ fprintf (
+ stderr,
+ _("%s: multi-boot operating systems are not supported\n"
+ "\n"
+ "If using guestfish '-i' option, remove this option and "
+ "instead\n"
+ "use the commands 'run' followed by
'list-filesystems'.\n"
+ "You can then mount filesystems you want by hand using the\n"
+ "'mount' or 'mount-ro' command.\n"
+ "\n"
+ "If using guestmount '-i', remove this option and choose
the\n"
+ "filesystem(s) you want to see by manually adding '-m' "
+ "option(s).\n"
+ "Use 'virt-filesystems' to see what filesystems are
available.\n"
+ "\n"
+ "If using other virt tools, multi-boot operating systems won't "
+ "work\n"
+ "with these tools. Use the guestfish equivalent commands\n"
+ "(see the virt tool manual page).\n"),
+ guestfs_int_program_name);
guestfs_int_free_string_list (roots);
exit (EXIT_FAILURE);
}
@@ -125,7 +134,7 @@ void
inspect_mount_root (guestfs_h *g, const char *root)
{
CLEANUP_FREE_STRING_LIST char **mountpoints =
- guestfs_inspect_get_mountpoints (g, root);
+ guestfs_inspect_get_mountpoints (g, root);
if (mountpoints == NULL)
exit (EXIT_FAILURE);
@@ -133,17 +142,16 @@ inspect_mount_root (guestfs_h *g, const char *root)
* mounting the filesystems in the correct order.
*/
qsort (mountpoints, guestfs_int_count_strings (mountpoints) / 2,
- 2 * sizeof (char *),
- compare_keys_len);
+ 2 * sizeof (char *), compare_keys_len);
size_t i;
size_t mount_errors = 0;
for (i = 0; mountpoints[i] != NULL; i += 2) {
int r;
if (!read_only)
- r = guestfs_mount (g, mountpoints[i+1], mountpoints[i]);
+ r = guestfs_mount (g, mountpoints[i + 1], mountpoints[i]);
else
- r = guestfs_mount_ro (g, mountpoints[i+1], mountpoints[i]);
+ r = guestfs_mount_ro (g, mountpoints[i + 1], mountpoints[i]);
if (r == -1) {
/* If the "/" filesystem could not be mounted, give up, else
* just count the errors and print a warning.
@@ -155,7 +163,8 @@ inspect_mount_root (guestfs_h *g, const char *root)
}
if (mount_errors)
- fprintf (stderr, _("%s: some filesystems could not be mounted
(ignored)\n"),
+ fprintf (stderr,
+ _("%s: some filesystems could not be mounted (ignored)\n"),
guestfs_int_program_name);
}
@@ -179,18 +188,17 @@ print_inspect_prompt (void)
/* Sort by key. */
qsort (mountpoints, guestfs_int_count_strings (mountpoints) / 2,
- 2 * sizeof (char *),
- compare_keys);
+ 2 * sizeof (char *), compare_keys);
for (i = 0; mountpoints[i] != NULL; i += 2) {
/* Try to make the device name canonical for printing, but don't
* worry if this fails.
*/
CLEANUP_FREE char *dev =
- guestfs_canonical_device_name (g, mountpoints[i+1]);
+ guestfs_canonical_device_name (g, mountpoints[i + 1]);
- printf (_("%s mounted on %s\n"),
- dev ? dev : mountpoints[i+1], mountpoints[i]);
+ printf (_("%s mounted on %s\n"), dev ? dev : mountpoints[i + 1],
+ mountpoints[i]);
}
}
diff --git a/fish/keys.c b/fish/keys.c
index 4749cfc..edadb19 100644
--- a/fish/keys.c
+++ b/fish/keys.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -77,10 +78,10 @@ read_key (const char *param)
}
/* Remove the terminating \n if there is one. */
- if (len > 0 && ret[len-1] == '\n')
- ret[len-1] = '\0';
+ if (len > 0 && ret[len - 1] == '\n')
+ ret[len - 1] = '\0';
- error:
+error:
/* Restore echo, close file descriptor. */
if (tty && tcset) {
printf ("\n");
diff --git a/fish/lcd.c b/fish/lcd.c
index 8fa669c..c3979f9 100644
--- a/fish/lcd.c
+++ b/fish/lcd.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/fish/man.c b/fish/man.c
index 85b7a82..2a15d85 100644
--- a/fish/man.c
+++ b/fish/man.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -33,12 +34,14 @@ int
run_man (const char *cmd, size_t argc, char *argv[])
{
if (argc != 0) {
- fprintf (stderr, _("use 'man' without parameters to open the
manual\n"));
+ fprintf (stderr,
+ _("use 'man' without parameters to open the manual\n"));
return -1;
}
/* We have to restore SIGPIPE to the default action around the
- * external 'man' command to avoid the warning 'gzip: stdout: Broken
pipe'.
+ * external 'man' command to avoid the warning 'gzip: stdout: Broken
+ * pipe'.
*/
struct sigaction sa, old_sa;
memset (&sa, 0, sizeof sa);
@@ -55,9 +58,8 @@ run_man (const char *cmd, size_t argc, char *argv[])
char status_string[80];
fprintf (stderr, "%s\n",
- guestfs_int_exit_status_to_string (r, "man",
- status_string,
- sizeof status_string));
+ guestfs_int_exit_status_to_string (r, "man", status_string,
+ sizeof status_string));
return -1;
}
diff --git a/fish/more.c b/fish/more.c
index cb46836..9e8d476 100644
--- a/fish/more.c
+++ b/fish/more.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/fish/options.c b/fish/options.c
index cc3d4c0..f984d44 100644
--- a/fish/options.c
+++ b/fish/options.c
@@ -55,8 +55,7 @@ option_a (const char *arg, const char *format, struct drv **drvsp)
drv->a.format = format;
free (uri.protocol);
- }
- else {
+ } else {
/* Remote storage. */
drv->type = drv_uri;
drv->nr_drives = -1;
@@ -98,8 +97,7 @@ add_drives_handle (guestfs_h *g, struct drv *drv, char next_drive)
struct guestfs_add_drive_opts_argv ad_optargs;
if (next_drive > 'z') {
- fprintf (stderr,
- _("%s: too many drives added on the command line\n"),
+ fprintf (stderr, _("%s: too many drives added on the command line\n"),
guestfs_int_program_name);
exit (EXIT_FAILURE);
}
@@ -187,8 +185,7 @@ add_drives_handle (guestfs_h *g, struct drv *drv, char next_drive)
case drv_N:
/* -N option is not affected by --ro */
r = guestfs_add_drive_opts (g, drv->N.filename,
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
- -1);
+ GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -1);
if (r == -1)
exit (EXIT_FAILURE);
@@ -216,7 +213,9 @@ add_drives_handle (guestfs_h *g, struct drv *drv, char next_drive)
return next_drive;
}
-static void display_mountpoints_on_failure (const char *mp_device, const char
*user_supplied_options);
+static void
+display_mountpoints_on_failure (const char *mp_device,
+ const char *user_supplied_options);
/* List is built in reverse order, so mount them in reverse order. */
void
@@ -239,8 +238,7 @@ mount_mps (struct mp *mp)
r = guestfs_mount_vfs (g, options, mp->fstype, mp->device,
mp->mountpoint);
else
- r = guestfs_mount_options (g, options, mp->device,
- mp->mountpoint);
+ r = guestfs_mount_options (g, options, mp->device, mp->mountpoint);
if (r == -1) {
display_mountpoints_on_failure (mp->device, mp->options);
exit (EXIT_FAILURE);
@@ -265,11 +263,15 @@ display_mountpoints_on_failure (const char *mp_device,
guestfs_int_program_name, mp_device);
if (user_supplied_options)
- fprintf (stderr, _("%s: Check mount(8) man page to ensure options
'%s'\n"
- "%s: are supported by the filesystem that is being
mounted.\n"),
- guestfs_int_program_name, user_supplied_options, guestfs_int_program_name);
+ fprintf (
+ stderr,
+ _("%s: Check mount(8) man page to ensure options '%s'\n"
+ "%s: are supported by the filesystem that is being mounted.\n"),
+ guestfs_int_program_name, user_supplied_options,
+ guestfs_int_program_name);
- fprintf (stderr, _("%s: Did you mean to mount one of these filesystems?\n"),
+ fprintf (stderr,
+ _("%s: Did you mean to mount one of these filesystems?\n"),
guestfs_int_program_name);
for (i = 0; fses[i] != NULL; i += 2) {
@@ -283,8 +285,8 @@ display_mountpoints_on_failure (const char *mp_device,
if (subvolume == NULL && guestfs_last_errno (g) != EINVAL) {
fprintf (stderr,
_("%s: cannot determine the subvolume for %s: %s (%d)\n"),
- guestfs_int_program_name, fses[i],
- guestfs_last_error (g), guestfs_last_errno (g));
+ guestfs_int_program_name, fses[i], guestfs_last_error (g),
+ guestfs_last_errno (g));
exit (EXIT_FAILURE);
}
@@ -299,14 +301,15 @@ display_mountpoints_on_failure (const char *mp_device,
}
fprintf (stderr, "%s: \t%s (%s)\n", guestfs_int_program_name,
- p ? p : fses[i], fses[i+1]);
+ p ? p : fses[i], fses[i + 1]);
}
}
void
free_drives (struct drv *drv)
{
- if (!drv) return;
+ if (!drv)
+ return;
free_drives (drv->next);
free (drv->device);
@@ -339,7 +342,7 @@ free_drives (struct drv *drv)
/* nothing */
break;
#endif
- default: ; /* keep GCC happy */
+ default:; /* keep GCC happy */
}
free (drv);
}
@@ -347,7 +350,8 @@ free_drives (struct drv *drv)
void
free_mps (struct mp *mp)
{
- if (!mp) return;
+ if (!mp)
+ return;
free_mps (mp->next);
/* The drive and mountpoint fields are not allocated
@@ -378,7 +382,8 @@ void
display_long_options (const struct option *long_options)
{
while (long_options->name) {
- if (STRNEQ (long_options->name, "long-options") && STRNEQ
(long_options->name, "short-options"))
+ if (STRNEQ (long_options->name, "long-options") &&
+ STRNEQ (long_options->name, "short-options"))
printf ("--%s\n", long_options->name);
long_options++;
}
diff --git a/fish/options.h b/fish/options.h
index bbe38aa..4a74701 100644
--- a/fish/options.h
+++ b/fish/options.h
@@ -39,37 +39,41 @@ extern const char *libvirt_uri;
/* List of drives added via -a, -d or -N options. NB: Unused fields
* in this struct MUST be zeroed, ie. use calloc, not malloc.
*/
-struct drv {
+struct drv
+{
struct drv *next;
- char *device; /* Device name inside the appliance (eg. /dev/sda).
- * This is filled in when we add the drives in
- * add_drives. Note that guests (-d option) may
- * have multiple drives, in which case this is the
- * first drive, and nr_drives is the number of
- * drives used.
- */
- int nr_drives; /* number of drives for this guest */
+ char *device; /* Device name inside the appliance (eg. /dev/sda).
+ * This is filled in when we add the drives in
+ * add_drives. Note that guests (-d option) may
+ * have multiple drives, in which case this is the
+ * first drive, and nr_drives is the number of
+ * drives used.
+ */
+ int nr_drives; /* number of drives for this guest */
enum {
- drv_a, /* -a option (without URI) */
- drv_uri, /* -a option (with URI) */
- drv_d, /* -d option */
+ drv_a, /* -a option (without URI) */
+ drv_uri, /* -a option (with URI) */
+ drv_d, /* -d option */
#if COMPILING_GUESTFISH
- drv_N, /* -N option (guestfish only) */
+ drv_N, /* -N option (guestfish only) */
#endif
#if COMPILING_VIRT_RESCUE
- drv_scratch, /* --scratch option (virt-rescue only) */
+ drv_scratch, /* --scratch option (virt-rescue only) */
#endif
} type;
- union {
- struct {
- char *filename; /* disk filename */
- const char *format; /* format (NULL == autodetect) */
- const char *cachemode;/* cachemode (NULL == default) */
- const char *discard; /* discard (NULL == disable) */
+ union
+ {
+ struct
+ {
+ char *filename; /* disk filename */
+ const char *format; /* format (NULL == autodetect) */
+ const char *cachemode; /* cachemode (NULL == default) */
+ const char *discard; /* discard (NULL == disable) */
} a;
- struct {
+ struct
+ {
char *path; /* disk path */
char *protocol; /* protocol (eg. "nbd") */
char **server; /* server(s) - can be NULL */
@@ -78,19 +82,22 @@ struct drv {
const char *format; /* format (NULL == autodetect) */
const char *orig_uri; /* original URI (for error messages etc.) */
} uri;
- struct {
- char *guest; /* guest name */
+ struct
+ {
+ char *guest; /* guest name */
} d;
#if COMPILING_GUESTFISH
- struct {
- char *filename; /* disk filename (testX.img) */
- void *data; /* prepared type */
- void (*data_free)(void*); /* function to free 'data' */
+ struct
+ {
+ char *filename; /* disk filename (testX.img) */
+ void *data; /* prepared type */
+ void (*data_free) (void *); /* function to free 'data' */
} N;
#endif
#if COMPILING_VIRT_RESCUE
- struct {
- int64_t size; /* size of the disk in bytes */
+ struct
+ {
+ int64_t size; /* size of the disk in bytes */
} scratch;
#endif
};
@@ -101,7 +108,8 @@ struct drv {
void *opaque;
};
-struct mp {
+struct mp
+{
struct mp *next;
char *device;
char *mountpoint;
@@ -133,114 +141,109 @@ extern void inspect_mount_root (guestfs_h *g, const char *root);
extern char *read_key (const char *param);
/* in options.c */
-extern void option_a (const char *arg, const char *format, struct drv **drvsp);
+extern void option_a (const char *arg, const char *format,
+ struct drv **drvsp);
extern void option_d (const char *arg, struct drv **drvsp);
-extern char add_drives_handle (guestfs_h *g, struct drv *drv, char next_drive);
+extern char add_drives_handle (guestfs_h *g, struct drv *drv,
+ char next_drive);
#define add_drives(drv, next_drive) add_drives_handle (g, drv, next_drive)
extern void mount_mps (struct mp *mp);
extern void free_drives (struct drv *drv);
extern void free_mps (struct mp *mp);
-extern void display_short_options (const char *) __attribute__((noreturn));
-extern void display_long_options (const struct option *) __attribute__((noreturn));
-
-#define OPTION_a \
- do { \
- option_a (optarg, format, &drvs); \
- format_consumed = true; \
+extern void display_short_options (const char *) __attribute__ ((noreturn));
+extern void display_long_options (const struct option *)
+ __attribute__ ((noreturn));
+
+#define OPTION_a \
+ do { \
+ option_a (optarg, format, &drvs); \
+ format_consumed = true; \
} while (0)
-#define OPTION_A \
- do { \
- option_a (optarg, format, &drvs2); \
- format_consumed = true; \
+#define OPTION_A \
+ do { \
+ option_a (optarg, format, &drvs2); \
+ format_consumed = true; \
} while (0)
-#define OPTION_c \
- libvirt_uri = optarg
+#define OPTION_c libvirt_uri = optarg
-#define OPTION_d \
- option_d (optarg, &drvs)
+#define OPTION_d option_d (optarg, &drvs)
-#define OPTION_D \
- option_d (optarg, &drvs2)
+#define OPTION_D option_d (optarg, &drvs2)
-#define OPTION_format \
- do { \
- if (!optarg || STREQ (optarg, "")) \
- format = NULL; \
- else \
- format = optarg; \
- format_consumed = false; \
+#define OPTION_format \
+ do { \
+ if (!optarg || STREQ (optarg, "")) \
+ format = NULL; \
+ else \
+ format = optarg; \
+ format_consumed = false; \
} while (0)
-#define OPTION_i \
- inspector = 1
-
-#define OPTION_m \
- mp = malloc (sizeof (struct mp)); \
- if (!mp) \
- error (EXIT_FAILURE, errno, "malloc"); \
- mp->fstype = NULL; \
- mp->options = NULL; \
- mp->mountpoint = (char *) "/"; \
- p = strchr (optarg, ':'); \
- if (p) { \
- *p = '\0'; \
- p++; \
- mp->mountpoint = p; \
- p = strchr (p, ':'); \
- if (p) { \
- *p = '\0'; \
- p++; \
- mp->options = p; \
- p = strchr (p, ':'); \
- if (p) { \
- *p = '\0'; \
- p++; \
- mp->fstype = p; \
- } \
- } \
- } \
- mp->device = optarg; \
- mp->next = mps; \
+#define OPTION_i inspector = 1
+
+#define OPTION_m \
+ mp = malloc (sizeof (struct mp)); \
+ if (!mp) \
+ error (EXIT_FAILURE, errno, "malloc"); \
+ mp->fstype = NULL; \
+ mp->options = NULL; \
+ mp->mountpoint = (char *)"/";
\
+ p = strchr (optarg, ':'); \
+ if (p) { \
+ *p = '\0'; \
+ p++; \
+ mp->mountpoint = p; \
+ p = strchr (p, ':'); \
+ if (p) { \
+ *p = '\0'; \
+ p++; \
+ mp->options = p; \
+ p = strchr (p, ':'); \
+ if (p) { \
+ *p = '\0'; \
+ p++; \
+ mp->fstype = p; \
+ } \
+ } \
+ } \
+ mp->device = optarg; \
+ mp->next = mps; \
mps = mp
-#define OPTION_n \
- guestfs_set_autosync (g, 0)
+#define OPTION_n guestfs_set_autosync (g, 0)
-#define OPTION_r \
- read_only = 1
+#define OPTION_r read_only = 1
-#define OPTION_v \
- verbose++; \
+#define OPTION_v \
+ verbose++; \
guestfs_set_verbose (g, verbose)
-#define OPTION_V \
- { \
- printf ("%s %s\n", \
- guestfs_int_program_name, \
- PACKAGE_VERSION_FULL); \
- exit (EXIT_SUCCESS); \
+#define OPTION_V \
+ { \
+ printf ("%s %s\n", guestfs_int_program_name, PACKAGE_VERSION_FULL); \
+ exit (EXIT_SUCCESS); \
}
-#define OPTION_w \
- if (read_only) { \
- fprintf (stderr, _("%s: cannot mix --ro and --rw options\n"), \
- guestfs_int_program_name); \
- exit (EXIT_FAILURE); \
+#define OPTION_w \
+ if (read_only) { \
+ fprintf (stderr, _("%s: cannot mix --ro and --rw options\n"), \
+ guestfs_int_program_name); \
+ exit (EXIT_FAILURE); \
}
-#define OPTION_x \
- guestfs_set_trace (g, 1)
+#define OPTION_x guestfs_set_trace (g, 1)
-#define CHECK_OPTION_format_consumed \
- do { \
- if (!format_consumed) { \
- fprintf (stderr, \
- _("%s: --format parameter must appear before -a parameter\n"),
\
- guestfs_int_program_name); \
- exit (EXIT_FAILURE); \
- } \
+#define CHECK_OPTION_format_consumed \
+ do { \
+ if (!format_consumed) { \
+ fprintf ( \
+ stderr, \
+ _("%s: --format parameter must appear before -a parameter\n"), \
+ guestfs_int_program_name); \
+ exit (EXIT_FAILURE); \
+ } \
} while (0)
#endif /* OPTIONS_H */
diff --git a/fish/prep-boot.c b/fish/prep-boot.c
index 45a5a8f..c1cfd88 100644
--- a/fish/prep-boot.c
+++ b/fish/prep-boot.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -38,7 +39,8 @@ prep_prelaunch_bootroot (const char *filename, prep_data *data)
}
void
-prep_postlaunch_bootroot (const char *filename, prep_data *data, const char *device)
+prep_postlaunch_bootroot (const char *filename, prep_data *data,
+ const char *device)
{
off_t bootsize;
if (parse_size (data->params[3], &bootsize) == -1)
@@ -53,12 +55,12 @@ prep_postlaunch_bootroot (const char *filename, prep_data *data, const
char *dev
prep_error (data, filename, _("failed to partition disk: %s"),
guestfs_last_error (g));
- off_t lastbootsect = 64 + bootsize/sector - 1;
+ off_t lastbootsect = 64 + bootsize / sector - 1;
if (guestfs_part_add (g, device, "primary", 64, lastbootsect) == -1)
prep_error (data, filename, _("failed to add boot partition: %s"),
guestfs_last_error (g));
- if (guestfs_part_add (g, device, "primary", lastbootsect+1, -64) == -1)
+ if (guestfs_part_add (g, device, "primary", lastbootsect + 1, -64) == -1)
prep_error (data, filename, _("failed to add root partition: %s"),
guestfs_last_error (g));
@@ -81,14 +83,16 @@ void
prep_prelaunch_bootrootlv (const char *filename, prep_data *data)
{
if (vg_lv_parse (data->params[0], NULL, NULL) == -1)
- prep_error (data, filename, _("incorrect format for LV name, use
'/dev/VG/LV'"));
+ prep_error (data, filename,
+ _("incorrect format for LV name, use '/dev/VG/LV'"));
if (alloc_disk (filename, data->params[3], 0, 1) == -1)
prep_error (data, filename, _("failed to allocate disk"));
}
void
-prep_postlaunch_bootrootlv (const char *filename, prep_data *data, const char *device)
+prep_postlaunch_bootrootlv (const char *filename, prep_data *data,
+ const char *device)
{
off_t bootsize;
if (parse_size (data->params[4], &bootsize) == -1)
@@ -103,19 +107,20 @@ prep_postlaunch_bootrootlv (const char *filename, prep_data *data,
const char *d
prep_error (data, filename, _("failed to partition disk: %s"),
guestfs_last_error (g));
- off_t lastbootsect = 64 + bootsize/sector - 1;
+ off_t lastbootsect = 64 + bootsize / sector - 1;
if (guestfs_part_add (g, device, "primary", 64, lastbootsect) == -1)
prep_error (data, filename, _("failed to add boot partition: %s"),
guestfs_last_error (g));
- if (guestfs_part_add (g, device, "primary", lastbootsect+1, -64) == -1)
+ if (guestfs_part_add (g, device, "primary", lastbootsect + 1, -64) == -1)
prep_error (data, filename, _("failed to add root partition: %s"),
guestfs_last_error (g));
CLEANUP_FREE char *vg;
CLEANUP_FREE char *lv;
if (vg_lv_parse (data->params[0], &vg, &lv) == -1)
- prep_error (data, filename, _("incorrect format for LV name, use
'/dev/VG/LV'"));
+ prep_error (data, filename,
+ _("incorrect format for LV name, use '/dev/VG/LV'"));
CLEANUP_FREE char *part;
if (asprintf (&part, "%s1", device) == -1)
@@ -128,13 +133,13 @@ prep_postlaunch_bootrootlv (const char *filename, prep_data *data,
const char *d
if (asprintf (&part2, "%s2", device) == -1)
error (EXIT_FAILURE, errno, "asprintf");
if (guestfs_pvcreate (g, part2) == -1)
- prep_error (data, filename, _("failed to create PV: %s: %s"),
- part2, guestfs_last_error (g));
+ prep_error (data, filename, _("failed to create PV: %s: %s"), part2,
+ guestfs_last_error (g));
char *parts[] = { part2, NULL };
if (guestfs_vgcreate (g, vg, parts) == -1)
- prep_error (data, filename, _("failed to create VG: %s: %s"),
- vg, guestfs_last_error (g));
+ prep_error (data, filename, _("failed to create VG: %s: %s"), vg,
+ guestfs_last_error (g));
/* Create the largest possible LV. */
if (guestfs_lvcreate_free (g, lv, vg, 100) == -1)
diff --git a/fish/prep-disk.c b/fish/prep-disk.c
index 246b9f1..d9f884e 100644
--- a/fish/prep-disk.c
+++ b/fish/prep-disk.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -36,7 +37,8 @@ prep_prelaunch_disk (const char *filename, prep_data *data)
}
void
-prep_postlaunch_disk (const char *filename, prep_data *data, const char *device)
+prep_postlaunch_disk (const char *filename, prep_data *data,
+ const char *device)
{
/* nothing */
}
diff --git a/fish/prep-fs.c b/fish/prep-fs.c
index 6670aa6..0645e29 100644
--- a/fish/prep-fs.c
+++ b/fish/prep-fs.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -38,7 +39,8 @@ prep_prelaunch_fs (const char *filename, prep_data *data)
}
void
-prep_postlaunch_fs (const char *filename, prep_data *data, const char *device)
+prep_postlaunch_fs (const char *filename, prep_data *data,
+ const char *device)
{
if (guestfs_part_disk (g, device, data->params[2]) == -1)
prep_error (data, filename, _("failed to partition disk: %s"),
diff --git a/fish/prep-lv.c b/fish/prep-lv.c
index 93de9ae..4050f50 100644
--- a/fish/prep-lv.c
+++ b/fish/prep-lv.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -50,7 +51,7 @@ vg_lv_parse (const char *device, char **vg, char **lv)
}
if (lv) {
- *lv = strdup (p+1);
+ *lv = strdup (p + 1);
if (*lv == NULL)
error (EXIT_FAILURE, errno, "strndup");
}
@@ -62,14 +63,16 @@ void
prep_prelaunch_lv (const char *filename, prep_data *data)
{
if (vg_lv_parse (data->params[0], NULL, NULL) == -1)
- prep_error (data, filename, _("incorrect format for LV name, use
'/dev/VG/LV'"));
+ prep_error (data, filename,
+ _("incorrect format for LV name, use '/dev/VG/LV'"));
if (alloc_disk (filename, data->params[1], 0, 1) == -1)
prep_error (data, filename, _("failed to allocate disk"));
}
void
-prep_postlaunch_lv (const char *filename, prep_data *data, const char *device)
+prep_postlaunch_lv (const char *filename, prep_data *data,
+ const char *device)
{
if (guestfs_part_disk (g, device, data->params[2]) == -1)
prep_error (data, filename, _("failed to partition disk: %s"),
@@ -78,20 +81,21 @@ prep_postlaunch_lv (const char *filename, prep_data *data, const char
*device)
CLEANUP_FREE char *vg;
CLEANUP_FREE char *lv;
if (vg_lv_parse (data->params[0], &vg, &lv) == -1)
- prep_error (data, filename, _("incorrect format for LV name, use
'/dev/VG/LV'"));
+ prep_error (data, filename,
+ _("incorrect format for LV name, use '/dev/VG/LV'"));
CLEANUP_FREE char *part;
if (asprintf (&part, "%s1", device) == -1)
error (EXIT_FAILURE, errno, "asprintf");
if (guestfs_pvcreate (g, part) == -1)
- prep_error (data, filename, _("failed to create PV: %s: %s"),
- part, guestfs_last_error (g));
+ prep_error (data, filename, _("failed to create PV: %s: %s"), part,
+ guestfs_last_error (g));
char *parts[] = { part, NULL };
if (guestfs_vgcreate (g, vg, parts) == -1)
- prep_error (data, filename, _("failed to create VG: %s: %s"),
- vg, guestfs_last_error (g));
+ prep_error (data, filename, _("failed to create VG: %s: %s"), vg,
+ guestfs_last_error (g));
/* Create the largest possible LV. */
if (guestfs_lvcreate_free (g, lv, vg, 100) == -1)
@@ -103,14 +107,16 @@ void
prep_prelaunch_lvfs (const char *filename, prep_data *data)
{
if (vg_lv_parse (data->params[0], NULL, NULL) == -1)
- prep_error (data, filename, _("incorrect format for LV name, use
'/dev/VG/LV'"));
+ prep_error (data, filename,
+ _("incorrect format for LV name, use '/dev/VG/LV'"));
if (alloc_disk (filename, data->params[2], 0, 1) == -1)
prep_error (data, filename, _("failed to allocate disk"));
}
void
-prep_postlaunch_lvfs (const char *filename, prep_data *data, const char *device)
+prep_postlaunch_lvfs (const char *filename, prep_data *data,
+ const char *device)
{
if (guestfs_part_disk (g, device, data->params[3]) == -1)
prep_error (data, filename, _("failed to partition disk: %s"),
@@ -119,20 +125,21 @@ prep_postlaunch_lvfs (const char *filename, prep_data *data, const
char *device)
CLEANUP_FREE char *vg;
CLEANUP_FREE char *lv;
if (vg_lv_parse (data->params[0], &vg, &lv) == -1)
- prep_error (data, filename, _("incorrect format for LV name, use
'/dev/VG/LV'"));
+ prep_error (data, filename,
+ _("incorrect format for LV name, use '/dev/VG/LV'"));
CLEANUP_FREE char *part;
if (asprintf (&part, "%s1", device) == -1)
error (EXIT_FAILURE, errno, "asprintf");
if (guestfs_pvcreate (g, part) == -1)
- prep_error (data, filename, _("failed to create PV: %s: %s"),
- part, guestfs_last_error (g));
+ prep_error (data, filename, _("failed to create PV: %s: %s"), part,
+ guestfs_last_error (g));
char *parts[] = { part, NULL };
if (guestfs_vgcreate (g, vg, parts) == -1)
- prep_error (data, filename, _("failed to create VG: %s: %s"),
- vg, guestfs_last_error (g));
+ prep_error (data, filename, _("failed to create VG: %s: %s"), vg,
+ guestfs_last_error (g));
/* Create the largest possible LV. */
if (guestfs_lvcreate_free (g, lv, vg, 100) == -1)
diff --git a/fish/prep-part.c b/fish/prep-part.c
index 83363f5..9611a62 100644
--- a/fish/prep-part.c
+++ b/fish/prep-part.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -36,7 +37,8 @@ prep_prelaunch_part (const char *filename, prep_data *data)
}
void
-prep_postlaunch_part (const char *filename, prep_data *data, const char *device)
+prep_postlaunch_part (const char *filename, prep_data *data,
+ const char *device)
{
if (guestfs_part_disk (g, device, data->params[1]) == -1)
prep_error (data, filename, _("failed to partition disk: %s"),
diff --git a/fish/prep.c b/fish/prep.c
index b8976e9..9635577 100644
--- a/fish/prep.c
+++ b/fish/prep.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -55,10 +56,8 @@ guestfish -N %-8s - %s\n\
printf ("\n");
for (j = 0; j < preps[i].nr_params; ++j) {
printf (" ");
- printf (_("<%s> %s (default: %s)\n"),
- preps[i].params[j].pname,
- preps[i].params[j].pdesc,
- preps[i].params[j].pdefault);
+ printf (_("<%s> %s (default: %s)\n"), preps[i].params[j].pname,
+ preps[i].params[j].pdesc, preps[i].params[j].pdefault);
}
}
@@ -119,11 +118,12 @@ Use 'guestfish -N help' to list possible values for the -N
parameter.\n"),
error (EXIT_FAILURE, errno, "malloc");
for (i = 0; i < data->prep->nr_params; ++i)
- data->params[i] = (char *) data->prep->params[i].pdefault;
+ data->params[i] = (char *)data->prep->params[i].pdefault;
/* Parse the optional parameters. */
const char *p = type_string + len;
- if (*p) p++; /* skip colon char */
+ if (*p)
+ p++; /* skip colon char */
i = 0;
while (*p) {
@@ -133,7 +133,8 @@ Use 'guestfish -N help' to list possible values for the -N
parameter.\n"),
error (EXIT_FAILURE, errno, "strndup");
p += len;
- if (*p) p++; /* skip colon char */
+ if (*p)
+ p++; /* skip colon char */
i++;
}
@@ -145,8 +146,7 @@ Use 'guestfish -N help' to list possible values for the -N
parameter.\n"),
* is just used for error messages.
*/
void
-prepare_drive (const char *filename, prep_data *data,
- const char *device)
+prepare_drive (const char *filename, prep_data *data, const char *device)
{
if (data->prep->postlaunch)
data->prep->postlaunch (filename, data, device);
@@ -155,9 +155,10 @@ prepare_drive (const char *filename, prep_data *data,
void
prep_error (prep_data *data, const char *filename, const char *fs, ...)
{
- fprintf (stderr,
- _("guestfish: error creating prepared disk image '%s' on
'%s': "),
- data->orig_type_string, filename);
+ fprintf (
+ stderr,
+ _("guestfish: error creating prepared disk image '%s' on '%s':
"),
+ data->orig_type_string, filename);
va_list args;
va_start (args, fs);
diff --git a/fish/progress.c b/fish/progress.c
index 363419e..e05a062 100644
--- a/fish/progress.c
+++ b/fish/progress.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -49,9 +50,10 @@ extern const char *UP;
*
http://en.wikipedia.org/wiki/Standard_deviation#Rapid_calculation_methods
* Checked in a test program against answers given by Wolfram Alpha.
*/
-struct rmsd {
- double a; /* mean */
- double i; /* number of samples */
+struct rmsd
+{
+ double a; /* mean */
+ double i; /* number of samples */
double q;
};
@@ -87,14 +89,15 @@ rmsd_get_standard_deviation (const struct rmsd *r)
return sqrt (r->q / (r->i - 1.0));
}
-struct progress_bar {
- double start; /* start time of command */
- size_t count; /* number of progress notifications per cmd */
- struct rmsd rmsd; /* running mean and standard deviation */
+struct progress_bar
+{
+ double start; /* start time of command */
+ size_t count; /* number of progress notifications per cmd */
+ struct rmsd rmsd; /* running mean and standard deviation */
int have_terminfo;
int utf8_mode;
int machine_readable;
- FILE *fp; /* output device, only used when !dumb mode */
+ FILE *fp; /* output device, only used when !dumb mode */
};
struct progress_bar *
@@ -174,19 +177,19 @@ spinner (struct progress_bar *bar, size_t count)
* I prefer something which doesn't point, just spins.
*/
/* Black pointing triangle. */
- //static const char *us[] = { "\u25b2", "\u25b6",
"\u25bc", "\u25c0" };
+ // static const char *us[] = { "\u25b2", "\u25b6",
"\u25bc", "\u25c0" };
/* White pointing triangle. */
- //static const char *us[] = { "\u25b3", "\u25b7",
"\u25bd", "\u25c1" };
+ // static const char *us[] = { "\u25b3", "\u25b7",
"\u25bd", "\u25c1" };
/* Circle with half black. */
static const char *us[] = { "\u25d0", "\u25d3", "\u25d1",
"\u25d2" };
/* White square white quadrant. */
- //static const char *us[] = { "\u25f0", "\u25f3",
"\u25f2", "\u25f1" };
+ // static const char *us[] = { "\u25f0", "\u25f3",
"\u25f2", "\u25f1" };
/* White circle white quadrant. */
- //static const char *us[] = { "\u25f4", "\u25f7",
"\u25f6", "\u25f5" };
+ // static const char *us[] = { "\u25f4", "\u25f7",
"\u25f6", "\u25f5" };
/* Black triangle. */
- //static const char *us[] = { "\u25e2", "\u25e3",
"\u25e4", "\u25e5" };
+ // static const char *us[] = { "\u25e2", "\u25e3",
"\u25e4", "\u25e5" };
/* Spinning arrow in 8 directions. */
- //static const char *us[] = { "\u2190", "\u2196",
"\u2191", "\u2197",
+ // static const char *us[] = { "\u2190", "\u2196",
"\u2191", "\u2197",
// "\u2192", "\u2198",
"\u2193", "\u2199" };
/* ASCII spinner. */
@@ -198,8 +201,7 @@ spinner (struct progress_bar *bar, size_t count)
if (bar->utf8_mode) {
s = us;
n = sizeof us / sizeof us[0];
- }
- else {
+ } else {
s = as;
n = sizeof as / sizeof as[0];
}
@@ -237,7 +239,7 @@ estimate_remaining_time (struct progress_bar *bar, double ratio)
double mean = rmsd_get_mean (&bar->rmsd);
double sd = rmsd_get_standard_deviation (&bar->rmsd);
- if (fabs (total_time - mean) >= 2.0*sd)
+ if (fabs (total_time - mean) >= 2.0 * sd)
return -1.0;
/* Don't return early estimates. */
@@ -265,8 +267,8 @@ estimate_remaining_time (struct progress_bar *bar, double ratio)
#define COLS_OVERHEAD 15
void
-progress_bar_set (struct progress_bar *bar,
- uint64_t position, uint64_t total)
+progress_bar_set (struct progress_bar *bar, uint64_t position,
+ uint64_t total)
{
size_t i, cols;
int pulse_mode;
@@ -279,10 +281,12 @@ progress_bar_set (struct progress_bar *bar,
printf ("%" PRIu64 "/%" PRIu64 "\n", position, total);
fflush (stdout);
} else {
- cols = tgetnum ((char *) "co");
- if (cols < 32) goto dumb;
+ cols = tgetnum ((char *)"co");
+ if (cols < 32)
+ goto dumb;
- /* Send progress bar output to /dev/tty if we could open it, else stdout. */
+ /* Send progress bar output to /dev/tty if we could open it, else
+ * stdout. */
fp = bar->fp;
if (!fp)
fp = stdout;
@@ -301,17 +305,18 @@ progress_bar_set (struct progress_bar *bar,
/* Find out if we're in "pulse mode". */
pulse_mode = position == 0 && total == 1;
- ratio = (double) position / total;
- if (ratio < 0) ratio = 0; else if (ratio > 1) ratio = 1;
+ ratio = (double)position / total;
+ if (ratio < 0)
+ ratio = 0;
+ else if (ratio > 1)
+ ratio = 1;
if (pulse_mode) {
fprintf (fp, "%s --- ", spinner (bar, bar->count));
- }
- else if (ratio < 1) {
+ } else if (ratio < 1) {
int percent = 100.0 * ratio;
fprintf (fp, "%s%3d%% ", spinner (bar, bar->count), percent);
- }
- else {
+ } else {
fputs (" 100% ", fp);
}
@@ -321,20 +326,22 @@ progress_bar_set (struct progress_bar *bar,
s_dash = "\u2550";
s_close = "\u27e7";
} else {
- s_open = "["; s_dot = "#"; s_dash = "-"; s_close =
"]";
+ s_open = "[";
+ s_dot = "#";
+ s_dash = "-";
+ s_close = "]";
}
fputs (s_open, fp);
if (!pulse_mode) {
- size_t dots = ratio * (double) (cols - COLS_OVERHEAD);
+ size_t dots = ratio * (double)(cols - COLS_OVERHEAD);
for (i = 0; i < dots; ++i)
fputs (s_dot, fp);
for (i = dots; i < cols - COLS_OVERHEAD; ++i)
fputs (s_dash, fp);
- }
- else { /* "Pulse mode": the progress bar just pulses. */
+ } else { /* "Pulse mode": the progress bar just pulses. */
for (i = 0; i < cols - COLS_OVERHEAD; ++i) {
int cc = (bar->count * 3 - i) % (cols - COLS_OVERHEAD);
if (cc >= 0 && cc <= 3)
@@ -368,8 +375,7 @@ progress_bar_set (struct progress_bar *bar,
double ignore;
int ss = floor (modf (estimate, &ignore) * 60.);
fprintf (fp, "%02d:%02d", mm, ss);
- }
- else /* < 0 means estimate was not meaningful */
+ } else /* < 0 means estimate was not meaningful */
fputs ("--:--", fp);
fputc ('\n', fp);
diff --git a/fish/progress.h b/fish/progress.h
index 4fc0eaf..17b7526 100644
--- a/fish/progress.h
+++ b/fish/progress.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -36,7 +37,8 @@ extern void progress_bar_reset (struct progress_bar *);
/* This should be called from the progress bar callback. It displays
* the progress bar.
*/
-extern void progress_bar_set (struct progress_bar *, uint64_t position, uint64_t total);
+extern void progress_bar_set (struct progress_bar *, uint64_t position,
+ uint64_t total);
/* Free up progress bar handle and resources. */
extern void progress_bar_free (struct progress_bar *);
diff --git a/fish/rc.c b/fish/rc.c
index ad673f8..220486d 100644
--- a/fish/rc.c
+++ b/fish/rc.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -41,7 +42,7 @@
/* Because this is a Unix domain socket, the total path length must be
* under 108 bytes.
*/
-#define SOCKET_DIR "/tmp/.guestfish-%ju" /* euid */
+#define SOCKET_DIR "/tmp/.guestfish-%ju" /* euid */
#define SOCKET_PATH "/tmp/.guestfish-%ju/socket-%ju" /* euid, pid */
static void
@@ -53,18 +54,17 @@ create_sockdir (void)
struct stat statbuf;
/* Create the directory, and ensure it is owned by the user. */
- snprintf (dir, sizeof dir, SOCKET_DIR, (uintmax_t) euid);
+ snprintf (dir, sizeof dir, SOCKET_DIR, (uintmax_t)euid);
r = mkdir (dir, 0700);
if (r == -1 && errno != EEXIST)
error:
- error (EXIT_FAILURE, errno, "%s", dir);
+ error (EXIT_FAILURE, errno, "%s", dir);
if (lstat (dir, &statbuf) == -1)
goto error;
- if (!S_ISDIR (statbuf.st_mode) ||
- (statbuf.st_mode & 0777) != 0700 ||
+ if (!S_ISDIR (statbuf.st_mode) || (statbuf.st_mode & 0777) != 0700 ||
statbuf.st_uid != euid) {
- fprintf (stderr,
- _("guestfish: '%s' is not a directory or has insecure owner or
permissions\n"),
+ fprintf (stderr, _("guestfish: '%s' is not a directory or has "
+ "insecure owner or permissions\n"),
dir);
exit (EXIT_FAILURE);
}
@@ -78,7 +78,7 @@ create_sockpath (pid_t pid, char *sockpath, size_t len,
create_sockdir ();
- snprintf (sockpath, len, SOCKET_PATH, (uintmax_t) euid, (uintmax_t) pid);
+ snprintf (sockpath, len, SOCKET_PATH, (uintmax_t)euid, (uintmax_t)pid);
addr->sun_family = AF_UNIX;
strcpy (addr->sun_path, sockpath);
@@ -90,8 +90,8 @@ static void
receive_stdout (int s)
{
static struct cmsghdr *cmptr = NULL, *h;
- struct msghdr msg;
- struct iovec iov[1];
+ struct msghdr msg;
+ struct iovec iov[1];
/* Our 1 byte buffer */
char buf[1];
@@ -109,20 +109,20 @@ receive_stdout (int s)
/* Initialise the msghdr to receive zero byte */
iov[0].iov_base = buf;
- iov[0].iov_len = 1;
- msg.msg_iov = iov;
- msg.msg_iovlen = 1;
+ iov[0].iov_len = 1;
+ msg.msg_iov = iov;
+ msg.msg_iovlen = 1;
/* Initialise the control data */
- msg.msg_control = cmptr;
- msg.msg_controllen = controllen;
+ msg.msg_control = cmptr;
+ msg.msg_controllen = controllen;
/* Read a message from the socket */
ssize_t n = recvmsg (s, &msg, 0);
if (n < 0)
error (EXIT_FAILURE, errno, "recvmsg stdout fd");
- h = CMSG_FIRSTHDR(&msg);
+ h = CMSG_FIRSTHDR (&msg);
if (NULL == h) {
fprintf (stderr, "didn't receive a stdout file descriptor\n");
}
@@ -142,22 +142,22 @@ static void
send_stdout (int s)
{
static struct cmsghdr *cmptr = NULL;
- struct msghdr msg;
- struct iovec iov[1];
+ struct msghdr msg;
+ struct iovec iov[1];
/* Our 1 byte dummy buffer */
char buf[1];
/* Don't specify a destination */
memset (&msg, 0, sizeof msg);
- msg.msg_name = NULL;
+ msg.msg_name = NULL;
msg.msg_namelen = 0;
/* Initialise the msghdr to send zero byte */
iov[0].iov_base = buf;
- iov[0].iov_len = 1;
- msg.msg_iov = iov;
- msg.msg_iovlen = 1;
+ iov[0].iov_len = 1;
+ msg.msg_iov = iov;
+ msg.msg_iovlen = 1;
/* Initialize the zero byte */
buf[0] = 0;
@@ -169,12 +169,12 @@ send_stdout (int s)
error (EXIT_FAILURE, errno, "malloc");
}
cmptr->cmsg_level = SOL_SOCKET;
- cmptr->cmsg_type = SCM_RIGHTS;
- cmptr->cmsg_len = controllen;
+ cmptr->cmsg_type = SCM_RIGHTS;
+ cmptr->cmsg_len = controllen;
/* Add control header to the message */
- msg.msg_control = cmptr;
- msg.msg_controllen = controllen;
+ msg.msg_control = cmptr;
+ msg.msg_controllen = controllen;
/* Add STDOUT to the control data */
void *data = CMSG_DATA (cmptr);
@@ -248,11 +248,11 @@ rc_listen (void)
pid = getpid ();
create_sockpath (pid, sockpath, sizeof sockpath, &addr);
- sock = socket (AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0);
+ sock = socket (AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (sock == -1)
error (EXIT_FAILURE, errno, "socket");
unlink (sockpath);
- if (bind (sock, (struct sockaddr *) &addr, sizeof addr) == -1)
+ if (bind (sock, (struct sockaddr *)&addr, sizeof addr) == -1)
error (EXIT_FAILURE, errno, "bind: %s", sockpath);
if (listen (sock, 4) == -1)
error (EXIT_FAILURE, errno, "listen: %s", sockpath);
@@ -269,29 +269,32 @@ rc_listen (void)
if (s == -1)
perror ("accept");
else {
- receive_stdout(s);
+ receive_stdout (s);
fp = fdopen (s, "r+");
xdrstdio_create (&xdr, fp, XDR_DECODE);
if (!xdr_guestfish_hello (&xdr, &hello)) {
- fprintf (stderr, _("guestfish: protocol error: could not read
'hello' message\n"));
+ fprintf (stderr, _("guestfish: protocol error: could not read "
+ "'hello' message\n"));
goto error;
}
if (STRNEQ (hello.vers, PACKAGE_VERSION)) {
- fprintf (stderr, _("guestfish: protocol error: version mismatch, server
version '%s' does not match client version '%s'. The two versions must
match exactly.\n"),
- PACKAGE_VERSION,
- hello.vers);
- xdr_free ((xdrproc_t) xdr_guestfish_hello, (char *) &hello);
+ fprintf (stderr,
+ _("guestfish: protocol error: version mismatch, server "
+ "version '%s' does not match client version '%s'.
The "
+ "two versions must match exactly.\n"),
+ PACKAGE_VERSION, hello.vers);
+ xdr_free ((xdrproc_t)xdr_guestfish_hello, (char *)&hello);
goto error;
}
- xdr_free ((xdrproc_t) xdr_guestfish_hello, (char *) &hello);
+ xdr_free ((xdrproc_t)xdr_guestfish_hello, (char *)&hello);
while (xdr_guestfish_call (&xdr, &call)) {
/* We have to extend and NULL-terminate the argv array. */
argc = call.args.args_len;
- argv = realloc (call.args.args_val, (argc+1) * sizeof (char *));
+ argv = realloc (call.args.args_val, (argc + 1) * sizeof (char *));
if (argv == NULL)
error (EXIT_FAILURE, errno, "realloc");
call.args.args_val = argv;
@@ -307,7 +310,7 @@ rc_listen (void)
/* Run the command. */
reply.r = issue_command (call.cmd, argv, NULL, 0);
- xdr_free ((xdrproc_t) xdr_guestfish_call, (char *) &call);
+ xdr_free ((xdrproc_t)xdr_guestfish_call, (char *)&call);
/* RHBZ#802389: If the command is quit, close the handle right
* away. Note that the main while loop will exit preventing
@@ -320,7 +323,7 @@ rc_listen (void)
/* Send the reply. */
xdrstdio_create (&xdr2, fp, XDR_ENCODE);
- (void) xdr_guestfish_reply (&xdr2, &reply);
+ (void)xdr_guestfish_reply (&xdr2, &reply);
xdr_destroy (&xdr2);
/* Exit on error? */
@@ -331,15 +334,16 @@ rc_listen (void)
}
error:
- xdr_destroy (&xdr); /* NB. This doesn't close 'fp'. */
- fclose (fp); /* Closes the underlying socket 's'. */
+ xdr_destroy (&xdr); /* NB. This doesn't close 'fp'. */
+ fclose (fp); /* Closes the underlying socket 's'. */
}
}
unlink (sockpath);
close (sock);
- /* This returns to 'fish.c', where it jumps to global cleanups and exits. */
+ /* This returns to 'fish.c', where it jumps to global cleanups and exits.
+ */
}
/* Remote control client. */
@@ -359,37 +363,42 @@ rc_remote (int pid, const char *cmd, size_t argc, char *argv[],
memset (&reply, 0, sizeof reply);
/* This is fine as long as we never try to xdr_free this struct. */
- hello.vers = (char *) PACKAGE_VERSION;
+ hello.vers = (char *)PACKAGE_VERSION;
/* Check the other end is still running. */
if (kill (pid, 0) == -1) {
- fprintf (stderr, _("guestfish: remote: looks like the server is not
running\n"));
+ fprintf (
+ stderr,
+ _("guestfish: remote: looks like the server is not running\n"));
return -1;
}
create_sockpath (pid, sockpath, sizeof sockpath, &addr);
- sock = socket (AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0);
+ sock = socket (AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (sock == -1) {
perror ("socket");
return -1;
}
- if (connect (sock, (struct sockaddr *) &addr, sizeof addr) == -1) {
+ if (connect (sock, (struct sockaddr *)&addr, sizeof addr) == -1) {
perror (sockpath);
- fprintf (stderr, _("guestfish: remote: looks like the server is not
running\n"));
+ fprintf (
+ stderr,
+ _("guestfish: remote: looks like the server is not running\n"));
close (sock);
return -1;
}
- send_stdout(sock);
+ send_stdout (sock);
/* Send the greeting. */
fp = fdopen (sock, "r+");
xdrstdio_create (&xdr, fp, XDR_ENCODE);
if (!xdr_guestfish_hello (&xdr, &hello)) {
- fprintf (stderr, _("guestfish: protocol error: could not send initial greeting
to server\n"));
+ fprintf (stderr, _("guestfish: protocol error: could not send initial "
+ "greeting to server\n"));
xdr_destroy (&xdr);
fclose (fp);
return -1;
@@ -398,12 +407,13 @@ rc_remote (int pid, const char *cmd, size_t argc, char *argv[],
/* Send the command. The server supports reading multiple commands
* per connection, but this code only ever sends one command.
*/
- call.cmd = (char *) cmd;
+ call.cmd = (char *)cmd;
call.args.args_len = argc;
call.args.args_val = argv;
call.exit_on_error = exit_on_error;
if (!xdr_guestfish_call (&xdr, &call)) {
- fprintf (stderr, _("guestfish: protocol error: could not send initial greeting
to server\n"));
+ fprintf (stderr, _("guestfish: protocol error: could not send initial "
+ "greeting to server\n"));
xdr_destroy (&xdr);
fclose (fp);
return -1;
@@ -414,7 +424,8 @@ rc_remote (int pid, const char *cmd, size_t argc, char *argv[],
xdrstdio_create (&xdr, fp, XDR_DECODE);
if (!xdr_guestfish_reply (&xdr, &reply)) {
- fprintf (stderr, _("guestfish: protocol error: could not decode reply from
server\n"));
+ fprintf (stderr, _("guestfish: protocol error: could not decode reply "
+ "from server\n"));
xdr_destroy (&xdr);
fclose (fp);
return -1;
diff --git a/fish/reopen.c b/fish/reopen.c
index ffe5509..5785835 100644
--- a/fish/reopen.c
+++ b/fish/reopen.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -49,7 +50,8 @@ run_reopen (const char *cmd, size_t argc, char *argv[])
*/
g2 = guestfs_create ();
if (g2 == NULL) {
- fprintf (stderr, _("reopen: guestfs_create: failed to create handle\n"));
+ fprintf (stderr,
+ _("reopen: guestfs_create: failed to create handle\n"));
return -1;
}
diff --git a/fish/setenv.c b/fish/setenv.c
index 5c6c08f..a5b0e91 100644
--- a/fish/setenv.c
+++ b/fish/setenv.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -32,7 +33,8 @@ run_setenv (const char *cmd, size_t argc, char *argv[])
const char *value;
if (argc != 2) {
- fprintf (stderr, _("use '%s VAR value' to set an environment
variable\n"),
+ fprintf (stderr,
+ _("use '%s VAR value' to set an environment variable\n"),
cmd);
return -1;
}
diff --git a/fish/supported.c b/fish/supported.c
index f54aee1..9934f21 100644
--- a/fish/supported.c
+++ b/fish/supported.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -53,7 +54,7 @@ run_supported (const char *cmd, size_t argc, char *argv[])
int r = guestfs_available (g, gg);
const char *str = r == 0 ? _("yes") : _("no");
- printf ("%*s %s\n", (int) len, groups[i], str);
+ printf ("%*s %s\n", (int)len, groups[i], str);
}
/* Restore error handler. */
diff --git a/fish/tilde.c b/fish/tilde.c
index 0d7dfa2..3394b92 100644
--- a/fish/tilde.c
+++ b/fish/tilde.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -43,9 +44,9 @@ try_tilde_expansion (char *str)
assert (str[0] == '~');
/* Expand "~" to current user's home directory. */
- if (str[1] == '\0') /* ~ */
+ if (str[1] == '\0') /* ~ */
return expand_home (str, NULL);
- else if (str[1] == '/') /* ~/... */
+ else if (str[1] == '/') /* ~/... */
return expand_home (str, &str[1]);
/* Try expanding the part up to the following '\0' or '/' as a
@@ -54,7 +55,7 @@ try_tilde_expansion (char *str)
else {
const char *home, *rest;
size_t len = strcspn (&str[1], "/");
- rest = &str[1+len];
+ rest = &str[1 + len];
home = find_home_for_username (&str[1], len);
diff --git a/fish/time.c b/fish/time.c
index 3d1c7bc..1bc28f0 100644
--- a/fish/time.c
+++ b/fish/time.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -45,12 +46,11 @@ run_time (const char *cmd, size_t argc, char *argv[])
gettimeofday (&end_t, NULL);
- start_us = (int64_t) start_t.tv_sec * 1000000 + start_t.tv_usec;
- end_us = (int64_t) end_t.tv_sec * 1000000 + end_t.tv_usec;
+ start_us = (int64_t)start_t.tv_sec * 1000000 + start_t.tv_usec;
+ end_us = (int64_t)end_t.tv_sec * 1000000 + end_t.tv_usec;
elapsed_us = end_us - start_us;
- printf ("elapsed time: %d.%02d seconds\n",
- (int) (elapsed_us / 1000000),
- (int) ((elapsed_us / 10000) % 100));
+ printf ("elapsed time: %d.%02d seconds\n", (int)(elapsed_us / 1000000),
+ (int)((elapsed_us / 10000) % 100));
return 0;
}
diff --git a/fish/uri.c b/fish/uri.c
index 33e820c..c973d1d 100644
--- a/fish/uri.c
+++ b/fish/uri.c
@@ -34,7 +34,9 @@
#include "uri.h"
static int is_uri (const char *arg);
-static int parse (const char *arg, char **path_ret, char **protocol_ret, char
***server_ret, char **username_ret, char **password_ret);
+static int parse (const char *arg, char **path_ret, char **protocol_ret,
+ char ***server_ret, char **username_ret,
+ char **password_ret);
static char *query_get (xmlURIPtr uri, const char *search_name);
static int make_server (xmlURIPtr uri, const char *socket, char ***ret);
@@ -51,8 +53,7 @@ parse_uri (const char *arg, struct uri *uri_ret)
if (is_uri (arg)) {
if (parse (arg, &path, &protocol, &server, &username, &password)
== -1)
return -1;
- }
- else {
+ } else {
/* Ordinary file. */
path = strdup (arg);
if (!path) {
@@ -128,14 +129,16 @@ parse (const char *arg, char **path_ret, char **protocol_ret,
socket = query_get (uri, "socket");
if (uri->server && STRNEQ (uri->server, "") && socket)
{
- fprintf (stderr, _("%s: %s: cannot both a server name and a socket query
parameter\n"),
+ fprintf (stderr, _("%s: %s: cannot both a server name and a socket "
+ "query parameter\n"),
guestfs_int_program_name, arg);
return -1;
}
/* Is this needed? XXX
if (socket && socket[0] != '/') {
- fprintf (stderr, _("%s: --add %s: socket query parameter must be an absolute
path\n"),
+ fprintf (stderr, _("%s: --add %s: socket query parameter must be an
+ absolute path\n"),
guestfs_int_program_name, arg);
return -1;
}
@@ -157,8 +160,8 @@ parse (const char *arg, char **path_ret, char **protocol_ret,
if (uri->user && STRNEQ (uri->user, "")) {
char *p = strchr (uri->user, ':');
if (p != NULL) {
- if (STRNEQ (p+1, "")) {
- *password_ret = strdup (p+1);
+ if (STRNEQ (p + 1, "")) {
+ *password_ret = strdup (p + 1);
if (*password_ret == NULL) {
perror ("strdup: password");
free (*protocol_ret);
@@ -185,10 +188,8 @@ parse (const char *arg, char **path_ret, char **protocol_ret,
*/
path = uri->path;
if (path && path[0] == '/' &&
- (STREQ (uri->scheme, "gluster") ||
- STREQ (uri->scheme, "iscsi") ||
- STREQ (uri->scheme, "rbd") ||
- STREQ (uri->scheme, "sheepdog")))
+ (STREQ (uri->scheme, "gluster") || STREQ (uri->scheme,
"iscsi") ||
+ STREQ (uri->scheme, "rbd") || STREQ (uri->scheme,
"sheepdog")))
path++;
*path_ret = strdup (path ? path : "");
@@ -224,13 +225,14 @@ query_get (xmlURIPtr uri, const char *search_name)
/* Find the next separator, or end of the string. */
end = strchr (query, '&');
if (!end)
- end = strchr(query, ';');
+ end = strchr (query, ';');
if (!end)
end = query + strlen (query);
/* Find the first '=' character between here and end. */
- eq = strchr(query, '=');
- if (eq && eq >= end) eq = NULL;
+ eq = strchr (query, '=');
+ if (eq && eq >= end)
+ eq = NULL;
/* Empty section (eg. "&&"). */
if (end == query)
@@ -241,14 +243,16 @@ query_get (xmlURIPtr uri, const char *search_name)
*/
else if (!eq) {
name = xmlURIUnescapeString (query, end - query, NULL);
- if (!name) goto no_memory;
+ if (!name)
+ goto no_memory;
}
/* Or if we have "name=" here (works around annoying
* problem when calling xmlURIUnescapeString with len = 0).
*/
- else if (eq+1 == end) {
+ else if (eq + 1 == end) {
name = xmlURIUnescapeString (query, eq - query, NULL);
- if (!name) goto no_memory;
+ if (!name)
+ goto no_memory;
}
/* If the '=' character is at the beginning then we have
* "=value" and consistent with CGI.pm we _ignore_ this.
@@ -261,7 +265,7 @@ query_get (xmlURIPtr uri, const char *search_name)
name = xmlURIUnescapeString (query, eq - query, NULL);
if (!name)
goto no_memory;
- value = xmlURIUnescapeString (eq+1, end - (eq+1), NULL);
+ value = xmlURIUnescapeString (eq + 1, end - (eq + 1), NULL);
if (!value) {
goto no_memory;
}
@@ -288,7 +292,7 @@ query_get (xmlURIPtr uri, const char *search_name)
/* search_name not found */
return NULL;
- no_memory:
+no_memory:
perror ("malloc");
return NULL;
}
@@ -310,8 +314,7 @@ make_server (xmlURIPtr uri, const char *socket, char ***ret)
perror ("asprintf");
return -1;
}
- }
- else {
+ } else {
if (asprintf (&server, "tcp:%s:%d", uri->server, uri->port) ==
-1) {
perror ("asprintf");
return -1;
diff --git a/fish/uri.h b/fish/uri.h
index 9202a70..d7d004c 100644
--- a/fish/uri.h
+++ b/fish/uri.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -21,12 +22,13 @@
#ifndef FISH_URI_H
#define FISH_URI_H
-struct uri {
- char *path; /* disk path */
- char *protocol; /* protocol (eg. "file", "nbd") */
- char **server; /* server(s) - can be NULL */
- char *username; /* username - can be NULL */
- char *password; /* password - can be NULL */
+struct uri
+{
+ char *path; /* disk path */
+ char *protocol; /* protocol (eg. "file", "nbd") */
+ char **server; /* server(s) - can be NULL */
+ char *username; /* username - can be NULL */
+ char *password; /* password - can be NULL */
};
/* Parse the '-a' option parameter 'arg', and place the result in
diff --git a/fish/windows.c b/fish/windows.c
index 0634406..bc2cc69 100644
--- a/fish/windows.c
+++ b/fish/windows.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -49,7 +50,8 @@ is_windows (guestfs_h *g, const char *root)
}
char *
-windows_path (guestfs_h *g, const char *root, const char *path, int readonly)
+windows_path (guestfs_h *g, const char *root, const char *path,
+ int readonly)
{
char *ret;
size_t i;
@@ -62,13 +64,11 @@ windows_path (guestfs_h *g, const char *root, const char *path, int
readonly)
ret = strdup (path + 2);
if (ret == NULL)
error (EXIT_FAILURE, errno, "strdup");
- }
- else if (!*path) {
+ } else if (!*path) {
ret = strdup ("/");
if (ret == NULL)
error (EXIT_FAILURE, errno, "strdup");
- }
- else {
+ } else {
ret = strdup (path);
if (ret == NULL)
error (EXIT_FAILURE, errno, "strdup");
@@ -96,9 +96,10 @@ mount_drive_letter (guestfs_h *g, char drive_letter, const char *root,
/* Resolve the drive letter using the drive mappings table. */
CLEANUP_FREE_STRING_LIST char **drives =
- guestfs_inspect_get_drive_mappings (g, root);
+ guestfs_inspect_get_drive_mappings (g, root);
if (drives == NULL || drives[0] == NULL) {
- fprintf (stderr, _("%s: to use Windows drive letters, this must be a Windows
guest\n"),
+ fprintf (stderr, _("%s: to use Windows drive letters, this must be a "
+ "Windows guest\n"),
guestfs_int_program_name);
exit (EXIT_FAILURE);
}
@@ -106,7 +107,7 @@ mount_drive_letter (guestfs_h *g, char drive_letter, const char
*root,
device = NULL;
for (i = 0; drives[i] != NULL; i += 2) {
if (c_tolower (drives[i][0]) == drive_letter && drives[i][1] == '\0')
{
- device = drives[i+1];
+ device = drives[i + 1];
break;
}
}
diff --git a/fish/windows.h b/fish/windows.h
index f684784..f8d2570 100644
--- a/fish/windows.h
+++ b/fish/windows.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#ifndef FISH_WINDOWS_H
diff --git a/format/format.c b/format/format.c
index 4aa31de..fa4fc84 100644
--- a/format/format.c
+++ b/format/format.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -56,11 +57,10 @@ static void parse_vg_lv (const char *lvm);
static int do_format (void);
static int do_rescan (char **devices);
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
char *warning =
- _("IMPORTANT NOTE: This program ERASES ALL DATA on disks.");
+ _("IMPORTANT NOTE: This program ERASES ALL DATA on disks.");
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n%s\n"),
@@ -88,9 +88,8 @@ usage (int status)
"For more information, see the manpage %s(1).\n"
"\n"
"%s\n\n"),
- guestfs_int_program_name, warning,
- guestfs_int_program_name, guestfs_int_program_name,
- warning);
+ guestfs_int_program_name, warning, guestfs_int_program_name,
+ guestfs_int_program_name, warning);
}
exit (status);
}
@@ -133,10 +132,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -159,8 +159,7 @@ main (int argc, char *argv[])
lv = strdup ("LV");
if (!vg || !lv)
error (EXIT_FAILURE, errno, "strdup");
- }
- else if (STREQ (optarg, "none"))
+ } else if (STREQ (optarg, "none"))
vg = lv = NULL;
else
parse_vg_lv (optarg);
@@ -176,8 +175,7 @@ main (int argc, char *argv[])
} else if (STREQ (long_options[option_index].name, "label")) {
label = optarg;
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -242,7 +240,7 @@ main (int argc, char *argv[])
exit (EXIT_FAILURE);
/* Test if the wipefs API is available. */
- have_wipefs = guestfs_feature_available (g, (char **) wipefs);
+ have_wipefs = guestfs_feature_available (g, (char **)wipefs);
/* Perform the format. */
retry = do_format ();
@@ -261,8 +259,7 @@ main (int argc, char *argv[])
exit (EXIT_FAILURE);
guestfs_close (g);
g = g2;
- }
- else
+ } else
/* Failed. */
error (EXIT_FAILURE, 0,
_("failed to rescan the disks after two attempts. This\n"
@@ -301,7 +298,7 @@ parse_vg_lv (const char *lvm)
error (EXIT_FAILURE, errno, "strdup");
} else
cannot_parse:
- error (EXIT_FAILURE, 0, _("cannot parse --lvm option (%s)"), lvm);
+ error (EXIT_FAILURE, 0, _("cannot parse --lvm option (%s)"), lvm);
if (strchr (vg, '/') || strchr (lv, '/'))
goto cannot_parse;
@@ -313,8 +310,7 @@ do_format (void)
{
size_t i;
- CLEANUP_FREE_STRING_LIST char **devices =
- guestfs_list_devices (g);
+ CLEANUP_FREE_STRING_LIST char **devices = guestfs_list_devices (g);
if (devices == NULL)
exit (EXIT_FAILURE);
@@ -328,8 +324,7 @@ do_format (void)
if (guestfs_zero (g, devices[i]) == -1)
exit (EXIT_FAILURE);
}
- }
- else /* wipe */ {
+ } else /* wipe */ {
for (i = 0; devices[i] != NULL; ++i) {
if (guestfs_zero_device (g, devices[i]) == -1)
exit (EXIT_FAILURE);
@@ -356,12 +351,14 @@ do_format (void)
const char *ptype = partition;
int64_t dev_size;
- /* If partition has the magic value "DEFAULT", choose either MBR or
GPT.*/
+ /* If partition has the magic value "DEFAULT", choose either MBR or
+ * GPT.*/
if (STREQ (partition, "DEFAULT")) {
dev_size = guestfs_blockdev_getsize64 (g, devices[i]);
if (dev_size == -1)
exit (EXIT_FAILURE);
- ptype = dev_size < INT64_C(2)*1024*1024*1024*1024 ? "mbr" :
"gpt";
+ ptype = dev_size < INT64_C (2) * 1024 * 1024 * 1024 * 1024 ? "mbr"
+ : "gpt";
}
if (guestfs_part_disk (g, devices[i], ptype) == -1)
@@ -416,7 +413,7 @@ do_format (void)
}
if (filesystem) {
- struct guestfs_mkfs_opts_argv optargs = { .bitmask = 0 };
+ struct guestfs_mkfs_opts_argv optargs = {.bitmask = 0 };
if (label) {
optargs.label = label;
diff --git a/fuse/guestmount.c b/fuse/guestmount.c
index fc03a9c..323ecec 100644
--- a/fuse/guestmount.c
+++ b/fuse/guestmount.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#define FUSE_USE_VERSION 26
@@ -53,8 +54,8 @@ static int write_pid_file (const char *pid_file, pid_t pid);
static void
fuse_opt_add_opt_escaped (char **opts, const char *opt)
{
- unsigned oldlen = *opts ? strlen(*opts) : 0;
- char *d = realloc (*opts, oldlen + 1 + strlen(opt) * 2 + 1);
+ unsigned oldlen = *opts ? strlen (*opts) : 0;
+ char *d = realloc (*opts, oldlen + 1 + strlen (opt) * 2 + 1);
if (!d)
error (EXIT_FAILURE, errno, "realloc");
@@ -83,54 +84,55 @@ int keys_from_stdin = 0;
int echo_keys = 0;
const char *libvirt_uri;
-static void __attribute__((noreturn))
-fuse_help (void)
+static void __attribute__ ((noreturn)) fuse_help (void)
{
static struct fuse_operations null_operations;
const char *tmp_argv[] = { guestfs_int_program_name, "--help", NULL };
- fuse_main (2, (char **) tmp_argv, &null_operations, NULL);
+ fuse_main (2, (char **)tmp_argv, &null_operations, NULL);
exit (EXIT_SUCCESS);
}
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: FUSE module for libguestfs\n"
- "%s lets you mount a virtual machine filesystem\n"
- "Copyright (C) 2009-2016 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options] mountpoint\n"
- "Options:\n"
- " -a|--add image Add image\n"
- " -c|--connect uri Specify libvirt URI for -d option\n"
- " --dir-cache-timeout Set readdir cache timeout (default 5
sec)\n"
- " -d|--domain guest Add disks from libvirt guest\n"
- " --echo-keys Don't turn off echo for
passphrases\n"
- " --fd=FD Write to pipe FD when mountpoint is
ready\n"
- " --format[=raw|..] Force disk format for -a option\n"
- " --fuse-help Display extra FUSE options\n"
- " -i|--inspector Automatically mount filesystems\n"
- " --help Display help message and exit\n"
- " --keys-from-stdin Read passphrases from stdin\n"
- " --live Connect to a live virtual machine\n"
- " -m|--mount dev[:mnt[:opts[:fstype]] Mount dev on mnt (if omitted,
/)\n"
- " --no-fork Don't daemonize\n"
- " -n|--no-sync Don't autosync\n"
- " -o|--option opt Pass extra option to FUSE\n"
- " --pid-file filename Write PID to filename\n"
- " -r|--ro Mount read-only\n"
- " --selinux Enable SELinux support\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- " -w|--rw Mount read-write\n"
- " -x|--trace Trace guestfs API calls\n"
- ),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name);
+ printf (
+ _("%s: FUSE module for libguestfs\n"
+ "%s lets you mount a virtual machine filesystem\n"
+ "Copyright (C) 2009-2016 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options] mountpoint\n"
+ "Options:\n"
+ " -a|--add image Add image\n"
+ " -c|--connect uri Specify libvirt URI for -d option\n"
+ " --dir-cache-timeout Set readdir cache timeout (default 5 "
+ "sec)\n"
+ " -d|--domain guest Add disks from libvirt guest\n"
+ " --echo-keys Don't turn off echo for passphrases\n"
+ " --fd=FD Write to pipe FD when mountpoint is "
+ "ready\n"
+ " --format[=raw|..] Force disk format for -a option\n"
+ " --fuse-help Display extra FUSE options\n"
+ " -i|--inspector Automatically mount filesystems\n"
+ " --help Display help message and exit\n"
+ " --keys-from-stdin Read passphrases from stdin\n"
+ " --live Connect to a live virtual machine\n"
+ " -m|--mount dev[:mnt[:opts[:fstype]] Mount dev on mnt (if "
+ "omitted, /)\n"
+ " --no-fork Don't daemonize\n"
+ " -n|--no-sync Don't autosync\n"
+ " -o|--option opt Pass extra option to FUSE\n"
+ " --pid-file filename Write PID to filename\n"
+ " -r|--ro Mount read-only\n"
+ " --selinux Enable SELinux support\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ " -w|--rw Mount read-write\n"
+ " -x|--trace Trace guestfs API calls\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name);
}
exit (status);
}
@@ -212,10 +214,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -229,7 +232,8 @@ main (int argc, char *argv[])
exit (EXIT_FAILURE);
} else if (STREQ (long_options[option_index].name, "format")) {
OPTION_format;
- } else if (STREQ (long_options[option_index].name, "keys-from-stdin")) {
+ } else if (STREQ (long_options[option_index].name,
+ "keys-from-stdin")) {
keys_from_stdin = 1;
} else if (STREQ (long_options[option_index].name, "echo-keys")) {
echo_keys = 1;
@@ -244,8 +248,7 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, 0,
_("unable to parse --fd option value: %s"), optarg);
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -312,17 +315,20 @@ main (int argc, char *argv[])
/* Check we have the right options. */
if (!live) {
if (!drvs || !(mps || inspector))
- error (EXIT_FAILURE, 0,
- _("must have at least one -a/-d and at least one -m/-i option"));
+ error (
+ EXIT_FAILURE, 0,
+ _("must have at least one -a/-d and at least one -m/-i option"));
} else {
size_t count_d = 0, count_other = 0;
struct drv *drv;
if (read_only)
- error (EXIT_FAILURE, 0, _("--live is not compatible with --ro option"));
+ error (EXIT_FAILURE, 0,
+ _("--live is not compatible with --ro option"));
if (inspector)
- error (EXIT_FAILURE, 0, _("--live is not compatible with -i option"));
+ error (EXIT_FAILURE, 0,
+ _("--live is not compatible with -i option"));
/* --live: make sure there was one -d option and no -a options */
for (drv = drvs; drv; drv = drv->next) {
@@ -337,11 +343,12 @@ main (int argc, char *argv[])
_("with --live, you must use exactly one -d option"));
if (count_other != 0)
- error (EXIT_FAILURE, 0, _("--live is not compatible with -a option"));
+ error (EXIT_FAILURE, 0,
+ _("--live is not compatible with -a option"));
}
/* We'd better have a mountpoint. */
- if (optind+1 != argc)
+ if (optind + 1 != argc)
error (EXIT_FAILURE, 0,
_("you must specify a mountpoint in the host filesystem"));
@@ -394,7 +401,7 @@ main (int argc, char *argv[])
if (pid == -1)
error (EXIT_FAILURE, errno, "fork");
- if (pid != 0) { /* parent */
+ if (pid != 0) { /* parent */
if (write_pid_file (pid_file, pid) == -1)
_exit (EXIT_FAILURE);
if (write_pipe_fd (pipe_fd) == -1)
@@ -417,8 +424,7 @@ main (int argc, char *argv[])
if (fd > 2)
close (fd);
}
- }
- else {
+ } else {
/* not forking, write PID file and pipe FD anyway */
if (write_pid_file (pid_file, getpid ()) == -1)
exit (EXIT_FAILURE);
diff --git a/fuse/guestunmount.c b/fuse/guestunmount.c
index 06db4ef..eeff0df 100644
--- a/fuse/guestunmount.c
+++ b/fuse/guestunmount.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -46,27 +47,26 @@ static bool quiet = false;
static size_t retries = 5;
static bool verbose = false;
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: clean up a mounted filesystem\n"
- "Copyright (C) 2013 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--fd=FD] mountpoint\n"
- "Options:\n"
- " --fd=FD Pipe file descriptor to monitor\n"
- " --help Display help message and exit\n"
- " -q|--quiet Don't print fusermount errors\n"
- " --no-retry Don't retry fusermount\n"
- " --retry=N Retry fusermount N times (default: 5)\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- ),
- guestfs_int_program_name, guestfs_int_program_name);
+ printf (
+ _("%s: clean up a mounted filesystem\n"
+ "Copyright (C) 2013 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--fd=FD] mountpoint\n"
+ "Options:\n"
+ " --fd=FD Pipe file descriptor to monitor\n"
+ " --help Display help message and exit\n"
+ " -q|--quiet Don't print fusermount errors\n"
+ " --no-retry Don't retry fusermount\n"
+ " --retry=N Retry fusermount N times (default: 5)\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"),
+ guestfs_int_program_name, guestfs_int_program_name);
}
exit (status);
}
@@ -78,14 +78,10 @@ main (int argc, char *argv[])
static const char *options = "qv?V";
static const struct option long_options[] = {
- { "fd", 1, 0, 0 },
- { "help", 0, 0, HELP_OPTION },
- { "quiet", 0, 0, 'q' },
- { "no-retry", 0, 0, 0 },
- { "retry", 1, 0, 0 },
- { "verbose", 0, 0, 'v' },
- { "version", 0, 0, 'V' },
- { 0, 0, 0, 0 }
+ { "fd", 1, 0, 0 }, { "help", 0, 0, HELP_OPTION },
+ { "quiet", 0, 0, 'q' }, { "no-retry", 0, 0, 0 },
+ { "retry", 1, 0, 0 }, { "verbose", 0, 0, 'v' },
+ { "version", 0, 0, 'V' }, { 0, 0, 0, 0 }
};
int c, fd = -1;
@@ -102,10 +98,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "fd")) {
if (sscanf (optarg, "%d", &fd) != 1 || fd < 0) {
fprintf (stderr, _("%s: cannot parse fd option '%s'\n"),
@@ -116,13 +113,15 @@ main (int argc, char *argv[])
retries = 0;
} else if (STREQ (long_options[option_index].name, "retry")) {
if (sscanf (optarg, "%zu", &retries) != 1 || retries >= 64) {
- fprintf (stderr, _("%s: cannot parse retries option or value is too large
'%s'\n"),
+ fprintf (stderr, _("%s: cannot parse retries option or value is "
+ "too large '%s'\n"),
guestfs_int_program_name, optarg);
exit (EXIT_FAILURE);
}
} else {
fprintf (stderr, _("%s: unknown long option: %s (%d)\n"),
- guestfs_int_program_name, long_options[option_index].name,
option_index);
+ guestfs_int_program_name, long_options[option_index].name,
+ option_index);
exit (EXIT_FAILURE);
}
break;
@@ -148,10 +147,11 @@ main (int argc, char *argv[])
}
/* We'd better have a mountpoint. */
- if (optind+1 != argc) {
- fprintf (stderr,
- _("%s: you must specify a mountpoint in the host filesystem\n"),
- guestfs_int_program_name);
+ if (optind + 1 != argc) {
+ fprintf (
+ stderr,
+ _("%s: you must specify a mountpoint in the host filesystem\n"),
+ guestfs_int_program_name);
exit (EXIT_FAILURE);
}
@@ -175,8 +175,7 @@ main (int argc, char *argv[])
if (poll (&pollfd, 1, -1) == -1) {
if (errno != EAGAIN && errno != EINTR)
error (EXIT_FAILURE, errno, "poll");
- }
- else {
+ } else {
if ((pollfd.revents & POLLHUP) != 0)
break;
}
@@ -186,7 +185,7 @@ main (int argc, char *argv[])
/* Unmount the filesystem. We may have to try a few times. */
for (i = 0; i <= retries; ++i) {
if (i > 0)
- sleep (1 << (i-1));
+ sleep (1 << (i - 1));
free (error_str);
error_str = NULL;
@@ -195,8 +194,7 @@ main (int argc, char *argv[])
goto done;
/* Did fusermount fail because the mountpoint is not mounted? */
- if (error_str &&
- strstr (error_str, "fusermount: entry for") != NULL) {
+ if (error_str && strstr (error_str, "fusermount: entry for") !=
NULL) {
goto not_mounted;
}
}
@@ -211,8 +209,8 @@ main (int argc, char *argv[])
exit (2);
- /* not mounted */
- not_mounted:
+/* not mounted */
+not_mounted:
if (!quiet)
fprintf (stderr, _("%s: %s is not mounted: %s\n"),
guestfs_int_program_name, mountpoint, error_str);
@@ -221,8 +219,8 @@ main (int argc, char *argv[])
exit (3);
- /* success */
- done:
+/* success */
+done:
exit (EXIT_SUCCESS);
}
@@ -246,7 +244,7 @@ do_fusermount (const char *mountpoint, char **error_rtn)
if (pid == -1)
error (EXIT_FAILURE, errno, "fork");
- if (pid == 0) { /* Child - run fusermount. */
+ if (pid == 0) { /* Child - run fusermount. */
close (fd[0]);
dup2 (fd[1], 1);
dup2 (fd[1], 2);
@@ -292,8 +290,8 @@ do_fusermount (const char *mountpoint, char **error_rtn)
if (buf) {
/* Remove any trailing \n from the error message. */
- while (len > 0 && buf[len-1] == '\n') {
- buf[len-1] = '\0';
+ while (len > 0 && buf[len - 1] == '\n') {
+ buf[len - 1] = '\0';
len--;
}
@@ -310,7 +308,7 @@ do_fusermount (const char *mountpoint, char **error_rtn)
fprintf (stderr, "%s\n", buf);
*error_rtn = buf;
- return 1; /* fusermount or exec failed */
+ return 1; /* fusermount or exec failed */
}
if (verbose)
@@ -318,7 +316,7 @@ do_fusermount (const char *mountpoint, char **error_rtn)
guestfs_int_program_name);
free (buf);
- return 0; /* fusermount successful */
+ return 0; /* fusermount successful */
}
/* Try running 'fuser' on the mountpoint. This is for information
@@ -333,7 +331,7 @@ do_fuser (const char *mountpoint)
if (pid == -1)
error (EXIT_FAILURE, errno, "fork");
- if (pid == 0) { /* Child - run fuser. */
+ if (pid == 0) { /* Child - run fuser. */
#ifdef __linux__
execlp (FUSER, "fuser", "-v", "-m", mountpoint, NULL);
#else
diff --git a/fuse/test-fuse.c b/fuse/test-fuse.c
index 35d75d5..f0a8cc1 100644
--- a/fuse/test-fuse.c
+++ b/fuse/test-fuse.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* This used to be a shell script test, but using C gives us finer
@@ -56,7 +57,7 @@
static guestfs_h *g;
-#define SIZE INT64_C(1024*1024*1024)
+#define SIZE INT64_C (1024 * 1024 * 1024)
/* NB: Must be a path that does not need quoting. */
static char mountpoint[] = "/tmp/testfuseXXXXXX";
@@ -102,12 +103,14 @@ main (int argc, char *argv[])
exit (EXIT_FAILURE);
/* Test features. */
- acl_available = guestfs_feature_available (g, (char **) acl_group);
- if (acl_available == -1) exit (EXIT_FAILURE);
+ acl_available = guestfs_feature_available (g, (char **)acl_group);
+ if (acl_available == -1)
+ exit (EXIT_FAILURE);
linuxxattrs_available =
- guestfs_feature_available (g, (char **) linuxxattrs_group);
- if (linuxxattrs_available == -1) exit (EXIT_FAILURE);
+ guestfs_feature_available (g, (char **)linuxxattrs_group);
+ if (linuxxattrs_available == -1)
+ exit (EXIT_FAILURE);
create_initial_filesystem ();
@@ -117,9 +120,8 @@ main (int argc, char *argv[])
/* Mount the filesystem on the host using FUSE. */
debug_calls = guestfs_get_trace (g);
- if (guestfs_mount_local (g, mountpoint,
- GUESTFS_MOUNT_LOCAL_DEBUGCALLS, debug_calls,
- -1) == -1)
+ if (guestfs_mount_local (g, mountpoint, GUESTFS_MOUNT_LOCAL_DEBUGCALLS,
+ debug_calls, -1) == -1)
exit (EXIT_FAILURE);
/* Fork to run the next part of the test. */
@@ -127,7 +129,7 @@ main (int argc, char *argv[])
if (pid == -1)
error (EXIT_FAILURE, errno, "fork");
- if (pid == 0) { /* Child. */
+ if (pid == 0) { /* Child. */
/* Move into the mountpoint for the tests. */
if (chdir (mountpoint) == -1) {
perror (mountpoint);
@@ -155,7 +157,8 @@ main (int argc, char *argv[])
fflush (stdout);
r = system (cmd);
if (!WIFEXITED (r) || WEXITSTATUS (r) != EXIT_SUCCESS)
- fprintf (stderr, "%s: warning: guestunmount command failed\n", argv[0]);
+ fprintf (stderr, "%s: warning: guestunmount command failed\n",
+ argv[0]);
_exit (res == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
}
@@ -184,7 +187,8 @@ main (int argc, char *argv[])
guestfs_close (g);
/* Did the child process fail? */
- exit (!WIFEXITED (r) || WEXITSTATUS (r) != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
+ exit (!WIFEXITED (r) || WEXITSTATUS (r) != 0 ? EXIT_FAILURE
+ : EXIT_SUCCESS);
}
/* Create a filesystem with some initial content. */
@@ -197,9 +201,8 @@ create_initial_filesystem (void)
/* Use ext4 because it supports modern features. Use >= 256 byte
* inodes because these support nanosecond timestamps.
*/
- if (guestfs_mkfs_opts (g, "ext4", "/dev/sda1",
- GUESTFS_MKFS_OPTS_INODE, 256,
- -1) == -1)
+ if (guestfs_mkfs_opts (g, "ext4", "/dev/sda1",
GUESTFS_MKFS_OPTS_INODE,
+ 256, -1) == -1)
exit (EXIT_FAILURE);
if (guestfs_mount_options (g, "acl,user_xattr", "/dev/sda1",
"/") == -1)
@@ -218,7 +221,8 @@ create_initial_filesystem (void)
if (guestfs_touch (g, "/user_xattr") == -1)
exit (EXIT_FAILURE);
- if (guestfs_setxattr (g, "user.test", "hello123", 8,
"/user_xattr") == -1)
+ if (guestfs_setxattr (g, "user.test", "hello123", 8,
"/user_xattr") ==
+ -1)
exit (EXIT_FAILURE);
}
@@ -237,8 +241,8 @@ static int
test_fuse (void)
{
int stage = 0;
-#define STAGE(fs,...) \
- printf ("%02d: " fs "\n", ++stage, ##__VA_ARGS__); \
+#define STAGE(fs, ...) \
+ printf ("%02d: " fs "\n", ++stage, ##__VA_ARGS__);
\
fflush (stdout)
FILE *fp;
char *line = NULL;
@@ -319,7 +323,8 @@ test_fuse (void)
return -1;
}
if (statbuf.st_size != 0) {
- fprintf (stderr, "'empty' has invalid size (%d)\n", (int)
statbuf.st_size);
+ fprintf (stderr, "'empty' has invalid size (%d)\n",
+ (int)statbuf.st_size);
return -1;
}
@@ -328,12 +333,13 @@ test_fuse (void)
return -1;
}
if ((statbuf.st_mode & 0777) != 0644) {
- fprintf (stderr, "'hello.txt' has invalid mode (%o)\n",
statbuf.st_mode);
+ fprintf (stderr, "'hello.txt' has invalid mode (%o)\n",
+ statbuf.st_mode);
return -1;
}
if (statbuf.st_size != 5) {
fprintf (stderr, "'hello.txt' has invalid size (%d)\n",
- (int) statbuf.st_size);
+ (int)statbuf.st_size);
return -1;
}
@@ -342,12 +348,13 @@ test_fuse (void)
return -1;
}
if ((statbuf.st_mode & 0777) != 0644) {
- fprintf (stderr, "'world.txt' has invalid mode (%o)\n",
statbuf.st_mode);
+ fprintf (stderr, "'world.txt' has invalid mode (%o)\n",
+ statbuf.st_mode);
return -1;
}
if (statbuf.st_size != 11) {
fprintf (stderr, "'world.txt' has invalid size (%d)\n",
- (int) statbuf.st_size);
+ (int)statbuf.st_size);
return -1;
}
@@ -403,7 +410,7 @@ test_fuse (void)
}
if (statbuf.st_nlink != 1) {
fprintf (stderr, "nlink of 'hello.txt' was %d (expected 1)\n",
- (int) statbuf.st_nlink);
+ (int)statbuf.st_nlink);
return -1;
}
@@ -418,7 +425,7 @@ test_fuse (void)
}
if (statbuf.st_nlink != 2) {
fprintf (stderr, "nlink of 'link' was %d (expected 2)\n",
- (int) statbuf.st_nlink);
+ (int)statbuf.st_nlink);
return -1;
}
@@ -428,7 +435,7 @@ test_fuse (void)
}
if (statbuf.st_nlink != 2) {
fprintf (stderr, "nlink of 'hello.txt' was %d (expected 2)\n",
- (int) statbuf.st_nlink);
+ (int)statbuf.st_nlink);
return -1;
}
@@ -542,7 +549,7 @@ test_fuse (void)
}
if (statbuf.st_size != u) {
fprintf (stderr, "unexpected size: was %u expected %u\n",
- (unsigned) statbuf.st_size, u);
+ (unsigned)statbuf.st_size, u);
return -1;
}
}
@@ -553,15 +560,16 @@ test_fuse (void)
STAGE ("checking utimes");
- fd = open ("timestamp", O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY|O_CLOEXEC, 0644);
+ fd = open ("timestamp",
+ O_WRONLY | O_CREAT | O_TRUNC | O_NOCTTY | O_CLOEXEC, 0644);
if (fd == -1) {
perror ("open: timestamp");
return -1;
}
close (fd);
- tv[0].tv_sec = 23; /* atime */
+ tv[0].tv_sec = 23; /* atime */
tv[0].tv_usec = 45;
- tv[1].tv_sec = 67; /* mtime */
+ tv[1].tv_sec = 67; /* mtime */
tv[1].tv_usec = 89;
if (utimes ("timestamp", tv) == -1) {
perror ("utimes: timestamp");
@@ -571,26 +579,25 @@ test_fuse (void)
perror ("fstat: timestamp");
return -1;
}
- if (statbuf.st_atime != 23 ||
- statbuf.st_atim.tv_nsec != 45000 ||
- statbuf.st_mtime != 67 ||
- statbuf.st_mtim.tv_nsec != 89000) {
+ if (statbuf.st_atime != 23 || statbuf.st_atim.tv_nsec != 45000 ||
+ statbuf.st_mtime != 67 || statbuf.st_mtim.tv_nsec != 89000) {
fprintf (stderr, "utimes did not set time (%d/%d/%d/%d)\n",
- (int) statbuf.st_atime, (int) statbuf.st_atim.tv_nsec,
- (int) statbuf.st_mtime, (int) statbuf.st_mtim.tv_nsec);
+ (int)statbuf.st_atime, (int)statbuf.st_atim.tv_nsec,
+ (int)statbuf.st_mtime, (int)statbuf.st_mtim.tv_nsec);
return -1;
}
STAGE ("checking utimens");
- fd = open ("timestamp", O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY|O_CLOEXEC, 0644);
+ fd = open ("timestamp",
+ O_WRONLY | O_CREAT | O_TRUNC | O_NOCTTY | O_CLOEXEC, 0644);
if (fd == -1) {
perror ("open: timestamp");
return -1;
}
- ts[0].tv_sec = 12; /* atime */
+ ts[0].tv_sec = 12; /* atime */
ts[0].tv_nsec = 34;
- ts[1].tv_sec = 56; /* mtime */
+ ts[1].tv_sec = 56; /* mtime */
ts[1].tv_nsec = 78;
if (futimens (fd, ts) == -1) {
perror ("futimens: timestamp");
@@ -602,13 +609,11 @@ test_fuse (void)
close (fd);
return -1;
}
- if (statbuf.st_atime != 12 ||
- statbuf.st_atim.tv_nsec != 34 ||
- statbuf.st_mtime != 56 ||
- statbuf.st_mtim.tv_nsec != 78) {
+ if (statbuf.st_atime != 12 || statbuf.st_atim.tv_nsec != 34 ||
+ statbuf.st_mtime != 56 || statbuf.st_mtim.tv_nsec != 78) {
fprintf (stderr, "utimens did not set time (%d/%d/%d/%d)\n",
- (int) statbuf.st_atime, (int) statbuf.st_atim.tv_nsec,
- (int) statbuf.st_mtime, (int) statbuf.st_mtim.tv_nsec);
+ (int)statbuf.st_atime, (int)statbuf.st_atim.tv_nsec,
+ (int)statbuf.st_mtime, (int)statbuf.st_mtim.tv_nsec);
close (fd);
return -1;
}
@@ -658,16 +663,19 @@ test_fuse (void)
STAGE ("checking POSIX ACL read operation");
acl = acl_get_file ("acl", ACL_TYPE_ACCESS);
- if (acl == (acl_t) NULL) {
+ if (acl == (acl_t)NULL) {
perror ("acl_get_file: acl");
return -1;
}
- acl_text = acl_to_any_text (acl, NULL, '\n', TEXT_SOME_EFFECTIVE |
TEXT_NUMERIC_IDS);
+ acl_text = acl_to_any_text (acl, NULL, '\n',
+ TEXT_SOME_EFFECTIVE | TEXT_NUMERIC_IDS);
if (acl_text == NULL) {
perror ("acl_to_any_text: acl");
return -1;
}
- if (STRNEQ (acl_text,
"user::rwx\nuser:500:r--\ngroup::rwx\nmask::rwx\nother::r-x")) {
+ if (STRNEQ (
+ acl_text,
+ "user::rwx\nuser:500:r--\ngroup::rwx\nmask::rwx\nother::r-x")) {
fprintf (stderr, "unexpected acl: %s\n", acl_text);
return -1;
}
@@ -686,7 +694,8 @@ test_fuse (void)
return -1;
}
if (r != 8 || memcmp (buf, "hello123", r) != 0) {
- fprintf (stderr, "user.test xattr on file user_xattr was incorrect\n");
+ fprintf (stderr,
+ "user.test xattr on file user_xattr was incorrect\n");
return -1;
}
}
diff --git a/fuse/test-guestmount-fd.c b/fuse/test-guestmount-fd.c
index 5f358bb..eb1af7f 100644
--- a/fuse/test-guestmount-fd.c
+++ b/fuse/test-guestmount-fd.c
@@ -88,16 +88,14 @@ main (int argc, char *argv[])
if (pid == -1)
error (EXIT_FAILURE, errno, "fork");
- if (pid == 0) { /* child - guestmount */
+ if (pid == 0) { /* child - guestmount */
char fd_str[64];
close (pipefd[0]);
snprintf (fd_str, sizeof fd_str, "%d", pipefd[1]);
- execlp (GUESTMOUNT_BINARY,
- "guestmount",
- "--fd", fd_str, "--no-fork",
+ execlp (GUESTMOUNT_BINARY, "guestmount", "--fd", fd_str,
"--no-fork",
"--ro", "-a", TEST_IMAGE, "-i", MOUNTPOINT,
NULL);
perror ("execlp");
_exit (EXIT_FAILURE);
@@ -122,7 +120,8 @@ main (int argc, char *argv[])
/* Check that the test image was mounted. */
if (access (TEST_FILE, R_OK) == -1) {
- fprintf (stderr, "%s: test failed because test image is not mounted and
ready.",
+ fprintf (stderr,
+ "%s: test failed because test image is not mounted and ready.",
guestfs_int_program_name);
ignore_value (rmdir (MOUNTPOINT));
exit (EXIT_FAILURE);
@@ -135,8 +134,8 @@ main (int argc, char *argv[])
fprintf (stderr, "%s: test failed: %s\n", guestfs_int_program_name,
guestfs_int_exit_status_to_string (r, GUESTUNMOUNT_BINARY,
- status_string,
- sizeof status_string));
+ status_string,
+ sizeof status_string));
ignore_value (rmdir (MOUNTPOINT));
exit (EXIT_FAILURE);
}
@@ -153,11 +152,10 @@ main (int argc, char *argv[])
if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) {
char status_string[80];
- fprintf (stderr, "%s: test failed: %s\n",
- guestfs_int_program_name,
+ fprintf (stderr, "%s: test failed: %s\n", guestfs_int_program_name,
guestfs_int_exit_status_to_string (status, GUESTMOUNT_BINARY,
- status_string,
- sizeof status_string));
+ status_string,
+ sizeof status_string));
ignore_value (rmdir (MOUNTPOINT));
exit (EXIT_FAILURE);
}
diff --git a/fuse/test-guestunmount-fd.c b/fuse/test-guestunmount-fd.c
index a937893..9f339f2 100644
--- a/fuse/test-guestunmount-fd.c
+++ b/fuse/test-guestunmount-fd.c
@@ -69,7 +69,7 @@ main (int argc, char *argv[])
if (pid == -1)
error (EXIT_FAILURE, errno, "fork");
- if (pid == 0) { /* child - guestunmount */
+ if (pid == 0) { /* child - guestunmount */
char fd_str[64];
close (pipefd[1]);
@@ -95,9 +95,8 @@ main (int argc, char *argv[])
char status_string[80];
fprintf (stderr, "%s: test failed: %s\n", guestfs_int_program_name,
- guestfs_int_exit_status_to_string (r, "guestunmount",
- status_string,
- sizeof status_string));
+ guestfs_int_exit_status_to_string (
+ r, "guestunmount", status_string, sizeof status_string));
exit (EXIT_FAILURE);
}
@@ -113,11 +112,12 @@ main (int argc, char *argv[])
if (!WIFEXITED (status) || WEXITSTATUS (status) != 3) {
char status_string[80];
- fprintf (stderr, "%s: test failed: guestunmount didn't return status code 3;
%s\n",
- guestfs_int_program_name,
- guestfs_int_exit_status_to_string (status, "guestunmount",
- status_string,
- sizeof status_string));
+ fprintf (
+ stderr,
+ "%s: test failed: guestunmount didn't return status code 3; %s\n",
+ guestfs_int_program_name,
+ guestfs_int_exit_status_to_string (
+ status, "guestunmount", status_string, sizeof status_string));
exit (EXIT_FAILURE);
}
diff --git a/inspector/inspector.c b/inspector/inspector.c
index 2519816..923a2a4 100644
--- a/inspector/inspector.c
+++ b/inspector/inspector.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -63,35 +64,37 @@ static void output_drive_mappings (xmlTextWriterPtr xo, char *root);
static void output_applications (xmlTextWriterPtr xo, char *root);
static void do_xpath (const char *query);
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: display information about a virtual machine\n"
- "Copyright (C) 2010 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options] -d domname file [file ...]\n"
- " %s [--options] -a disk.img [-a disk.img ...] file [file
...]\n"
- "Options:\n"
- " -a|--add image Add image\n"
- " -c|--connect uri Specify libvirt URI for -d option\n"
- " -d|--domain guest Add disks from libvirt guest\n"
- " --echo-keys Don't turn off echo for
passphrases\n"
- " --format[=raw|..] Force disk format for -a option\n"
- " --help Display brief help\n"
- " --keys-from-stdin Read passphrases from stdin\n"
- " --no-applications Do not output the installed
applications\n"
- " --no-icon Do not output the guest icon\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- " -x Trace libguestfs API calls\n"
- " --xpath query Perform an XPath query\n"
- "For more information, see the manpage %s(1).\n"),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name, guestfs_int_program_name);
+ printf (
+ _("%s: display information about a virtual machine\n"
+ "Copyright (C) 2010 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options] -d domname file [file ...]\n"
+ " %s [--options] -a disk.img [-a disk.img ...] file [file "
+ "...]\n"
+ "Options:\n"
+ " -a|--add image Add image\n"
+ " -c|--connect uri Specify libvirt URI for -d option\n"
+ " -d|--domain guest Add disks from libvirt guest\n"
+ " --echo-keys Don't turn off echo for passphrases\n"
+ " --format[=raw|..] Force disk format for -a option\n"
+ " --help Display brief help\n"
+ " --keys-from-stdin Read passphrases from stdin\n"
+ " --no-applications Do not output the installed "
+ "applications\n"
+ " --no-icon Do not output the guest icon\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ " -x Trace libguestfs API calls\n"
+ " --xpath query Perform an XPath query\n"
+ "For more information, see the manpage %s(1).\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name, guestfs_int_program_name);
}
exit (status);
}
@@ -136,10 +139,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -152,14 +156,15 @@ main (int argc, char *argv[])
OPTION_format;
} else if (STREQ (long_options[option_index].name, "xpath")) {
xpath = optarg;
- } else if (STREQ (long_options[option_index].name, "no-applications")) {
+ } else if (STREQ (long_options[option_index].name,
+ "no-applications")) {
inspect_apps = 0;
} else if (STREQ (long_options[option_index].name, "no-icon")) {
inspect_icon = 0;
} else {
fprintf (stderr, _("%s: unknown long option: %s (%d)\n"),
- guestfs_int_program_name,
- long_options[option_index].name, option_index);
+ guestfs_int_program_name, long_options[option_index].name,
+ option_index);
exit (EXIT_FAILURE);
}
break;
@@ -212,7 +217,7 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, errno, "strdup");
drv->next = drvs;
drvs = drv;
- } else { /* simulate -d option */
+ } else { /* simulate -d option */
drv = calloc (1, sizeof (struct drv));
if (!drv)
error (EXIT_FAILURE, errno, "calloc");
@@ -278,7 +283,15 @@ main (int argc, char *argv[])
CLEANUP_FREE_STRING_LIST char **roots = guestfs_inspect_os (g);
if (roots == NULL)
error (EXIT_FAILURE, 0,
- _("no operating system could be detected inside this disk
image.\n\nThis may be because the file is not a disk image, or is not a virtual
machine\nimage, or because the OS type is not understood by libguestfs.\n\nNOTE for Red
Hat Enterprise Linux 6 users: for Windows guest support you must\ninstall the separate
libguestfs-winsupport package.\n\nIf you feel this is an error, please file a bug report
including as much\ninformation about the disk image as possible.\n"));
+ _("no operating system could be detected inside this disk "
+ "image.\n\nThis may be because the file is not a disk "
+ "image, or is not a virtual machine\nimage, or because the "
+ "OS type is not understood by libguestfs.\n\nNOTE for Red "
+ "Hat Enterprise Linux 6 users: for Windows guest support "
+ "you must\ninstall the separate libguestfs-winsupport "
+ "package.\n\nIf you feel this is an error, please file a "
+ "bug report including as much\ninformation about the disk "
+ "image as possible.\n"));
output (roots);
}
@@ -288,9 +301,10 @@ main (int argc, char *argv[])
exit (EXIT_SUCCESS);
}
-#define XMLERROR(code,e) do { \
- if ((e) == (code)) \
- error (EXIT_FAILURE, errno, _("XML write error at \"%s\""),
#e); \
+#define XMLERROR(code, e) \
+ do { \
+ if ((e) == (code)) \
+ error (EXIT_FAILURE, errno, _("XML write error at \"%s\""),
#e); \
} while (0)
static void
@@ -321,7 +335,8 @@ output_roots (xmlTextWriterPtr xo, char **roots)
{
size_t i;
- XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "operatingsystems"));
+ XMLERROR (-1,
+ xmlTextWriterStartElement (xo, BAD_CAST "operatingsystems"));
for (i = 0; roots[i] != NULL; ++i)
output_root (xo, roots[i]);
XMLERROR (-1, xmlTextWriterEndElement (xo));
@@ -341,67 +356,73 @@ output_root (xmlTextWriterPtr xo, char *root)
canonical_root = guestfs_canonical_device_name (g, root);
if (canonical_root == NULL)
exit (EXIT_FAILURE);
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "root", BAD_CAST
canonical_root));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "root",
+ BAD_CAST canonical_root));
free (canonical_root);
str = guestfs_inspect_get_type (g, root);
- if (!str) exit (EXIT_FAILURE);
+ if (!str)
+ exit (EXIT_FAILURE);
if (STRNEQ (str, "unknown"))
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "name", BAD_CAST str));
+ XMLERROR (
+ -1, xmlTextWriterWriteElement (xo, BAD_CAST "name", BAD_CAST str));
free (str);
str = guestfs_inspect_get_arch (g, root);
- if (!str) exit (EXIT_FAILURE);
+ if (!str)
+ exit (EXIT_FAILURE);
if (STRNEQ (str, "unknown"))
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "arch", BAD_CAST str));
+ XMLERROR (
+ -1, xmlTextWriterWriteElement (xo, BAD_CAST "arch", BAD_CAST str));
free (str);
str = guestfs_inspect_get_distro (g, root);
- if (!str) exit (EXIT_FAILURE);
+ if (!str)
+ exit (EXIT_FAILURE);
if (STRNEQ (str, "unknown"))
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "distro", BAD_CAST str));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "distro",
+ BAD_CAST str));
free (str);
str = guestfs_inspect_get_product_name (g, root);
- if (!str) exit (EXIT_FAILURE);
+ if (!str)
+ exit (EXIT_FAILURE);
if (STRNEQ (str, "unknown"))
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "product_name", BAD_CAST str));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "product_name",
+ BAD_CAST str));
free (str);
str = guestfs_inspect_get_product_variant (g, root);
- if (!str) exit (EXIT_FAILURE);
+ if (!str)
+ exit (EXIT_FAILURE);
if (STRNEQ (str, "unknown"))
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "product_variant", BAD_CAST
str));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "product_variant",
+ BAD_CAST str));
free (str);
i = guestfs_inspect_get_major_version (g, root);
snprintf (buf, sizeof buf, "%d", i);
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "major_version", BAD_CAST buf));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "major_version",
+ BAD_CAST buf));
i = guestfs_inspect_get_minor_version (g, root);
snprintf (buf, sizeof buf, "%d", i);
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "minor_version", BAD_CAST buf));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "minor_version",
+ BAD_CAST buf));
str = guestfs_inspect_get_package_format (g, root);
- if (!str) exit (EXIT_FAILURE);
+ if (!str)
+ exit (EXIT_FAILURE);
if (STRNEQ (str, "unknown"))
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "package_format", BAD_CAST
str));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "package_format",
+ BAD_CAST str));
free (str);
str = guestfs_inspect_get_package_management (g, root);
- if (!str) exit (EXIT_FAILURE);
+ if (!str)
+ exit (EXIT_FAILURE);
if (STRNEQ (str, "unknown"))
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "package_management",
- BAD_CAST str));
+ XMLERROR (-1, xmlTextWriterWriteElement (
+ xo, BAD_CAST "package_management", BAD_CAST str));
free (str);
/* inspect-get-windows-systemroot will fail with non-windows guests,
@@ -411,52 +432,48 @@ output_root (xmlTextWriterPtr xo, char *root)
guestfs_push_error_handler (g, NULL, NULL);
str = guestfs_inspect_get_windows_systemroot (g, root);
if (str)
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "windows_systemroot",
- BAD_CAST str));
+ XMLERROR (-1, xmlTextWriterWriteElement (
+ xo, BAD_CAST "windows_systemroot", BAD_CAST str));
free (str);
str = guestfs_inspect_get_windows_current_control_set (g, root);
if (str)
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST
"windows_current_control_set",
- BAD_CAST str));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST
+ "windows_current_control_set",
+ BAD_CAST str));
free (str);
guestfs_pop_error_handler (g);
str = guestfs_inspect_get_hostname (g, root);
- if (!str) exit (EXIT_FAILURE);
+ if (!str)
+ exit (EXIT_FAILURE);
if (STRNEQ (str, "unknown"))
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "hostname",
- BAD_CAST str));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "hostname",
+ BAD_CAST str));
free (str);
str = guestfs_inspect_get_format (g, root);
- if (!str) exit (EXIT_FAILURE);
+ if (!str)
+ exit (EXIT_FAILURE);
if (STRNEQ (str, "unknown"))
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "format",
- BAD_CAST str));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "format",
+ BAD_CAST str));
free (str);
r = guestfs_inspect_is_live (g, root);
if (r > 0) {
- XMLERROR (-1,
- xmlTextWriterStartElement (xo, BAD_CAST "live"));
+ XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "live"));
XMLERROR (-1, xmlTextWriterEndElement (xo));
}
r = guestfs_inspect_is_netinst (g, root);
if (r > 0) {
- XMLERROR (-1,
- xmlTextWriterStartElement (xo, BAD_CAST "netinst"));
+ XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "netinst"));
XMLERROR (-1, xmlTextWriterEndElement (xo));
}
r = guestfs_inspect_is_multipart (g, root);
if (r > 0) {
- XMLERROR (-1,
- xmlTextWriterStartElement (xo, BAD_CAST "multipart"));
+ XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "multipart"));
XMLERROR (-1, xmlTextWriterEndElement (xo));
}
@@ -479,10 +496,10 @@ output_root (xmlTextWriterPtr xo, char *root)
/* Don't return favicon. RHEL 7 and Fedora have crappy 16x16
* favicons in the base distro.
*/
- str = guestfs_inspect_get_icon (g, root, &size,
- GUESTFS_INSPECT_GET_ICON_FAVICON, 0,
- -1);
- if (!str) exit (EXIT_FAILURE);
+ str = guestfs_inspect_get_icon (
+ g, root, &size, GUESTFS_INSPECT_GET_ICON_FAVICON, 0, -1);
+ if (!str)
+ exit (EXIT_FAILURE);
if (size > 0) {
XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "icon"));
XMLERROR (-1, xmlTextWriterWriteBase64 (xo, str, 0, size));
@@ -505,8 +522,8 @@ output_root (xmlTextWriterPtr xo, char *root)
static int
compare_keys (const void *p1, const void *p2)
{
- const char *key1 = * (char * const *) p1;
- const char *key2 = * (char * const *) p2;
+ const char *key1 = *(char *const *)p1;
+ const char *key2 = *(char *const *)p2;
return strcmp (key1, key2);
}
@@ -514,8 +531,8 @@ compare_keys (const void *p1, const void *p2)
static int
compare_keys_nocase (const void *p1, const void *p2)
{
- const char *key1 = * (char * const *) p1;
- const char *key2 = * (char * const *) p2;
+ const char *key1 = *(char *const *)p1;
+ const char *key2 = *(char *const *)p2;
return strcasecmp (key1, key2);
}
@@ -523,8 +540,8 @@ compare_keys_nocase (const void *p1, const void *p2)
static int
compare_keys_len (const void *p1, const void *p2)
{
- const char *key1 = * (char * const *) p1;
- const char *key2 = * (char * const *) p2;
+ const char *key1 = *(char *const *)p1;
+ const char *key2 = *(char *const *)p2;
int c;
c = strlen (key1) - strlen (key2);
@@ -540,7 +557,7 @@ output_mountpoints (xmlTextWriterPtr xo, char *root)
size_t i;
CLEANUP_FREE_STRING_LIST char **mountpoints =
- guestfs_inspect_get_mountpoints (g, root);
+ guestfs_inspect_get_mountpoints (g, root);
if (mountpoints == NULL)
exit (EXIT_FAILURE);
@@ -548,22 +565,20 @@ output_mountpoints (xmlTextWriterPtr xo, char *root)
* output is stable.
*/
qsort (mountpoints, guestfs_int_count_strings (mountpoints) / 2,
- 2 * sizeof (char *),
- compare_keys_len);
+ 2 * sizeof (char *), compare_keys_len);
XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "mountpoints"));
for (i = 0; mountpoints[i] != NULL; i += 2) {
- CLEANUP_FREE char *p = guestfs_canonical_device_name (g, mountpoints[i+1]);
+ CLEANUP_FREE char *p =
+ guestfs_canonical_device_name (g, mountpoints[i + 1]);
if (!p)
exit (EXIT_FAILURE);
- XMLERROR (-1,
- xmlTextWriterStartElement (xo, BAD_CAST "mountpoint"));
+ XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "mountpoint"));
XMLERROR (-1,
xmlTextWriterWriteAttribute (xo, BAD_CAST "dev", BAD_CAST p));
- XMLERROR (-1,
- xmlTextWriterWriteString (xo, BAD_CAST mountpoints[i]));
+ XMLERROR (-1, xmlTextWriterWriteString (xo, BAD_CAST mountpoints[i]));
XMLERROR (-1, xmlTextWriterEndElement (xo));
}
@@ -577,13 +592,13 @@ output_filesystems (xmlTextWriterPtr xo, char *root)
size_t i;
CLEANUP_FREE_STRING_LIST char **filesystems =
- guestfs_inspect_get_filesystems (g, root);
+ guestfs_inspect_get_filesystems (g, root);
if (filesystems == NULL)
exit (EXIT_FAILURE);
/* Sort by name so the output is stable. */
- qsort (filesystems, guestfs_int_count_strings (filesystems), sizeof (char *),
- compare_keys);
+ qsort (filesystems, guestfs_int_count_strings (filesystems),
+ sizeof (char *), compare_keys);
XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "filesystems"));
@@ -593,31 +608,28 @@ output_filesystems (xmlTextWriterPtr xo, char *root)
exit (EXIT_FAILURE);
XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "filesystem"));
- XMLERROR (-1,
- xmlTextWriterWriteAttribute (xo, BAD_CAST "dev", BAD_CAST str));
+ XMLERROR (
+ -1, xmlTextWriterWriteAttribute (xo, BAD_CAST "dev", BAD_CAST str));
free (str);
guestfs_push_error_handler (g, NULL, NULL);
str = guestfs_vfs_type (g, filesystems[i]);
if (str && str[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "type",
- BAD_CAST str));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "type",
+ BAD_CAST str));
free (str);
str = guestfs_vfs_label (g, filesystems[i]);
if (str && str[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "label",
- BAD_CAST str));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "label",
+ BAD_CAST str));
free (str);
str = guestfs_vfs_uuid (g, filesystems[i]);
if (str && str[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "uuid",
- BAD_CAST str));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "uuid",
+ BAD_CAST str));
free (str);
guestfs_pop_error_handler (g);
@@ -645,24 +657,20 @@ output_drive_mappings (xmlTextWriterPtr xo, char *root)
return;
/* Sort by key. */
- qsort (drive_mappings,
- guestfs_int_count_strings (drive_mappings) / 2, 2 * sizeof (char *),
- compare_keys_nocase);
+ qsort (drive_mappings, guestfs_int_count_strings (drive_mappings) / 2,
+ 2 * sizeof (char *), compare_keys_nocase);
XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "drive_mappings"));
for (i = 0; drive_mappings[i] != NULL; i += 2) {
- str = guestfs_canonical_device_name (g, drive_mappings[i+1]);
+ str = guestfs_canonical_device_name (g, drive_mappings[i + 1]);
if (!str)
exit (EXIT_FAILURE);
- XMLERROR (-1,
- xmlTextWriterStartElement (xo, BAD_CAST "drive_mapping"));
- XMLERROR (-1,
- xmlTextWriterWriteAttribute (xo, BAD_CAST "name",
- BAD_CAST drive_mappings[i]));
- XMLERROR (-1,
- xmlTextWriterWriteString (xo, BAD_CAST str));
+ XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "drive_mapping"));
+ XMLERROR (-1, xmlTextWriterWriteAttribute (xo, BAD_CAST "name",
+ BAD_CAST drive_mappings[i]));
+ XMLERROR (-1, xmlTextWriterWriteString (xo, BAD_CAST str));
XMLERROR (-1, xmlTextWriterEndElement (xo));
free (str);
@@ -680,7 +688,7 @@ output_applications (xmlTextWriterPtr xo, char *root)
* applications, so if it returns NULL then it's a real error.
*/
CLEANUP_FREE_APPLICATION2_LIST struct guestfs_application2_list *apps =
- guestfs_inspect_list_applications2 (g, root);
+ guestfs_inspect_list_applications2 (g, root);
if (apps == NULL)
exit (EXIT_FAILURE);
@@ -695,55 +703,56 @@ output_applications (xmlTextWriterPtr xo, char *root)
BAD_CAST apps->val[i].app2_name));
if (apps->val[i].app2_display_name &&
apps->val[i].app2_display_name[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "display_name",
- BAD_CAST apps->val[i].app2_display_name));
+ XMLERROR (-1, xmlTextWriterWriteElement (
+ xo, BAD_CAST "display_name",
+ BAD_CAST apps->val[i].app2_display_name));
if (apps->val[i].app2_epoch != 0) {
char buf[32];
snprintf (buf, sizeof buf, "%d", apps->val[i].app2_epoch);
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "epoch", BAD_CAST buf));
+ XMLERROR (-1, xmlTextWriterWriteElement (xo, BAD_CAST "epoch",
+ BAD_CAST buf));
}
if (apps->val[i].app2_version && apps->val[i].app2_version[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "version",
- BAD_CAST apps->val[i].app2_version));
+ XMLERROR (-1, xmlTextWriterWriteElement (
+ xo, BAD_CAST "version",
+ BAD_CAST apps->val[i].app2_version));
if (apps->val[i].app2_release && apps->val[i].app2_release[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "release",
- BAD_CAST apps->val[i].app2_release));
+ XMLERROR (-1, xmlTextWriterWriteElement (
+ xo, BAD_CAST "release",
+ BAD_CAST apps->val[i].app2_release));
if (apps->val[i].app2_arch && apps->val[i].app2_arch[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "arch",
- BAD_CAST apps->val[i].app2_arch));
+ XMLERROR (
+ -1, xmlTextWriterWriteElement (xo, BAD_CAST "arch",
+ BAD_CAST apps->val[i].app2_arch));
if (apps->val[i].app2_install_path &&
apps->val[i].app2_install_path[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "install_path",
- BAD_CAST apps->val[i].app2_install_path));
+ XMLERROR (-1, xmlTextWriterWriteElement (
+ xo, BAD_CAST "install_path",
+ BAD_CAST apps->val[i].app2_install_path));
if (apps->val[i].app2_publisher && apps->val[i].app2_publisher[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "publisher",
- BAD_CAST apps->val[i].app2_publisher));
+ XMLERROR (-1, xmlTextWriterWriteElement (
+ xo, BAD_CAST "publisher",
+ BAD_CAST apps->val[i].app2_publisher));
if (apps->val[i].app2_url && apps->val[i].app2_url[0])
XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "url",
- BAD_CAST apps->val[i].app2_url));
- if (apps->val[i].app2_source_package &&
apps->val[i].app2_source_package[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "source_package",
- BAD_CAST apps->val[i].app2_source_package));
+ xmlTextWriterWriteElement (xo, BAD_CAST "url",
+ BAD_CAST apps->val[i].app2_url));
+ if (apps->val[i].app2_source_package &&
+ apps->val[i].app2_source_package[0])
+ XMLERROR (-1, xmlTextWriterWriteElement (
+ xo, BAD_CAST "source_package",
+ BAD_CAST apps->val[i].app2_source_package));
if (apps->val[i].app2_summary && apps->val[i].app2_summary[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "summary",
- BAD_CAST apps->val[i].app2_summary));
+ XMLERROR (-1, xmlTextWriterWriteElement (
+ xo, BAD_CAST "summary",
+ BAD_CAST apps->val[i].app2_summary));
if (apps->val[i].app2_description && apps->val[i].app2_description[0])
- XMLERROR (-1,
- xmlTextWriterWriteElement (xo, BAD_CAST "description",
- BAD_CAST apps->val[i].app2_description));
+ XMLERROR (-1, xmlTextWriterWriteElement (
+ xo, BAD_CAST "description",
+ BAD_CAST apps->val[i].app2_description));
XMLERROR (-1, xmlTextWriterEndElement (xo));
}
@@ -787,7 +796,7 @@ do_xpath (const char *query)
if (saveCtx == NULL)
error (EXIT_FAILURE, 0, _("xmlSaveToFd failed"));
- for (i = 0; i < (size_t) nodes->nodeNr; ++i) {
+ for (i = 0; i < (size_t)nodes->nodeNr; ++i) {
CLEANUP_XMLFREEDOC xmlDocPtr wrdoc = xmlNewDoc (BAD_CAST "1.0");
if (wrdoc == NULL)
error (EXIT_FAILURE, 0, _("xmlNewDoc failed"));
@@ -806,10 +815,10 @@ do_xpath (const char *query)
break;
case XPATH_STRING:
- r = (char *) xpathObj->stringval;
+ r = (char *)xpathObj->stringval;
printf ("%s", r);
i = strlen (r);
- if (i > 0 && r[i-1] != '\n')
+ if (i > 0 && r[i - 1] != '\n')
printf ("\n");
break;
@@ -822,7 +831,7 @@ do_xpath (const char *query)
case XPATH_USERS:
case XPATH_XSLT_TREE:
default:
- r = (char *) xmlXPathCastToString (xpathObj);
+ r = (char *)xmlXPathCastToString (xpathObj);
printf ("%s\n", r);
free (r);
}
diff --git a/make-fs/make-fs.c b/make-fs/make-fs.c
index 42e7e82..a4597e4 100644
--- a/make-fs/make-fs.c
+++ b/make-fs/make-fs.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -47,29 +48,22 @@ int live;
int read_only;
int verbose;
-static const char *format = "raw", *label = NULL,
- *partition = NULL, *size_str = NULL, *type = "ext2";
+static const char *format = "raw", *label = NULL, *partition = NULL,
+ *size_str = NULL, *type = "ext2";
enum { HELP_OPTION = CHAR_MAX + 1 };
static const char *options = "F:s:t:Vvx";
static const struct option long_options[] = {
{ "debug", 0, 0, 'v' }, /* for compat with Perl tool */
- { "floppy", 0, 0, 0 },
- { "format", 1, 0, 'F' },
- { "help", 0, 0, HELP_OPTION },
- { "label", 1, 0, 0 },
- { "long-options", 0, 0, 0 },
- { "partition", 2, 0, 0 },
- { "short-options", 0, 0, 0 },
- { "size", 1, 0, 's' },
- { "type", 1, 0, 't' },
- { "verbose", 0, 0, 'v' },
- { "version", 0, 0, 'V' },
- { 0, 0, 0, 0 }
+ { "floppy", 0, 0, 0 }, { "format", 1, 0, 'F' },
+ { "help", 0, 0, HELP_OPTION }, { "label", 1, 0, 0 },
+ { "long-options", 0, 0, 0 }, { "partition", 2, 0, 0 },
+ { "short-options", 0, 0, 0 }, { "size", 1, 0, 's' },
+ { "type", 1, 0, 't' }, { "verbose", 0, 0,
'v' },
+ { "version", 0, 0, 'V' }, { 0, 0, 0, 0 }
};
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
@@ -118,32 +112,28 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options")) {
display_long_options (long_options);
- }
- else if (STREQ (long_options[option_index].name, "short-options")) {
+ } else if (STREQ (long_options[option_index].name, "short-options")) {
display_short_options (options);
- }
- else if (STREQ (long_options[option_index].name, "floppy")) {
+ } else if (STREQ (long_options[option_index].name, "floppy")) {
size_str = "1440K";
partition = "mbr";
type = "vfat";
- }
- else if (STREQ (long_options[option_index].name, "label")) {
+ } else if (STREQ (long_options[option_index].name, "label")) {
label = optarg;
- }
- else if (STREQ (long_options[option_index].name, "partition")) {
+ } else if (STREQ (long_options[option_index].name, "partition")) {
if (optarg == NULL)
partition = "mbr";
else
partition = optarg;
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -180,13 +170,14 @@ main (int argc, char *argv[])
}
if (optind + 2 != argc) {
- fprintf (stderr,
- _("%s: missing input and output arguments on the command
line\n"),
- guestfs_int_program_name);
+ fprintf (
+ stderr,
+ _("%s: missing input and output arguments on the command line\n"),
+ guestfs_int_program_name);
usage (EXIT_FAILURE);
}
- if (do_make_fs (argv[optind], argv[optind+1]) == -1)
+ if (do_make_fs (argv[optind], argv[optind + 1]) == -1)
exit (EXIT_FAILURE);
exit (EXIT_SUCCESS);
@@ -198,10 +189,11 @@ check_ntfs_available (void)
const char *ntfs_features[] = { "ntfs3g", "ntfsprogs", NULL };
if (STREQ (type, "ntfs") &&
- guestfs_feature_available (g, (char **) ntfs_features) == 0) {
- fprintf (stderr,
- _("%s: NTFS support was disabled when libguestfs was
compiled\n"),
- guestfs_int_program_name);
+ guestfs_feature_available (g, (char **)ntfs_features) == 0) {
+ fprintf (
+ stderr,
+ _("%s: NTFS support was disabled when libguestfs was compiled\n"),
+ guestfs_int_program_name);
return -1;
}
@@ -215,7 +207,8 @@ print_stats (guestfs_h *g, const char *before_or_after)
if (!verbose)
return;
- CLEANUP_FREE_STATVFS struct guestfs_statvfs *stats = guestfs_statvfs (g,
"/");
+ CLEANUP_FREE_STATVFS struct guestfs_statvfs *stats =
+ guestfs_statvfs (g, "/");
if (stats) {
fprintf (stderr, "%s uploading:\n", before_or_after);
fprintf (stderr, " bsize = %" PRIi64 "\n", stats->bsize);
@@ -258,7 +251,7 @@ exec_command (char **argv, const char *file)
}
/* Child process. */
- fd = open (file, O_WRONLY|O_NOCTTY);
+ fd = open (file, O_WRONLY | O_NOCTTY);
if (fd == -1) {
perror (file);
_exit (EXIT_FAILURE);
@@ -425,7 +418,7 @@ estimate_input (const char *input, uint64_t *estimate_rtn, char
**ifmt_rtn)
argv[4] = input;
argv[5] = NULL;
- if (exec_command ((char **) argv, tmpfile) == -1)
+ if (exec_command ((char **)argv, tmpfile) == -1)
return -1;
fp = fopen (tmpfile, "r");
@@ -439,18 +432,18 @@ estimate_input (const char *input, uint64_t *estimate_rtn, char
**ifmt_rtn)
}
if (sscanf (line, "%" SCNu64, estimate_rtn) != 1) {
- fprintf (stderr, _("%s: cannot parse the output of 'du' command:
%s\n"),
+ fprintf (stderr,
+ _("%s: cannot parse the output of 'du' command: %s\n"),
guestfs_int_program_name, line);
return -1;
}
- }
- else {
+ } else {
argv[0] = "file";
argv[1] = "-bsLz";
argv[2] = input;
argv[3] = NULL;
- if (exec_command ((char **) argv, tmpfile) == -1)
+ if (exec_command ((char **)argv, tmpfile) == -1)
return -1;
fp = fopen (tmpfile, "r");
@@ -464,8 +457,8 @@ estimate_input (const char *input, uint64_t *estimate_rtn, char
**ifmt_rtn)
}
len = strlen (line);
- if (len > 0 && line[len-1] == '\n')
- line[len-1] = '\0';
+ if (len > 0 && line[len - 1] == '\n')
+ line[len - 1] = '\0';
*ifmt_rtn = strdup (line);
if (*ifmt_rtn == NULL) {
@@ -474,7 +467,8 @@ estimate_input (const char *input, uint64_t *estimate_rtn, char
**ifmt_rtn)
}
if (strstr (line, "tar archive") == NULL) {
- fprintf (stderr, _("%s: %s: input is not a directory, tar archive or
compressed tar archive\n"),
+ fprintf (stderr, _("%s: %s: input is not a directory, tar archive "
+ "or compressed tar archive\n"),
guestfs_int_program_name, input);
return -1;
}
@@ -485,36 +479,32 @@ estimate_input (const char *input, uint64_t *estimate_rtn, char
**ifmt_rtn)
argv[1] = "-c";
argv[2] = input;
argv[3] = NULL;
- }
- else if (strstr (line, "gzip compressed")) {
+ } else if (strstr (line, "gzip compressed")) {
argv[0] = "gzip";
argv[1] = "-cd";
argv[2] = input;
argv[3] = NULL;
- }
- else if (strstr (line, "bzip2 compressed")) {
+ } else if (strstr (line, "bzip2 compressed")) {
argv[0] = "bzip2";
argv[1] = "-cd";
argv[2] = input;
argv[3] = NULL;
- }
- else if (strstr (line, "xz compressed")) {
+ } else if (strstr (line, "xz compressed")) {
argv[0] = "xz";
argv[1] = "-cd";
argv[2] = input;
argv[3] = NULL;
- }
- else {
- fprintf (stderr, _("%s: %s: unknown compressed input format (%s)\n"),
+ } else {
+ fprintf (stderr,
+ _("%s: %s: unknown compressed input format (%s)\n"),
guestfs_int_program_name, input, line);
return -1;
}
*estimate_rtn = 0;
- if (exec_command_count_output ((char **) argv, estimate_rtn) == -1)
+ if (exec_command_count_output ((char **)argv, estimate_rtn) == -1)
return -1;
- }
- else {
+ } else {
/* Plain tar file, just get the size directly. Tar files have
* a 512 byte block size (compared with typically 1K or 4K for
* filesystems) so this isn't very accurate.
@@ -534,8 +524,8 @@ estimate_input (const char *input, uint64_t *estimate_rtn, char
**ifmt_rtn)
* the PID is returned so that callers can wait on it.
*/
static int
-prepare_input (const char *input, const char *ifmt,
- char **ifile_rtn, int *fd_rtn, pid_t *pid_rtn)
+prepare_input (const char *input, const char *ifmt, char **ifile_rtn,
+ int *fd_rtn, pid_t *pid_rtn)
{
const char *argv[7];
@@ -551,53 +541,47 @@ prepare_input (const char *input, const char *ifmt,
argv[5] = ".";
argv[6] = NULL;
- if (bg_command ((char **) argv, fd_rtn, pid_rtn) == -1)
+ if (bg_command ((char **)argv, fd_rtn, pid_rtn) == -1)
return -1;
if (asprintf (ifile_rtn, "/dev/fd/%d", *fd_rtn) == -1) {
perror ("asprintf");
return -1;
}
- }
- else {
+ } else {
if (strstr (ifmt, "compress")) {
if (strstr (ifmt, "compress'd")) {
argv[0] = "uncompress";
argv[1] = "-c";
argv[2] = input;
argv[3] = NULL;
- }
- else if (strstr (ifmt, "gzip compressed")) {
+ } else if (strstr (ifmt, "gzip compressed")) {
argv[0] = "gzip";
argv[1] = "-cd";
argv[2] = input;
argv[3] = NULL;
- }
- else if (strstr (ifmt, "bzip2 compressed")) {
+ } else if (strstr (ifmt, "bzip2 compressed")) {
argv[0] = "bzip2";
argv[1] = "-cd";
argv[2] = input;
argv[3] = NULL;
- }
- else if (strstr (ifmt, "xz compressed")) {
+ } else if (strstr (ifmt, "xz compressed")) {
argv[0] = "xz";
argv[1] = "-cd";
argv[2] = input;
argv[3] = NULL;
- }
- else
+ } else
/* Shouldn't happen - see estimate_input above. */
abort ();
- if (bg_command ((char **) argv, fd_rtn, pid_rtn) == -1)
+ if (bg_command ((char **)argv, fd_rtn, pid_rtn) == -1)
return -1;
if (asprintf (ifile_rtn, "/dev/fd/%d", *fd_rtn) == -1) {
perror ("asprintf");
return -1;
}
- }
- else {
+ } else {
/* Plain tar file, read directly from the file. */
*ifile_rtn = strdup (input);
if (*ifile_rtn == NULL) {
@@ -629,7 +613,8 @@ parse_size (const char *str, uint64_t estimate, uint64_t *size_rtn)
if (xerr != LONGINT_OK) {
fprintf (stderr,
_("%s: %s: invalid size parameter '%s' (%s returned
%u)\n"),
- guestfs_int_program_name, "parse_size", str,
"xstrtoull", xerr);
+ guestfs_int_program_name, "parse_size", str,
"xstrtoull",
+ xerr);
return -1;
}
@@ -669,11 +654,11 @@ do_make_fs (const char *input, const char *output_str)
if (verbose) {
fprintf (stderr, "input format = %s\n", ifmt);
fprintf (stderr, "estimate = %" PRIu64 " bytes "
- "(%" PRIu64 " 1K blocks, %" PRIu64 " 4K
blocks)\n",
+ "(%" PRIu64 " 1K blocks, %" PRIu64 " 4K
blocks)\n",
estimate, estimate / 1024, estimate / 4096);
}
- estimate += 256 * 1024; /* For superblocks &c. */
+ estimate += 256 * 1024; /* For superblocks &c. */
if (STRPREFIX (type, "ext") && type[3] >= '3') {
/* For ext3+, add some more for the journal. */
@@ -698,9 +683,8 @@ do_make_fs (const char *input, const char *output_str)
/* Calculate the output size. */
if (size_str == NULL)
size = estimate;
- else
- if (parse_size (size_str, estimate, &size) == -1)
- return -1;
+ else if (parse_size (size_str, estimate, &size) == -1)
+ return -1;
/* Create the output disk. */
optargs.bitmask = 0;
@@ -711,9 +695,8 @@ do_make_fs (const char *input, const char *output_str)
if (guestfs_disk_create_argv (g, output, format, size, &optargs) == -1)
return -1;
- if (guestfs_add_drive_opts (g, output,
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, format,
- -1) == -1)
+ if (guestfs_add_drive_opts (g, output, GUESTFS_ADD_DRIVE_OPTS_FORMAT,
+ format, -1) == -1)
return -1;
if (guestfs_launch (g) == -1)
@@ -740,7 +723,8 @@ do_make_fs (const char *input, const char *output_str)
*/
if (STREQ (partition, "mbr") || STREQ (partition, "msdos")) {
if (STREQ (type, "msdos"))
- /* According to Wikipedia. However I have not actually tried this. */
+ /* According to Wikipedia. However I have not actually tried this.
+ */
mbr_id = 0x1;
else if (STREQ (type, "vfat") || STREQ (type, "fat"))
mbr_id = 0xb;
@@ -763,7 +747,7 @@ do_make_fs (const char *input, const char *output_str)
/* Create the filesystem. */
if (STRNEQ (type, "btrfs")) {
int r;
- struct guestfs_mkfs_opts_argv optargs = { .bitmask = 0 };
+ struct guestfs_mkfs_opts_argv optargs = {.bitmask = 0 };
if (label) {
optargs.label = label;
@@ -776,29 +760,31 @@ do_make_fs (const char *input, const char *output_str)
if (r == -1) {
/* Provide more guidance in the error message (RHBZ#823883). */
- fprintf (stderr, "%s: 'mkfs' (create filesystem) operation failed:
%s\n",
+ fprintf (stderr,
+ "%s: 'mkfs' (create filesystem) operation failed:
%s\n",
guestfs_int_program_name, guestfs_last_error (g));
if (STREQ (type, "fat"))
- fprintf (stderr, "Instead of 'fat', try 'vfat' (long
filenames) or 'msdos' (short filenames).\n");
+ fprintf (stderr, "Instead of 'fat', try 'vfat' (long
filenames) or "
+ "'msdos' (short filenames).\n");
else
fprintf (stderr, "Is '%s' a correct filesystem type?\n",
type);
return -1;
}
- }
- else {
+ } else {
const char *devs[] = { dev, NULL };
- struct guestfs_mkfs_btrfs_argv optargs = { .bitmask = 0 };
+ struct guestfs_mkfs_btrfs_argv optargs = {.bitmask = 0 };
optargs.datatype = "single";
optargs.metadata = "single";
- optargs.bitmask |= GUESTFS_MKFS_BTRFS_DATATYPE_BITMASK |
GUESTFS_MKFS_BTRFS_METADATA_BITMASK;
+ optargs.bitmask |= GUESTFS_MKFS_BTRFS_DATATYPE_BITMASK |
+ GUESTFS_MKFS_BTRFS_METADATA_BITMASK;
if (label) {
optargs.label = label;
optargs.bitmask |= GUESTFS_MKFS_BTRFS_LABEL_BITMASK;
}
- if (guestfs_mkfs_btrfs_argv (g, (char **) devs, &optargs) == -1)
+ if (guestfs_mkfs_btrfs_argv (g, (char **)devs, &optargs) == -1)
return -1;
}
@@ -834,7 +820,8 @@ do_make_fs (const char *input, const char *output_str)
return -1;
}
if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) {
- fprintf (stderr, _("%s: subprocess failed\n"),
guestfs_int_program_name);
+ fprintf (stderr, _("%s: subprocess failed\n"),
+ guestfs_int_program_name);
return -1;
}
}
diff --git a/mllib/fsync-c.c b/mllib/fsync-c.c
index 72e74ef..898d069 100644
--- a/mllib/fsync-c.c
+++ b/mllib/fsync-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -32,8 +33,8 @@
#ifdef HAVE_CAML_UNIXSUPPORT_H
#include <caml/unixsupport.h>
#else
-#define Nothing ((value) 0)
-extern void unix_error (int errcode, char * cmdname, value arg) Noreturn;
+#define Nothing ((value)0)
+extern void unix_error (int errcode, char *cmdname, value arg) Noreturn;
#endif
/* OCaml doesn't bind any *sync* calls. */
@@ -69,16 +70,16 @@ guestfs_int_mllib_fsync_file (value filenamev)
/* Note to do fsync you have to open for write. */
fd = open (filename, O_RDWR);
if (fd == -1)
- unix_error (errno, (char *) "open", filenamev);
+ unix_error (errno, (char *)"open", filenamev);
if (fsync (fd) == -1) {
err = errno;
close (fd);
- unix_error (err, (char *) "fsync", filenamev);
+ unix_error (err, (char *)"fsync", filenamev);
}
if (close (fd) == -1)
- unix_error (errno, (char *) "close", filenamev);
+ unix_error (errno, (char *)"close", filenamev);
CAMLreturn (Val_unit);
}
diff --git a/mllib/mkdtemp-c.c b/mllib/mkdtemp-c.c
index a31e3a7..805e2e1 100644
--- a/mllib/mkdtemp-c.c
+++ b/mllib/mkdtemp-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -30,8 +31,8 @@
#ifdef HAVE_CAML_UNIXSUPPORT_H
#include <caml/unixsupport.h>
#else
-#define Nothing ((value) 0)
-extern void unix_error (int errcode, char * cmdname, value arg) Noreturn;
+#define Nothing ((value)0)
+extern void unix_error (int errcode, char *cmdname, value arg) Noreturn;
#endif
#pragma GCC diagnostic ignored "-Wmissing-prototypes"
@@ -45,11 +46,11 @@ guestfs_int_mllib_mkdtemp (value val_pattern)
pattern = strdup (String_val (val_pattern));
if (pattern == NULL)
- unix_error (errno, (char *) "strdup", val_pattern);
+ unix_error (errno, (char *)"strdup", val_pattern);
ret = mkdtemp (pattern);
if (ret == NULL)
- unix_error (errno, (char *) "mkdtemp", val_pattern);
+ unix_error (errno, (char *)"mkdtemp", val_pattern);
rv = caml_copy_string (ret);
free (pattern);
diff --git a/mllib/progress-c.c b/mllib/progress-c.c
index 8e5efd3..afcb542 100644
--- a/mllib/progress-c.c
+++ b/mllib/progress-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -35,7 +36,7 @@
#pragma GCC diagnostic ignored "-Wmissing-prototypes"
-#define Bar_val(v) (*((struct progress_bar **)Data_custom_val(v)))
+#define Bar_val(v) (*((struct progress_bar **)Data_custom_val (v)))
static void
progress_bar_finalize (value barv)
@@ -47,7 +48,7 @@ progress_bar_finalize (value barv)
}
static struct custom_operations progress_bar_custom_operations = {
- (char *) "progress_bar_custom_operations",
+ (char *)"progress_bar_custom_operations",
progress_bar_finalize,
custom_compare_default,
custom_hash_default,
@@ -95,8 +96,8 @@ guestfs_int_mllib_progress_bar_reset (value barv)
/* NB: "noalloc" function. */
value
-guestfs_int_mllib_progress_bar_set (value barv,
- value positionv, value totalv)
+guestfs_int_mllib_progress_bar_set (value barv, value positionv,
+ value totalv)
{
struct progress_bar *bar = Bar_val (barv);
uint64_t position = Int64_val (positionv);
diff --git a/mllib/uri-c.c b/mllib/uri-c.c
index f3af817..a05b1b7 100644
--- a/mllib/uri-c.c
+++ b/mllib/uri-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -63,12 +64,11 @@ guestfs_int_mllib_parse_uri (value argv /* arg value, not an array!
*/)
/* server : string array option */
if (uri.server) {
- ssv = caml_copy_string_array ((const char **) uri.server);
+ ssv = caml_copy_string_array ((const char **)uri.server);
guestfs_int_free_string_list (uri.server);
ov = caml_alloc (1, 0);
Store_field (ov, 0, ssv);
- }
- else
+ } else
ov = Val_int (0);
Store_field (rv, 2, ov);
@@ -78,8 +78,7 @@ guestfs_int_mllib_parse_uri (value argv /* arg value, not an array! */)
free (uri.username);
ov = caml_alloc (1, 0);
Store_field (ov, 0, sv);
- }
- else
+ } else
ov = Val_int (0);
Store_field (rv, 3, ov);
@@ -89,8 +88,7 @@ guestfs_int_mllib_parse_uri (value argv /* arg value, not an array! */)
free (uri.password);
ov = caml_alloc (1, 0);
Store_field (ov, 0, sv);
- }
- else
+ } else
ov = Val_int (0);
Store_field (rv, 4, ov);
diff --git a/ocaml/guestfs-c.c b/ocaml/guestfs-c.c
index edb4646..7eac4b4 100644
--- a/ocaml/guestfs-c.c
+++ b/ocaml/guestfs-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -38,28 +39,35 @@
#ifdef HAVE_CAML_UNIXSUPPORT_H
#include <caml/unixsupport.h>
#else
-#define Nothing ((value) 0)
-extern void unix_error (int errcode, char * cmdname, value arg) Noreturn;
+#define Nothing ((value)0)
+extern void unix_error (int errcode, char *cmdname, value arg) Noreturn;
#endif
#include "guestfs-c.h"
static value **get_all_event_callbacks (guestfs_h *g, size_t *len_rtn);
-static void event_callback_wrapper (guestfs_h *g, void *data, uint64_t event, int
event_handle, int flags, const char *buf, size_t buf_len, const uint64_t *array, size_t
array_len);
+static void event_callback_wrapper (guestfs_h *g, void *data,
+ uint64_t event, int event_handle,
+ int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len);
/* This macro was added in OCaml 3.10. Backport for earlier versions. */
#ifndef CAMLreturnT
-#define CAMLreturnT(type, result) do{ \
- type caml__temp_result = (result); \
- caml_local_roots = caml__frame; \
- return (caml__temp_result); \
- }while(0)
+#define CAMLreturnT(type, result) \
+ do { \
+ type caml__temp_result = (result); \
+ caml_local_roots = caml__frame; \
+ return (caml__temp_result); \
+ } while (0)
#endif
/* These prototypes are solely to quiet gcc warning. */
-value guestfs_int_ocaml_create (value environmentv, value close_on_exitv, value unitv);
+value guestfs_int_ocaml_create (value environmentv, value close_on_exitv,
+ value unitv);
value guestfs_int_ocaml_close (value gv);
-value guestfs_int_ocaml_set_event_callback (value gv, value closure, value events);
+value guestfs_int_ocaml_set_event_callback (value gv, value closure,
+ value events);
value guestfs_int_ocaml_delete_event_callback (value gv, value eh);
value guestfs_int_ocaml_event_to_string (value events);
value guestfs_int_ocaml_last_errno (value gv);
@@ -94,7 +102,7 @@ guestfs_finalize (value gv)
}
static struct custom_operations guestfs_custom_operations = {
- (char *) "guestfs_custom_operations",
+ (char *)"guestfs_custom_operations",
guestfs_finalize,
custom_compare_default,
custom_hash_default,
@@ -108,8 +116,8 @@ Val_guestfs (guestfs_h *g)
CAMLparam0 ();
CAMLlocal1 (rv);
- rv = caml_alloc_custom (&guestfs_custom_operations,
- sizeof (guestfs_h *), 0, 1);
+ rv = caml_alloc_custom (&guestfs_custom_operations, sizeof (guestfs_h *),
+ 0, 1);
Guestfs_val (rv) = g;
CAMLreturn (rv);
@@ -145,15 +153,15 @@ guestfs_int_ocaml_raise_closed (const char *func)
/* Guestfs.create */
value
-guestfs_int_ocaml_create (value environmentv, value close_on_exitv, value unitv)
+guestfs_int_ocaml_create (value environmentv, value close_on_exitv,
+ value unitv)
{
CAMLparam3 (environmentv, close_on_exitv, unitv);
CAMLlocal1 (gv);
unsigned flags = 0;
guestfs_h *g;
- if (environmentv != Val_int (0) &&
- !Bool_val (Field (environmentv, 0)))
+ if (environmentv != Val_int (0) && !Bool_val (Field (environmentv, 0)))
flags |= GUESTFS_CREATE_NO_ENVIRONMENT;
if (close_on_exitv != Val_int (0) &&
@@ -194,10 +202,12 @@ guestfs_int_ocaml_strings_val (guestfs_h *g, value sv)
size_t i;
r = malloc (sizeof (char *) * (Wosize_val (sv) + 1));
- if (r == NULL) caml_raise_out_of_memory ();
+ if (r == NULL)
+ caml_raise_out_of_memory ();
for (i = 0; i < Wosize_val (sv); ++i) {
r[i] = strdup (String_val (Field (sv, i)));
- if (r[i] == NULL) caml_raise_out_of_memory ();
+ if (r[i] == NULL)
+ caml_raise_out_of_memory ();
}
r[i] = NULL;
@@ -210,7 +220,7 @@ event_bitmask_of_event_list (value events)
uint64_t r = 0;
while (events != Val_int (0)) {
- r |= UINT64_C(1) << Int_val (Field (events, 0));
+ r |= UINT64_C (1) << Int_val (Field (events, 0));
events = Field (events, 1);
}
@@ -231,11 +241,12 @@ guestfs_int_ocaml_set_event_callback (value gv, value closure, value
events)
event_bitmask = event_bitmask_of_event_list (events);
value *root = malloc (sizeof *root);
- if (root == NULL) caml_raise_out_of_memory ();
+ if (root == NULL)
+ caml_raise_out_of_memory ();
*root = closure;
- eh = guestfs_set_event_callback (g, event_callback_wrapper,
- event_bitmask, 0, root);
+ eh = guestfs_set_event_callback (g, event_callback_wrapper, event_bitmask,
+ 0, root);
if (eh == -1) {
free (root);
@@ -286,7 +297,7 @@ guestfs_int_ocaml_event_to_string (value events)
r = guestfs_event_to_string (event_bitmask);
if (r == NULL)
- unix_error (errno, (char *) "Guestfs.event_to_string", Nothing);
+ unix_error (errno, (char *)"Guestfs.event_to_string", Nothing);
rv = caml_copy_string (r);
free (r);
@@ -312,7 +323,8 @@ get_all_event_callbacks (guestfs_h *g, size_t *len_rtn)
/* Copy them into the return array. */
r = malloc (sizeof (value *) * (*len_rtn));
- if (r == NULL) caml_raise_out_of_memory ();
+ if (r == NULL)
+ caml_raise_out_of_memory ();
i = 0;
root = guestfs_first_private (g, &key);
@@ -340,13 +352,10 @@ event_bitmask_to_event (uint64_t event)
}
static void
-event_callback_wrapper_locked (guestfs_h *g,
- void *data,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+event_callback_wrapper_locked (guestfs_h *g, void *data, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len)
{
CAMLparam0 ();
CAMLlocal4 (evv, ehv, bufv, arrayv);
@@ -369,7 +378,7 @@ event_callback_wrapper_locked (guestfs_h *g,
value args[4] = { evv, ehv, bufv, arrayv };
- rv = caml_callbackN_exn (*(value*)data, 4, args);
+ rv = caml_callbackN_exn (*(value *)data, 4, args);
/* Callbacks shouldn't throw exceptions. There's not much we can do
* except to print it.
@@ -383,21 +392,18 @@ event_callback_wrapper_locked (guestfs_h *g,
}
static void
-event_callback_wrapper (guestfs_h *g,
- void *data,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+event_callback_wrapper (guestfs_h *g, void *data, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len)
{
/* Ensure we are holding the GC lock before any GC operations are
* possible. (RHBZ#725824)
*/
caml_leave_blocking_section ();
- event_callback_wrapper_locked (g, data, event, event_handle, flags,
- buf, buf_len, array, array_len);
+ event_callback_wrapper_locked (g, data, event, event_handle, flags, buf,
+ buf_len, array, array_len);
caml_enter_blocking_section ();
}
diff --git a/ocaml/guestfs-c.h b/ocaml/guestfs-c.h
index b99aceb..b86a3c3 100644
--- a/ocaml/guestfs-c.h
+++ b/ocaml/guestfs-c.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#ifndef GUESTFS_OCAML_C_H
@@ -21,11 +22,10 @@
#include "guestfs-internal-frontend.h"
-#define Guestfs_val(v) (*((guestfs_h **)Data_custom_val(v)))
-extern void guestfs_int_ocaml_raise_error (guestfs_h *g, const char *func)
- Noreturn;
-extern void guestfs_int_ocaml_raise_closed (const char *func)
- Noreturn;
+#define Guestfs_val(v) (*((guestfs_h **)Data_custom_val (v)))
+extern void guestfs_int_ocaml_raise_error (guestfs_h *g,
+ const char *func) Noreturn;
+extern void guestfs_int_ocaml_raise_closed (const char *func) Noreturn;
extern char **guestfs_int_ocaml_strings_val (guestfs_h *g, value sv);
#endif /* GUESTFS_OCAML_C_H */
diff --git a/p2v/about-authors.c b/p2v/about-authors.c
index 005dc87..7c18547 100644
--- a/p2v/about-authors.c
+++ b/p2v/about-authors.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -22,12 +23,10 @@
/* The list of authors of virt-p2v and virt-v2v, for the About dialog. */
-const char *authors[] = {
- "Matthew Booth",
- "John Eckersberg",
- "Richard W.M. Jones",
- "Mike Latimer",
- "Pino Toscano",
- "Tingting Zheng",
- NULL
-};
+const char *authors[] = { "Matthew Booth",
+ "John Eckersberg",
+ "Richard W.M. Jones",
+ "Mike Latimer",
+ "Pino Toscano",
+ "Tingting Zheng",
+ NULL };
diff --git a/p2v/about-license.c b/p2v/about-license.c
index e8c9412..3fe5d5b 100644
--- a/p2v/about-license.c
+++ b/p2v/about-license.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -23,16 +24,17 @@
/* The license of virt-p2v, for the About dialog. */
const char *gplv2plus =
- "This program is free software; you can redistribute it and/or modify\n"
- "it under the terms of the GNU General Public License as published by\n"
- "the Free Software Foundation; either version 2 of the License, or\n"
- "(at your option) any later version.\n"
- "\n"
- "This program is distributed in the hope that it will be useful,\n"
- "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
- "GNU General Public License for more details.\n"
- "\n"
- "You should have received a copy of the GNU General Public License\n"
- "along with this program; if not, write to the Free Software\n"
- "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA.\n";
+ "This program is free software; you can redistribute it and/or modify\n"
+ "it under the terms of the GNU General Public License as published by\n"
+ "the Free Software Foundation; either version 2 of the License, or\n"
+ "(at your option) any later version.\n"
+ "\n"
+ "This program is distributed in the hope that it will be useful,\n"
+ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+ "GNU General Public License for more details.\n"
+ "\n"
+ "You should have received a copy of the GNU General Public License\n"
+ "along with this program; if not, write to the Free Software\n"
+ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
+ "02110-1301 USA.\n";
diff --git a/p2v/config.c b/p2v/config.c
index 9c0d76f..3052f6e 100644
--- a/p2v/config.c
+++ b/p2v/config.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -116,8 +117,8 @@ print_config (struct config *config, FILE *fp)
size_t i;
fprintf (fp, "local version . %s\n", PACKAGE_VERSION);
- fprintf (fp, "remote version . %d.%d.%d\n",
- v2v_major, v2v_minor, v2v_release);
+ fprintf (fp, "remote version . %d.%d.%d\n", v2v_major, v2v_minor,
+ v2v_release);
fprintf (fp, "remote debugging %s\n",
config->verbose ? "true" : "false");
fprintf (fp, "conversion server %s\n",
@@ -126,11 +127,11 @@ print_config (struct config *config, FILE *fp)
fprintf (fp, "username . . . . %s\n",
config->username ? config->username : "none");
fprintf (fp, "password . . . . %s\n",
- config->password && strlen (config->password) > 0 ?
"***" : "none");
+ config->password && strlen (config->password) > 0 ?
"***"
+ : "none");
fprintf (fp, "identity URL . . %s\n",
config->identity_url ? config->identity_url : "none");
- fprintf (fp, "sudo . . . . . . %s\n",
- config->sudo ? "true" : "false");
+ fprintf (fp, "sudo . . . . . . %s\n", config->sudo ? "true" :
"false");
fprintf (fp, "guest name . . . %s\n",
config->guestname ? config->guestname : "none");
fprintf (fp, "vcpus . . . . . %d\n", config->vcpus);
@@ -138,7 +139,7 @@ print_config (struct config *config, FILE *fp)
fprintf (fp, "flags . . . . . %s%s%s\n",
config->flags & FLAG_ACPI ? " acpi" : "",
config->flags & FLAG_APIC ? " apic" : "",
- config->flags & FLAG_PAE ? " pae" : "");
+ config->flags & FLAG_PAE ? " pae" : "");
fprintf (fp, "disks . . . . . ");
if (config->disks != NULL) {
for (i = 0; config->disks[i] != NULL; ++i)
@@ -167,10 +168,17 @@ print_config (struct config *config, FILE *fp)
config->output ? config->output : "none");
fprintf (fp, "output alloc . . ");
switch (config->output_allocation) {
- case OUTPUT_ALLOCATION_NONE: fprintf (fp, "none"); break;
- case OUTPUT_ALLOCATION_SPARSE: fprintf (fp, "sparse"); break;
- case OUTPUT_ALLOCATION_PREALLOCATED: fprintf (fp, "preallocated"); break;
- default: fprintf (fp, "unknown? (%d)", config->output_allocation);
+ case OUTPUT_ALLOCATION_NONE:
+ fprintf (fp, "none");
+ break;
+ case OUTPUT_ALLOCATION_SPARSE:
+ fprintf (fp, "sparse");
+ break;
+ case OUTPUT_ALLOCATION_PREALLOCATED:
+ fprintf (fp, "preallocated");
+ break;
+ default:
+ fprintf (fp, "unknown? (%d)", config->output_allocation);
}
fprintf (fp, "\n");
fprintf (fp, "output conn . . %s\n",
diff --git a/p2v/conversion.c b/p2v/conversion.c
index 103073e..823e413 100644
--- a/p2v/conversion.c
+++ b/p2v/conversion.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -72,11 +73,12 @@ xmlBufferDetach (xmlBufferPtr buf)
#define WAIT_QEMU_NBD_TIMEOUT 10
/* Data per NBD connection / physical disk. */
-struct data_conn {
- mexp_h *h; /* miniexpect handle to ssh */
- pid_t nbd_pid; /* qemu pid */
- int nbd_local_port; /* local NBD port on physical machine */
- int nbd_remote_port; /* remote NBD port on conversion server */
+struct data_conn
+{
+ mexp_h *h; /* miniexpect handle to ssh */
+ pid_t nbd_pid; /* qemu pid */
+ int nbd_local_port; /* local NBD port on physical machine */
+ int nbd_remote_port; /* remote NBD port on conversion server */
};
static int send_quoted (mexp_h *, const char *s);
@@ -84,12 +86,13 @@ static pid_t start_qemu_nbd (int nbd_local_port, const char *device);
static int wait_qemu_nbd (int nbd_local_port, int timeout_seconds);
static void cleanup_data_conns (struct data_conn *data_conns, size_t nr);
static char *generate_libvirt_xml (struct config *, struct data_conn *);
-static const char *map_interface_to_network (struct config *, const char *interface);
+static const char *map_interface_to_network (struct config *,
+ const char *interface);
static char *conversion_error;
static void set_conversion_error (const char *fs, ...)
- __attribute__((format(printf,1,2)));
+ __attribute__ ((format (printf, 1, 2)));
static void
set_conversion_error (const char *fs, ...)
@@ -171,7 +174,8 @@ start_conversion (struct config *config,
time_t now;
struct tm tm;
mexp_h *control_h = NULL;
- char dmesg_cmd[] = "dmesg > /tmp/dmesg.XXXXXX", *dmesg_file =
&dmesg_cmd[8];
+ char dmesg_cmd[] = "dmesg > /tmp/dmesg.XXXXXX",
+ *dmesg_file = &dmesg_cmd[8];
CLEANUP_FREE char *dmesg = NULL;
int fd, r;
@@ -200,20 +204,21 @@ start_conversion (struct config *config,
if (notify_ui) {
CLEANUP_FREE char *msg;
- if (asprintf (&msg,
- _("Opening data connection for %s ..."),
+ if (asprintf (&msg, _("Opening data connection for %s ..."),
config->disks[i]) == -1)
error (EXIT_FAILURE, errno, "asprintf");
notify_ui (NOTIFY_STATUS, msg);
}
- data_conns[i].h = open_data_connection (config,
- &data_conns[i].nbd_local_port,
- &data_conns[i].nbd_remote_port);
+ data_conns[i].h =
+ open_data_connection (config, &data_conns[i].nbd_local_port,
+ &data_conns[i].nbd_remote_port);
if (data_conns[i].h == NULL) {
const char *err = get_ssh_error ();
- set_conversion_error ("could not open data connection over SSH to the
conversion server: %s", err);
+ set_conversion_error ("could not open data connection over SSH to "
+ "the conversion server: %s",
+ err);
goto out;
}
@@ -224,23 +229,23 @@ start_conversion (struct config *config,
cleanup_data_conns (data_conns, nr_disks);
exit (EXIT_FAILURE);
}
- }
- else if (asprintf (&device, "/dev/%s", config->disks[i]) == -1) {
+ } else if (asprintf (&device, "/dev/%s", config->disks[i]) == -1) {
perror ("asprintf");
cleanup_data_conns (data_conns, nr_disks);
exit (EXIT_FAILURE);
}
#if DEBUG_STDERR
- fprintf (stderr,
- "%s: data connection for %s: SSH remote port %d, local port
%d\n",
- guestfs_int_program_name, device,
- data_conns[i].nbd_remote_port, data_conns[i].nbd_local_port);
+ fprintf (
+ stderr,
+ "%s: data connection for %s: SSH remote port %d, local port %d\n",
+ guestfs_int_program_name, device, data_conns[i].nbd_remote_port,
+ data_conns[i].nbd_local_port);
#endif
/* Start qemu-nbd listening on the given port number. */
data_conns[i].nbd_pid =
- start_qemu_nbd (data_conns[i].nbd_local_port, device);
+ start_qemu_nbd (data_conns[i].nbd_local_port, device);
if (data_conns[i].nbd_pid == 0)
goto out;
@@ -259,15 +264,14 @@ start_conversion (struct config *config,
*/
time (&now);
gmtime_r (&now, &tm);
- if (asprintf (&remote_dir,
- "/tmp/virt-p2v-%04d%02d%02d-XXXXXXXX",
+ if (asprintf (&remote_dir, "/tmp/virt-p2v-%04d%02d%02d-XXXXXXXX",
tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday) == -1) {
perror ("asprintf");
cleanup_data_conns (data_conns, nr_disks);
exit (EXIT_FAILURE);
}
len = strlen (remote_dir);
- guestfs_int_random_string (&remote_dir[len-8], 8);
+ guestfs_int_random_string (&remote_dir[len - 8], 8);
if (notify_ui)
notify_ui (NOTIFY_LOG_DIR, remote_dir);
@@ -277,7 +281,8 @@ start_conversion (struct config *config,
goto out;
#if DEBUG_STDERR
- fprintf (stderr, "%s: libvirt XML:\n%s", guestfs_int_program_name,
libvirt_xml);
+ fprintf (stderr, "%s: libvirt XML:\n%s", guestfs_int_program_name,
+ libvirt_xml);
#endif
/* Get the output from the 'dmesg' command. We will store this
@@ -300,17 +305,20 @@ start_conversion (struct config *config,
}
ignore_value (read_whole_file (dmesg_file, &dmesg, NULL));
- skip_dmesg:
+skip_dmesg:
/* Open the control connection and start conversion */
if (notify_ui)
notify_ui (NOTIFY_STATUS, _("Setting up the control connection ..."));
- control_h = start_remote_connection (config, remote_dir, libvirt_xml, dmesg);
+ control_h =
+ start_remote_connection (config, remote_dir, libvirt_xml, dmesg);
if (control_h == NULL) {
const char *err = get_ssh_error ();
- set_conversion_error ("could not open control connection over SSH to the
conversion server: %s", err);
+ set_conversion_error ("could not open control connection over SSH to "
+ "the conversion server: %s",
+ err);
goto out;
}
@@ -328,7 +336,7 @@ start_conversion (struct config *config,
set_conversion_error ("mexp_printf: virt-v2v command: %m");
goto out;
}
- if (config->output) { /* -o */
+ if (config->output) { /* -o */
if (mexp_printf (control_h, " -o ") == -1)
goto printf_fail;
if (send_quoted (control_h, config->output) == -1)
@@ -349,7 +357,7 @@ start_conversion (struct config *config,
default:
abort ();
}
- if (config->output_format) { /* -of */
+ if (config->output_format) { /* -of */
if (mexp_printf (control_h, " -of ") == -1)
goto printf_fail;
if (send_quoted (control_h, config->output_format) == -1)
@@ -389,12 +397,12 @@ start_conversion (struct config *config,
if (r == -1) {
/* See comment about this in miniexpect.c. */
if (errno == EIO)
- break; /* EOF */
+ break; /* EOF */
set_conversion_error ("read: %m");
goto out;
}
if (r == 0)
- break; /* EOF */
+ break; /* EOF */
buf[r] = '\0';
if (notify_ui)
notify_ui (NOTIFY_REMOTE_MESSAGE, buf);
@@ -411,13 +419,12 @@ start_conversion (struct config *config,
notify_ui (NOTIFY_STATUS, _("Control connection closed by remote."));
ret = 0;
- out:
+out:
if (control_h) {
if ((status = mexp_close (control_h)) == -1) {
set_conversion_error ("mexp_close: %m");
ret = -1;
- } else if (ret == 0 &&
- WIFEXITED (status) &&
+ } else if (ret == 0 && WIFEXITED (status) &&
WEXITSTATUS (status) != 0) {
set_conversion_error ("virt-v2v exited with status %d",
WEXITSTATUS (status));
@@ -478,19 +485,17 @@ start_qemu_nbd (int port, const char *device)
return 0;
}
- if (pid == 0) { /* Child. */
+ if (pid == 0) { /* Child. */
close (0);
open ("/dev/null", O_RDONLY);
- execlp ("qemu-nbd",
- "qemu-nbd",
- "-r", /* readonly (vital!) */
- "-p", port_str, /* listening port */
- "-t", /* persistent */
- "-f", "raw", /* force raw format */
- "-b", "localhost", /* listen only on loopback interface
*/
- "--cache=unsafe", /* use unsafe caching for speed */
- device, /* a device like /dev/sda */
+ execlp ("qemu-nbd", "qemu-nbd", "-r", /* readonly
(vital!) */
+ "-p", port_str, /* listening port */
+ "-t", /* persistent */
+ "-f", "raw", /* force raw format */
+ "-b", "localhost", /* listen only on loopback interface
*/
+ "--cache=unsafe", /* use unsafe caching for speed */
+ device, /* a device like /dev/sda */
NULL);
perror ("qemu-nbd");
_exit (EXIT_FAILURE);
@@ -507,7 +512,8 @@ start_qemu_nbd (int port, const char *device)
static int bind_source_port (int sockfd, int family, int source_port);
static int
-connect_with_source_port (const char *hostname, int dest_port, int source_port)
+connect_with_source_port (const char *hostname, int dest_port,
+ int source_port)
{
struct addrinfo hints;
struct addrinfo *results, *rp;
@@ -518,15 +524,15 @@ connect_with_source_port (const char *hostname, int dest_port, int
source_port)
snprintf (dest_port_str, sizeof dest_port_str, "%d", dest_port);
memset (&hints, 0, sizeof hints);
- hints.ai_family = AF_UNSPEC; /* allow IPv4 or IPv6 */
+ hints.ai_family = AF_UNSPEC; /* allow IPv4 or IPv6 */
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_NUMERICSERV; /* numeric dest port number */
hints.ai_protocol = 0; /* any protocol */
r = getaddrinfo (hostname, dest_port_str, &hints, &results);
if (r != 0) {
- set_conversion_error ("getaddrinfo: %s/%s: %s",
- hostname, dest_port_str, gai_strerror (r));
+ set_conversion_error ("getaddrinfo: %s/%s: %s", hostname, dest_port_str,
+ gai_strerror (r));
return -1;
}
@@ -540,8 +546,8 @@ connect_with_source_port (const char *hostname, int dest_port, int
source_port)
* that is in TIME_WAIT from a prior run. Handle that gracefully
* with SO_REUSEADDR.
*/
- if (setsockopt (sockfd, SOL_SOCKET, SO_REUSEADDR,
- &reuseaddr, sizeof reuseaddr) == -1)
+ if (setsockopt (sockfd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr,
+ sizeof reuseaddr) == -1)
perror ("warning: setsockopt");
/* Need to bind the source port. */
@@ -602,7 +608,7 @@ bind_source_port (int sockfd, int family, int source_port)
freeaddrinfo (results);
return -1;
- bound:
+bound:
freeaddrinfo (results);
return 0;
}
@@ -613,8 +619,8 @@ wait_qemu_nbd (int nbd_local_port, int timeout_seconds)
int sockfd = -1;
int result = -1;
time_t start_t, now_t;
- struct timespec half_sec = { .tv_sec = 0, .tv_nsec = 500000000 };
- struct timeval timeout = { .tv_usec = 0 };
+ struct timespec half_sec = {.tv_sec = 0, .tv_nsec = 500000000 };
+ struct timeval timeout = {.tv_usec = 0 };
char magic[8]; /* NBDMAGIC */
size_t bytes_read = 0;
ssize_t recvd;
@@ -636,7 +642,7 @@ wait_qemu_nbd (int nbd_local_port, int timeout_seconds)
*
https://bugzilla.redhat.com/show_bug.cgi?id=1167774#c9
*/
sockfd = connect_with_source_port ("localhost", nbd_local_port,
- nbd_local_port+1);
+ nbd_local_port + 1);
if (sockfd >= 0)
break;
@@ -665,7 +671,7 @@ wait_qemu_nbd (int nbd_local_port, int timeout_seconds)
}
result = 0;
- cleanup:
+cleanup:
close (sockfd);
return result;
@@ -696,61 +702,66 @@ cleanup_data_conns (struct data_conn *data_conns, size_t nr)
/* Macros "inspired" by src/launch-libvirt.c */
/* <element */
-#define start_element(element) \
- if (xmlTextWriterStartElement (xo, BAD_CAST (element)) == -1) { \
- set_conversion_error ("xmlTextWriterStartElement: %m"); \
- return NULL; \
- } \
+#define start_element(element) \
+ if (xmlTextWriterStartElement (xo, BAD_CAST (element)) == -1) { \
+ set_conversion_error ("xmlTextWriterStartElement: %m"); \
+ return NULL; \
+ } \
do
/* finish current </element> */
-#define end_element() \
- while (0); \
- do { \
- if (xmlTextWriterEndElement (xo) == -1) { \
- set_conversion_error ("xmlTextWriterEndElement: %m"); \
- return NULL; \
- } \
+#define end_element() \
+ while (0) \
+ ; \
+ do { \
+ if (xmlTextWriterEndElement (xo) == -1) { \
+ set_conversion_error ("xmlTextWriterEndElement: %m"); \
+ return NULL; \
+ } \
} while (0)
/* <element/> */
-#define empty_element(element) \
- do { start_element(element) {} end_element (); } while (0)
+#define empty_element(element) \
+ do { \
+ start_element (element) {} \
+ end_element (); \
+ } while (0)
/* key=value attribute of the current element. */
-#define attribute(key,value) \
- if (xmlTextWriterWriteAttribute (xo, BAD_CAST (key), BAD_CAST (value)) == -1) { \
- set_conversion_error ("xmlTextWriterWriteAttribute: %m"); \
- return NULL; \
+#define attribute(key, value) \
+ if (xmlTextWriterWriteAttribute (xo, BAD_CAST (key), \
+ BAD_CAST (value)) == -1) { \
+ set_conversion_error ("xmlTextWriterWriteAttribute: %m"); \
+ return NULL; \
}
/* key=value, but value is a printf-style format string. */
-#define attribute_format(key,fs,...) \
- if (xmlTextWriterWriteFormatAttribute (xo, BAD_CAST (key), \
- fs, ##__VA_ARGS__) == -1) { \
- set_conversion_error ("xmlTextWriterWriteFormatAttribute: %m"); \
- return NULL; \
+#define attribute_format(key, fs, ...) \
+ if (xmlTextWriterWriteFormatAttribute (xo, BAD_CAST (key), fs, \
+ ##__VA_ARGS__) == -1) { \
+ set_conversion_error ("xmlTextWriterWriteFormatAttribute: %m"); \
+ return NULL; \
}
/* A string, eg. within an element. */
-#define string(str) \
- if (xmlTextWriterWriteString (xo, BAD_CAST (str)) == -1) { \
- set_conversion_error ("xmlTextWriterWriteString: %m"); \
- return NULL; \
+#define string(str) \
+ if (xmlTextWriterWriteString (xo, BAD_CAST (str)) == -1) { \
+ set_conversion_error ("xmlTextWriterWriteString: %m"); \
+ return NULL; \
}
/* A string, using printf-style formatting. */
-#define string_format(fs,...) \
- if (xmlTextWriterWriteFormatString (xo, fs, ##__VA_ARGS__) == -1) { \
- set_conversion_error ("xmlTextWriterWriteFormatString: %m"); \
- return NULL; \
+#define string_format(fs, ...) \
+ if (xmlTextWriterWriteFormatString (xo, fs, ##__VA_ARGS__) == -1) { \
+ set_conversion_error ("xmlTextWriterWriteFormatString: %m"); \
+ return NULL; \
}
/* An XML comment. */
-#define comment(str) \
- if (xmlTextWriterWriteComment (xo, BAD_CAST (str)) == -1) { \
- set_conversion_error ("xmlTextWriterWriteComment: %m"); \
- return NULL; \
+#define comment(str) \
+ if (xmlTextWriterWriteComment (xo, BAD_CAST (str)) == -1) { \
+ set_conversion_error ("xmlTextWriterWriteComment: %m"); \
+ return NULL; \
}
/* Write the libvirt XML for this physical machine. Note this is not
@@ -796,53 +807,66 @@ generate_libvirt_xml (struct config *config, struct data_conn
*data_conns)
memkb = config->memory / 1024;
- comment
- (" NOTE!\n"
- "\n"
- " This libvirt XML is generated by the virt-p2v front end, in\n"
- " order to communicate with the backend virt-v2v process running\n"
- " on the conversion server. It is a minimal description of the\n"
- " physical machine. If the target of the conversion is libvirt,\n"
- " then virt-v2v will generate the real target libvirt XML, which\n"
- " has only a little to do with the XML in this file.\n"
- "\n"
- " TL;DR: Don't try to load this XML into libvirt. ");
+ comment (
+ " NOTE!\n"
+ "\n"
+ " This libvirt XML is generated by the virt-p2v front end, in\n"
+ " order to communicate with the backend virt-v2v process running\n"
+ " on the conversion server. It is a minimal description of the\n"
+ " physical machine. If the target of the conversion is libvirt,\n"
+ " then virt-v2v will generate the real target libvirt XML, which\n"
+ " has only a little to do with the XML in this file.\n"
+ "\n"
+ " TL;DR: Don't try to load this XML into libvirt. ");
- start_element ("domain") {
+ start_element ("domain")
+ {
attribute ("type", "physical");
- start_element ("name") {
- string (config->guestname);
- } end_element ();
+ start_element ("name") { string (config->guestname); }
+ end_element ();
- start_element ("memory") {
+ start_element ("memory")
+ {
attribute ("unit", "KiB");
string_format ("%" PRIu64, memkb);
- } end_element ();
+ }
+ end_element ();
- start_element ("currentMemory") {
+ start_element ("currentMemory")
+ {
attribute ("unit", "KiB");
string_format ("%" PRIu64, memkb);
- } end_element ();
+ }
+ end_element ();
- start_element ("vcpu") {
- string_format ("%d", config->vcpus);
- } end_element ();
+ start_element ("vcpu") { string_format ("%d", config->vcpus);
}
+ end_element ();
- start_element ("os") {
- start_element ("type") {
+ start_element ("os")
+ {
+ start_element ("type")
+ {
attribute ("arch", host_cpu);
string ("hvm");
- } end_element ();
- } end_element ();
+ }
+ end_element ();
+ }
+ end_element ();
- start_element ("features") {
- if (config->flags & FLAG_ACPI) empty_element ("acpi");
- if (config->flags & FLAG_APIC) empty_element ("apic");
- if (config->flags & FLAG_PAE) empty_element ("pae");
- } end_element ();
+ start_element ("features")
+ {
+ if (config->flags & FLAG_ACPI)
+ empty_element ("acpi");
+ if (config->flags & FLAG_APIC)
+ empty_element ("apic");
+ if (config->flags & FLAG_PAE)
+ empty_element ("pae");
+ }
+ end_element ();
- start_element ("devices") {
+ start_element ("devices")
+ {
for (i = 0; config->disks[i] != NULL; ++i) {
char target_dev[64];
@@ -858,40 +882,57 @@ generate_libvirt_xml (struct config *config, struct data_conn
*data_conns)
goto target_sd;
}
- start_element ("disk") {
+ start_element ("disk")
+ {
attribute ("type", "network");
attribute ("device", "disk");
- start_element ("driver") {
+ start_element ("driver")
+ {
attribute ("name", "qemu");
attribute ("type", "raw");
- } end_element ();
- start_element ("source") {
+ }
+ end_element ();
+ start_element ("source")
+ {
attribute ("protocol", "nbd");
- start_element ("host") {
+ start_element ("host")
+ {
attribute ("name", "localhost");
- attribute_format ("port", "%d",
data_conns[i].nbd_remote_port);
- } end_element ();
- } end_element ();
- start_element ("target") {
+ attribute_format ("port", "%d",
+ data_conns[i].nbd_remote_port);
+ }
+ end_element ();
+ }
+ end_element ();
+ start_element ("target")
+ {
attribute ("dev", target_dev);
/* XXX Need to set bus to "ide" or "scsi" here. */
- } end_element ();
- } end_element ();
+ }
+ end_element ();
+ }
+ end_element ();
}
if (config->removable) {
for (i = 0; config->removable[i] != NULL; ++i) {
- start_element ("disk") {
+ start_element ("disk")
+ {
attribute ("type", "network");
attribute ("device", "cdrom");
- start_element ("driver") {
+ start_element ("driver")
+ {
attribute ("name", "qemu");
attribute ("type", "raw");
- } end_element ();
- start_element ("target") {
+ }
+ end_element ();
+ start_element ("target")
+ {
attribute ("dev", config->removable[i]);
- } end_element ();
- } end_element ();
+ }
+ end_element ();
+ }
+ end_element ();
}
}
@@ -902,7 +943,7 @@ generate_libvirt_xml (struct config *config, struct data_conn
*data_conns)
CLEANUP_FREE char *mac = NULL;
target_network =
- map_interface_to_network (config, config->interfaces[i]);
+ map_interface_to_network (config, config->interfaces[i]);
if (asprintf (&mac_filename, "/sys/class/net/%s/address",
config->interfaces[i]) == -1)
@@ -910,36 +951,41 @@ generate_libvirt_xml (struct config *config, struct data_conn
*data_conns)
if (g_file_get_contents (mac_filename, &mac, NULL, NULL)) {
size_t len = strlen (mac);
- if (len > 0 && mac[len-1] == '\n')
- mac[len-1] = '\0';
+ if (len > 0 && mac[len - 1] == '\n')
+ mac[len - 1] = '\0';
}
- start_element ("interface") {
+ start_element ("interface")
+ {
attribute ("type", "network");
- start_element ("source") {
+ start_element ("source")
+ {
attribute ("network", target_network);
- } end_element ();
- start_element ("target") {
+ }
+ end_element ();
+ start_element ("target")
+ {
attribute ("dev", config->interfaces[i]);
- } end_element ();
+ }
+ end_element ();
if (mac) {
- start_element ("mac") {
- attribute ("address", mac);
- } end_element ();
+ start_element ("mac") { attribute ("address", mac); }
+ end_element ();
}
- } end_element ();
+ }
+ end_element ();
}
}
-
- } end_element (); /* </devices> */
-
- } end_element (); /* </domain> */
+ }
+ end_element (); /* </devices> */
+ }
+ end_element (); /* </domain> */
if (xmlTextWriterEndDocument (xo) == -1) {
set_conversion_error ("xmlTextWriterEndDocument: %m");
return NULL;
}
- ret = (char *) xmlBufferDetach (xb); /* caller frees */
+ ret = (char *)xmlBufferDetach (xb); /* caller frees */
if (ret == NULL) {
set_conversion_error ("xmlBufferDetach: %m");
return NULL;
@@ -972,7 +1018,7 @@ map_interface_to_network (struct config *config, const char
*interface)
len = strlen (interface);
if (STRPREFIX (config->network_map[i], interface) &&
config->network_map[i][len] == ':')
- return &config->network_map[i][len+1];
+ return &config->network_map[i][len + 1];
}
/* No mapping found. */
diff --git a/p2v/gui.c b/p2v/gui.c
index 625c6eb..04853f2 100644
--- a/p2v/gui.c
+++ b/p2v/gui.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -33,7 +34,8 @@
#include <pthread.h>
-#pragma GCC diagnostic ignored "-Wstrict-prototypes" /* error in <gtk.h>
*/
+#pragma GCC diagnostic ignored "-Wstrict-prototypes" /* error in <gtk.h>
\
+ */
#include <gtk/gtk.h>
#include "ignore-value.h"
@@ -52,25 +54,19 @@ static void show_running_dialog (void);
static void set_info_label (void);
/* The connection dialog. */
-static GtkWidget *conn_dlg,
- *server_entry, *port_entry,
- *username_entry, *password_entry, *identity_entry, *sudo_button,
- *spinner_hbox, *spinner, *spinner_message, *next_button;
+static GtkWidget *conn_dlg, *server_entry, *port_entry, *username_entry,
+ *password_entry, *identity_entry, *sudo_button, *spinner_hbox, *spinner,
+ *spinner_message, *next_button;
/* The conversion dialog. */
-static GtkWidget *conv_dlg,
- *guestname_entry, *vcpus_entry, *memory_entry,
- *vcpus_warning, *memory_warning, *target_warning_label,
- *o_combo, *oc_entry, *os_entry, *of_entry, *oa_combo,
- *info_label,
- *debug_button,
- *disks_list, *removable_list, *interfaces_list,
- *start_button;
+static GtkWidget *conv_dlg, *guestname_entry, *vcpus_entry, *memory_entry,
+ *vcpus_warning, *memory_warning, *target_warning_label, *o_combo,
+ *oc_entry, *os_entry, *of_entry, *oa_combo, *info_label, *debug_button,
+ *disks_list, *removable_list, *interfaces_list, *start_button;
/* The running dialog which is displayed when virt-v2v is running. */
-static GtkWidget *run_dlg,
- *v2v_output_sw, *v2v_output, *log_label, *status_label,
- *cancel_button, *reboot_button;
+static GtkWidget *run_dlg, *v2v_output_sw, *v2v_output, *log_label,
+ *status_label, *cancel_button, *reboot_button;
/* The entry point from the main program.
* Note that gtk_init etc have already been called in main.
@@ -120,48 +116,49 @@ create_connection_dialog (struct config *config)
gtk_window_set_resizable (GTK_WINDOW (conn_dlg), FALSE);
/* The main dialog area. */
- intro = gtk_label_new (_("Connect to a virt-v2v conversion server over
SSH:"));
+ intro = gtk_label_new (
+ _("Connect to a virt-v2v conversion server over SSH:"));
gtk_label_set_line_wrap (GTK_LABEL (intro), TRUE);
gtk_misc_set_padding (GTK_MISC (intro), 10, 10);
table = gtk_table_new (7, 2, FALSE);
server_label = gtk_label_new (_("Conversion server:"));
gtk_misc_set_alignment (GTK_MISC (server_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (table), server_label,
- 0, 1, 0, 1, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), server_label, 0, 1, 0, 1, GTK_FILL,
+ GTK_FILL, 4, 4);
server_entry = gtk_entry_new ();
if (config->server != NULL)
gtk_entry_set_text (GTK_ENTRY (server_entry), config->server);
- gtk_table_attach (GTK_TABLE (table), server_entry,
- 1, 2, 0, 1, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), server_entry, 1, 2, 0, 1, GTK_FILL,
+ GTK_FILL, 4, 4);
port_label = gtk_label_new (_("SSH port:"));
gtk_misc_set_alignment (GTK_MISC (port_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (table), port_label,
- 0, 1, 1, 2, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), port_label, 0, 1, 1, 2, GTK_FILL,
+ GTK_FILL, 4, 4);
port_entry = gtk_entry_new ();
gtk_entry_set_width_chars (GTK_ENTRY (port_entry), 6);
snprintf (port_str, sizeof port_str, "%d", config->port);
gtk_entry_set_text (GTK_ENTRY (port_entry), port_str);
- gtk_table_attach (GTK_TABLE (table), port_entry,
- 1, 2, 1, 2, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), port_entry, 1, 2, 1, 2, GTK_FILL,
+ GTK_FILL, 4, 4);
username_label = gtk_label_new (_("User name:"));
gtk_misc_set_alignment (GTK_MISC (username_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (table), username_label,
- 0, 1, 2, 3, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), username_label, 0, 1, 2, 3, GTK_FILL,
+ GTK_FILL, 4, 4);
username_entry = gtk_entry_new ();
if (config->username != NULL)
gtk_entry_set_text (GTK_ENTRY (username_entry), config->username);
else
gtk_entry_set_text (GTK_ENTRY (username_entry), "root");
- gtk_table_attach (GTK_TABLE (table), username_entry,
- 1, 2, 2, 3, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), username_entry, 1, 2, 2, 3, GTK_FILL,
+ GTK_FILL, 4, 4);
password_label = gtk_label_new (_("Password:"));
gtk_misc_set_alignment (GTK_MISC (password_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (table), password_label,
- 0, 1, 3, 4, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), password_label, 0, 1, 3, 4, GTK_FILL,
+ GTK_FILL, 4, 4);
password_entry = gtk_entry_new ();
gtk_entry_set_visibility (GTK_ENTRY (password_entry), FALSE);
#ifdef GTK_INPUT_PURPOSE_PASSWORD
@@ -170,32 +167,33 @@ create_connection_dialog (struct config *config)
#endif
if (config->password != NULL)
gtk_entry_set_text (GTK_ENTRY (password_entry), config->password);
- gtk_table_attach (GTK_TABLE (table), password_entry,
- 1, 2, 3, 4, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), password_entry, 1, 2, 3, 4, GTK_FILL,
+ GTK_FILL, 4, 4);
identity_label = gtk_label_new (_("SSH Identity URL:"));
gtk_misc_set_alignment (GTK_MISC (identity_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (table), identity_label,
- 0, 1, 4, 5, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), identity_label, 0, 1, 4, 5, GTK_FILL,
+ GTK_FILL, 4, 4);
identity_entry = gtk_entry_new ();
if (config->identity_url != NULL)
gtk_entry_set_text (GTK_ENTRY (identity_entry), config->identity_url);
- gtk_table_attach (GTK_TABLE (table), identity_entry,
- 1, 2, 4, 5, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), identity_entry, 1, 2, 4, 5, GTK_FILL,
+ GTK_FILL, 4, 4);
identity_tip_label = gtk_label_new (NULL);
gtk_label_set_markup (GTK_LABEL (identity_tip_label),
- _("<i>If using password authentication, leave the SSH
Identity URL blank</i>"));
+ _("<i>If using password authentication, leave the
"
+ "SSH Identity URL blank</i>"));
gtk_label_set_line_wrap (GTK_LABEL (identity_tip_label), TRUE);
- gtk_table_attach (GTK_TABLE (table), identity_tip_label,
- 1, 2, 5, 6, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), identity_tip_label, 1, 2, 5, 6,
+ GTK_FILL, GTK_FILL, 4, 4);
- sudo_button =
- gtk_check_button_new_with_label (_("Use sudo when running virt-v2v"));
+ sudo_button = gtk_check_button_new_with_label (
+ _("Use sudo when running virt-v2v"));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sudo_button),
config->sudo);
- gtk_table_attach (GTK_TABLE (table), sudo_button,
- 1, 2, 6, 7, GTK_FILL, GTK_FILL, 4, 4);
+ gtk_table_attach (GTK_TABLE (table), sudo_button, 1, 2, 6, 7, GTK_FILL,
+ GTK_FILL, 4, 4);
test_hbox = gtk_hbox_new (FALSE, 0);
test = gtk_button_new_with_label (_("Test connection"));
@@ -207,29 +205,29 @@ create_connection_dialog (struct config *config)
spinner_message = gtk_label_new (NULL);
gtk_label_set_line_wrap (GTK_LABEL (spinner_message), TRUE);
gtk_misc_set_padding (GTK_MISC (spinner_message), 10, 10);
- gtk_box_pack_start (GTK_BOX (spinner_hbox), spinner_message, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (spinner_hbox), spinner_message, TRUE, TRUE,
+ 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (conn_dlg)->vbox),
- intro, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (conn_dlg)->vbox),
- table, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (conn_dlg)->vbox),
- test_hbox, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (conn_dlg)->vbox),
- spinner_hbox, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (conn_dlg)->vbox), intro, TRUE,
+ TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (conn_dlg)->vbox), table, TRUE,
+ TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (conn_dlg)->vbox), test_hbox,
+ FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (conn_dlg)->vbox), spinner_hbox,
+ TRUE, TRUE, 0);
/* Buttons. */
- gtk_dialog_add_buttons (GTK_DIALOG (conn_dlg),
- _("Configure network ..."), 1,
- _("About virt-p2v " PACKAGE_VERSION "
..."), 2,
- _("Next"), 3,
- NULL);
+ gtk_dialog_add_buttons (
+ GTK_DIALOG (conn_dlg), _("Configure network ..."), 1,
+ _("About virt-p2v " PACKAGE_VERSION " ..."), 2,
_("Next"), 3, NULL);
- next_button = gtk_dialog_get_widget_for_response (GTK_DIALOG (conn_dlg), 3);
+ next_button =
+ gtk_dialog_get_widget_for_response (GTK_DIALOG (conn_dlg), 3);
gtk_widget_set_sensitive (next_button, FALSE);
configure_network =
- gtk_dialog_get_widget_for_response (GTK_DIALOG (conn_dlg), 1);
+ gtk_dialog_get_widget_for_response (GTK_DIALOG (conn_dlg), 1);
about = gtk_dialog_get_widget_for_response (GTK_DIALOG (conn_dlg), 2);
/* Signals. */
@@ -282,23 +280,27 @@ test_connection_clicked (GtkWidget *w, gpointer data)
errors++;
}
port_str = gtk_entry_get_text (GTK_ENTRY (port_entry));
- if (sscanf (port_str, "%d", &config->port) != 1 ||
- config->port <= 0 || config->port >= 65536) {
- gtk_label_set_text (GTK_LABEL (spinner_message),
- _("error: Invalid port number. If in doubt, use
\"22\"."));
+ if (sscanf (port_str, "%d", &config->port) != 1 || config->port
<= 0 ||
+ config->port >= 65536) {
+ gtk_label_set_text (
+ GTK_LABEL (spinner_message),
+ _("error: Invalid port number. If in doubt, use \"22\"."));
gtk_widget_grab_focus (port_entry);
errors++;
}
free (config->username);
- config->username = strdup (gtk_entry_get_text (GTK_ENTRY (username_entry)));
+ config->username =
+ strdup (gtk_entry_get_text (GTK_ENTRY (username_entry)));
if (STREQ (config->username, "")) {
- gtk_label_set_text (GTK_LABEL (spinner_message),
- _("error: No user name. If in doubt, use
\"root\"."));
+ gtk_label_set_text (
+ GTK_LABEL (spinner_message),
+ _("error: No user name. If in doubt, use \"root\"."));
gtk_widget_grab_focus (username_entry);
errors++;
}
free (config->password);
- config->password = strdup (gtk_entry_get_text (GTK_ENTRY (password_entry)));
+ config->password =
+ strdup (gtk_entry_get_text (GTK_ENTRY (password_entry)));
free (config->identity_url);
identity_str = gtk_entry_get_text (GTK_ENTRY (identity_entry));
@@ -308,7 +310,8 @@ test_connection_clicked (GtkWidget *w, gpointer data)
config->identity_url = NULL;
config->identity_file_needs_update = 1;
- config->sudo = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (sudo_button));
+ config->sudo =
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (sudo_button));
if (errors)
return;
@@ -339,8 +342,9 @@ test_connection_thread (void *data)
int r;
gdk_threads_enter ();
- gtk_label_set_text (GTK_LABEL (spinner_message),
- _("Testing the connection to the conversion server
..."));
+ gtk_label_set_text (
+ GTK_LABEL (spinner_message),
+ _("Testing the connection to the conversion server ..."));
gtk_spinner_start (GTK_SPINNER (spinner));
gdk_threads_leave ();
@@ -358,12 +362,12 @@ test_connection_thread (void *data)
gtk_label_set_text (GTK_LABEL (spinner_message), err);
/* Disable the Next button. */
gtk_widget_set_sensitive (next_button, FALSE);
- }
- else {
+ } else {
/* Connection is good. */
gtk_label_set_text (GTK_LABEL (spinner_message),
_("Connected to the conversion server.\n"
- "Press the \"Next\" button to configure the
conversion process."));
+ "Press the \"Next\" button to configure the
"
+ "conversion process."));
/* Enable the Next button. */
gtk_widget_set_sensitive (next_button, TRUE);
gtk_widget_grab_focus (next_button);
@@ -386,15 +390,12 @@ configure_network_button_clicked (GtkWidget *w, gpointer data)
static void
about_button_clicked (GtkWidget *w, gpointer data)
{
- gtk_show_about_dialog (GTK_WINDOW (conn_dlg),
- "program-name", guestfs_int_program_name,
- "version", PACKAGE_VERSION " (" host_cpu
")",
- "copyright", "\u00A9 2009-2016 Red Hat
Inc.",
- "comments", "Convert a physical machine to use
KVM",
- "license", gplv2plus,
- "website", "http://libguestfs.org/",
- "authors", authors,
- NULL);
+ gtk_show_about_dialog (
+ GTK_WINDOW (conn_dlg), "program-name", guestfs_int_program_name,
+ "version", PACKAGE_VERSION " (" host_cpu ")",
"copyright",
+ "\u00A9 2009-2016 Red Hat Inc.", "comments",
+ "Convert a physical machine to use KVM", "license", gplv2plus,
+ "website", "http://libguestfs.org/", "authors",
authors, NULL);
}
/* The connection dialog Next button has been clicked. */
@@ -411,9 +412,13 @@ connection_next_clicked (GtkWidget *w, gpointer data)
static void populate_disks (GtkTreeView *disks_list);
static void populate_removable (GtkTreeView *removable_list);
static void populate_interfaces (GtkTreeView *interfaces_list);
-static void toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data);
-static void network_edited_callback (GtkCellRendererToggle *cell, gchar *path_str, gchar
*new_text, gpointer data);
-static gboolean maybe_identify_click (GtkWidget *interfaces_list, GdkEventButton *event,
gpointer data);
+static void toggled (GtkCellRendererToggle *cell, gchar *path_str,
+ gpointer data);
+static void network_edited_callback (GtkCellRendererToggle *cell,
+ gchar *path_str, gchar *new_text,
+ gpointer data);
+static gboolean maybe_identify_click (GtkWidget *interfaces_list,
+ GdkEventButton *event, gpointer data);
static void set_disks_from_ui (struct config *);
static void set_removable_from_ui (struct config *);
static void set_interfaces_from_ui (struct config *);
@@ -483,42 +488,42 @@ create_conversion_dialog (struct config *config)
target_tbl = gtk_table_new (3, 3, FALSE);
guestname_label = gtk_label_new (_("Name:"));
gtk_misc_set_alignment (GTK_MISC (guestname_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (target_tbl), guestname_label,
- 0, 1, 0, 1, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (target_tbl), guestname_label, 0, 1, 0, 1,
+ GTK_FILL, GTK_FILL, 1, 1);
guestname_entry = gtk_entry_new ();
if (config->guestname != NULL)
gtk_entry_set_text (GTK_ENTRY (guestname_entry), config->guestname);
- gtk_table_attach (GTK_TABLE (target_tbl), guestname_entry,
- 1, 2, 0, 1, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (target_tbl), guestname_entry, 1, 2, 0, 1,
+ GTK_FILL, GTK_FILL, 1, 1);
vcpus_label = gtk_label_new (_("# vCPUs:"));
gtk_misc_set_alignment (GTK_MISC (vcpus_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (target_tbl), vcpus_label,
- 0, 1, 1, 2, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (target_tbl), vcpus_label, 0, 1, 1, 2,
+ GTK_FILL, GTK_FILL, 1, 1);
vcpus_entry = gtk_entry_new ();
snprintf (vcpus_str, sizeof vcpus_str, "%d", config->vcpus);
gtk_entry_set_text (GTK_ENTRY (vcpus_entry), vcpus_str);
- gtk_table_attach (GTK_TABLE (target_tbl), vcpus_entry,
- 1, 2, 1, 2, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (target_tbl), vcpus_entry, 1, 2, 1, 2,
+ GTK_FILL, GTK_FILL, 1, 1);
vcpus_warning = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING,
GTK_ICON_SIZE_BUTTON);
- gtk_table_attach (GTK_TABLE (target_tbl), vcpus_warning,
- 2, 3, 1, 2, 0, 0, 1, 1);
+ gtk_table_attach (GTK_TABLE (target_tbl), vcpus_warning, 2, 3, 1, 2, 0, 0,
+ 1, 1);
memory_label = gtk_label_new (_("Memory (MB):"));
gtk_misc_set_alignment (GTK_MISC (memory_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (target_tbl), memory_label,
- 0, 1, 2, 3, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (target_tbl), memory_label, 0, 1, 2, 3,
+ GTK_FILL, GTK_FILL, 1, 1);
memory_entry = gtk_entry_new ();
snprintf (memory_str, sizeof memory_str, "%" PRIu64,
config->memory / 1024 / 1024);
gtk_entry_set_text (GTK_ENTRY (memory_entry), memory_str);
- gtk_table_attach (GTK_TABLE (target_tbl), memory_entry,
- 1, 2, 2, 3, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (target_tbl), memory_entry, 1, 2, 2, 3,
+ GTK_FILL, GTK_FILL, 1, 1);
memory_warning = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING,
GTK_ICON_SIZE_BUTTON);
- gtk_table_attach (GTK_TABLE (target_tbl), memory_warning,
- 2, 3, 2, 3, 0, 0, 1, 1);
+ gtk_table_attach (GTK_TABLE (target_tbl), memory_warning, 2, 3, 2, 3, 0,
+ 0, 1, 1);
gtk_box_pack_start (GTK_BOX (target_vbox), target_tbl, TRUE, TRUE, 0);
@@ -527,7 +532,8 @@ create_conversion_dialog (struct config *config)
gtk_label_set_line_wrap_mode (GTK_LABEL (target_warning_label),
PANGO_WRAP_WORD);
gtk_widget_set_size_request (target_warning_label, -1, 7 * 16);
- gtk_box_pack_end (GTK_BOX (target_vbox), target_warning_label, TRUE, TRUE, 0);
+ gtk_box_pack_end (GTK_BOX (target_vbox), target_warning_label, TRUE, TRUE,
+ 0);
gtk_container_add (GTK_CONTAINER (target_frame), target_vbox);
@@ -539,54 +545,70 @@ create_conversion_dialog (struct config *config)
output_tbl = gtk_table_new (5, 2, FALSE);
o_label = gtk_label_new (_("Output to (-o):"));
gtk_misc_set_alignment (GTK_MISC (o_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (output_tbl), o_label,
- 0, 1, 0, 1, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (output_tbl), o_label, 0, 1, 0, 1, GTK_FILL,
+ GTK_FILL, 1, 1);
o_combo = gtk_combo_box_text_new ();
- gtk_widget_set_tooltip_markup (o_combo, _("<b>libvirt</b> means send
the converted guest to libvirt-managed KVM on the conversion server.
<b>local</b> means put it in a directory on the conversion server.
<b>rhev</b> means write it to RHEV-M/oVirt. <b>glance</b> means
write it to OpenStack Glance. See the virt-v2v(1) manual page for more information about
output options."));
+ gtk_widget_set_tooltip_markup (
+ o_combo,
+ _("<b>libvirt</b> means send the converted guest to
libvirt-managed "
+ "KVM on the conversion server. <b>local</b> means put it in a
"
+ "directory on the conversion server. <b>rhev</b> means write it
"
+ "to RHEV-M/oVirt. <b>glance</b> means write it to OpenStack
"
+ "Glance. See the virt-v2v(1) manual page for more information "
+ "about output options."));
repopulate_output_combo (config);
- gtk_table_attach (GTK_TABLE (output_tbl), o_combo,
- 1, 2, 0, 1, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (output_tbl), o_combo, 1, 2, 0, 1, GTK_FILL,
+ GTK_FILL, 1, 1);
oc_label = gtk_label_new (_("Output conn. (-oc):"));
gtk_misc_set_alignment (GTK_MISC (oc_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (output_tbl), oc_label,
- 0, 1, 1, 2, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (output_tbl), oc_label, 0, 1, 1, 2, GTK_FILL,
+ GTK_FILL, 1, 1);
oc_entry = gtk_entry_new ();
- gtk_widget_set_tooltip_markup (oc_entry, _("For <b>libvirt</b> only,
the libvirt connection URI, or leave blank to add the guest to the default libvirt
instance on the conversion server. For others, leave this field blank."));
+ gtk_widget_set_tooltip_markup (
+ oc_entry,
+ _("For <b>libvirt</b> only, the libvirt connection URI, or leave
"
+ "blank to add the guest to the default libvirt instance on the "
+ "conversion server. For others, leave this field blank."));
if (config->output_connection != NULL)
gtk_entry_set_text (GTK_ENTRY (oc_entry), config->output_connection);
- gtk_table_attach (GTK_TABLE (output_tbl), oc_entry,
- 1, 2, 1, 2, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (output_tbl), oc_entry, 1, 2, 1, 2, GTK_FILL,
+ GTK_FILL, 1, 1);
os_label = gtk_label_new (_("Output storage (-os):"));
gtk_misc_set_alignment (GTK_MISC (os_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (output_tbl), os_label,
- 0, 1, 2, 3, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (output_tbl), os_label, 0, 1, 2, 3, GTK_FILL,
+ GTK_FILL, 1, 1);
os_entry = gtk_entry_new ();
- gtk_widget_set_tooltip_markup (os_entry, _("For <b>local</b>, put the
directory name on the conversion server. For <b>rhev</b>, put the Export
Storage Domain (server:/mountpoint). For others, leave this field blank."));
+ gtk_widget_set_tooltip_markup (
+ os_entry,
+ _("For <b>local</b>, put the directory name on the conversion
"
+ "server. For <b>rhev</b>, put the Export Storage Domain "
+ "(server:/mountpoint). For others, leave this field blank."));
if (config->output_storage != NULL)
gtk_entry_set_text (GTK_ENTRY (os_entry), config->output_storage);
- gtk_table_attach (GTK_TABLE (output_tbl), os_entry,
- 1, 2, 2, 3, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (output_tbl), os_entry, 1, 2, 2, 3, GTK_FILL,
+ GTK_FILL, 1, 1);
of_label = gtk_label_new (_("Output format (-of):"));
gtk_misc_set_alignment (GTK_MISC (of_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (output_tbl), of_label,
- 0, 1, 3, 4, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (output_tbl), of_label, 0, 1, 3, 4, GTK_FILL,
+ GTK_FILL, 1, 1);
of_entry = gtk_entry_new ();
- gtk_widget_set_tooltip_markup (of_entry, _("The output disk format, typically
<b>raw</b> or <b>qcow2</b>. If blank, defaults to
<b>raw</b>."));
+ gtk_widget_set_tooltip_markup (
+ of_entry, _("The output disk format, typically <b>raw</b> or
"
+ "<b>qcow2</b>. If blank, defaults to
<b>raw</b>."));
if (config->output_format != NULL)
gtk_entry_set_text (GTK_ENTRY (of_entry), config->output_format);
- gtk_table_attach (GTK_TABLE (output_tbl), of_entry,
- 1, 2, 3, 4, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (output_tbl), of_entry, 1, 2, 3, 4, GTK_FILL,
+ GTK_FILL, 1, 1);
oa_label = gtk_label_new (_("Output allocation (-oa):"));
gtk_misc_set_alignment (GTK_MISC (oa_label), 1., 0.5);
- gtk_table_attach (GTK_TABLE (output_tbl), oa_label,
- 0, 1, 4, 5, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (output_tbl), oa_label, 0, 1, 4, 5, GTK_FILL,
+ GTK_FILL, 1, 1);
oa_combo = gtk_combo_box_text_new ();
- gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (oa_combo),
- "sparse");
+ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (oa_combo), "sparse");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (oa_combo),
"preallocated");
switch (config->output_allocation) {
@@ -597,12 +619,12 @@ create_conversion_dialog (struct config *config)
gtk_combo_box_set_active (GTK_COMBO_BOX (oa_combo), 0);
break;
}
- gtk_table_attach (GTK_TABLE (output_tbl), oa_combo,
- 1, 2, 4, 5, GTK_FILL, GTK_FILL, 1, 1);
+ gtk_table_attach (GTK_TABLE (output_tbl), oa_combo, 1, 2, 4, 5, GTK_FILL,
+ GTK_FILL, 1, 1);
- debug_button =
- gtk_check_button_new_with_label (_("Enable server-side debugging\n"
- "(This is saved in /tmp on the conversion
server)"));
+ debug_button = gtk_check_button_new_with_label (
+ _("Enable server-side debugging\n"
+ "(This is saved in /tmp on the conversion server)"));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (debug_button),
config->verbose);
@@ -652,10 +674,12 @@ create_conversion_dialog (struct config *config)
/* See maybe_identify_click below for what we're doing. */
g_signal_connect (interfaces_list, "button-press-event",
G_CALLBACK (maybe_identify_click), NULL);
- gtk_widget_set_tooltip_markup (interfaces_list, _("Left click on an interface name
to flash the light on the physical interface."));
+ gtk_widget_set_tooltip_markup (
+ interfaces_list, _("Left click on an interface name to flash the "
+ "light on the physical interface."));
populate_interfaces (GTK_TREE_VIEW (interfaces_list));
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (interfaces_sw),
- interfaces_list);
+ gtk_scrolled_window_add_with_viewport (
+ GTK_SCROLLED_WINDOW (interfaces_sw), interfaces_list);
gtk_container_add (GTK_CONTAINER (interfaces_frame), interfaces_sw);
/* Pack the top level dialog. */
@@ -665,20 +689,20 @@ create_conversion_dialog (struct config *config)
gtk_box_pack_start (GTK_BOX (right_vbox), disks_frame, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (right_vbox), removable_frame, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (right_vbox), interfaces_frame, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (right_vbox), interfaces_frame, TRUE, TRUE,
+ 0);
gtk_box_pack_start (GTK_BOX (hbox), left_vbox, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (hbox), right_vbox, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (conv_dlg)->vbox),
- hbox, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (conv_dlg)->vbox), hbox, TRUE,
+ TRUE, 0);
/* Buttons. */
- gtk_dialog_add_buttons (GTK_DIALOG (conv_dlg),
- _("Back"), 1,
- _("Start conversion"), 2,
- NULL);
+ gtk_dialog_add_buttons (GTK_DIALOG (conv_dlg), _("Back"), 1,
+ _("Start conversion"), 2, NULL);
back = gtk_dialog_get_widget_for_response (GTK_DIALOG (conv_dlg), 1);
- start_button = gtk_dialog_get_widget_for_response (GTK_DIALOG (conv_dlg), 2);
+ start_button =
+ gtk_dialog_get_widget_for_response (GTK_DIALOG (conv_dlg), 2);
/* Signals. */
g_signal_connect_swapped (G_OBJECT (conv_dlg), "destroy",
@@ -719,9 +743,8 @@ set_info_label (void)
if (!v2v_major)
r = asprintf (&text, _("virt-p2v (client) %s"), PACKAGE_VERSION);
else
- r = asprintf (&text,
- _("virt-p2v (client) %s\n"
- "virt-v2v (conversion server) %d.%d.%d"),
+ r = asprintf (&text, _("virt-p2v (client) %s\n"
+ "virt-v2v (conversion server) %d.%d.%d"),
PACKAGE_VERSION, v2v_major, v2v_minor, v2v_release);
if (r == -1) {
perror ("asprintf");
@@ -742,7 +765,8 @@ repopulate_output_combo (struct config *config)
if (config && config->output)
output = strdup (config->output);
else
- output = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (o_combo));
+ output =
+ gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (o_combo));
/* Remove existing rows in o_combo. */
model = gtk_combo_box_get_model (GTK_COMBO_BOX (o_combo));
@@ -752,7 +776,8 @@ repopulate_output_combo (struct config *config)
* a standard set of drivers.
*/
if (output_drivers == NULL) {
- gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (o_combo), "libvirt");
+ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (o_combo),
+ "libvirt");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (o_combo), "local");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (o_combo), "rhev");
if (output == NULL || STREQ (output, "libvirt"))
@@ -771,8 +796,7 @@ repopulate_output_combo (struct config *config)
for (i = 0; output_drivers[i] != NULL; ++i)
if (STREQ (output, output_drivers[i]))
gtk_combo_box_set_active (GTK_COMBO_BOX (o_combo), i);
- }
- else
+ } else
gtk_combo_box_set_active (GTK_COMBO_BOX (o_combo), 0);
}
}
@@ -781,14 +805,14 @@ static void
populate_disks (GtkTreeView *disks_list)
{
GtkListStore *disks_store;
- GtkCellRenderer *disks_col_convert, *disks_col_device,
- *disks_col_size, *disks_col_model;
+ GtkCellRenderer *disks_col_convert, *disks_col_device, *disks_col_size,
+ *disks_col_model;
GtkTreeIter iter;
size_t i;
- disks_store = gtk_list_store_new (NUM_DISKS_COLS,
- G_TYPE_BOOLEAN, G_TYPE_STRING,
- G_TYPE_STRING, G_TYPE_STRING);
+ disks_store =
+ gtk_list_store_new (NUM_DISKS_COLS, G_TYPE_BOOLEAN, G_TYPE_STRING,
+ G_TYPE_STRING, G_TYPE_STRING);
if (all_disks != NULL) {
for (i = 0; all_disks[i] != NULL; ++i) {
CLEANUP_FREE char *size_filename = NULL;
@@ -798,12 +822,12 @@ populate_disks (GtkTreeView *disks_list)
CLEANUP_FREE char *model = NULL;
uint64_t size;
- if (asprintf (&size_filename, "/sys/block/%s/size",
- all_disks[i]) == -1)
+ if (asprintf (&size_filename, "/sys/block/%s/size", all_disks[i]) ==
+ -1)
error (EXIT_FAILURE, errno, "asprintf");
if (g_file_get_contents (size_filename, &size_str, NULL, NULL) &&
sscanf (size_str, "%" SCNu64, &size) == 1) {
- size /= 2*1024*1024; /* size from kernel is given in sectors? */
+ size /= 2 * 1024 * 1024; /* size from kernel is given in sectors? */
if (asprintf (&size_gb, "%" PRIu64, size) == -1)
error (EXIT_FAILURE, errno, "asprintf");
}
@@ -814,55 +838,39 @@ populate_disks (GtkTreeView *disks_list)
if (g_file_get_contents (model_filename, &model, NULL, NULL)) {
/* Need to chomp trailing \n from the content. */
size_t len = strlen (model);
- if (len > 0 && model[len-1] == '\n')
- model[len-1] = '\0';
+ if (len > 0 && model[len - 1] == '\n')
+ model[len - 1] = '\0';
} else {
model = strdup ("");
}
gtk_list_store_append (disks_store, &iter);
- gtk_list_store_set (disks_store, &iter,
- DISKS_COL_CONVERT, TRUE,
- DISKS_COL_DEVICE, all_disks[i],
- DISKS_COL_SIZE, size_gb,
- DISKS_COL_MODEL, model,
- -1);
+ gtk_list_store_set (disks_store, &iter, DISKS_COL_CONVERT, TRUE,
+ DISKS_COL_DEVICE, all_disks[i], DISKS_COL_SIZE,
+ size_gb, DISKS_COL_MODEL, model, -1);
}
}
- gtk_tree_view_set_model (disks_list,
- GTK_TREE_MODEL (disks_store));
+ gtk_tree_view_set_model (disks_list, GTK_TREE_MODEL (disks_store));
gtk_tree_view_set_headers_visible (disks_list, TRUE);
disks_col_convert = gtk_cell_renderer_toggle_new ();
- gtk_tree_view_insert_column_with_attributes (disks_list,
- -1,
- _("Convert"),
- disks_col_convert,
- "active", DISKS_COL_CONVERT,
- NULL);
+ gtk_tree_view_insert_column_with_attributes (
+ disks_list, -1, _("Convert"), disks_col_convert, "active",
+ DISKS_COL_CONVERT, NULL);
disks_col_device = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (disks_list,
- -1,
- _("Device"),
- disks_col_device,
- "text", DISKS_COL_DEVICE,
- NULL);
+ gtk_tree_view_insert_column_with_attributes (disks_list, -1, _("Device"),
+ disks_col_device, "text",
+ DISKS_COL_DEVICE, NULL);
disks_col_size = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (disks_list,
- -1,
- _("Size (GB)"),
- disks_col_size,
- "text", DISKS_COL_SIZE,
- NULL);
+ gtk_tree_view_insert_column_with_attributes (
+ disks_list, -1, _("Size (GB)"), disks_col_size, "text",
+ DISKS_COL_SIZE, NULL);
disks_col_model = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (disks_list,
- -1,
- _("Model"),
- disks_col_model,
- "text", DISKS_COL_MODEL,
- NULL);
+ gtk_tree_view_insert_column_with_attributes (disks_list, -1, _("Model"),
+ disks_col_model, "text",
+ DISKS_COL_MODEL, NULL);
- g_signal_connect (disks_col_convert, "toggled",
- G_CALLBACK (toggled), disks_store);
+ g_signal_connect (disks_col_convert, "toggled", G_CALLBACK (toggled),
+ disks_store);
}
static void
@@ -873,37 +881,29 @@ populate_removable (GtkTreeView *removable_list)
GtkTreeIter iter;
size_t i;
- removable_store = gtk_list_store_new (NUM_REMOVABLE_COLS,
- G_TYPE_BOOLEAN, G_TYPE_STRING);
+ removable_store = gtk_list_store_new (NUM_REMOVABLE_COLS, G_TYPE_BOOLEAN,
+ G_TYPE_STRING);
if (all_removable != NULL) {
for (i = 0; all_removable[i] != NULL; ++i) {
gtk_list_store_append (removable_store, &iter);
- gtk_list_store_set (removable_store, &iter,
- REMOVABLE_COL_CONVERT, TRUE,
- REMOVABLE_COL_DEVICE, all_removable[i],
- -1);
+ gtk_list_store_set (removable_store, &iter, REMOVABLE_COL_CONVERT,
+ TRUE, REMOVABLE_COL_DEVICE, all_removable[i], -1);
}
}
gtk_tree_view_set_model (removable_list,
GTK_TREE_MODEL (removable_store));
gtk_tree_view_set_headers_visible (removable_list, TRUE);
removable_col_convert = gtk_cell_renderer_toggle_new ();
- gtk_tree_view_insert_column_with_attributes (removable_list,
- -1,
- _("Convert"),
- removable_col_convert,
- "active",
REMOVABLE_COL_CONVERT,
- NULL);
+ gtk_tree_view_insert_column_with_attributes (
+ removable_list, -1, _("Convert"), removable_col_convert,
"active",
+ REMOVABLE_COL_CONVERT, NULL);
removable_col_device = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (removable_list,
- -1,
- _("Device"),
- removable_col_device,
- "text", REMOVABLE_COL_DEVICE,
- NULL);
+ gtk_tree_view_insert_column_with_attributes (
+ removable_list, -1, _("Device"), removable_col_device, "text",
+ REMOVABLE_COL_DEVICE, NULL);
- g_signal_connect (removable_col_convert, "toggled",
- G_CALLBACK (toggled), removable_store);
+ g_signal_connect (removable_col_convert, "toggled", G_CALLBACK (toggled),
+ removable_store);
}
static void
@@ -911,13 +911,12 @@ populate_interfaces (GtkTreeView *interfaces_list)
{
GtkListStore *interfaces_store;
GtkCellRenderer *interfaces_col_convert, *interfaces_col_device,
- *interfaces_col_network;
+ *interfaces_col_network;
GtkTreeIter iter;
size_t i;
- interfaces_store = gtk_list_store_new (NUM_INTERFACES_COLS,
- G_TYPE_BOOLEAN, G_TYPE_STRING,
- G_TYPE_STRING);
+ interfaces_store = gtk_list_store_new (
+ NUM_INTERFACES_COLS, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING);
if (all_interfaces) {
for (i = 0; all_interfaces[i] != NULL; ++i) {
const char *if_name = all_interfaces[i];
@@ -931,10 +930,10 @@ populate_interfaces (GtkTreeView *interfaces_list)
"%s\n"
"%s"
"</small>\n"
- "<small><u><span
foreground=\"blue\">Identify
interface</span></u></small>",
- if_name,
- if_addr ? : _("Unknown"),
- if_vendor ? : _("Unknown")) == -1)
+ "<small><u><span
foreground=\"blue\">Identify "
+ "interface</span></u></small>",
+ if_name, if_addr ?: _("Unknown"),
+ if_vendor ?: _("Unknown")) == -1)
error (EXIT_FAILURE, errno, "asprintf");
gtk_list_store_append (interfaces_store, &iter);
@@ -945,40 +944,30 @@ populate_interfaces (GtkTreeView *interfaces_list)
*/
INTERFACES_COL_CONVERT, i == 0,
INTERFACES_COL_DEVICE, device_descr,
- INTERFACES_COL_NETWORK, "default",
- -1);
+ INTERFACES_COL_NETWORK, "default", -1);
}
}
gtk_tree_view_set_model (interfaces_list,
GTK_TREE_MODEL (interfaces_store));
gtk_tree_view_set_headers_visible (interfaces_list, TRUE);
interfaces_col_convert = gtk_cell_renderer_toggle_new ();
- gtk_tree_view_insert_column_with_attributes (interfaces_list,
- -1,
- _("Convert"),
- interfaces_col_convert,
- "active",
INTERFACES_COL_CONVERT,
- NULL);
+ gtk_tree_view_insert_column_with_attributes (
+ interfaces_list, -1, _("Convert"), interfaces_col_convert,
"active",
+ INTERFACES_COL_CONVERT, NULL);
gtk_cell_renderer_set_alignment (interfaces_col_convert, 0.5, 0.0);
interfaces_col_device = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (interfaces_list,
- -1,
- _("Device"),
- interfaces_col_device,
- "markup",
INTERFACES_COL_DEVICE,
- NULL);
+ gtk_tree_view_insert_column_with_attributes (
+ interfaces_list, -1, _("Device"), interfaces_col_device,
"markup",
+ INTERFACES_COL_DEVICE, NULL);
gtk_cell_renderer_set_alignment (interfaces_col_device, 0.5, 0.0);
interfaces_col_network = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (interfaces_list,
- -1,
- _("Connect to virtual
network"),
- interfaces_col_network,
- "text", INTERFACES_COL_NETWORK,
- NULL);
+ gtk_tree_view_insert_column_with_attributes (
+ interfaces_list, -1, _("Connect to virtual network"),
+ interfaces_col_network, "text", INTERFACES_COL_NETWORK, NULL);
gtk_cell_renderer_set_alignment (interfaces_col_network, 0.5, 0.0);
- g_signal_connect (interfaces_col_convert, "toggled",
- G_CALLBACK (toggled), interfaces_store);
+ g_signal_connect (interfaces_col_convert, "toggled", G_CALLBACK (toggled),
+ interfaces_store);
g_object_set (interfaces_col_network, "editable", TRUE, NULL);
g_signal_connect (interfaces_col_network, "edited",
@@ -996,7 +985,8 @@ toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data)
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, 0 /* CONVERT */, &v, -1);
v ^= 1;
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0 /* CONVERT */, v, -1);
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0 /* CONVERT */, v,
+ -1);
gtk_tree_path_free (path);
}
@@ -1014,8 +1004,8 @@ network_edited_callback (GtkCellRendererToggle *cell, gchar
*path_str,
path = gtk_tree_path_new_from_string (path_str);
gtk_tree_model_get_iter (model, &iter, path);
- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
- INTERFACES_COL_NETWORK, new_text, -1);
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter, INTERFACES_COL_NETWORK,
+ new_text, -1);
gtk_tree_path_free (path);
}
@@ -1030,7 +1020,7 @@ static gboolean
maybe_identify_click (GtkWidget *interfaces_list, GdkEventButton *event,
gpointer data)
{
- gboolean ret = FALSE; /* Did we handle this event? */
+ gboolean ret = FALSE; /* Did we handle this event? */
/* Single left click only. */
if (event->type == GDK_BUTTON_PRESS && event->button == 1) {
@@ -1038,14 +1028,14 @@ maybe_identify_click (GtkWidget *interfaces_list, GdkEventButton
*event,
GtkTreeViewColumn *column;
if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (interfaces_list),
- event->x, event->y,
- &path, &column, NULL, NULL)) {
+ event->x, event->y, &path, &column,
+ NULL, NULL)) {
GList *cols;
gint column_index;
/* Get column index. */
cols = gtk_tree_view_get_columns (GTK_TREE_VIEW (interfaces_list));
- column_index = g_list_index (cols, (gpointer) column);
+ column_index = g_list_index (cols, (gpointer)column);
g_list_free (cols);
if (column_index == INTERFACES_COL_DEVICE) {
@@ -1069,7 +1059,7 @@ maybe_identify_click (GtkWidget *interfaces_list, GdkEventButton
*event,
free (cmd);
- ret = TRUE; /* We handled this event. */
+ ret = TRUE; /* We handled this event. */
}
gtk_tree_path_free (path);
@@ -1156,9 +1146,8 @@ set_network_map_from_ui (struct config *config)
model = gtk_tree_view_get_model (list);
guestfs_int_free_string_list (config->network_map);
- config->network_map =
- malloc ((1 + guestfs_int_count_strings (all_interfaces))
- * sizeof (char *));
+ config->network_map = malloc (
+ (1 + guestfs_int_count_strings (all_interfaces)) * sizeof (char *));
if (config->network_map == NULL)
error (EXIT_FAILURE, errno, "malloc");
i = j = 0;
@@ -1168,8 +1157,8 @@ set_network_map_from_ui (struct config *config)
gtk_tree_model_get (model, &iter, INTERFACES_COL_NETWORK, &s, -1);
if (s) {
assert (all_interfaces[i] != NULL);
- if (asprintf (&config->network_map[j], "%s:%s",
- all_interfaces[i], s) == -1)
+ if (asprintf (&config->network_map[j], "%s:%s",
all_interfaces[i],
+ s) == -1)
error (EXIT_FAILURE, errno, "asprintf");
++j;
}
@@ -1201,7 +1190,7 @@ conversion_back_clicked (GtkWidget *w, gpointer data)
#define MAX_SUPPORTED_MEMORY_MB (UINT64_C (4000 * 1024))
static char *concat_warning (char *warning, const char *fs, ...)
- __attribute__((format (printf,2,3)));
+ __attribute__ ((format (printf, 2, 3)));
static char *
concat_warning (char *warning, const char *fs, ...)
@@ -1215,11 +1204,11 @@ concat_warning (char *warning, const char *fs, ...)
warning = strdup ("");
if (warning == NULL)
malloc_fail:
- error (EXIT_FAILURE, errno, "malloc");
+ error (EXIT_FAILURE, errno, "malloc");
}
len = strlen (warning);
- if (len > 0 && warning[len-1] != '\n' && fs[0] !=
'\n') {
+ if (len > 0 && warning[len - 1] != '\n' && fs[0] !=
'\n') {
warning = concat_warning (warning, "\n");
len = strlen (warning);
}
@@ -1227,11 +1216,13 @@ concat_warning (char *warning, const char *fs, ...)
va_start (args, fs);
r = vasprintf (&msg, fs, args);
va_end (args);
- if (r == -1) goto malloc_fail;
+ if (r == -1)
+ goto malloc_fail;
len2 = strlen (msg);
warning = realloc (warning, len + len2 + 1);
- if (warning == NULL) goto malloc_fail;
+ if (warning == NULL)
+ goto malloc_fail;
memcpy (&warning[len], msg, len2 + 1);
free (msg);
@@ -1251,29 +1242,30 @@ vcpus_or_memory_check_callback (GtkWidget *w, gpointer data)
if (vcpus > MAX_SUPPORTED_VCPUS) {
gtk_widget_show (vcpus_warning);
- warning = concat_warning (warning,
- _("Number of virtual CPUs is larger than what is
supported for KVM (max: %d)."),
- MAX_SUPPORTED_VCPUS);
- }
- else
+ warning =
+ concat_warning (warning, _("Number of virtual CPUs is larger than "
+ "what is supported for KVM (max: %d)."),
+ MAX_SUPPORTED_VCPUS);
+ } else
gtk_widget_hide (vcpus_warning);
if (memory > MAX_SUPPORTED_MEMORY_MB * 1024 * 1024) {
gtk_widget_show (memory_warning);
warning = concat_warning (warning,
- _("Memory size is larger than what is supported for
KVM (max: %" PRIu64 ")."),
+ _("Memory size is larger than what is "
+ "supported for KVM (max: %" PRIu64
")."),
MAX_SUPPORTED_MEMORY_MB);
- }
- else
+ } else
gtk_widget_hide (memory_warning);
if (warning != NULL) {
- warning = concat_warning (warning,
- _("If you ignore this warning, conversion can still
succeed, but the guest may not work or may not be supported on the target."));
+ warning = concat_warning (
+ warning, _("If you ignore this warning, conversion can still "
+ "succeed, but the guest may not work or may not be "
+ "supported on the target."));
gtk_label_set_text (GTK_LABEL (target_warning_label), warning);
- }
- else
+ } else
gtk_label_set_text (GTK_LABEL (target_warning_label), "");
}
@@ -1313,7 +1305,8 @@ static void add_v2v_output_2 (const char *msg, size_t len);
static void *start_conversion_thread (void *data);
static void cancel_conversion_clicked (GtkWidget *w, gpointer data);
static void reboot_clicked (GtkWidget *w, gpointer data);
-static gboolean close_running_dialog (GtkWidget *w, GdkEvent *event, gpointer data);
+static gboolean close_running_dialog (GtkWidget *w, GdkEvent *event,
+ gpointer data);
static void
create_running_dialog (void)
@@ -1340,21 +1333,21 @@ create_running_dialog (void)
gtk_container_add (GTK_CONTAINER (v2v_output_sw), v2v_output);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (run_dlg)->vbox),
- v2v_output_sw, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (run_dlg)->vbox),
- log_label, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (run_dlg)->vbox),
- status_label, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (run_dlg)->vbox), v2v_output_sw,
+ TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (run_dlg)->vbox), log_label, TRUE,
+ TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (run_dlg)->vbox), status_label,
+ TRUE, TRUE, 0);
/* Buttons. */
- gtk_dialog_add_buttons (GTK_DIALOG (run_dlg),
- _("Cancel conversion"), 1,
- _("Reboot"), 2,
- NULL);
- cancel_button = gtk_dialog_get_widget_for_response (GTK_DIALOG (run_dlg), 1);
+ gtk_dialog_add_buttons (GTK_DIALOG (run_dlg), _("Cancel conversion"), 1,
+ _("Reboot"), 2, NULL);
+ cancel_button =
+ gtk_dialog_get_widget_for_response (GTK_DIALOG (run_dlg), 1);
gtk_widget_set_sensitive (cancel_button, FALSE);
- reboot_button = gtk_dialog_get_widget_for_response (GTK_DIALOG (run_dlg), 2);
+ reboot_button =
+ gtk_dialog_get_widget_for_response (GTK_DIALOG (run_dlg), 2);
gtk_widget_set_sensitive (reboot_button, FALSE);
/* Signals. */
@@ -1386,11 +1379,10 @@ set_log_dir (const char *remote_dir)
{
CLEANUP_FREE char *msg;
- if (asprintf (&msg,
- _("Log files and debug information "
- "is saved to this directory "
- "on the conversion server:\n"
- "%s"),
+ if (asprintf (&msg, _("Log files and debug information "
+ "is saved to this directory "
+ "on the conversion server:\n"
+ "%s"),
remote_dir ? remote_dir : "") == -1)
error (EXIT_FAILURE, errno, "asprintf");
@@ -1421,14 +1413,14 @@ add_v2v_output (const char *msg)
for (p0 = p = msg; *p; ++p) {
linelen++;
if (*p == '\n' || linelen > 1024) {
- add_v2v_output_2 (p0, p-p0+1);
+ add_v2v_output_2 (p0, p - p0 + 1);
if (*p != '\n')
add_v2v_output_2 ("\n", 1);
linelen = 0;
- p0 = p+1;
+ p0 = p + 1;
}
}
- add_v2v_output_2 (p0, p-p0);
+ add_v2v_output_2 (p0, p - p0);
}
static void
@@ -1444,8 +1436,8 @@ add_v2v_output_2 (const char *msg, size_t len)
/* Scroll to the end of the buffer. */
gtk_text_buffer_get_end_iter (buf, &iter);
- gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (v2v_output), &iter,
- 0, FALSE, 0., 1.);
+ gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (v2v_output), &iter, 0, FALSE,
+ 0., 1.);
}
/* User clicked the Start conversion button. */
@@ -1463,13 +1455,13 @@ start_conversion_clicked (GtkWidget *w, gpointer data)
/* Unpack dialog fields and check them. */
free (config->guestname);
- config->guestname = strdup (gtk_entry_get_text (GTK_ENTRY (guestname_entry)));
+ config->guestname =
+ strdup (gtk_entry_get_text (GTK_ENTRY (guestname_entry)));
if (STREQ (config->guestname, "")) {
dlg = gtk_message_dialog_new (GTK_WINDOW (conv_dlg),
GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK,
+ GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
_("The guest \"Name\" field is
empty."));
gtk_window_set_title (GTK_WINDOW (dlg), _("Error"));
gtk_dialog_run (GTK_DIALOG (dlg));
@@ -1482,19 +1474,19 @@ start_conversion_clicked (GtkWidget *w, gpointer data)
config->memory = get_memory_from_conv_dlg ();
config->verbose =
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (debug_button));
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (debug_button));
/* Get the list of disks to be converted. */
set_disks_from_ui (config);
/* The list of disks must be non-empty. */
- if (config->disks == NULL || guestfs_int_count_strings (config->disks) == 0) {
- dlg = gtk_message_dialog_new (GTK_WINDOW (conv_dlg),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK,
- _("No disks were selected for conversion.\n"
- "At least one fixed hard disk must be
selected.\n"));
+ if (config->disks == NULL ||
+ guestfs_int_count_strings (config->disks) == 0) {
+ dlg = gtk_message_dialog_new (
+ GTK_WINDOW (conv_dlg), GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
+ _("No disks were selected for conversion.\n"
+ "At least one fixed hard disk must be selected.\n"));
gtk_window_set_title (GTK_WINDOW (dlg), _("Error"));
gtk_dialog_run (GTK_DIALOG (dlg));
gtk_widget_destroy (dlg);
@@ -1509,7 +1501,7 @@ start_conversion_clicked (GtkWidget *w, gpointer data)
/* Output selection. */
free (config->output);
config->output =
- gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (o_combo));
+ gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (o_combo));
config->output_allocation = OUTPUT_ALLOCATION_NONE;
str2 = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (oa_combo));
@@ -1577,20 +1569,18 @@ start_conversion_thread (void *data)
dlg = gtk_message_dialog_new (GTK_WINDOW (run_dlg),
GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK,
+ GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
_("Conversion failed: %s"), err);
gtk_window_set_title (GTK_WINDOW (dlg), _("Conversion failed"));
gtk_dialog_run (GTK_DIALOG (dlg));
gtk_widget_destroy (dlg);
- }
- else {
+ } else {
dlg = gtk_message_dialog_new (GTK_WINDOW (run_dlg),
GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_OK,
+ GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
_("The conversion was successful."));
- gtk_window_set_title (GTK_WINDOW (dlg), _("Conversion was successful"));
+ gtk_window_set_title (GTK_WINDOW (dlg),
+ _("Conversion was successful"));
gtk_dialog_run (GTK_DIALOG (dlg));
gtk_widget_destroy (dlg);
}
@@ -1643,8 +1633,7 @@ close_running_dialog (GtkWidget *w, GdkEvent *event, gpointer data)
if (conversion_is_running ()) {
cancel_conversion ();
return TRUE;
- }
- else
+ } else
/* Conversion is not running, so this will delete the dialog. */
return FALSE;
}
diff --git a/p2v/kernel-cmdline.c b/p2v/kernel-cmdline.c
index ee4c0e9..5d850e7 100644
--- a/p2v/kernel-cmdline.c
+++ b/p2v/kernel-cmdline.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* Read /proc/cmdline.
@@ -46,15 +47,15 @@ add_null (char ***argv, size_t *lenp)
*argv = realloc (*argv, *lenp * sizeof (char *));
if (*argv == NULL)
error (EXIT_FAILURE, errno, "realloc");
- (*argv)[(*lenp)-1] = NULL;
+ (*argv)[(*lenp) - 1] = NULL;
}
static void
add_string (char ***argv, size_t *lenp, const char *str, size_t len)
{
add_null (argv, lenp);
- (*argv)[(*lenp)-1] = strndup (str, len);
- if ((*argv)[(*lenp)-1] == NULL)
+ (*argv)[(*lenp) - 1] = strndup (str, len);
+ if ((*argv)[(*lenp) - 1] == NULL)
error (EXIT_FAILURE, errno, "strndup");
}
@@ -64,59 +65,51 @@ parse_cmdline_string (const char *cmdline)
char **ret = NULL;
size_t len = 0;
const char *p, *key = NULL, *value = NULL;
- enum {
- KEY_START = 0,
- KEY,
- VALUE_START,
- VALUE,
- VALUE_QUOTED
- } state = 0;
+ enum { KEY_START = 0, KEY, VALUE_START, VALUE, VALUE_QUOTED } state = 0;
for (p = cmdline; *p; p++) {
switch (state) {
- case KEY_START: /* looking for the start of a key */
- if (*p == ' ') continue;
+ case KEY_START: /* looking for the start of a key */
+ if (*p == ' ')
+ continue;
key = p;
state = KEY;
break;
- case KEY: /* reading key */
+ case KEY: /* reading key */
if (*p == ' ') {
- add_string (&ret, &len, key, p-key);
+ add_string (&ret, &len, key, p - key);
add_string (&ret, &len, "", 0);
state = KEY_START;
- }
- else if (*p == '=') {
- add_string (&ret, &len, key, p-key);
+ } else if (*p == '=') {
+ add_string (&ret, &len, key, p - key);
state = VALUE_START;
}
break;
- case VALUE_START: /* looking for the start of a value */
+ case VALUE_START: /* looking for the start of a value */
if (*p == ' ') {
add_string (&ret, &len, "", 0);
state = KEY_START;
- }
- else if (*p == '"') {
- value = p+1;
+ } else if (*p == '"') {
+ value = p + 1;
state = VALUE_QUOTED;
- }
- else {
+ } else {
value = p;
state = VALUE;
}
break;
- case VALUE: /* reading unquoted value */
+ case VALUE: /* reading unquoted value */
if (*p == ' ') {
- add_string (&ret, &len, value, p-value);
+ add_string (&ret, &len, value, p - value);
state = KEY_START;
}
break;
- case VALUE_QUOTED: /* reading quoted value */
+ case VALUE_QUOTED: /* reading quoted value */
if (*p == '"') {
- add_string (&ret, &len, value, p-value);
+ add_string (&ret, &len, value, p - value);
state = KEY_START;
}
break;
@@ -124,21 +117,24 @@ parse_cmdline_string (const char *cmdline)
}
switch (state) {
- case KEY_START: break;
- case KEY: /* key followed by end of string */
- add_string (&ret, &len, key, p-key);
+ case KEY_START:
+ break;
+ case KEY: /* key followed by end of string */
+ add_string (&ret, &len, key, p - key);
add_string (&ret, &len, "", 0);
break;
- case VALUE_START: /* key= followed by end of string */
+ case VALUE_START: /* key= followed by end of string */
add_string (&ret, &len, "", 0);
break;
- case VALUE: /* key=value followed by end of string */
- add_string (&ret, &len, value, p-value);
+ case VALUE: /* key=value followed by end of string */
+ add_string (&ret, &len, value, p - value);
break;
- case VALUE_QUOTED: /* unterminated key="value" */
- fprintf (stderr, "%s: warning: unterminated quoted string on kernel command
line\n",
- guestfs_int_program_name);
- add_string (&ret, &len, value, p-value);
+ case VALUE_QUOTED: /* unterminated key="value" */
+ fprintf (
+ stderr,
+ "%s: warning: unterminated quoted string on kernel command line\n",
+ guestfs_int_program_name);
+ add_string (&ret, &len, value, p - value);
}
add_null (&ret, &len);
@@ -169,8 +165,8 @@ parse_proc_cmdline (void)
*/
len = strlen (cmdline);
- if (len >= 1 && cmdline[len-1] == '\n')
- cmdline[len-1] = '\0';
+ if (len >= 1 && cmdline[len - 1] == '\n')
+ cmdline[len - 1] = '\0';
return parse_cmdline_string (cmdline);
}
@@ -182,7 +178,7 @@ get_cmdline_key (char **argv, const char *key)
for (i = 0; argv[i] != NULL; i += 2) {
if (STREQ (argv[i], key))
- return argv[i+1];
+ return argv[i + 1];
}
/* Not found. */
diff --git a/p2v/kernel.c b/p2v/kernel.c
index fb52785..cc8576e 100644
--- a/p2v/kernel.c
+++ b/p2v/kernel.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* Kernel-driven configuration, non-interactive. */
@@ -36,10 +37,12 @@
#include "p2v.h"
static void notify_ui_callback (int type, const char *data);
-static void run_command (int verbose, const char *stage, const char *command);
+static void run_command (int verbose, const char *stage,
+ const char *command);
void
-kernel_configuration (struct config *config, char **cmdline, int cmdline_source)
+kernel_configuration (struct config *config, char **cmdline,
+ int cmdline_source)
{
const char *p;
@@ -118,15 +121,15 @@ kernel_configuration (struct config *config, char **cmdline, int
cmdline_source)
error (EXIT_FAILURE, 0,
"cannot parse p2v.memory from kernel command line");
config->memory *= 1024;
- if (mem_code == 'M' || mem_code == 'm'
- || mem_code == 'G' || mem_code == 'g')
+ if (mem_code == 'M' || mem_code == 'm' || mem_code == 'G' ||
+ mem_code == 'g')
config->memory *= 1024;
if (mem_code == 'G' || mem_code == 'g')
config->memory *= 1024;
- if (mem_code != 'M' && mem_code != 'm'
- && mem_code != 'G' && mem_code != 'g')
- error (EXIT_FAILURE, 0,
- "p2v.memory on kernel command line must be followed by 'G' or
'M'");
+ if (mem_code != 'M' && mem_code != 'm' && mem_code !=
'G' &&
+ mem_code != 'g')
+ error (EXIT_FAILURE, 0, "p2v.memory on kernel command line must be "
+ "followed by 'G' or 'M'");
}
p = get_cmdline_key (cmdline, "p2v.disks");
@@ -200,7 +203,8 @@ kernel_configuration (struct config *config, char **cmdline, int
cmdline_source)
config->output_storage = strdup (p);
}
- /* Undocumented command line tool used for testing command line parsing. */
+ /* Undocumented command line tool used for testing command line parsing.
+ */
p = get_cmdline_key (cmdline, "p2v.dump_config_and_exit");
if (p) {
print_config (config, stdout);
@@ -208,10 +212,12 @@ kernel_configuration (struct config *config, char **cmdline, int
cmdline_source)
}
/* Some disks must have been specified for conversion. */
- if (config->disks == NULL || guestfs_int_count_strings (config->disks) == 0)
+ if (config->disks == NULL ||
+ guestfs_int_count_strings (config->disks) == 0)
error (EXIT_FAILURE, 0,
"no non-removable disks were discovered on this machine.\n"
- "virt-p2v looked in /sys/block and in p2v.disks on the kernel command
line.\n"
+ "virt-p2v looked in /sys/block and in p2v.disks on the kernel "
+ "command line.\n"
"This is a fatal error and virt-p2v cannot continue.");
/* Perform the conversion in text mode. */
@@ -242,7 +248,8 @@ notify_ui_callback (int type, const char *data)
{
switch (type) {
case NOTIFY_LOG_DIR:
- printf ("%s: remote log directory location: %s\n",
guestfs_int_program_name, data);
+ printf ("%s: remote log directory location: %s\n",
+ guestfs_int_program_name, data);
break;
case NOTIFY_REMOTE_MESSAGE:
@@ -276,6 +283,6 @@ run_command (int verbose, const char *stage, const char *command)
if (r == -1)
error (EXIT_FAILURE, errno, "system: %s", command);
if ((WIFEXITED (r) && WEXITSTATUS (r) != 0) || !WIFEXITED (r))
- error (EXIT_FAILURE, 0,
- "%s: unexpected failure of external command", stage);
+ error (EXIT_FAILURE, 0, "%s: unexpected failure of external command",
+ stage);
}
diff --git a/p2v/main.c b/p2v/main.c
index abec9bf..81d5197 100644
--- a/p2v/main.c
+++ b/p2v/main.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -33,7 +34,8 @@
#include <sys/types.h>
#include <sys/stat.h>
-#pragma GCC diagnostic ignored "-Wstrict-prototypes" /* error in <gtk.h>
*/
+#pragma GCC diagnostic ignored "-Wstrict-prototypes" /* error in <gtk.h>
\
+ */
#include <gtk/gtk.h>
#include "p2v.h"
@@ -49,35 +51,33 @@ static int cpuinfo_flags (void);
enum { HELP_OPTION = CHAR_MAX + 1 };
static const char *options = "Vv";
-static const struct option long_options[] = {
- { "help", 0, 0, HELP_OPTION },
- { "cmdline", 1, 0, 0 },
- { "long-options", 0, 0, 0 },
- { "short-options", 0, 0, 0 },
- { "verbose", 0, 0, 'v' },
- { "version", 0, 0, 'V' },
- { 0, 0, 0, 0 }
-};
+static const struct option long_options[] = { { "help", 0, 0, HELP_OPTION },
+ { "cmdline", 1, 0, 0 },
+ { "long-options", 0, 0, 0 },
+ { "short-options", 0, 0, 0 },
+ { "verbose", 0, 0, 'v'
},
+ { "version", 0, 0, 'V'
},
+ { 0, 0, 0, 0 } };
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: Convert a physical machine to use KVM\n"
- "Copyright (C) 2009-2016 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options]\n"
- "Options:\n"
- " --help Display brief help\n"
- " --cmdline=CMDLINE Used to debug command line parsing\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- "For more information, see the manpage %s(1).\n"),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name);
+ printf (
+ _("%s: Convert a physical machine to use KVM\n"
+ "Copyright (C) 2009-2016 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options]\n"
+ "Options:\n"
+ " --help Display brief help\n"
+ " --cmdline=CMDLINE Used to debug command line parsing\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ "For more information, see the manpage %s(1).\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name);
}
exit (status);
}
@@ -98,7 +98,8 @@ static void
display_long_options (const struct option *long_options)
{
while (long_options->name) {
- if (STRNEQ (long_options->name, "long-options") && STRNEQ
(long_options->name, "short-options"))
+ if (STRNEQ (long_options->name, "long-options") &&
+ STRNEQ (long_options->name, "short-options"))
printf ("--%s\n", long_options->name);
long_options++;
}
@@ -119,7 +120,7 @@ main (int argc, char *argv[])
bindtextdomain (PACKAGE, LOCALEBASEDIR);
textdomain (PACKAGE);
-#if ! GLIB_CHECK_VERSION(2,32,0)
+#if !GLIB_CHECK_VERSION(2, 32, 0)
/* In glib2 < 2.32 you had to call g_thread_init(). In later glib2
* that is not required and should not be called.
*/
@@ -132,23 +133,22 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options")) {
display_long_options (long_options);
- }
- else if (STREQ (long_options[option_index].name, "short-options")) {
+ } else if (STREQ (long_options[option_index].name, "short-options")) {
display_short_options (options);
- }
- else if (STREQ (long_options[option_index].name, "cmdline")) {
+ } else if (STREQ (long_options[option_index].name, "cmdline")) {
cmdline = parse_cmdline_string (optarg);
cmdline_source = CMDLINE_SOURCE_COMMAND_LINE;
- }
- else {
+ } else {
fprintf (stderr, _("%s: unknown long option: %s (%d)\n"),
- guestfs_int_program_name, long_options[option_index].name,
option_index);
+ guestfs_int_program_name, long_options[option_index].name,
+ option_index);
exit (EXIT_FAILURE);
}
break;
@@ -158,9 +158,8 @@ main (int argc, char *argv[])
break;
case 'V':
- printf ("%s %s%s\n",
- guestfs_int_program_name,
- PACKAGE_VERSION, PACKAGE_VERSION_EXTRA);
+ printf ("%s %s%s\n", guestfs_int_program_name, PACKAGE_VERSION,
+ PACKAGE_VERSION_EXTRA);
exit (EXIT_SUCCESS);
case HELP_OPTION:
@@ -201,7 +200,8 @@ main (int argc, char *argv[])
if (!gui_possible) {
fprintf (stderr,
_("%s: gtk_init_check returned false, indicating that\n"
- "a GUI is not possible on this host. Check X11, $DISPLAY
etc.\n"),
+ "a GUI is not possible on this host. Check X11, "
+ "$DISPLAY etc.\n"),
guestfs_int_program_name);
exit (EXIT_FAILURE);
}
@@ -246,8 +246,7 @@ set_config_defaults (struct config *config)
if (i == -1) {
perror ("sysconf: _SC_NPROCESSORS_ONLN");
config->vcpus = 1;
- }
- else if (i == 0)
+ } else if (i == 0)
config->vcpus = 1;
else
config->vcpus = i;
@@ -256,16 +255,14 @@ set_config_defaults (struct config *config)
if (i == -1) {
perror ("sysconf: _SC_PHYS_PAGES");
config->memory = 1024 * 1024 * 1024;
- }
- else
+ } else
config->memory = i;
- i = sysconf (_SC_PAGESIZE);
+ i = sysconf (_SC_PAGESIZE);
if (i == -1) {
perror ("sysconf: _SC_PAGESIZE");
config->memory *= 4096;
- }
- else
+ } else
config->memory *= i;
/* Round up the default memory to a power of 2, since the kernel
@@ -307,8 +304,8 @@ set_config_defaults (struct config *config)
static int
compare (const void *vp1, const void *vp2)
{
- char * const *p1 = (char * const *) vp1;
- char * const *p2 = (char * const *) vp2;
+ char *const *p1 = (char *const *)vp1;
+ char *const *p2 = (char *const *)vp2;
return strcmp (*p1, *p2);
}
@@ -324,8 +321,8 @@ partition_parent (dev_t part_dev)
unsigned parent_major, parent_minor;
if (asprintf (&path, "/sys/dev/block/%ju:%ju/../dev",
- (uintmax_t) major (part_dev),
- (uintmax_t) minor (part_dev)) == -1)
+ (uintmax_t)major (part_dev),
+ (uintmax_t)minor (part_dev)) == -1)
error (EXIT_FAILURE, errno, "asprintf");
fp = fopen (path, "r");
@@ -398,12 +395,11 @@ find_all_disks (void)
for (;;) {
errno = 0;
d = readdir (dir);
- if (!d) break;
+ if (!d)
+ break;
- if (STRPREFIX (d->d_name, "cciss!") ||
- STRPREFIX (d->d_name, "hd") ||
- STRPREFIX (d->d_name, "sd") ||
- STRPREFIX (d->d_name, "ubd") ||
+ if (STRPREFIX (d->d_name, "cciss!") || STRPREFIX (d->d_name,
"hd") ||
+ STRPREFIX (d->d_name, "sd") || STRPREFIX (d->d_name,
"ubd") ||
STRPREFIX (d->d_name, "vd")) {
char *p;
@@ -416,21 +412,21 @@ find_all_disks (void)
if (!all_disks)
error (EXIT_FAILURE, errno, "realloc");
- all_disks[nr_disks-1] = strdup (d->d_name);
+ all_disks[nr_disks - 1] = strdup (d->d_name);
/* cciss device /dev/cciss/c0d0 will be /sys/block/cciss!c0d0 */
- p = strchr (all_disks[nr_disks-1], '!');
- if (p) *p = '/';
+ p = strchr (all_disks[nr_disks - 1], '!');
+ if (p)
+ *p = '/';
all_disks[nr_disks] = NULL;
- }
- else if (STRPREFIX (d->d_name, "sr")) {
+ } else if (STRPREFIX (d->d_name, "sr")) {
nr_removable++;
- all_removable = realloc (all_removable,
- sizeof (char *) * (nr_removable + 1));
+ all_removable =
+ realloc (all_removable, sizeof (char *) * (nr_removable + 1));
if (!all_removable)
error (EXIT_FAILURE, errno, "realloc");
- all_removable[nr_removable-1] = strdup (d->d_name);
+ all_removable[nr_removable - 1] = strdup (d->d_name);
all_removable[nr_removable] = NULL;
}
}
@@ -466,23 +462,22 @@ find_all_interfaces (void)
for (;;) {
errno = 0;
d = readdir (dir);
- if (!d) break;
+ if (!d)
+ break;
/* For systemd predictable names, see:
*
http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-ne...
* biosdevname is also a possibility here.
* Ignore PPP, SLIP, WWAN, bridges, etc.
*/
- if (STRPREFIX (d->d_name, "em") ||
- STRPREFIX (d->d_name, "en") ||
- STRPREFIX (d->d_name, "eth") ||
- STRPREFIX (d->d_name, "wl")) {
+ if (STRPREFIX (d->d_name, "em") || STRPREFIX (d->d_name,
"en") ||
+ STRPREFIX (d->d_name, "eth") || STRPREFIX (d->d_name,
"wl")) {
nr_interfaces++;
all_interfaces =
- realloc (all_interfaces, sizeof (char *) * (nr_interfaces + 1));
+ realloc (all_interfaces, sizeof (char *) * (nr_interfaces + 1));
if (!all_interfaces)
error (EXIT_FAILURE, errno, "realloc");
- all_interfaces[nr_interfaces-1] = strdup (d->d_name);
+ all_interfaces[nr_interfaces - 1] = strdup (d->d_name);
all_interfaces[nr_interfaces] = NULL;
}
}
@@ -513,11 +508,11 @@ cpuinfo_flags (void)
/* Get the flags, one per line. */
cmd = "< /proc/cpuinfo "
#if defined(__arm__)
- "grep ^Features"
+ "grep ^Features"
#else
- "grep ^flags"
+ "grep ^flags"
#endif
- " | awk '{ for (i = 3; i <= NF; ++i) { print $i }; exit }'";
+ " | awk '{ for (i = 3; i <= NF; ++i) { print $i }; exit
}'";
fp = popen (cmd, "re");
if (fp == NULL) {
@@ -526,8 +521,8 @@ cpuinfo_flags (void)
}
while (errno = 0, (len = getline (&flag, &buflen, fp)) != -1) {
- if (len > 0 && flag[len-1] == '\n')
- flag[len-1] = '\0';
+ if (len > 0 && flag[len - 1] == '\n')
+ flag[len - 1] = '\0';
if (STREQ (flag, "acpi"))
ret |= FLAG_ACPI;
diff --git a/p2v/miniexpect.c b/p2v/miniexpect.c
index e1a184c..4c58a95 100644
--- a/p2v/miniexpect.c
+++ b/p2v/miniexpect.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -106,19 +107,19 @@ mexp_spawnl (const char *file, const char *arg, ...)
argv = malloc (sizeof (char *));
if (argv == NULL)
return NULL;
- argv[0] = (char *) arg;
+ argv[0] = (char *)arg;
va_start (args, arg);
for (i = 1; arg != NULL; ++i) {
arg = va_arg (args, const char *);
- new_argv = realloc (argv, sizeof (char *) * (i+1));
+ new_argv = realloc (argv, sizeof (char *) * (i + 1));
if (new_argv == NULL) {
free (argv);
va_end (args);
return NULL;
}
argv = new_argv;
- argv[i] = (char *) arg;
+ argv[i] = (char *)arg;
}
h = mexp_spawnv (file, argv);
@@ -136,7 +137,7 @@ mexp_spawnv (const char *file, char **argv)
char slave[1024];
pid_t pid = 0;
- fd = posix_openpt (O_RDWR|O_NOCTTY);
+ fd = posix_openpt (O_RDWR | O_NOCTTY);
if (fd == -1)
goto error;
@@ -159,7 +160,7 @@ mexp_spawnv (const char *file, char **argv)
if (pid == -1)
goto error;
- if (pid == 0) { /* Child. */
+ if (pid == 0) { /* Child. */
struct termios terminal_settings;
int slave_fd;
@@ -200,7 +201,7 @@ mexp_spawnv (const char *file, char **argv)
h->pid = pid;
return h;
- error:
+error:
err = errno;
if (fd >= 0)
close (fd);
@@ -213,7 +214,8 @@ mexp_spawnv (const char *file, char **argv)
}
enum mexp_status
-mexp_expect (mexp_h *h, const mexp_regexp *regexps, int *ovector, int ovecsize)
+mexp_expect (mexp_h *h, const mexp_regexp *regexps, int *ovector,
+ int ovecsize)
{
time_t start_t, now_t;
int timeout;
@@ -230,7 +232,8 @@ mexp_expect (mexp_h *h, const mexp_regexp *regexps, int *ovector, int
ovecsize)
/* See the comment in the manual about h->next_match. We have
* some data remaining in the buffer, so begin by matching that.
*/
- memmove (&h->buffer[0], &h->buffer[h->next_match], h->len -
h->next_match);
+ memmove (&h->buffer[0], &h->buffer[h->next_match],
+ h->len - h->next_match);
h->len -= h->next_match;
h->buffer[h->len] = '\0';
h->next_match = -1;
@@ -247,8 +250,7 @@ mexp_expect (mexp_h *h, const mexp_regexp *regexps, int *ovector, int
ovecsize)
timeout = h->timeout - ((now_t - start_t) * 1000);
if (timeout < 0)
timeout = 0;
- }
- else
+ } else
timeout = 0;
pfds[0].fd = h->fd;
@@ -311,10 +313,8 @@ mexp_expect (mexp_h *h, const mexp_regexp *regexps, int *ovector, int
ovecsize)
for (i = 0; regexps[i].r > 0; ++i) {
int options = regexps[i].options | PCRE_PARTIAL_SOFT;
- r = pcre_exec (regexps[i].re, regexps[i].extra,
- h->buffer, (int)h->len, 0,
- options,
- ovector, ovecsize);
+ r = pcre_exec (regexps[i].re, regexps[i].extra, h->buffer,
+ (int)h->len, 0, options, ovector, ovecsize);
h->pcre_error = r;
if (r >= 0) {
diff --git a/p2v/miniexpect.h b/p2v/miniexpect.h
index 192d180..7d559a8 100644
--- a/p2v/miniexpect.h
+++ b/p2v/miniexpect.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
/* ** NOTE ** All API documentation is in the manual page.
@@ -34,7 +35,8 @@
#include <pcre.h>
/* This handle is created per subprocess that is spawned. */
-struct mexp_h {
+struct mexp_h
+{
int fd;
pid_t pid;
int timeout;
@@ -71,7 +73,8 @@ extern mexp_h *mexp_spawnl (const char *file, const char *arg, ...);
extern int mexp_close (mexp_h *h);
/* Expect. */
-struct mexp_regexp {
+struct mexp_regexp
+{
int r;
const pcre *re;
const pcre_extra *extra;
@@ -80,16 +83,16 @@ struct mexp_regexp {
typedef struct mexp_regexp mexp_regexp;
enum mexp_status {
- MEXP_EOF = 0,
- MEXP_ERROR = -1,
+ MEXP_EOF = 0,
+ MEXP_ERROR = -1,
MEXP_PCRE_ERROR = -2,
- MEXP_TIMEOUT = -3,
+ MEXP_TIMEOUT = -3,
};
-extern int mexp_expect (mexp_h *h, const mexp_regexp *regexps,
- int *ovector, int ovecsize);
+extern int mexp_expect (mexp_h *h, const mexp_regexp *regexps, int *ovector,
+ int ovecsize);
extern int mexp_printf (mexp_h *h, const char *fs, ...)
- __attribute__((format(printf,2,3)));
+ __attribute__ ((format (printf, 2, 3)));
#endif /* MINIEXPECT_H_ */
diff --git a/p2v/p2v.h b/p2v/p2v.h
index 0123da8..61cc194 100644
--- a/p2v/p2v.h
+++ b/p2v/p2v.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#ifndef P2V_H
@@ -53,7 +54,8 @@ extern char **all_removable;
extern char **all_interfaces;
/* config.c */
-struct config {
+struct config
+{
int verbose;
char *server;
int port;
@@ -80,10 +82,10 @@ struct config {
#define FLAG_ACPI 1
#define FLAG_APIC 2
-#define FLAG_PAE 4
+#define FLAG_PAE 4
-#define OUTPUT_ALLOCATION_NONE 0
-#define OUTPUT_ALLOCATION_SPARSE 1
+#define OUTPUT_ALLOCATION_NONE 0
+#define OUTPUT_ALLOCATION_SPARSE 1
#define OUTPUT_ALLOCATION_PREALLOCATED 2
extern struct config *new_config (void);
@@ -100,24 +102,31 @@ extern const char *get_cmdline_key (char **cmdline, const char
*key);
#define CMDLINE_SOURCE_PROC_CMDLINE 2 /* /proc/cmdline */
/* kernel.c */
-extern void kernel_configuration (struct config *, char **cmdline, int cmdline_source);
+extern void kernel_configuration (struct config *, char **cmdline,
+ int cmdline_source);
/* gui.c */
extern void gui_application (struct config *);
/* conversion.c */
-extern int start_conversion (struct config *, void (*notify_ui) (int type, const char
*data));
-#define NOTIFY_LOG_DIR 1 /* location of remote log directory */
-#define NOTIFY_REMOTE_MESSAGE 2 /* log message from remote virt-v2v */
-#define NOTIFY_STATUS 3 /* stage in conversion process */
+extern int start_conversion (struct config *,
+ void (*notify_ui) (int type,
+ const char *data));
+#define NOTIFY_LOG_DIR 1 /* location of remote log directory */
+#define NOTIFY_REMOTE_MESSAGE 2 /* log message from remote virt-v2v */
+#define NOTIFY_STATUS 3 /* stage in conversion process */
extern const char *get_conversion_error (void);
extern void cancel_conversion (void);
extern int conversion_is_running (void);
/* ssh.c */
extern int test_connection (struct config *);
-extern mexp_h *open_data_connection (struct config *, int *local_port, int
*remote_port);
-extern mexp_h *start_remote_connection (struct config *, const char *remote_dir, const
char *libvirt_xml, const char *dmesg);
+extern mexp_h *open_data_connection (struct config *, int *local_port,
+ int *remote_port);
+extern mexp_h *start_remote_connection (struct config *,
+ const char *remote_dir,
+ const char *libvirt_xml,
+ const char *dmesg);
extern const char *get_ssh_error (void);
/* utils.c */
@@ -126,7 +135,8 @@ extern char *get_if_vendor (const char *if_name, int truncate);
extern void wait_network_online (const struct config *);
/* whole-file.c */
-extern int read_whole_file (const char *filename, char **data_r, size_t *size_r);
+extern int read_whole_file (const char *filename, char **data_r,
+ size_t *size_r);
/* virt-v2v version and features (read from remote). */
extern int v2v_major;
diff --git a/p2v/ssh.c b/p2v/ssh.c
index 7158e70..f3aa5c6 100644
--- a/p2v/ssh.c
+++ b/p2v/ssh.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* This file handles the ssh connections to the conversion server.
@@ -66,7 +67,7 @@ char **output_drivers = NULL;
static char *ssh_error;
static void set_ssh_error (const char *fs, ...)
- __attribute__((format(printf,1,2)));
+ __attribute__ ((format (printf, 1, 2)));
static void
set_ssh_error (const char *fs, ...)
@@ -93,8 +94,8 @@ get_ssh_error (void)
return ssh_error;
}
-static void compile_regexps (void) __attribute__((constructor));
-static void free_regexps (void) __attribute__((destructor));
+static void compile_regexps (void) __attribute__ ((constructor));
+static void free_regexps (void) __attribute__ ((destructor));
static pcre *password_re;
static pcre *prompt_re;
@@ -111,30 +112,30 @@ compile_regexps (void)
int offset;
int p;
- /* These regexps are always used for partial matching. In pcre < 8
- * there were limitations on the regexps possible for partial
- * matching, so fail if that is true here. In pcre >= 8, all
- * regexps can be used in a partial match.
- */
-#define CHECK_PARTIAL_OK(pattern, re) \
- do { \
- pcre_fullinfo ((re), NULL, PCRE_INFO_OKPARTIAL, &p); \
- if (p != 1) { \
- fprintf (stderr, "%s: %s:%d: internal error: pattern '%s' cannot be
used for partial matching\n", \
- guestfs_int_program_name, \
- __FILE__, __LINE__, (pattern)); \
- abort (); \
- } \
+/* These regexps are always used for partial matching. In pcre < 8
+ * there were limitations on the regexps possible for partial
+ * matching, so fail if that is true here. In pcre >= 8, all
+ * regexps can be used in a partial match.
+ */
+#define CHECK_PARTIAL_OK(pattern, re) \
+ do { \
+ pcre_fullinfo ((re), NULL, PCRE_INFO_OKPARTIAL, &p); \
+ if (p != 1) { \
+ fprintf (stderr, "%s: %s:%d: internal error: pattern '%s' cannot
" \
+ "be used for partial matching\n", \
+ guestfs_int_program_name, __FILE__, __LINE__, (pattern)); \
+ abort (); \
+ } \
} while (0)
-#define COMPILE(re,pattern,options) \
- do { \
- re = pcre_compile ((pattern), (options), &err, &offset, NULL); \
- if (re == NULL) { \
- ignore_value (write (2, err, strlen (err))); \
- abort (); \
- } \
- CHECK_PARTIAL_OK ((pattern), re); \
+#define COMPILE(re, pattern, options) \
+ do { \
+ re = pcre_compile ((pattern), (options), &err, &offset, NULL); \
+ if (re == NULL) { \
+ ignore_value (write (2, err, strlen (err))); \
+ abort (); \
+ } \
+ CHECK_PARTIAL_OK ((pattern), re); \
} while (0)
COMPILE (password_re, "assword", 0);
@@ -142,10 +143,10 @@ compile_regexps (void)
* start_ssh function below.
*/
COMPILE (prompt_re,
- "###((?:[0123456789abcdefghijklmnopqrstuvwxyz]){8})### ", 0);
+ "###((?:[0123456789abcdefghijklmnopqrstuvwxyz]){8})### ", 0);
COMPILE (version_re,
"virt-v2v ([1-9](?:\\d)*)\\.([1-9](?:\\d)*)\\.(0|[1-9](?:\\d)*)",
- 0);
+ 0);
COMPILE (feature_libguestfs_rewrite_re, "libguestfs-rewrite", 0);
COMPILE (feature_input_re, "input:((?:\\w)*)", 0);
COMPILE (feature_output_re, "output:((?:\\w)*)", 0);
@@ -185,21 +186,34 @@ curl_download (const char *url, const char *local_file)
len = strlen (url);
for (i = 0; i < len; ++i) {
switch (url[i]) {
- case '\\': fprintf (fp, "\\\\"); break;
- case '"': fprintf (fp, "\\\""); break;
- case '\t': fprintf (fp, "\\t"); break;
- case '\n': fprintf (fp, "\\n"); break;
- case '\r': fprintf (fp, "\\r"); break;
- case '\v': fprintf (fp, "\\v"); break;
- default: fputc (url[i], fp);
+ case '\\':
+ fprintf (fp, "\\\\");
+ break;
+ case '"':
+ fprintf (fp, "\\\"");
+ break;
+ case '\t':
+ fprintf (fp, "\\t");
+ break;
+ case '\n':
+ fprintf (fp, "\\n");
+ break;
+ case '\r':
+ fprintf (fp, "\\r");
+ break;
+ case '\v':
+ fprintf (fp, "\\v");
+ break;
+ default:
+ fputc (url[i], fp);
}
}
fprintf (fp, "\"\n");
fclose (fp);
/* Run curl to download the URL to a file. */
- if (asprintf (&curl_cmd, "curl -f -o %s -K %s",
- local_file, curl_config_file) == -1)
+ if (asprintf (&curl_cmd, "curl -f -o %s -K %s", local_file,
+ curl_config_file) == -1)
error (EXIT_FAILURE, errno, "asprintf");
r = system (curl_cmd);
@@ -214,8 +228,7 @@ curl_download (const char *url, const char *local_file)
*/
set_ssh_error ("%s: curl error %d", url, WEXITSTATUS (r));
return -1;
- }
- else if (!WIFEXITED (r)) {
+ } else if (!WIFEXITED (r)) {
set_ssh_error ("curl subprocess got a signal (%d)", r);
return -1;
}
@@ -230,8 +243,7 @@ cache_ssh_identity (struct config *config)
int fd;
/* If it doesn't need downloading, return. */
- if (config->identity_url == NULL ||
- !config->identity_file_needs_update)
+ if (config->identity_url == NULL || !config->identity_file_needs_update)
return 0;
/* Generate a random filename. */
@@ -291,19 +303,18 @@ start_ssh (struct config *config, char **extra_args, int
wait_prompt)
j = 0;
args[j++] = "ssh";
- args[j++] = "-p"; /* Port. */
+ args[j++] = "-p"; /* Port. */
snprintf (port_str, sizeof port_str, "%d", config->port);
args[j++] = port_str;
- args[j++] = "-l"; /* Username. */
+ args[j++] = "-l"; /* Username. */
args[j++] = config->username ? config->username : "root";
- args[j++] = "-o"; /* Host key will always be novel. */
+ args[j++] = "-o"; /* Host key will always be novel. */
args[j++] = "StrictHostKeyChecking=no";
if (using_password_auth) {
/* Only use password authentication. */
args[j++] = "-o";
args[j++] = "PreferredAuthentications=keyboard-interactive,password";
- }
- else {
+ } else {
/* Use identity file (private key). */
args[j++] = "-o";
args[j++] = "PreferredAuthentications=publickey";
@@ -314,23 +325,21 @@ start_ssh (struct config *config, char **extra_args, int
wait_prompt)
for (i = 0; extra_args[i] != NULL; ++i)
args[j++] = extra_args[i];
}
- args[j++] = config->server; /* Conversion server. */
+ args[j++] = config->server; /* Conversion server. */
args[j++] = NULL;
assert (j == nr_args);
- h = mexp_spawnv ("ssh", (char **) args);
+ h = mexp_spawnv ("ssh", (char **)args);
if (h == NULL)
return NULL;
- if (using_password_auth &&
- config->password && strlen (config->password) > 0) {
+ if (using_password_auth && config->password &&
+ strlen (config->password) > 0) {
/* Wait for the password prompt. */
- switch (mexp_expect (h,
- (mexp_regexp[]) {
- { 100, .re = password_re },
- { 0 }
- }, ovector, ovecsize)) {
- case 100: /* Got password prompt. */
+ switch (mexp_expect (
+ h, (mexp_regexp[]){ { 100, .re = password_re }, { 0 } }, ovector,
+ ovecsize)) {
+ case 100: /* Got password prompt. */
if (mexp_printf (h, "%s\n", config->password) == -1) {
set_ssh_error ("mexp_printf: %m");
mexp_close (h);
@@ -393,18 +402,17 @@ start_ssh (struct config *config, char **extra_args, int
wait_prompt)
return NULL;
}
- /* Wait for the prompt. */
+ /* Wait for the prompt. */
wait_again:
- switch (mexp_expect (h,
- (mexp_regexp[]) {
- { 100, .re = password_re },
- { 101, .re = prompt_re },
- { 0 }
- }, ovector, ovecsize)) {
- case 100: /* Got password prompt unexpectedly. */
+ switch (mexp_expect (h, (mexp_regexp[]){ { 100, .re = password_re },
+ { 101, .re = prompt_re },
+ { 0 } },
+ ovector, ovecsize)) {
+ case 100: /* Got password prompt unexpectedly. */
if (mexp_printf (h, "%s\n", config->password) == -1) {
mexp_close (h);
- set_ssh_error ("unexpected password prompt: probably the password supplied
is wrong");
+ set_ssh_error ("unexpected password prompt: probably the password "
+ "supplied is wrong");
return NULL;
}
break;
@@ -413,8 +421,8 @@ start_ssh (struct config *config, char **extra_args, int wait_prompt)
/* Got a prompt. However it might be an earlier prompt. If it
* doesn't match the PS1 string we sent, then repeat the expect.
*/
- r = pcre_get_substring (h->buffer, ovector,
- mexp_get_pcre_error (h), 1, &matched);
+ r = pcre_get_substring (h->buffer, ovector, mexp_get_pcre_error (h),
+ 1, &matched);
if (r < 0)
error (EXIT_FAILURE, 0, "PCRE error reading substring (%d)", r);
r = STREQ (magic, matched);
@@ -447,10 +455,11 @@ start_ssh (struct config *config, char **extra_args, int
wait_prompt)
}
mexp_close (h);
- set_ssh_error ("failed to synchronize with remote shell after 60 seconds");
+ set_ssh_error (
+ "failed to synchronize with remote shell after 60 seconds");
return NULL;
- got_prompt:
+got_prompt:
mexp_set_timeout_ms (h, saved_timeout);
return h;
@@ -464,7 +473,8 @@ int
test_connection (struct config *config)
{
mexp_h *h;
- CLEANUP_FREE char *major_str = NULL, *minor_str = NULL, *release_str = NULL;
+ CLEANUP_FREE char *major_str = NULL, *minor_str = NULL,
+ *release_str = NULL;
int feature_libguestfs_rewrite = 0;
int status;
const int ovecsize = 12;
@@ -479,11 +489,11 @@ test_connection (struct config *config)
*/
v2v_major = v2v_minor = v2v_release = 0;
- /* Send 'virt-v2v --version' command and hope we get back a version string.
+ /* Send 'virt-v2v --version' command and hope we get back a version
+ * string.
* Note old virt-v2v did not understand -V option.
*/
- if (mexp_printf (h,
- "%svirt-v2v --version\n",
+ if (mexp_printf (h, "%svirt-v2v --version\n",
config->sudo ? "sudo " : "") == -1) {
set_ssh_error ("mexp_printf: %m");
mexp_close (h);
@@ -491,16 +501,15 @@ test_connection (struct config *config)
}
for (;;) {
- switch (mexp_expect (h,
- (mexp_regexp[]) {
- { 100, .re = version_re },
- { 101, .re = prompt_re },
- { 0 }
- }, ovector, ovecsize)) {
- case 100: /* Got version string. */
- major_str = strndup (&h->buffer[ovector[2]], ovector[3]-ovector[2]);
- minor_str = strndup (&h->buffer[ovector[4]], ovector[5]-ovector[4]);
- release_str = strndup (&h->buffer[ovector[6]], ovector[7]-ovector[6]);
+ switch (mexp_expect (h, (mexp_regexp[]){ { 100, .re = version_re },
+ { 101, .re = prompt_re },
+ { 0 } },
+ ovector, ovecsize)) {
+ case 100: /* Got version string. */
+ major_str = strndup (&h->buffer[ovector[2]], ovector[3] - ovector[2]);
+ minor_str = strndup (&h->buffer[ovector[4]], ovector[5] - ovector[4]);
+ release_str =
+ strndup (&h->buffer[ovector[6]], ovector[7] - ovector[6]);
sscanf (major_str, "%d", &v2v_major);
sscanf (minor_str, "%d", &v2v_minor);
sscanf (release_str, "%d", &v2v_release);
@@ -518,12 +527,13 @@ test_connection (struct config *config)
}
break;
- case 101: /* Got the prompt. */
+ case 101: /* Got the prompt. */
goto end_of_version;
case MEXP_EOF:
mexp_close (h);
- set_ssh_error ("unexpected end of file waiting virt-v2v --version
output");
+ set_ssh_error (
+ "unexpected end of file waiting virt-v2v --version output");
return -1;
case MEXP_TIMEOUT:
@@ -542,7 +552,7 @@ test_connection (struct config *config)
return -1;
}
}
- end_of_version:
+end_of_version:
/* Got the prompt but no version number. */
if (v2v_major == 0) {
@@ -556,7 +566,8 @@ test_connection (struct config *config)
if (v2v_major != 1) {
mexp_close (h);
set_ssh_error ("virt-v2v major version is not 1 (major = %d), "
- "this version of virt-p2v is not compatible", v2v_major);
+ "this version of virt-p2v is not compatible",
+ v2v_major);
return -1;
}
@@ -569,7 +580,8 @@ test_connection (struct config *config)
mexp_close (h);
set_ssh_error ("virt-v2v version is < 1.28 (major = %d, minor = %d), "
"you must upgrade to virt-v2v >= 1.28 on "
- "the conversion server", v2v_major, v2v_minor);
+ "the conversion server",
+ v2v_major, v2v_minor);
return -1;
}
@@ -589,36 +601,36 @@ test_connection (struct config *config)
}
for (;;) {
- switch (mexp_expect (h,
- (mexp_regexp[]) {
- { 100, .re = feature_libguestfs_rewrite_re },
- { 101, .re = feature_input_re },
- { 102, .re = feature_output_re },
- { 103, .re = prompt_re },
- { 0 }
- }, ovector, ovecsize)) {
- case 100: /* libguestfs-rewrite. */
+ switch (mexp_expect (
+ h, (mexp_regexp[]){ { 100, .re = feature_libguestfs_rewrite_re },
+ { 101, .re = feature_input_re },
+ { 102, .re = feature_output_re },
+ { 103, .re = prompt_re },
+ { 0 } },
+ ovector, ovecsize)) {
+ case 100: /* libguestfs-rewrite. */
feature_libguestfs_rewrite = 1;
break;
case 101:
/* input:<driver-name> corresponds to an -i option in virt-v2v. */
add_input_driver (&h->buffer[ovector[2]],
- (size_t) (ovector[3]-ovector[2]));
+ (size_t) (ovector[3] - ovector[2]));
break;
case 102:
/* output:<driver-name> corresponds to an -o option in virt-v2v. */
add_output_driver (&h->buffer[ovector[2]],
- (size_t) (ovector[3]-ovector[2]));
+ (size_t) (ovector[3] - ovector[2]));
break;
- case 103: /* Got prompt, so end of output. */
+ case 103: /* Got prompt, so end of output. */
goto end_of_machine_readable;
case MEXP_EOF:
mexp_close (h);
- set_ssh_error ("unexpected end of file waiting virt-v2v --machine-readable
output");
+ set_ssh_error ("unexpected end of file waiting virt-v2v "
+ "--machine-readable output");
return -1;
case MEXP_TIMEOUT:
@@ -637,7 +649,7 @@ test_connection (struct config *config)
return -1;
}
}
- end_of_machine_readable:
+end_of_machine_readable:
if (!feature_libguestfs_rewrite) {
mexp_close (h);
@@ -680,7 +692,8 @@ test_connection (struct config *config)
if (WIFSIGNALED (status) && WTERMSIG (status) == SIGHUP)
return 0; /* not an error */
if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) {
- set_ssh_error ("unexpected close status from ssh subprocess (%d)",
status);
+ set_ssh_error ("unexpected close status from ssh subprocess (%d)",
+ status);
return -1;
}
return 0;
@@ -698,18 +711,18 @@ add_option (const char *type, char ***drivers, const char *name,
size_t len)
n++;
- *drivers = realloc (*drivers, (n+1) * sizeof (char *));
+ *drivers = realloc (*drivers, (n + 1) * sizeof (char *));
if (*drivers == NULL)
error (EXIT_FAILURE, errno, "malloc");
- (*drivers)[n-1] = strndup (name, len);
- if ((*drivers)[n-1] == NULL)
+ (*drivers)[n - 1] = strndup (name, len);
+ if ((*drivers)[n - 1] == NULL)
error (EXIT_FAILURE, errno, "strndup");
(*drivers)[n] = NULL;
#if DEBUG_STDERR
fprintf (stderr, "%s: remote virt-v2v supports %s driver %s\n",
- guestfs_int_program_name, type, (*drivers)[n-1]);
+ guestfs_int_program_name, type, (*drivers)[n - 1]);
#endif
}
@@ -731,34 +744,30 @@ add_output_driver (const char *name, size_t len)
static int nbd_local_port = 50123;
mexp_h *
-open_data_connection (struct config *config, int *local_port, int *remote_port)
+open_data_connection (struct config *config, int *local_port,
+ int *remote_port)
{
mexp_h *h;
char remote_arg[32];
- const char *extra_args[] = {
- "-R", remote_arg,
- "-N",
- NULL
- };
+ const char *extra_args[] = { "-R", remote_arg, "-N", NULL };
CLEANUP_FREE char *port_str = NULL;
const int ovecsize = 12;
int ovector[ovecsize];
- snprintf (remote_arg, sizeof remote_arg, "0:localhost:%d", nbd_local_port);
+ snprintf (remote_arg, sizeof remote_arg, "0:localhost:%d",
+ nbd_local_port);
*local_port = nbd_local_port;
nbd_local_port++;
- h = start_ssh (config, (char **) extra_args, 0);
+ h = start_ssh (config, (char **)extra_args, 0);
if (h == NULL)
return NULL;
switch (mexp_expect (h,
- (mexp_regexp[]) {
- { 100, .re = portfwd_re },
- { 0 }
- }, ovector, ovecsize)) {
- case 100: /* Ephemeral port. */
- port_str = strndup (&h->buffer[ovector[2]], ovector[3]-ovector[2]);
+ (mexp_regexp[]){ { 100, .re = portfwd_re }, { 0 } },
+ ovector, ovecsize)) {
+ case 100: /* Ephemeral port. */
+ port_str = strndup (&h->buffer[ovector[2]], ovector[3] - ovector[2]);
if (port_str == NULL) {
set_ssh_error ("not enough memory for strndup");
mexp_close (h);
@@ -803,11 +812,9 @@ wait_for_prompt (mexp_h *h)
int ovector[ovecsize];
switch (mexp_expect (h,
- (mexp_regexp[]) {
- { 100, .re = prompt_re },
- { 0 }
- }, ovector, ovecsize)) {
- case 100: /* Got the prompt. */
+ (mexp_regexp[]){ { 100, .re = prompt_re }, { 0 } },
+ ovector, ovecsize)) {
+ case 100: /* Got the prompt. */
return 0;
case MEXP_EOF:
@@ -831,9 +838,8 @@ wait_for_prompt (mexp_h *h)
}
mexp_h *
-start_remote_connection (struct config *config,
- const char *remote_dir, const char *libvirt_xml,
- const char *dmesg)
+start_remote_connection (struct config *config, const char *remote_dir,
+ const char *libvirt_xml, const char *dmesg)
{
mexp_h *h;
char magic[9];
@@ -856,9 +862,10 @@ start_remote_connection (struct config *config,
if (wait_for_prompt (h) == -1)
goto error;
- /* Write some useful config information to files in the remote directory. */
- if (mexp_printf (h, "echo '%s' > %s/name\n",
- config->guestname, remote_dir) == -1) {
+ /* Write some useful config information to files in the remote directory.
+ */
+ if (mexp_printf (h, "echo '%s' > %s/name\n",
config->guestname,
+ remote_dir) == -1) {
set_ssh_error ("mexp_printf: %m");
goto error;
}
@@ -875,13 +882,10 @@ start_remote_connection (struct config *config,
goto error;
/* Upload the guest libvirt XML to the remote directory. */
- if (mexp_printf (h,
- "cat > '%s/physical.xml' <<
'__%s__'\n"
- "%s"
- "__%s__\n",
- remote_dir, magic,
- libvirt_xml,
- magic) == -1) {
+ if (mexp_printf (h, "cat > '%s/physical.xml' <<
'__%s__'\n"
+ "%s"
+ "__%s__\n",
+ remote_dir, magic, libvirt_xml, magic) == -1) {
set_ssh_error ("mexp_printf: %m");
goto error;
}
@@ -891,14 +895,11 @@ start_remote_connection (struct config *config,
if (dmesg != NULL) {
/* Upload the physical host dmesg to the remote directory. */
- if (mexp_printf (h,
- "cat > '%s/dmesg' << '__%s__'\n"
- "%s"
- "\n"
- "__%s__\n",
- remote_dir, magic,
- dmesg,
- magic) == -1) {
+ if (mexp_printf (h, "cat > '%s/dmesg' <<
'__%s__'\n"
+ "%s"
+ "\n"
+ "__%s__\n",
+ remote_dir, magic, dmesg, magic) == -1) {
set_ssh_error ("mexp_printf: %m");
goto error;
}
@@ -909,7 +910,7 @@ start_remote_connection (struct config *config,
return h;
- error:
+error:
mexp_close (h);
return NULL;
}
diff --git a/p2v/utils.c b/p2v/utils.c
index 183e406..fcb0b22 100644
--- a/p2v/utils.c
+++ b/p2v/utils.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -32,12 +33,12 @@
#include "p2v.h"
-#define CHOMP(line,len) \
- do { \
- if ((len) > 0 && (line)[(len)-1] == '\n') { \
- (line)[(len)-1] = '\0'; \
- len--; \
- } \
+#define CHOMP(line, len) \
+ do { \
+ if ((len) > 0 && (line)[(len)-1] == '\n') {
\
+ (line)[(len)-1] = '\0'; \
+ len--; \
+ } \
} while (0)
/* Return contents of /sys/class/net/<if_name>/address (if found). */
@@ -121,7 +122,7 @@ get_if_vendor (const char *if_name, int truncate)
n--;
}
- memmove (&line[0], &line[i], n+1 /* copy trailing \0 */);
+ memmove (&line[0], &line[i], n + 1 /* copy trailing \0 */);
/* Truncate? */
if (truncate > 0 && n > truncate)
diff --git a/p2v/whole-file.c b/p2v/whole-file.c
index 90df716..37cd20a 100644
--- a/p2v/whole-file.c
+++ b/p2v/whole-file.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -40,7 +41,7 @@ read_whole_file (const char *filename, char **data_r, size_t *size_r)
ssize_t r;
struct stat statbuf;
- fd = open (filename, O_RDONLY|O_CLOEXEC);
+ fd = open (filename, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
fprintf (stderr, "open: %s: %m\n", filename);
return -1;
diff --git a/python/guestfs-py-byhand.c b/python/guestfs-py-byhand.c
index b200dc6..b02a132 100644
--- a/python/guestfs-py-byhand.c
+++ b/python/guestfs-py-byhand.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
/* This file contains a small number of functions that are written by
@@ -42,7 +43,7 @@ guestfs_int_py_create (PyObject *self, PyObject *args)
guestfs_h *g;
unsigned flags;
- if (!PyArg_ParseTuple (args, (char *) "I:guestfs_create", &flags))
+ if (!PyArg_ParseTuple (args, (char *)"I:guestfs_create", &flags))
return NULL;
g = guestfs_create_flags (flags);
if (g == NULL) {
@@ -66,7 +67,7 @@ guestfs_int_py_close (PyObject *self, PyObject *args)
size_t i, len;
PyObject **callbacks;
- if (!PyArg_ParseTuple (args, (char *) "O:guestfs_close", &py_g))
+ if (!PyArg_ParseTuple (args, (char *)"O:guestfs_close", &py_g))
return NULL;
g = get_handle (py_g);
@@ -94,13 +95,12 @@ guestfs_int_py_close (PyObject *self, PyObject *args)
/*
http://docs.python.org/release/2.5.2/ext/callingPython.html */
static void
-guestfs_int_py_event_callback_wrapper (guestfs_h *g,
- void *callback,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+guestfs_int_py_event_callback_wrapper (guestfs_h *g, void *callback,
+ uint64_t event, int event_handle,
+ int flags, const char *buf,
+ size_t buf_len,
+ const uint64_t *array,
+ size_t array_len)
{
PyGILState_STATE py_save = PyGILState_UNLOCKED;
PyObject *py_callback = callback;
@@ -117,9 +117,8 @@ guestfs_int_py_event_callback_wrapper (guestfs_h *g,
}
/* XXX As with Perl we don't pass the guestfs_h handle here. */
- args = Py_BuildValue ("(Kis#O)",
- (unsigned PY_LONG_LONG) event, event_handle,
- buf, buf_len, py_array);
+ args = Py_BuildValue ("(Kis#O)", (unsigned PY_LONG_LONG)event,
+ event_handle, buf, buf_len, py_array);
if (PyEval_ThreadsInitialized ())
py_save = PyGILState_Ensure ();
@@ -149,14 +148,13 @@ guestfs_int_py_set_event_callback (PyObject *self, PyObject *args)
PyObject *py_eh;
char key[64];
- if (!PyArg_ParseTuple (args, (char *) "OOK:guestfs_set_event_callback",
+ if (!PyArg_ParseTuple (args, (char *)"OOK:guestfs_set_event_callback",
&py_g, &py_callback, &events))
return NULL;
if (!PyCallable_Check (py_callback)) {
- PyErr_SetString (PyExc_TypeError,
- "callback parameter is not callable "
- "(eg. lambda or function)");
+ PyErr_SetString (PyExc_TypeError, "callback parameter is not callable "
+ "(eg. lambda or function)");
return NULL;
}
@@ -179,7 +177,7 @@ guestfs_int_py_set_event_callback (PyObject *self, PyObject *args)
snprintf (key, sizeof key, "_python_event_%d", eh);
guestfs_set_private (g, key, py_callback);
- py_eh = PyLong_FromLong ((long) eh);
+ py_eh = PyLong_FromLong ((long)eh);
return py_eh;
}
@@ -192,7 +190,7 @@ guestfs_int_py_delete_event_callback (PyObject *self, PyObject *args)
PyObject *py_callback;
char key[64];
- if (!PyArg_ParseTuple (args, (char *) "Oi:guestfs_delete_event_callback",
+ if (!PyArg_ParseTuple (args, (char *)"Oi:guestfs_delete_event_callback",
&py_g, &eh))
return NULL;
g = get_handle (py_g);
@@ -216,7 +214,7 @@ guestfs_int_py_event_to_string (PyObject *self, PyObject *args)
char *str;
PyObject *py_r;
- if (!PyArg_ParseTuple (args, (char *) "K", &events))
+ if (!PyArg_ParseTuple (args, (char *)"K", &events))
return NULL;
str = guestfs_event_to_string (events);
diff --git a/python/guestfs-py.h b/python/guestfs-py.h
index da5f483..2c27374 100644
--- a/python/guestfs-py.h
+++ b/python/guestfs-py.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#ifndef guestfs_py_h
@@ -29,9 +30,9 @@ typedef int Py_ssize_t;
#endif
#ifndef HAVE_PYCAPSULE_NEW
-typedef struct {
- PyObject_HEAD
- guestfs_h *g;
+typedef struct
+{
+ PyObject_HEAD guestfs_h *g;
} Pyguestfs_Object;
#endif
@@ -41,9 +42,9 @@ get_handle (PyObject *obj)
assert (obj);
assert (obj != Py_None);
#ifndef HAVE_PYCAPSULE_NEW
- return ((Pyguestfs_Object *) obj)->g;
+ return ((Pyguestfs_Object *)obj)->g;
#else
- return (guestfs_h*) PyCapsule_GetPointer(obj, "guestfs_h");
+ return (guestfs_h *)PyCapsule_GetPointer (obj, "guestfs_h");
#endif
}
@@ -52,17 +53,20 @@ put_handle (guestfs_h *g)
{
assert (g);
#ifndef HAVE_PYCAPSULE_NEW
- return
- PyCObject_FromVoidPtrAndDesc ((void *) g, (char *) "guestfs_h", NULL);
+ return PyCObject_FromVoidPtrAndDesc ((void *)g, (char *)"guestfs_h",
+ NULL);
#else
- return PyCapsule_New ((void *) g, "guestfs_h", NULL);
+ return PyCapsule_New ((void *)g, "guestfs_h", NULL);
#endif
}
extern PyObject *guestfs_int_py_create (PyObject *self, PyObject *args);
extern PyObject *guestfs_int_py_close (PyObject *self, PyObject *args);
-extern PyObject *guestfs_int_py_set_event_callback (PyObject *self, PyObject *args);
-extern PyObject *guestfs_int_py_delete_event_callback (PyObject *self, PyObject *args);
-extern PyObject *guestfs_int_py_event_to_string (PyObject *self, PyObject *args);
+extern PyObject *guestfs_int_py_set_event_callback (PyObject *self,
+ PyObject *args);
+extern PyObject *guestfs_int_py_delete_event_callback (PyObject *self,
+ PyObject *args);
+extern PyObject *guestfs_int_py_event_to_string (PyObject *self,
+ PyObject *args);
#endif /* guestfs_py_h */
diff --git a/rescue/rescue.c b/rescue/rescue.c
index c46c775..7d19c7e 100644
--- a/rescue/rescue.c
+++ b/rescue/rescue.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -50,39 +51,39 @@ int echo_keys = 0;
const char *libvirt_uri = NULL;
int inspector = 0;
-static void __attribute__((noreturn))
-usage (int status)
+static void __attribute__ ((noreturn)) usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
guestfs_int_program_name);
else {
- printf (_("%s: Run a rescue shell on a virtual machine\n"
- "Copyright (C) 2009-2016 Red Hat Inc.\n"
- "Usage:\n"
- " %s [--options] -d domname\n"
- " %s [--options] -a disk.img [-a disk.img ...]\n"
- "Options:\n"
- " -a|--add image Add image\n"
- " --append kernelopts Append kernel options\n"
- " -c|--connect uri Specify libvirt URI for -d option\n"
- " -d|--domain guest Add disks from libvirt guest\n"
- " --format[=raw|..] Force disk format for -a option\n"
- " --help Display brief help\n"
- " -m|--memsize MB Set memory size in megabytes\n"
- " --network Enable network\n"
- " -r|--ro Access read-only\n"
- " --scratch[=N] Add scratch disk(s)\n"
- " --selinux Enable SELinux\n"
- " --smp N Enable SMP with N >= 2 virtual
CPUs\n"
- " --suggest Suggest mount commands for this guest\n"
- " -v|--verbose Verbose messages\n"
- " -V|--version Display version and exit\n"
- " -w|--rw Mount read-write\n"
- " -x Trace libguestfs API calls\n"
- "For more information, see the manpage %s(1).\n"),
- guestfs_int_program_name, guestfs_int_program_name,
- guestfs_int_program_name, guestfs_int_program_name);
+ printf (
+ _("%s: Run a rescue shell on a virtual machine\n"
+ "Copyright (C) 2009-2016 Red Hat Inc.\n"
+ "Usage:\n"
+ " %s [--options] -d domname\n"
+ " %s [--options] -a disk.img [-a disk.img ...]\n"
+ "Options:\n"
+ " -a|--add image Add image\n"
+ " --append kernelopts Append kernel options\n"
+ " -c|--connect uri Specify libvirt URI for -d option\n"
+ " -d|--domain guest Add disks from libvirt guest\n"
+ " --format[=raw|..] Force disk format for -a option\n"
+ " --help Display brief help\n"
+ " -m|--memsize MB Set memory size in megabytes\n"
+ " --network Enable network\n"
+ " -r|--ro Access read-only\n"
+ " --scratch[=N] Add scratch disk(s)\n"
+ " --selinux Enable SELinux\n"
+ " --smp N Enable SMP with N >= 2 virtual CPUs\n"
+ " --suggest Suggest mount commands for this guest\n"
+ " -v|--verbose Verbose messages\n"
+ " -V|--version Display version and exit\n"
+ " -w|--rw Mount read-write\n"
+ " -x Trace libguestfs API calls\n"
+ "For more information, see the manpage %s(1).\n"),
+ guestfs_int_program_name, guestfs_int_program_name,
+ guestfs_int_program_name, guestfs_int_program_name);
}
exit (status);
}
@@ -138,10 +139,11 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "long-options"))
display_long_options (long_options);
else if (STREQ (long_options[option_index].name, "short-options"))
@@ -160,8 +162,8 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, 0,
_("could not parse --smp parameter '%s'"), optarg);
if (smp < 1)
- error (EXIT_FAILURE, 0,
- _("--smp parameter '%s' should be >= 1"), optarg);
+ error (EXIT_FAILURE, 0, _("--smp parameter '%s' should be >=
1"),
+ optarg);
} else if (STREQ (long_options[option_index].name, "suggest")) {
suggest = 1;
} else if (STREQ (long_options[option_index].name, "scratch")) {
@@ -178,8 +180,7 @@ main (int argc, char *argv[])
add_scratch_disks (n, &drvs);
}
} else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -197,8 +198,8 @@ main (int argc, char *argv[])
case 'm':
if (sscanf (optarg, "%d", &memsize) != 1)
- error (EXIT_FAILURE, 0,
- _("could not parse memory size '%s'"), optarg);
+ error (EXIT_FAILURE, 0, _("could not parse memory size '%s'"),
+ optarg);
break;
case 'r':
@@ -245,7 +246,7 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, errno, "strdup");
drv->next = drvs;
drvs = drv;
- } else { /* simulate -d option */
+ } else { /* simulate -d option */
drv = calloc (1, sizeof (struct drv));
if (!drv)
error (EXIT_FAILURE, errno, "calloc");
@@ -294,10 +295,11 @@ main (int argc, char *argv[])
*/
CLEANUP_FREE char *backend = guestfs_get_backend (g);
if (backend) {
- if (STREQ (backend, "libvirt") ||
- STRPREFIX (backend, "libvirt:")) {
- fprintf (stderr, _("%s: warning: virt-rescue doesn't work with the
libvirt backend\n"
- "at the moment. As a workaround, forcing backend =
'direct'.\n"),
+ if (STREQ (backend, "libvirt") || STRPREFIX (backend,
"libvirt:")) {
+ fprintf (stderr, _("%s: warning: virt-rescue doesn't work with "
+ "the libvirt backend\n"
+ "at the moment. As a workaround, forcing "
+ "backend = 'direct'.\n"),
guestfs_int_program_name);
if (guestfs_set_backend (g, "direct") == -1)
exit (EXIT_FAILURE);
@@ -320,9 +322,8 @@ main (int argc, char *argv[])
/* Kernel command line must include guestfs_rescue=1 (see
* appliance/init) as well as other options.
*/
- CLEANUP_FREE char *append_full = xasprintf ("guestfs_rescue=1%s%s",
- append ? " " : "",
- append ? append : "");
+ CLEANUP_FREE char *append_full = xasprintf (
+ "guestfs_rescue=1%s%s", append ? " " : "", append ?
append : "");
if (guestfs_set_append (g, append_full) == -1)
exit (EXIT_FAILURE);
}
@@ -354,8 +355,8 @@ static void suggest_filesystems (void);
static int
compare_keys_len (const void *p1, const void *p2)
{
- const char *key1 = * (char * const *) p1;
- const char *key2 = * (char * const *) p2;
+ const char *key1 = *(char *const *)p1;
+ const char *key2 = *(char *const *)p2;
return strlen (key1) - strlen (key2);
}
@@ -396,8 +397,10 @@ do_suggestion (struct drv *drvs)
return;
}
- printf (_("This disk contains one or more operating systems. You can use these
mount\n"
- "commands in virt-rescue (at the ><rescue> prompt) to mount the
filesystems.\n\n"));
+ printf (_("This disk contains one or more operating systems. You can "
+ "use these mount\n"
+ "commands in virt-rescue (at the ><rescue> prompt) to mount
"
+ "the filesystems.\n\n"));
for (i = 0; roots[i] != NULL; ++i) {
CLEANUP_FREE_STRING_LIST char **mps = NULL;
@@ -414,9 +417,8 @@ do_suggestion (struct drv *drvs)
printf (_("# %s is the root of a %s operating system\n"
"# type: %s, distro: %s, version: %d.%d\n"
"# %s\n\n"),
- roots[i], type ? : "unknown",
- type ? : "unknown", distro ? : "unknown", major, minor,
- product_name ? : "");
+ roots[i], type ?: "unknown", type ?: "unknown",
+ distro ?: "unknown", major, minor, product_name ?: "");
mps = guestfs_inspect_get_mountpoints (g, roots[i]);
if (mps == NULL)
@@ -429,7 +431,7 @@ do_suggestion (struct drv *drvs)
compare_keys_len);
for (j = 0; mps[j] != NULL; j += 2)
- printf ("mount %s /sysroot%s\n", mps[j+1], mps[j]);
+ printf ("mount %s /sysroot%s\n", mps[j + 1], mps[j]);
/* If it's Linux, print the bind-mounts and a chroot command. */
if (type && STREQ (type, "linux")) {
@@ -458,33 +460,38 @@ suggest_filesystems (void)
if (fses == NULL)
exit (EXIT_FAILURE);
- /* Count how many are not swap or unknown. Possibly we should try
- * mounting to see which are mountable, but that has a high
- * probability of breaking.
- */
+/* Count how many are not swap or unknown. Possibly we should try
+ * mounting to see which are mountable, but that has a high
+ * probability of breaking.
+ */
#define TEST_MOUNTABLE(fs) STRNEQ ((fs), "swap") && STRNEQ ((fs),
"unknown")
count = 0;
for (i = 0; fses[i] != NULL; i += 2) {
- if (TEST_MOUNTABLE (fses[i+1]))
+ if (TEST_MOUNTABLE (fses[i + 1]))
count++;
}
if (count == 0) {
- printf (_("This disk contains no mountable filesystems that we
recognize.\n\n"
- "However you can still use virt-rescue on the disk image, to try to
mount\n"
- "filesystems that are not recognized by libguestfs, or to create
partitions,\n"
- "logical volumes and filesystems on a blank disk.\n"));
+ printf (_ (
+ "This disk contains no mountable filesystems that we recognize.\n\n"
+ "However you can still use virt-rescue on the disk image, to try "
+ "to mount\n"
+ "filesystems that are not recognized by libguestfs, or to create "
+ "partitions,\n"
+ "logical volumes and filesystems on a blank disk.\n"));
return;
}
- printf (_("This disk contains one or more filesystems, but we don't recognize
any\n"
- "operating system. You can use these mount commands in virt-rescue (at
the\n"
+ printf (_("This disk contains one or more filesystems, but we don't "
+ "recognize any\n"
+ "operating system. You can use these mount commands in "
+ "virt-rescue (at the\n"
"><rescue> prompt) to mount these filesystems.\n\n"));
for (i = 0; fses[i] != NULL; i += 2) {
- printf (_("# %s has type '%s'\n"), fses[i], fses[i+1]);
+ printf (_("# %s has type '%s'\n"), fses[i], fses[i + 1]);
- if (TEST_MOUNTABLE (fses[i+1]))
+ if (TEST_MOUNTABLE (fses[i + 1]))
printf ("mount %s /sysroot\n", fses[i]);
printf ("\n");
diff --git a/sparsify/statvfs-c.c b/sparsify/statvfs-c.c
index 76bff0b..ca0a21e 100644
--- a/sparsify/statvfs-c.c
+++ b/sparsify/statvfs-c.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -43,7 +44,7 @@ virt_sparsify_statvfs_free_space (value pathv)
caml_failwith ("statvfs");
}
- free_space = (int64_t) buf.f_bsize * buf.f_bavail;
+ free_space = (int64_t)buf.f_bsize * buf.f_bavail;
rv = caml_copy_int64 (free_space);
CAMLreturn (rv);
diff --git a/src/actions-support.c b/src/actions-support.c
index baf375f..e192165 100644
--- a/src/actions-support.c
+++ b/src/actions-support.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
/* Helper functions for the actions defined in src/actions.c */
@@ -30,25 +31,26 @@
/* Check the return message from a call for validity. */
int
guestfs_int_check_reply_header (guestfs_h *g,
- const struct guestfs_message_header *hdr,
- unsigned int proc_nr, unsigned int serial)
+ const struct guestfs_message_header *hdr,
+ unsigned int proc_nr, unsigned int serial)
{
if (hdr->prog != GUESTFS_PROGRAM) {
error (g, "wrong program (%u/%d)", hdr->prog, GUESTFS_PROGRAM);
return -1;
}
if (hdr->vers != GUESTFS_PROTOCOL_VERSION) {
- error (g, "wrong protocol version (%u/%d)",
- hdr->vers, GUESTFS_PROTOCOL_VERSION);
+ error (g, "wrong protocol version (%u/%d)", hdr->vers,
+ GUESTFS_PROTOCOL_VERSION);
return -1;
}
if (hdr->direction != GUESTFS_DIRECTION_REPLY) {
- error (g, "unexpected message direction (%d/%d)",
- (int) hdr->direction, GUESTFS_DIRECTION_REPLY);
+ error (g, "unexpected message direction (%d/%d)", (int)hdr->direction,
+ GUESTFS_DIRECTION_REPLY);
return -1;
}
if (hdr->proc != proc_nr) {
- error (g, "unexpected procedure number (%d/%u)", (int) hdr->proc,
proc_nr);
+ error (g, "unexpected procedure number (%d/%u)", (int)hdr->proc,
+ proc_nr);
return -1;
}
if (hdr->serial != serial) {
@@ -64,7 +66,8 @@ int
guestfs_int_check_appliance_up (guestfs_h *g, const char *caller)
{
if (g->state == CONFIG || g->state == LAUNCHING) {
- error (g, "%s: call launch before using this function\n(in guestfish, don't
forget to use the 'run' command)",
+ error (g, "%s: call launch before using this function\n(in guestfish, "
+ "don't forget to use the 'run' command)",
caller);
return -1;
}
@@ -95,7 +98,8 @@ guestfs_int_trace_send_line (guestfs_h *g, struct trace_buffer *tb)
if (tb->opened) {
fclose (tb->fp);
tb->fp = NULL;
- guestfs_int_call_callbacks_message (g, GUESTFS_EVENT_TRACE, tb->buf, tb->len);
+ guestfs_int_call_callbacks_message (g, GUESTFS_EVENT_TRACE, tb->buf,
+ tb->len);
free (tb->buf);
tb->buf = NULL;
}
diff --git a/src/alloc.c b/src/alloc.c
index d6f70c2..512e84c 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -30,7 +31,8 @@ void *
guestfs_int_safe_malloc (guestfs_h *g, size_t nbytes)
{
void *ptr = malloc (nbytes);
- if (nbytes > 0 && !ptr) g->abort_cb ();
+ if (nbytes > 0 && !ptr)
+ g->abort_cb ();
return ptr;
}
@@ -46,10 +48,11 @@ guestfs_int_safe_malloc (guestfs_h *g, size_t nbytes)
sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for
exactly-SIZE_MAX allocations on such hosts; this avoids a test and
branch when S is known to be 1. */
-# define xalloc_oversized(n, s) \
+#define xalloc_oversized(n, s) \
((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
-/* Technically we should add an autoconf test for this, testing for the desired
+/* Technically we should add an autoconf test for this, testing for the
+ desired
functionality, like what's done in gnulib, but for now, this is fine. */
#if defined(__GLIBC__)
#define HAVE_GNU_CALLOC (__GLIBC__ >= 2)
@@ -68,8 +71,8 @@ guestfs_int_safe_calloc (guestfs_h *g, size_t n, size_t s)
proper overflow checks. But omit overflow and size-zero tests if
HAVE_GNU_CALLOC, since GNU calloc catches overflow and never
returns NULL if successful. */
- if ((! HAVE_GNU_CALLOC && xalloc_oversized (n, s))
- || (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0)))
+ if ((!HAVE_GNU_CALLOC && xalloc_oversized (n, s)) ||
+ (!(p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0)))
g->abort_cb ();
return p;
}
@@ -78,7 +81,8 @@ void *
guestfs_int_safe_realloc (guestfs_h *g, void *ptr, size_t nbytes)
{
void *p = realloc (ptr, nbytes);
- if (nbytes > 0 && !p) g->abort_cb ();
+ if (nbytes > 0 && !p)
+ g->abort_cb ();
return p;
}
@@ -86,7 +90,8 @@ char *
guestfs_int_safe_strdup (guestfs_h *g, const char *str)
{
char *s = strdup (str);
- if (!s) g->abort_cb ();
+ if (!s)
+ g->abort_cb ();
return s;
}
@@ -94,7 +99,8 @@ char *
guestfs_int_safe_strndup (guestfs_h *g, const char *str, size_t n)
{
char *s = strndup (str, n);
- if (!s) g->abort_cb ();
+ if (!s)
+ g->abort_cb ();
return s;
}
@@ -102,7 +108,8 @@ void *
guestfs_int_safe_memdup (guestfs_h *g, const void *ptr, size_t size)
{
void *p = malloc (size);
- if (!p) g->abort_cb ();
+ if (!p)
+ g->abort_cb ();
memcpy (p, ptr, size);
return p;
}
diff --git a/src/appliance.c b/src/appliance.c
index 864761f..3cf112c 100644
--- a/src/appliance.c
+++ b/src/appliance.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -37,15 +38,28 @@
static const char *kernel_name = "vmlinuz." host_cpu;
static const char *initrd_name = "initramfs." host_cpu ".img";
-static int build_appliance (guestfs_h *g, char **kernel, char **initrd, char
**appliance);
-static int find_path (guestfs_h *g, int (*pred) (guestfs_h *g, const char *pelem, void
*data), void *data, char **pelem);
-static int dir_contains_file (guestfs_h *g, const char *dir, const char *file);
+static int build_appliance (guestfs_h *g, char **kernel, char **initrd,
+ char **appliance);
+static int find_path (guestfs_h *g,
+ int (*pred) (guestfs_h *g, const char *pelem,
+ void *data),
+ void *data, char **pelem);
+static int dir_contains_file (guestfs_h *g, const char *dir,
+ const char *file);
static int dir_contains_files (guestfs_h *g, const char *dir, ...);
-static int contains_old_style_appliance (guestfs_h *g, const char *path, void *data);
-static int contains_fixed_appliance (guestfs_h *g, const char *path, void *data);
-static int contains_supermin_appliance (guestfs_h *g, const char *path, void *data);
-static int build_supermin_appliance (guestfs_h *g, const char *supermin_path, uid_t uid,
char **kernel, char **initrd, char **appliance);
-static int run_supermin_build (guestfs_h *g, const char *lockfile, const char
*appliancedir, const char *supermin_path);
+static int contains_old_style_appliance (guestfs_h *g, const char *path,
+ void *data);
+static int contains_fixed_appliance (guestfs_h *g, const char *path,
+ void *data);
+static int contains_supermin_appliance (guestfs_h *g, const char *path,
+ void *data);
+static int build_supermin_appliance (guestfs_h *g,
+ const char *supermin_path, uid_t uid,
+ char **kernel, char **initrd,
+ char **appliance);
+static int run_supermin_build (guestfs_h *g, const char *lockfile,
+ const char *appliancedir,
+ const char *supermin_path);
/* Locate or build the appliance.
*
@@ -91,10 +105,8 @@ static int run_supermin_build (guestfs_h *g, const char *lockfile,
const char *a
* subdirectory.
*/
int
-guestfs_int_build_appliance (guestfs_h *g,
- char **kernel_rtn,
- char **initrd_rtn,
- char **appliance_rtn)
+guestfs_int_build_appliance (guestfs_h *g, char **kernel_rtn,
+ char **initrd_rtn, char **appliance_rtn)
{
char *kernel = NULL, *initrd = NULL, *appliance = NULL;
@@ -111,9 +123,7 @@ guestfs_int_build_appliance (guestfs_h *g,
}
static int
-build_appliance (guestfs_h *g,
- char **kernel,
- char **initrd,
+build_appliance (guestfs_h *g, char **kernel, char **initrd,
char **appliance)
{
int r;
@@ -128,8 +138,8 @@ build_appliance (guestfs_h *g,
if (r == 1)
/* Step (2): build supermin appliance. */
- return build_supermin_appliance (g, supermin_path, uid,
- kernel, initrd, appliance);
+ return build_supermin_appliance (g, supermin_path, uid, kernel, initrd,
+ appliance);
/* Step (3). */
r = find_path (g, contains_fixed_appliance, NULL, &path);
@@ -162,7 +172,8 @@ build_appliance (guestfs_h *g,
return 0;
}
- error (g, _("cannot find any suitable libguestfs supermin, fixed or old-style
appliance on LIBGUESTFS_PATH (search path: %s)"),
+ error (g, _("cannot find any suitable libguestfs supermin, fixed or "
+ "old-style appliance on LIBGUESTFS_PATH (search path: %s)"),
g->path);
return -1;
}
@@ -176,9 +187,8 @@ contains_old_style_appliance (guestfs_h *g, const char *path, void
*data)
static int
contains_fixed_appliance (guestfs_h *g, const char *path, void *data)
{
- return dir_contains_files (g, path,
- "README.fixed",
- "kernel", "initrd", "root",
NULL);
+ return dir_contains_files (g, path, "README.fixed", "kernel",
"initrd",
+ "root", NULL);
}
static int
@@ -194,17 +204,16 @@ contains_supermin_appliance (guestfs_h *g, const char *path, void
*data)
* -1 = error (aborts launch)
*/
static int
-build_supermin_appliance (guestfs_h *g,
- const char *supermin_path,
- uid_t uid,
- char **kernel, char **initrd,
+build_supermin_appliance (guestfs_h *g, const char *supermin_path,
+ uid_t uid, char **kernel, char **initrd,
char **appliance)
{
CLEANUP_FREE char *tmpdir = guestfs_get_cachedir (g);
- CLEANUP_FREE char *cachedir = NULL, *lockfile = NULL, *appliancedir = NULL;
+ CLEANUP_FREE char *cachedir = NULL, *lockfile = NULL,
+ *appliancedir = NULL;
struct stat statbuf;
- cachedir = safe_asprintf (g, "%s/.guestfs-%ju", tmpdir, (uintmax_t) uid);
+ cachedir = safe_asprintf (g, "%s/.guestfs-%ju", tmpdir, (uintmax_t)uid);
lockfile = safe_asprintf (g, "%s/lock", cachedir);
appliancedir = safe_asprintf (g, "%s/appliance.d", cachedir);
@@ -218,21 +227,23 @@ build_supermin_appliance (guestfs_h *g,
return 0;
if (statbuf.st_uid != uid) {
error (g, _("security: cached appliance %s is not owned by UID %ju"),
- cachedir, (uintmax_t) uid);
+ cachedir, (uintmax_t)uid);
return -1;
}
if (!S_ISDIR (statbuf.st_mode)) {
- error (g, _("security: cached appliance %s is not a directory (mode %o)"),
+ error (g,
+ _("security: cached appliance %s is not a directory (mode %o)"),
cachedir, statbuf.st_mode);
return -1;
}
if ((statbuf.st_mode & 0022) != 0) {
- error (g, _("security: cached appliance %s is writable by group or other (mode
%o)"),
+ error (g, _("security: cached appliance %s is writable by group or "
+ "other (mode %o)"),
cachedir, statbuf.st_mode);
return -1;
}
- (void) utimes (cachedir, NULL);
+ (void)utimes (cachedir, NULL);
debug (g, "begin building supermin appliance");
/* Build the appliance if it needs to be built. */
@@ -249,8 +260,8 @@ build_supermin_appliance (guestfs_h *g,
*appliance = safe_asprintf (g, "%s/root", appliancedir);
/* Touch the files so they don't get deleted (as they are in /var/tmp). */
- (void) utimes (*kernel, NULL);
- (void) utimes (*initrd, NULL);
+ (void)utimes (*kernel, NULL);
+ (void)utimes (*initrd, NULL);
/* Checking backend != "uml" is a big hack. UML encodes the mtime
* of the original backing file (in this case, the appliance) in the
@@ -265,7 +276,7 @@ build_supermin_appliance (guestfs_h *g,
* XXX
*/
if (STRNEQ (g->backend, "uml"))
- (void) utimes (*appliance, NULL);
+ (void)utimes (*appliance, NULL);
return 0;
}
@@ -274,14 +285,12 @@ build_supermin_appliance (guestfs_h *g,
* appliance.
*/
static int
-run_supermin_build (guestfs_h *g,
- const char *lockfile,
- const char *appliancedir,
- const char *supermin_path)
+run_supermin_build (guestfs_h *g, const char *lockfile,
+ const char *appliancedir, const char *supermin_path)
{
CLEANUP_CMD_CLOSE struct command *cmd = guestfs_int_new_command (g);
int r;
-#if 0 /* not supported in supermin 5 yet XXX */
+#if 0 /* not supported in supermin 5 yet XXX */
uid_t uid = getuid ();
uid_t euid = geteuid ();
gid_t gid = getgid ();
@@ -339,8 +348,7 @@ run_supermin_build (guestfs_h *g,
static int
find_path (guestfs_h *g,
int (*pred) (guestfs_h *g, const char *pelem, void *data),
- void *data,
- char **pelem_ret)
+ void *data, char **pelem_ret)
{
size_t len;
int r;
@@ -365,7 +373,7 @@ find_path (guestfs_h *g,
return -1;
}
- if (r != 0) /* predicate matched */
+ if (r != 0) /* predicate matched */
return 1;
free (*pelem_ret);
@@ -435,10 +443,11 @@ guestfs_int_get_uefi (guestfs_h *g, char **code, char **vars)
for (i = 0; guestfs_int_aavmf_firmware[i] != NULL; i += 2) {
const char *codefile = guestfs_int_aavmf_firmware[i];
- const char *varsfile = guestfs_int_aavmf_firmware[i+1];
+ const char *varsfile = guestfs_int_aavmf_firmware[i + 1];
if (access (codefile, R_OK) == 0 && access (varsfile, R_OK) == 0) {
- CLEANUP_CMD_CLOSE struct command *copycmd = guestfs_int_new_command (g);
+ CLEANUP_CMD_CLOSE struct command *copycmd =
+ guestfs_int_new_command (g);
char *varst;
int r;
diff --git a/src/available.c b/src/available.c
index ae0bd84..13bfc85 100644
--- a/src/available.c
+++ b/src/available.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -43,11 +44,11 @@ find_or_cache_feature (guestfs_h *g, const char *group)
res = guestfs_internal_feature_available (g, group);
if (res < 0)
- return 0; /* internal_feature_available sent an error. */
+ return 0; /* internal_feature_available sent an error. */
g->features =
- safe_realloc (g, g->features,
- (g->nr_features+1) * sizeof (struct cached_feature));
+ safe_realloc (g, g->features,
+ (g->nr_features + 1) * sizeof (struct cached_feature));
f = &g->features[g->nr_features];
++g->nr_features;
f->group = safe_strdup (g, group);
diff --git a/src/canonical-name.c b/src/canonical-name.c
index 8b5f493..a6b679b 100644
--- a/src/canonical-name.c
+++ b/src/canonical-name.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -34,19 +35,17 @@ guestfs_impl_canonical_device_name (guestfs_h *g, const char *device)
/* /dev/hd etc. */
if (STRPREFIX (device, "/dev/") &&
- strchr (device+5, '/') == NULL && /* not an LV name */
- ((len = strcspn (device+5, "d")) > 0 && len <= 2)) {
- ret = safe_asprintf (g, "/dev/sd%s", &device[5+len+1]);
- }
- else if (STRPREFIX (device, "/dev/mapper/") ||
- STRPREFIX (device, "/dev/dm-")) {
+ strchr (device + 5, '/') == NULL && /* not an LV name */
+ ((len = strcspn (device + 5, "d")) > 0 && len <= 2)) {
+ ret = safe_asprintf (g, "/dev/sd%s", &device[5 + len + 1]);
+ } else if (STRPREFIX (device, "/dev/mapper/") ||
+ STRPREFIX (device, "/dev/dm-")) {
/* XXX hide errors */
ret = guestfs_lvm_canonical_lv_name (g, device);
if (ret == NULL)
ret = safe_strdup (g, device);
- }
- else
+ } else
ret = safe_strdup (g, device);
- return ret; /* caller frees */
+ return ret; /* caller frees */
}
diff --git a/src/cleanup.c b/src/cleanup.c
index 71c26ec..423c28b 100644
--- a/src/cleanup.c
+++ b/src/cleanup.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -40,7 +41,7 @@
void
guestfs_int_cleanup_free (void *ptr)
{
- free (* (void **) ptr);
+ free (*(void **)ptr);
}
void
@@ -52,7 +53,7 @@ guestfs_int_cleanup_free_string_list (char ***ptr)
void
guestfs_int_cleanup_hash_free (void *ptr)
{
- Hash_table *h = * (Hash_table **) ptr;
+ Hash_table *h = *(Hash_table **)ptr;
if (h)
hash_free (h);
@@ -72,7 +73,7 @@ guestfs_int_cleanup_unlink_free (char **ptr)
void
guestfs_int_cleanup_xmlBufferFree (void *ptr)
{
- xmlBufferPtr xb = * (xmlBufferPtr *) ptr;
+ xmlBufferPtr xb = *(xmlBufferPtr *)ptr;
if (xb)
xmlBufferFree (xb);
@@ -81,7 +82,7 @@ guestfs_int_cleanup_xmlBufferFree (void *ptr)
void
guestfs_int_cleanup_xmlFreeDoc (void *ptr)
{
- xmlDocPtr doc = * (xmlDocPtr *) ptr;
+ xmlDocPtr doc = *(xmlDocPtr *)ptr;
if (doc)
xmlFreeDoc (doc);
@@ -90,7 +91,7 @@ guestfs_int_cleanup_xmlFreeDoc (void *ptr)
void
guestfs_int_cleanup_xmlFreeURI (void *ptr)
{
- xmlURIPtr uri = * (xmlURIPtr *) ptr;
+ xmlURIPtr uri = *(xmlURIPtr *)ptr;
if (uri)
xmlFreeURI (uri);
@@ -99,7 +100,7 @@ guestfs_int_cleanup_xmlFreeURI (void *ptr)
void
guestfs_int_cleanup_xmlFreeTextWriter (void *ptr)
{
- xmlTextWriterPtr xo = * (xmlTextWriterPtr *) ptr;
+ xmlTextWriterPtr xo = *(xmlTextWriterPtr *)ptr;
if (xo)
xmlFreeTextWriter (xo);
@@ -108,7 +109,7 @@ guestfs_int_cleanup_xmlFreeTextWriter (void *ptr)
void
guestfs_int_cleanup_xmlXPathFreeContext (void *ptr)
{
- xmlXPathContextPtr ctx = * (xmlXPathContextPtr *) ptr;
+ xmlXPathContextPtr ctx = *(xmlXPathContextPtr *)ptr;
if (ctx)
xmlXPathFreeContext (ctx);
@@ -117,7 +118,7 @@ guestfs_int_cleanup_xmlXPathFreeContext (void *ptr)
void
guestfs_int_cleanup_xmlXPathFreeObject (void *ptr)
{
- xmlXPathObjectPtr obj = * (xmlXPathObjectPtr *) ptr;
+ xmlXPathObjectPtr obj = *(xmlXPathObjectPtr *)ptr;
if (obj)
xmlXPathFreeObject (obj);
@@ -126,7 +127,7 @@ guestfs_int_cleanup_xmlXPathFreeObject (void *ptr)
void
guestfs_int_cleanup_fclose (void *ptr)
{
- FILE *f = * (FILE **) ptr;
+ FILE *f = *(FILE **)ptr;
if (f)
fclose (f);
@@ -135,7 +136,7 @@ guestfs_int_cleanup_fclose (void *ptr)
void
guestfs_int_cleanup_pclose (void *ptr)
{
- FILE *f = * (FILE **) ptr;
+ FILE *f = *(FILE **)ptr;
if (f)
pclose (f);
diff --git a/src/command.c b/src/command.c
index 866847d..afcb346 100644
--- a/src/command.c
+++ b/src/command.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
/* Wrapper for running external command, loosely based on libvirt's
@@ -95,20 +96,25 @@ enum command_style {
struct command;
-static void add_line_buffer (struct command *cmd, const char *buf, size_t len);
+static void add_line_buffer (struct command *cmd, const char *buf,
+ size_t len);
static void close_line_buffer (struct command *cmd);
-static void add_unbuffered (struct command *cmd, const char *buf, size_t len);
-static void add_whole_buffer (struct command *cmd, const char *buf, size_t len);
+static void add_unbuffered (struct command *cmd, const char *buf,
+ size_t len);
+static void add_whole_buffer (struct command *cmd, const char *buf,
+ size_t len);
static void close_whole_buffer (struct command *cmd);
-struct buffering {
+struct buffering
+{
char *buffer;
size_t len;
void (*add_data) (struct command *cmd, const char *buf, size_t len);
void (*close_data) (struct command *cmd);
};
-struct child_rlimits {
+struct child_rlimits
+{
struct child_rlimits *next;
int resource;
long limit;
@@ -119,11 +125,13 @@ struct command
guestfs_h *g;
enum command_style style;
- union {
+ union
+ {
/* COMMAND_STYLE_EXECV */
struct stringsbuf argv;
/* COMMAND_STYLE_SYSTEM */
- struct {
+ struct
+ {
char *str;
size_t len, alloc;
} string;
@@ -226,7 +234,8 @@ add_string (struct command *cmd, const char *str, size_t len)
cmd->string.alloc = 256;
else
cmd->string.alloc += MAX (cmd->string.alloc, len);
- cmd->string.str = safe_realloc (cmd->g, cmd->string.str,
cmd->string.alloc);
+ cmd->string.str =
+ safe_realloc (cmd->g, cmd->string.str, cmd->string.alloc);
}
memcpy (&cmd->string.str[cmd->string.len], str, len);
@@ -249,10 +258,7 @@ guestfs_int_cmd_add_string_quoted (struct command *cmd, const char
*str)
add_string (cmd, "\"", 1);
for (; *str; str++) {
- if (*str == '$' ||
- *str == '`' ||
- *str == '\\' ||
- *str == '"')
+ if (*str == '$' || *str == '`' || *str == '\\' || *str ==
'"')
add_string (cmd, "\\", 1);
add_string (cmd, str, 1);
}
@@ -289,16 +295,13 @@ guestfs_int_cmd_set_stdout_callback (struct command *cmd,
if ((flags & 3) == CMD_STDOUT_FLAG_LINE_BUFFER) {
cmd->outbuf.add_data = add_line_buffer;
cmd->outbuf.close_data = close_line_buffer;
- }
- else if ((flags & 3) == CMD_STDOUT_FLAG_UNBUFFERED) {
+ } else if ((flags & 3) == CMD_STDOUT_FLAG_UNBUFFERED) {
cmd->outbuf.add_data = add_unbuffered;
cmd->outbuf.close_data = NULL;
- }
- else if ((flags & 3) == CMD_STDOUT_FLAG_WHOLE_BUFFER) {
+ } else if ((flags & 3) == CMD_STDOUT_FLAG_WHOLE_BUFFER) {
cmd->outbuf.add_data = add_whole_buffer;
cmd->outbuf.close_data = close_whole_buffer;
- }
- else
+ } else
abort ();
}
@@ -348,7 +351,8 @@ guestfs_int_cmd_set_child_callback (struct command *cmd,
* consume lots of space or time.
*/
void
-guestfs_int_cmd_set_child_rlimit (struct command *cmd, int resource, long limit)
+guestfs_int_cmd_set_child_rlimit (struct command *cmd, int resource,
+ long limit)
{
struct child_rlimits *p;
@@ -359,7 +363,6 @@ guestfs_int_cmd_set_child_rlimit (struct command *cmd, int resource,
long limit)
cmd->child_rlimits = p;
}
-
/* Finish off the command by either NULL-terminating the argv array or
* adding a terminating \0 to the string, or die with an internal
* error if no command has been added.
@@ -389,15 +392,14 @@ debug_command (struct command *cmd)
switch (cmd->style) {
case COMMAND_STYLE_EXECV:
debug (cmd->g, "command: run: %s", cmd->argv.argv[0]);
- last = cmd->argv.size-1; /* omit final NULL pointer */
+ last = cmd->argv.size - 1; /* omit final NULL pointer */
for (i = 1; i < last; ++i) {
- if (i < last-1 &&
- cmd->argv.argv[i][0] == '-' && cmd->argv.argv[i+1][0] !=
'-') {
- debug (cmd->g, "command: run: \\ %s %s",
- cmd->argv.argv[i], cmd->argv.argv[i+1]);
+ if (i < last - 1 && cmd->argv.argv[i][0] == '-' &&
+ cmd->argv.argv[i + 1][0] != '-') {
+ debug (cmd->g, "command: run: \\ %s %s", cmd->argv.argv[i],
+ cmd->argv.argv[i + 1]);
i++;
- }
- else
+ } else
debug (cmd->g, "command: run: \\ %s", cmd->argv.argv[i]);
}
break;
@@ -411,7 +413,7 @@ debug_command (struct command *cmd)
}
}
-static void run_child (struct command *cmd) __attribute__((noreturn));
+static void run_child (struct command *cmd) __attribute__ ((noreturn));
static int
run_command (struct command *cmd)
@@ -419,7 +421,8 @@ run_command (struct command *cmd)
int errorfd[2] = { -1, -1 };
int outfd[2] = { -1, -1 };
- /* Set up a pipe to capture command output and send it to the error log. */
+ /* Set up a pipe to capture command output and send it to the error log.
+ */
if (cmd->capture_errors) {
if (pipe2 (errorfd, O_CLOEXEC) == -1) {
perrorf (cmd->g, "pipe2");
@@ -479,9 +482,9 @@ run_command (struct command *cmd)
dup2 (1, 2);
run_child (cmd);
- /*NOTREACHED*/
+/*NOTREACHED*/
- error:
+error:
if (errorfd[0] >= 0)
close (errorfd[0]);
if (errorfd[1] >= 0)
@@ -525,7 +528,7 @@ run_child (struct command *cmd)
if (max_fd == -1)
max_fd = 1024;
if (max_fd > 65536)
- max_fd = 65536; /* bound the amount of work we do here */
+ max_fd = 65536; /* bound the amount of work we do here */
for (fd = 3; fd < max_fd; ++fd)
close (fd);
}
@@ -533,7 +536,8 @@ run_child (struct command *cmd)
/* Clean up the environment. */
setenv ("LC_ALL", "C", 1);
- /* Set the umask for all subcommands to something sensible (RHBZ#610880). */
+ /* Set the umask for all subcommands to something sensible (RHBZ#610880).
+ */
umask (022);
if (cmd->child_callback) {
@@ -542,8 +546,7 @@ run_child (struct command *cmd)
}
#ifdef HAVE_SETRLIMIT
- for (child_rlimit = cmd->child_rlimits;
- child_rlimit != NULL;
+ for (child_rlimit = cmd->child_rlimits; child_rlimit != NULL;
child_rlimit = child_rlimit->next) {
rlimit.rlim_cur = rlimit.rlim_max = child_rlimit->limit;
if (setrlimit (child_rlimit->resource, &rlimit) == -1) {
@@ -585,9 +588,8 @@ run_child (struct command *cmd)
if (WIFEXITED (r))
_exit (WEXITSTATUS (r));
fprintf (stderr, "%s\n",
- guestfs_int_exit_status_to_string (r, cmd->string.str,
- status_string,
- sizeof status_string));
+ guestfs_int_exit_status_to_string (
+ r, cmd->string.str, status_string, sizeof status_string));
_exit (EXIT_FAILURE);
case COMMAND_STYLE_NOT_SELECTED:
@@ -626,7 +628,7 @@ loop (struct command *cmd)
while (nr_fds > 0) {
rset2 = rset;
- r = select (maxfd+1, &rset2, NULL, NULL, NULL);
+ r = select (maxfd + 1, &rset2, NULL, NULL, NULL);
if (r == -1) {
if (errno == EINTR || errno == EAGAIN)
continue;
@@ -646,8 +648,7 @@ loop (struct command *cmd)
FD_CLR (cmd->errorfd, &rset);
cmd->errorfd = -1;
nr_fds--;
- }
- else if (n == -1) {
+ } else if (n == -1) {
perrorf (cmd->g, "read: errorfd");
close (cmd->errorfd);
FD_CLR (cmd->errorfd, &rset);
@@ -664,8 +665,7 @@ loop (struct command *cmd)
if (n > 0) {
if (cmd->outbuf.add_data)
cmd->outbuf.add_data (cmd, buf, n);
- }
- else if (n == 0) {
+ } else if (n == 0) {
if (cmd->outbuf.close_data)
cmd->outbuf.close_data (cmd);
if (close (cmd->outfd) == -1)
@@ -673,8 +673,7 @@ loop (struct command *cmd)
FD_CLR (cmd->outfd, &rset);
cmd->outfd = -1;
nr_fds--;
- }
- else if (n == -1) {
+ } else if (n == -1) {
perrorf (cmd->g, "read: outfd");
close (cmd->outfd);
FD_CLR (cmd->outfd, &rset);
@@ -754,9 +753,12 @@ guestfs_int_cmd_pipe_run (struct command *cmd, const char *mode)
assert (!cmd->stdout_callback);
assert (!cmd->stderr_to_stdout);
- if (STREQ (mode, "r")) r_mode = 1;
- else if (STREQ (mode, "w")) r_mode = 0;
- else abort ();
+ if (STREQ (mode, "r"))
+ r_mode = 1;
+ else if (STREQ (mode, "w"))
+ r_mode = 0;
+ else
+ abort ();
if (pipe2 (fd, O_CLOEXEC) == -1) {
perrorf (cmd->g, "pipe2");
@@ -770,10 +772,10 @@ guestfs_int_cmd_pipe_run (struct command *cmd, const char *mode)
if (guestfs_int_lazy_make_tmpdir (cmd->g) == -1)
goto error;
- cmd->error_file =
- safe_asprintf (cmd->g, "%s/cmderr.%d", cmd->g->tmpdir,
++cmd->g->unique);
+ cmd->error_file = safe_asprintf (cmd->g, "%s/cmderr.%d",
cmd->g->tmpdir,
+ ++cmd->g->unique);
errfd = open (cmd->error_file,
- O_WRONLY|O_CREAT|O_NOCTTY|O_TRUNC|O_CLOEXEC, 0600);
+ O_WRONLY | O_CREAT | O_NOCTTY | O_TRUNC | O_CLOEXEC, 0600);
if (errfd == -1) {
perrorf (cmd->g, "open: %s", cmd->error_file);
goto error;
@@ -793,8 +795,7 @@ guestfs_int_cmd_pipe_run (struct command *cmd, const char *mode)
if (r_mode) {
close (fd[1]);
ret = fd[0];
- }
- else {
+ } else {
close (fd[0]);
ret = fd[1];
}
@@ -810,17 +811,16 @@ guestfs_int_cmd_pipe_run (struct command *cmd, const char *mode)
close (fd[0]);
dup2 (fd[1], 1);
close (fd[1]);
- }
- else {
+ } else {
close (fd[1]);
dup2 (fd[0], 0);
close (fd[0]);
}
run_child (cmd);
- /*NOTREACHED*/
+/*NOTREACHED*/
- error:
+error:
if (errfd >= 0)
close (errfd);
if (fd[0] >= 0)
@@ -853,13 +853,14 @@ guestfs_int_cmd_get_pipe_errors (struct command *cmd)
assert (cmd->error_file != NULL);
- if (guestfs_int_read_whole_file (cmd->g, cmd->error_file, &ret, NULL) == -1)
+ if (guestfs_int_read_whole_file (cmd->g, cmd->error_file, &ret, NULL) ==
+ -1)
return NULL;
/* If the file ends with \n characters, trim them. */
len = strlen (ret);
- while (len > 0 && ret[len-1] == '\n') {
- ret[len-1] = '\0';
+ while (len > 0 && ret[len - 1] == '\n') {
+ ret[len - 1] = '\0';
len--;
}
@@ -930,15 +931,13 @@ process_line_buffer (struct command *cmd, int closed)
while (cmd->outbuf.len > 0) {
/* Length of the next line. */
p = strchr (cmd->outbuf.buffer, '\n');
- if (p != NULL) { /* Got a whole line. */
+ if (p != NULL) { /* Got a whole line. */
len = p - cmd->outbuf.buffer;
newlen = cmd->outbuf.len - len - 1;
- }
- else if (closed) { /* Consume rest of input even if no \n found. */
+ } else if (closed) { /* Consume rest of input even if no \n found. */
len = cmd->outbuf.len;
newlen = 0;
- }
- else /* Need to wait for more input. */
+ } else /* Need to wait for more input. */
break;
/* Call the callback with the next line. */
@@ -995,13 +994,14 @@ add_whole_buffer (struct command *cmd, const char *buf, size_t len)
/* Append the new content to the end of the current buffer. */
oldlen = cmd->outbuf.len;
cmd->outbuf.len += len;
- cmd->outbuf.buffer = safe_realloc (g, cmd->outbuf.buffer, cmd->outbuf.len);
+ cmd->outbuf.buffer =
+ safe_realloc (g, cmd->outbuf.buffer, cmd->outbuf.len);
memcpy (cmd->outbuf.buffer + oldlen, buf, len);
}
static void
close_whole_buffer (struct command *cmd)
{
- cmd->stdout_callback (cmd->g, cmd->stdout_data,
- cmd->outbuf.buffer, cmd->outbuf.len);
+ cmd->stdout_callback (cmd->g, cmd->stdout_data, cmd->outbuf.buffer,
+ cmd->outbuf.len);
}
diff --git a/src/conn-socket.c b/src/conn-socket.c
index 633946c..57e6358 100644
--- a/src/conn-socket.c
+++ b/src/conn-socket.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
/* Connection module for regular POSIX sockets. */
@@ -28,7 +29,7 @@
#include <errno.h>
#include <poll.h>
#include <sys/stat.h>
-#include <sys/socket.h> /* accept4 */
+#include <sys/socket.h> /* accept4 */
#include <sys/types.h>
#include <assert.h>
#include <libintl.h>
@@ -38,11 +39,12 @@
#include "guestfs.h"
#include "guestfs-internal.h"
-struct connection_socket {
+struct connection_socket
+{
const struct connection_ops *ops;
- int console_sock; /* Appliance console (for debug info). */
- int daemon_sock; /* Daemon communications socket. */
+ int console_sock; /* Appliance console (for debug info). */
+ int daemon_sock; /* Daemon communications socket. */
/* Socket for accepting a connection from the daemon. Only used
* before and during accept_connection.
@@ -50,12 +52,13 @@ struct connection_socket {
int daemon_accept_sock;
};
-static int handle_log_message (guestfs_h *g, struct connection_socket *conn);
+static int handle_log_message (guestfs_h *g,
+ struct connection_socket *conn);
static int
accept_connection (guestfs_h *g, struct connection *connv)
{
- struct connection_socket *conn = (struct connection_socket *) connv;
+ struct connection_socket *conn = (struct connection_socket *)connv;
int sock = -1;
time_t start_t, now_t;
int timeout_ms;
@@ -94,7 +97,7 @@ accept_connection (guestfs_h *g, struct connection *connv)
return -1;
}
- if (r == 0) { /* timeout reached */
+ if (r == 0) { /* timeout reached */
guestfs_int_launch_timeout (g);
return -1;
}
@@ -138,7 +141,7 @@ static ssize_t
read_data (guestfs_h *g, struct connection *connv, void *bufv, size_t len)
{
char *buf = bufv;
- struct connection_socket *conn = (struct connection_socket *) connv;
+ struct connection_socket *conn = (struct connection_socket *)connv;
size_t original_len = len;
if (conn->daemon_sock == -1) {
@@ -212,7 +215,7 @@ read_data (guestfs_h *g, struct connection *connv, void *bufv, size_t
len)
static int
can_read_data (guestfs_h *g, struct connection *connv)
{
- struct connection_socket *conn = (struct connection_socket *) connv;
+ struct connection_socket *conn = (struct connection_socket *)connv;
struct pollfd fd;
int r;
@@ -225,7 +228,7 @@ can_read_data (guestfs_h *g, struct connection *connv)
fd.events = POLLIN;
fd.revents = 0;
- again:
+again:
r = poll (&fd, 1, 0);
if (r == -1) {
if (errno == EINTR || errno == EAGAIN)
@@ -238,11 +241,11 @@ can_read_data (guestfs_h *g, struct connection *connv)
}
static ssize_t
-write_data (guestfs_h *g, struct connection *connv,
- const void *bufv, size_t len)
+write_data (guestfs_h *g, struct connection *connv, const void *bufv,
+ size_t len)
{
const char *buf = bufv;
- struct connection_socket *conn = (struct connection_socket *) connv;
+ struct connection_socket *conn = (struct connection_socket *)connv;
size_t original_len = len;
if (conn->daemon_sock == -1) {
@@ -311,8 +314,7 @@ write_data (guestfs_h *g, struct connection *connv,
* -1 = error
*/
static int
-handle_log_message (guestfs_h *g,
- struct connection_socket *conn)
+handle_log_message (guestfs_h *g, struct connection_socket *conn)
{
CLEANUP_FREE char *buf = safe_malloc (g, BUFSIZ);
ssize_t n;
@@ -361,8 +363,8 @@ handle_log_message (guestfs_h *g,
* We can't even be sure that console_sock is a socket or that
* it's writable.
*/
- ignore_value (write (conn->console_sock, dsr_reply,
- sizeof dsr_reply - 1));
+ ignore_value (
+ write (conn->console_sock, dsr_reply, sizeof dsr_reply - 1));
/* Additionally, because of a bug in sgabios, it will still pause
* unless you write at least 14 bytes, so we have to pad the
* reply. We can't pad with NULs since sgabios's input routine
@@ -382,7 +384,7 @@ handle_log_message (guestfs_h *g,
static void
free_conn_socket (guestfs_h *g, struct connection *connv)
{
- struct connection_socket *conn = (struct connection_socket *) connv;
+ struct connection_socket *conn = (struct connection_socket *)connv;
if (conn->console_sock >= 0)
close (conn->console_sock);
@@ -412,9 +414,8 @@ static struct connection_ops ops = {
* free_connection.
*/
struct connection *
-guestfs_int_new_conn_socket_listening (guestfs_h *g,
- int daemon_accept_sock,
- int console_sock)
+guestfs_int_new_conn_socket_listening (guestfs_h *g, int daemon_accept_sock,
+ int console_sock)
{
struct connection_socket *conn;
@@ -442,7 +443,7 @@ guestfs_int_new_conn_socket_listening (guestfs_h *g,
conn->daemon_sock = -1;
conn->daemon_accept_sock = daemon_accept_sock;
- return (struct connection *) conn;
+ return (struct connection *)conn;
}
/* Create a new socket connection, connected.
@@ -451,9 +452,8 @@ guestfs_int_new_conn_socket_listening (guestfs_h *g,
* and promises not to call accept_connection.
*/
struct connection *
-guestfs_int_new_conn_socket_connected (guestfs_h *g,
- int daemon_sock,
- int console_sock)
+guestfs_int_new_conn_socket_connected (guestfs_h *g, int daemon_sock,
+ int console_sock)
{
struct connection_socket *conn;
@@ -481,5 +481,5 @@ guestfs_int_new_conn_socket_connected (guestfs_h *g,
conn->daemon_sock = daemon_sock;
conn->daemon_accept_sock = -1;
- return (struct connection *) conn;
+ return (struct connection *)conn;
}
diff --git a/src/copy-in-out.c b/src/copy-in-out.c
index 50831be..8a08be2 100644
--- a/src/copy-in-out.c
+++ b/src/copy-in-out.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -32,11 +33,13 @@
#include "guestfs-internal.h"
#include "guestfs-internal-actions.h"
-static int split_path (guestfs_h *g, char *buf, size_t buf_size, const char *path, const
char **dirname, const char **basename);
+static int split_path (guestfs_h *g, char *buf, size_t buf_size,
+ const char *path, const char **dirname,
+ const char **basename);
int
-guestfs_impl_copy_in (guestfs_h *g,
- const char *localpath, const char *remotedir)
+guestfs_impl_copy_in (guestfs_h *g, const char *localpath,
+ const char *remotedir)
{
CLEANUP_CMD_CLOSE struct command *cmd = guestfs_int_new_command (g);
int fd;
@@ -48,7 +51,8 @@ guestfs_impl_copy_in (guestfs_h *g,
struct stat statbuf;
if (stat (localpath, &statbuf) == -1) {
- error (g, _("source '%s' does not exist (or cannot be read)"),
localpath);
+ error (g, _("source '%s' does not exist (or cannot be read)"),
+ localpath);
return -1;
}
@@ -102,7 +106,8 @@ guestfs_impl_copy_in (guestfs_h *g,
return 0;
}
-struct copy_out_child_data {
+struct copy_out_child_data
+{
const char *localdir;
const char *basename;
};
@@ -110,7 +115,7 @@ struct copy_out_child_data {
static int
child_setup (guestfs_h *g, void *data)
{
- struct copy_out_child_data d = *(struct copy_out_child_data *) data;
+ struct copy_out_child_data d = *(struct copy_out_child_data *)data;
if (chdir (d.localdir) == -1) {
perror (d.localdir);
@@ -131,14 +136,13 @@ child_setup (guestfs_h *g, void *data)
}
int
-guestfs_impl_copy_out (guestfs_h *g,
- const char *remotepath, const char *localdir)
+guestfs_impl_copy_out (guestfs_h *g, const char *remotepath,
+ const char *localdir)
{
struct stat statbuf;
int r;
- if (stat (localdir, &statbuf) == -1 ||
- ! (S_ISDIR (statbuf.st_mode))) {
+ if (stat (localdir, &statbuf) == -1 || !(S_ISDIR (statbuf.st_mode))) {
error (g, _("target '%s' is not a directory"), localdir);
return -1;
}
@@ -150,7 +154,7 @@ guestfs_impl_copy_out (guestfs_h *g,
if (r == -1)
return -1;
- if (r == 1) { /* is file */
+ if (r == 1) { /* is file */
CLEANUP_FREE char *filename = NULL;
size_t buf_len = strlen (remotepath) + 1;
CLEANUP_FREE char *buf = safe_malloc (g, buf_len);
@@ -165,7 +169,7 @@ guestfs_impl_copy_out (guestfs_h *g,
}
if (guestfs_download (g, remotepath, filename) == -1)
return -1;
- } else { /* not a regular file */
+ } else { /* not a regular file */
CLEANUP_CMD_CLOSE struct command *cmd = guestfs_int_new_command (g);
struct copy_out_child_data data;
char fdbuf[64];
@@ -237,34 +241,41 @@ guestfs_impl_copy_out (guestfs_h *g,
* (eg. path == "/") then this can return dirname as NULL.
*/
static int
-split_path (guestfs_h *g, char *buf, size_t buf_size,
- const char *path, const char **dirname, const char **basename)
+split_path (guestfs_h *g, char *buf, size_t buf_size, const char *path,
+ const char **dirname, const char **basename)
{
size_t len = strlen (path);
if (len == 0 || len > buf_size - 1) {
- error (g, _("error: argument is zero length or longer than maximum
permitted"));
+ error (g, _("error: argument is zero length or longer than maximum "
+ "permitted"));
return -1;
}
strcpy (buf, path);
- if (len >= 2 && buf[len-1] == '/') {
- buf[len-1] = '\0';
+ if (len >= 2 && buf[len - 1] == '/') {
+ buf[len - 1] = '\0';
len--;
}
char *p = strrchr (buf, '/');
- if (p && p > buf) { /* "foo/bar" */
+ if (p && p > buf) { /* "foo/bar" */
*p = '\0';
p++;
- if (dirname) *dirname = buf;
- if (basename) *basename = p;
- } else if (p && p == buf) { /* "/foo" */
- if (dirname) *dirname = "/";
- if (basename) *basename = buf+1;
+ if (dirname)
+ *dirname = buf;
+ if (basename)
+ *basename = p;
+ } else if (p && p == buf) { /* "/foo" */
+ if (dirname)
+ *dirname = "/";
+ if (basename)
+ *basename = buf + 1;
} else {
- if (dirname) *dirname = NULL;
- if (basename) *basename = buf;
+ if (dirname)
+ *dirname = NULL;
+ if (basename)
+ *basename = buf;
}
return 0;
diff --git a/src/create.c b/src/create.c
index 355e814..929a9f5 100644
--- a/src/create.c
+++ b/src/create.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -40,19 +41,25 @@
#include "guestfs-internal.h"
#include "guestfs-internal-actions.h"
-static int disk_create_raw (guestfs_h *g, const char *filename, int64_t size, const
struct guestfs_disk_create_argv *optargs);
-static int disk_create_qcow2 (guestfs_h *g, const char *filename, int64_t size, const
char *backingfile, const struct guestfs_disk_create_argv *optargs);
+static int disk_create_raw (guestfs_h *g, const char *filename,
+ int64_t size,
+ const struct guestfs_disk_create_argv *optargs);
+static int
+disk_create_qcow2 (guestfs_h *g, const char *filename, int64_t size,
+ const char *backingfile,
+ const struct guestfs_disk_create_argv *optargs);
static char *qemu_escape_param (guestfs_h *g, const char *param);
int
guestfs_impl_disk_create (guestfs_h *g, const char *filename,
- const char *format, int64_t size,
- const struct guestfs_disk_create_argv *optargs)
+ const char *format, int64_t size,
+ const struct guestfs_disk_create_argv *optargs)
{
const char *backingfile;
- backingfile = optargs->bitmask & GUESTFS_DISK_CREATE_BACKINGFILE_BITMASK ?
- optargs->backingfile : NULL;
+ backingfile = optargs->bitmask & GUESTFS_DISK_CREATE_BACKINGFILE_BITMASK
+ ? optargs->backingfile
+ : NULL;
/* Ensure size is valid. */
if (backingfile) {
@@ -78,12 +85,10 @@ guestfs_impl_disk_create (guestfs_h *g, const char *filename,
}
if (disk_create_raw (g, filename, size, optargs) == -1)
return -1;
- }
- else if (STREQ (format, "qcow2")) {
+ } else if (STREQ (format, "qcow2")) {
if (disk_create_qcow2 (g, filename, size, backingfile, optargs) == -1)
return -1;
- }
- else {
+ } else {
/* Be conservative about what formats we support, since we don't
* want to make unlimited promises through the API. We can always
* add more later.
@@ -100,13 +105,13 @@ disk_create_raw_block (guestfs_h *g, const char *filename)
{
int fd;
- fd = open (filename, O_WRONLY|O_NOCTTY|O_CLOEXEC, 0666);
+ fd = open (filename, O_WRONLY | O_NOCTTY | O_CLOEXEC, 0666);
if (fd == -1) {
perrorf (g, _("cannot open block device: %s"), filename);
return -1;
}
- /* Just discard blocks, if possible. However don't try too hard. */
+/* Just discard blocks, if possible. However don't try too hard. */
#if defined(BLKGETSIZE64) && defined(BLKDISCARD)
uint64_t size;
uint64_t range[2];
@@ -171,21 +176,21 @@ disk_create_raw (guestfs_h *g, const char *filename, int64_t size,
return disk_create_raw_block (g, filename);
}
- fd = open (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_TRUNC|O_CLOEXEC, 0666);
+ fd = open (filename, O_WRONLY | O_CREAT | O_NOCTTY | O_TRUNC | O_CLOEXEC,
+ 0666);
if (fd == -1) {
perrorf (g, _("cannot create raw file: %s"), filename);
return -1;
}
- if (!allocated) { /* Sparse file. */
+ if (!allocated) { /* Sparse file. */
if (ftruncate (fd, size) == -1) {
perrorf (g, _("%s: truncate"), filename);
close (fd);
unlink (filename);
return -1;
}
- }
- else { /* Allocated file. */
+ } else { /* Allocated file. */
#ifdef HAVE_POSIX_FALLOCATE
int err;
@@ -198,7 +203,8 @@ disk_create_raw (guestfs_h *g, const char *filename, int64_t size,
return -1;
}
#else
- /* Slow emulation of posix_fallocate on platforms which don't have it. */
+ /* Slow emulation of posix_fallocate on platforms which don't have it.
+ */
char buffer[BUFSIZ];
size_t remaining = size;
size_t n;
@@ -229,7 +235,8 @@ disk_create_raw (guestfs_h *g, const char *filename, int64_t size,
return 0;
}
-/*
http://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2 */
+/*
http://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2
+ */
static int
is_power_of_2 (unsigned v)
{
@@ -265,8 +272,7 @@ disk_create_qcow2 (guestfs_h *g, const char *orig_filename, int64_t
size,
/* Conservative whitelist. This can be extended with other
* valid formats as required.
*/
- if (STRNEQ (backingformat, "raw") &&
- STRNEQ (backingformat, "qcow2") &&
+ if (STRNEQ (backingformat, "raw") && STRNEQ (backingformat,
"qcow2") &&
STRNEQ (backingformat, "vmdk")) {
error (g, _("invalid value for backingformat parameter '%s'"),
backingformat);
@@ -280,7 +286,9 @@ disk_create_qcow2 (guestfs_h *g, const char *orig_filename, int64_t
size,
else if (STREQ (optargs->preallocation, "metadata"))
preallocation = "metadata";
else if (STREQ (optargs->preallocation, "full"))
- /* Ugh:
https://lists.gnu.org/archive/html/qemu-devel/2014-08/msg03863.html */
+ /* Ugh:
+ *
https://lists.gnu.org/archive/html/qemu-devel/2014-08/msg03863.html
+ */
preallocation = "falloc";
else {
error (g, _("invalid value for preallocation parameter '%s'"),
@@ -298,7 +306,7 @@ disk_create_qcow2 (guestfs_h *g, const char *orig_filename, int64_t
size,
if (optargs->bitmask & GUESTFS_DISK_CREATE_CLUSTERSIZE_BITMASK) {
clustersize = optargs->clustersize;
if (clustersize < 512 || clustersize > 2097152 ||
- !is_power_of_2 ((unsigned) clustersize)) {
+ !is_power_of_2 ((unsigned)clustersize)) {
error (g, _("invalid value for clustersize parameter '%d'"),
clustersize);
return -1;
@@ -319,7 +327,8 @@ disk_create_qcow2 (guestfs_h *g, const char *orig_filename, int64_t
size,
if (backingformat)
guestfs_int_add_sprintf (g, &optionsv, "backing_fmt=%s",
backingformat);
if (preallocation)
- guestfs_int_add_sprintf (g, &optionsv, "preallocation=%s",
preallocation);
+ guestfs_int_add_sprintf (g, &optionsv, "preallocation=%s",
+ preallocation);
if (compat)
guestfs_int_add_sprintf (g, &optionsv, "compat=%s", compat);
if (clustersize >= 0)
@@ -327,7 +336,8 @@ disk_create_qcow2 (guestfs_h *g, const char *orig_filename, int64_t
size,
guestfs_int_end_stringsbuf (g, &optionsv);
if (optionsv.size > 1) {
- CLEANUP_FREE char *options = guestfs_int_join_strings (",",
optionsv.argv);
+ CLEANUP_FREE char *options =
+ guestfs_int_join_strings (",", optionsv.argv);
guestfs_int_cmd_add_arg (cmd, "-o");
guestfs_int_cmd_add_arg (cmd, options);
}
@@ -353,7 +363,7 @@ qemu_escape_param (guestfs_h *g, const char *param)
size_t i, len = strlen (param);
char *p, *ret;
- ret = p = safe_malloc (g, len*2 + 1); /* max length of escaped name*/
+ ret = p = safe_malloc (g, len * 2 + 1); /* max length of escaped name*/
for (i = 0; i < len; ++i) {
*p++ = param[i];
if (param[i] == ',')
diff --git a/src/dbdump.c b/src/dbdump.c
index 7c17ce6..f203dd6 100644
--- a/src/dbdump.c
+++ b/src/dbdump.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -33,16 +34,23 @@
#if defined(DB_DUMP)
-static void read_db_dump_line (guestfs_h *g, void *datav, const char *line, size_t len);
-static unsigned char *convert_hex_to_binary (guestfs_h *g, const char *hex, size_t
hexlen, size_t *binlen_rtn);
+static void read_db_dump_line (guestfs_h *g, void *datav, const char *line,
+ size_t len);
+static unsigned char *convert_hex_to_binary (guestfs_h *g, const char *hex,
+ size_t hexlen,
+ size_t *binlen_rtn);
-struct cb_data {
+struct cb_data
+{
guestfs_int_db_dump_callback callback;
void *opaque;
- enum { reading_header,
- reading_key, reading_value,
- reading_finished,
- reading_failed } state;
+ enum {
+ reading_header,
+ reading_key,
+ reading_value,
+ reading_finished,
+ reading_failed
+ } state;
unsigned char *key;
size_t keylen;
};
@@ -52,9 +60,8 @@ struct cb_data {
* database format.
*/
int
-guestfs_int_read_db_dump (guestfs_h *g,
- const char *dumpfile, void *opaque,
- guestfs_int_db_dump_callback callback)
+guestfs_int_read_db_dump (guestfs_h *g, const char *dumpfile, void *opaque,
+ guestfs_int_db_dump_callback callback)
{
struct cb_data data;
CLEANUP_CMD_CLOSE struct command *cmd = guestfs_int_new_command (g);
@@ -103,11 +110,11 @@ read_db_dump_line (guestfs_h *g, void *datav, const char *line,
size_t len)
data->state = reading_key;
return;
- /* Read the key, value pairs using a state machine. They are
- * prefixed with a space and printed as hex strings, so convert
- * those strings to binary. Pass the strings up to the callback
- * function.
- */
+ /* Read the key, value pairs using a state machine. They are
+ * prefixed with a space and printed as hex strings, so convert
+ * those strings to binary. Pass the strings up to the callback
+ * function.
+ */
case reading_key:
if (STRPREFIX (line, "DATA=END")) {
data->state = reading_finished;
@@ -115,12 +122,13 @@ read_db_dump_line (guestfs_h *g, void *datav, const char *line,
size_t len)
}
if (len < 1 || line[0] != ' ') {
- debug (g, _("unexpected line from db_dump command, no space prefix"));
+ debug (g,
+ _("unexpected line from db_dump command, no space prefix"));
data->state = reading_failed;
return;
}
- data->key = convert_hex_to_binary (g, &line[1], len-1, &data->keylen);
+ data->key = convert_hex_to_binary (g, &line[1], len - 1,
&data->keylen);
if (data->key == NULL) {
data->state = reading_failed;
return;
@@ -134,19 +142,20 @@ read_db_dump_line (guestfs_h *g, void *datav, const char *line,
size_t len)
size_t valuelen;
if (len < 1 || line[0] != ' ') {
- debug (g, _("unexpected line from db_dump command, no space prefix"));
+ debug (g,
+ _("unexpected line from db_dump command, no space prefix"));
data->state = reading_failed;
return;
}
- value = convert_hex_to_binary (g, &line[1], len-1, &valuelen);
+ value = convert_hex_to_binary (g, &line[1], len - 1, &valuelen);
if (value == NULL) {
data->state = reading_failed;
return;
}
- if (data->callback (g, data->key, data->keylen,
- value, valuelen, data->opaque) == -1) {
+ if (data->callback (g, data->key, data->keylen, value, valuelen,
+ data->opaque) == -1) {
data->state = reading_failed;
return;
}
@@ -166,13 +175,13 @@ convert_hex_octet (const char *h)
int r;
switch (h[0]) {
- case 'a'...'f':
+ case 'a' ... 'f':
r = (h[0] - 'a' + 10) << 4;
break;
- case 'A'...'F':
+ case 'A' ... 'F':
r = (h[0] - 'A' + 10) << 4;
break;
- case '0'...'9':
+ case '0' ... '9':
r = (h[0] - '0') << 4;
break;
default:
@@ -180,13 +189,13 @@ convert_hex_octet (const char *h)
}
switch (h[1]) {
- case 'a'...'f':
+ case 'a' ... 'f':
r |= h[1] - 'a' + 10;
break;
- case 'A'...'F':
+ case 'A' ... 'F':
r |= h[1] - 'A' + 10;
break;
- case '0'...'9':
+ case '0' ... '9':
r |= h[1] - '0';
break;
default:
@@ -205,18 +214,19 @@ convert_hex_to_binary (guestfs_h *g, const char *hex, size_t
hexlen,
size_t i, o;
int b;
- if (hexlen > 0 && hex[hexlen-1] == '\n')
+ if (hexlen > 0 && hex[hexlen - 1] == '\n')
hexlen--;
binlen = hexlen / 2;
bin = safe_malloc (g, binlen);
- for (i = o = 0; i+1 < hexlen && o < binlen; i += 2, ++o) {
+ for (i = o = 0; i + 1 < hexlen && o < binlen; i += 2, ++o) {
b = convert_hex_octet (&hex[i]);
if (b >= 0)
bin[o] = b;
else {
- error (g, _("unexpected non-hex digits in output of db_dump command"));
+ error (g,
+ _("unexpected non-hex digits in output of db_dump command"));
free (bin);
return NULL;
}
diff --git a/src/drives.c b/src/drives.c
index 385cf04..1e06de3 100644
--- a/src/drives.c
+++ b/src/drives.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
/* Drives added are stored in an array in the handle. Code here
@@ -42,11 +43,12 @@
/* Helper struct to hold all the data needed when creating a new
* drive.
*/
-struct drive_create_data {
+struct drive_create_data
+{
enum drive_protocol protocol;
struct drive_server *servers;
size_t nr_servers;
- const char *exportname; /* File name or path to the resource. */
+ const char *exportname; /* File name or path to the resource. */
const char *username;
const char *secret;
bool readonly;
@@ -94,8 +96,7 @@ create_overlay (guestfs_h *g, struct drive *drv)
/* Create and free the 'drive' struct. */
static struct drive *
-create_drive_file (guestfs_h *g,
- const struct drive_create_data *data)
+create_drive_file (guestfs_h *g, const struct drive_create_data *data)
{
struct drive *drv = safe_calloc (g, 1, sizeof *drv);
@@ -106,8 +107,10 @@ create_drive_file (guestfs_h *g,
drv->readonly = data->readonly;
drv->iface = data->iface ? safe_strdup (g, data->iface) : NULL;
drv->name = data->name ? safe_strdup (g, data->name) : NULL;
- drv->disk_label = data->disk_label ? safe_strdup (g, data->disk_label) :
NULL;
- drv->cachemode = data->cachemode ? safe_strdup (g, data->cachemode) : NULL;
+ drv->disk_label =
+ data->disk_label ? safe_strdup (g, data->disk_label) : NULL;
+ drv->cachemode =
+ data->cachemode ? safe_strdup (g, data->cachemode) : NULL;
drv->discard = data->discard;
drv->copyonread = data->copyonread;
@@ -116,7 +119,8 @@ create_drive_file (guestfs_h *g,
/* Don't double-free the servers in free_drive_struct, since
* they are owned by the caller along this error path.
*/
- drv->src.servers = NULL; drv->src.nr_servers = 0;
+ drv->src.servers = NULL;
+ drv->src.nr_servers = 0;
free_drive_struct (drv);
return NULL;
}
@@ -126,8 +130,7 @@ create_drive_file (guestfs_h *g,
}
static struct drive *
-create_drive_non_file (guestfs_h *g,
- const struct drive_create_data *data)
+create_drive_non_file (guestfs_h *g, const struct drive_create_data *data)
{
struct drive *drv = safe_calloc (g, 1, sizeof *drv);
@@ -135,15 +138,18 @@ create_drive_non_file (guestfs_h *g,
drv->src.servers = data->servers;
drv->src.nr_servers = data->nr_servers;
drv->src.u.exportname = safe_strdup (g, data->exportname);
- drv->src.username = data->username ? safe_strdup (g, data->username) : NULL;
+ drv->src.username =
+ data->username ? safe_strdup (g, data->username) : NULL;
drv->src.secret = data->secret ? safe_strdup (g, data->secret) : NULL;
drv->src.format = data->format ? safe_strdup (g, data->format) : NULL;
drv->readonly = data->readonly;
drv->iface = data->iface ? safe_strdup (g, data->iface) : NULL;
drv->name = data->name ? safe_strdup (g, data->name) : NULL;
- drv->disk_label = data->disk_label ? safe_strdup (g, data->disk_label) :
NULL;
- drv->cachemode = data->cachemode ? safe_strdup (g, data->cachemode) : NULL;
+ drv->disk_label =
+ data->disk_label ? safe_strdup (g, data->disk_label) : NULL;
+ drv->cachemode =
+ data->cachemode ? safe_strdup (g, data->cachemode) : NULL;
drv->discard = data->discard;
drv->copyonread = data->copyonread;
@@ -152,7 +158,8 @@ create_drive_non_file (guestfs_h *g,
/* Don't double-free the servers in free_drive_struct, since
* they are owned by the caller along this error path.
*/
- drv->src.servers = NULL; drv->src.nr_servers = 0;
+ drv->src.servers = NULL;
+ drv->src.nr_servers = 0;
free_drive_struct (drv);
return NULL;
}
@@ -162,8 +169,7 @@ create_drive_non_file (guestfs_h *g,
}
static struct drive *
-create_drive_curl (guestfs_h *g,
- const struct drive_create_data *data)
+create_drive_curl (guestfs_h *g, const struct drive_create_data *data)
{
if (data->nr_servers != 1) {
error (g, _("curl: you must specify exactly one server"));
@@ -190,15 +196,16 @@ create_drive_curl (guestfs_h *g,
}
static struct drive *
-create_drive_gluster (guestfs_h *g,
- const struct drive_create_data *data)
+create_drive_gluster (guestfs_h *g, const struct drive_create_data *data)
{
if (data->username != NULL) {
- error (g, _("gluster: you cannot specify a username with this protocol"));
+ error (g,
+ _("gluster: you cannot specify a username with this protocol"));
return NULL;
}
if (data->secret != NULL) {
- error (g, _("gluster: you cannot specify a secret with this protocol"));
+ error (g,
+ _("gluster: you cannot specify a secret with this protocol"));
return NULL;
}
@@ -208,7 +215,9 @@ create_drive_gluster (guestfs_h *g,
}
if (STREQ (data->exportname, "")) {
- error (g, _("gluster: volume name parameter should not be an empty
string"));
+ error (
+ g,
+ _("gluster: volume name parameter should not be an empty string"));
return NULL;
}
@@ -233,8 +242,7 @@ nbd_port (void)
}
static struct drive *
-create_drive_nbd (guestfs_h *g,
- const struct drive_create_data *data)
+create_drive_nbd (guestfs_h *g, const struct drive_create_data *data)
{
if (data->username != NULL) {
error (g, _("nbd: you cannot specify a username with this protocol"));
@@ -257,8 +265,7 @@ create_drive_nbd (guestfs_h *g,
}
static struct drive *
-create_drive_rbd (guestfs_h *g,
- const struct drive_create_data *data)
+create_drive_rbd (guestfs_h *g, const struct drive_create_data *data)
{
size_t i;
@@ -275,7 +282,8 @@ create_drive_rbd (guestfs_h *g,
}
if (STREQ (data->exportname, "")) {
- error (g, _("rbd: image name parameter should not be an empty string"));
+ error (g,
+ _("rbd: image name parameter should not be an empty string"));
return NULL;
}
@@ -288,17 +296,19 @@ create_drive_rbd (guestfs_h *g,
}
static struct drive *
-create_drive_sheepdog (guestfs_h *g,
- const struct drive_create_data *data)
+create_drive_sheepdog (guestfs_h *g, const struct drive_create_data *data)
{
size_t i;
if (data->username != NULL) {
- error (g, _("sheepdog: you cannot specify a username with this
protocol"));
+ error (
+ g,
+ _("sheepdog: you cannot specify a username with this protocol"));
return NULL;
}
if (data->secret != NULL) {
- error (g, _("sheepdog: you cannot specify a secret with this protocol"));
+ error (g,
+ _("sheepdog: you cannot specify a secret with this protocol"));
return NULL;
}
@@ -315,7 +325,8 @@ create_drive_sheepdog (guestfs_h *g,
}
if (STREQ (data->exportname, "")) {
- error (g, _("sheepdog: volume parameter should not be an empty string"));
+ error (g,
+ _("sheepdog: volume parameter should not be an empty string"));
return NULL;
}
@@ -328,8 +339,7 @@ create_drive_sheepdog (guestfs_h *g,
}
static struct drive *
-create_drive_ssh (guestfs_h *g,
- const struct drive_create_data *data)
+create_drive_ssh (guestfs_h *g, const struct drive_create_data *data)
{
if (data->nr_servers != 1) {
error (g, _("ssh: you must specify exactly one server"));
@@ -361,8 +371,7 @@ create_drive_ssh (guestfs_h *g,
}
static struct drive *
-create_drive_iscsi (guestfs_h *g,
- const struct drive_create_data *data)
+create_drive_iscsi (guestfs_h *g, const struct drive_create_data *data)
{
if (data->nr_servers != 1) {
error (g, _("iscsi: you must specify exactly one server"));
@@ -397,8 +406,7 @@ create_drive_iscsi (guestfs_h *g,
* a null drive.
*/
static struct drive *
-create_drive_dev_null (guestfs_h *g,
- struct drive_create_data *data)
+create_drive_dev_null (guestfs_h *g, struct drive_create_data *data)
{
CLEANUP_FREE char *tmpfile = NULL;
@@ -430,8 +438,11 @@ create_drive_dev_null (guestfs_h *g,
static struct drive *
create_drive_dummy (guestfs_h *g)
{
- /* A special drive struct that is used as a dummy slot for the appliance. */
- struct drive_create_data data = { 0, };
+ /* A special drive struct that is used as a dummy slot for the appliance.
+ */
+ struct drive_create_data data = {
+ 0,
+ };
data.exportname = "";
return create_drive_file (g, &data);
}
@@ -465,18 +476,30 @@ const char *
guestfs_int_drive_protocol_to_string (enum drive_protocol protocol)
{
switch (protocol) {
- case drive_protocol_file: return "file";
- case drive_protocol_ftp: return "ftp";
- case drive_protocol_ftps: return "ftps";
- case drive_protocol_gluster: return "gluster";
- case drive_protocol_http: return "http";
- case drive_protocol_https: return "https";
- case drive_protocol_iscsi: return "iscsi";
- case drive_protocol_nbd: return "nbd";
- case drive_protocol_rbd: return "rbd";
- case drive_protocol_sheepdog: return "sheepdog";
- case drive_protocol_ssh: return "ssh";
- case drive_protocol_tftp: return "tftp";
+ case drive_protocol_file:
+ return "file";
+ case drive_protocol_ftp:
+ return "ftp";
+ case drive_protocol_ftps:
+ return "ftps";
+ case drive_protocol_gluster:
+ return "gluster";
+ case drive_protocol_http:
+ return "http";
+ case drive_protocol_https:
+ return "https";
+ case drive_protocol_iscsi:
+ return "iscsi";
+ case drive_protocol_nbd:
+ return "nbd";
+ case drive_protocol_rbd:
+ return "rbd";
+ case drive_protocol_sheepdog:
+ return "sheepdog";
+ case drive_protocol_ssh:
+ return "ssh";
+ case drive_protocol_tftp:
+ return "tftp";
}
abort ();
}
@@ -487,24 +510,19 @@ guestfs_int_drive_protocol_to_string (enum drive_protocol protocol)
static char *
drive_to_string (guestfs_h *g, const struct drive *drv)
{
- return safe_asprintf
- (g, "%s%s%s%s protocol=%s%s%s%s%s%s%s%s%s%s%s",
- drv->src.u.path,
- drv->readonly ? " readonly" : "",
- drv->src.format ? " format=" : "",
- drv->src.format ? : "",
- guestfs_int_drive_protocol_to_string (drv->src.protocol),
- drv->iface ? " iface=" : "",
- drv->iface ? : "",
- drv->name ? " name=" : "",
- drv->name ? : "",
- drv->disk_label ? " label=" : "",
- drv->disk_label ? : "",
- drv->cachemode ? " cache=" : "",
- drv->cachemode ? : "",
- drv->discard == discard_disable ? "" :
- drv->discard == discard_enable ? " discard=enable" : "
discard=besteffort",
- drv->copyonread ? " copyonread" : "");
+ return safe_asprintf (
+ g, "%s%s%s%s protocol=%s%s%s%s%s%s%s%s%s%s%s", drv->src.u.path,
+ drv->readonly ? " readonly" : "", drv->src.format ?
" format=" : "",
+ drv->src.format ?: "",
+ guestfs_int_drive_protocol_to_string (drv->src.protocol),
+ drv->iface ? " iface=" : "", drv->iface ?: "",
+ drv->name ? " name=" : "", drv->name ?: "",
+ drv->disk_label ? " label=" : "", drv->disk_label ?:
"",
+ drv->cachemode ? " cache=" : "", drv->cachemode ?:
"",
+ drv->discard == discard_disable ? "" : drv->discard ==
discard_enable
+ ? " discard=enable"
+ : " discard=besteffort",
+ drv->copyonread ? " copyonread" : "");
}
/* Add struct drive to the g->drives vector at the given index. */
@@ -514,7 +532,7 @@ add_drive_to_handle_at (guestfs_h *g, struct drive *d, size_t
drv_index)
if (drv_index >= g->nr_drives) {
g->drives = safe_realloc (g, g->drives,
sizeof (struct drive *) * (drv_index + 1));
- while (g->nr_drives < drv_index+1) {
+ while (g->nr_drives < drv_index + 1) {
g->drives[g->nr_drives] = NULL;
g->nr_drives++;
}
@@ -549,9 +567,7 @@ guestfs_int_free_drives (guestfs_h *g)
struct drive *drv;
size_t i;
- ITER_DRIVES (g, i, drv) {
- free_drive_struct (drv);
- }
+ ITER_DRIVES (g, i, drv) { free_drive_struct (drv); }
free (g->drives);
@@ -610,8 +626,8 @@ valid_hostname (const char *str)
while (len > 0) {
char c = *str++;
len--;
- if (!c_isalnum (c) &&
- c != '-' && c != '.' && c != ':'
&& c != '[' && c != ']')
+ if (!c_isalnum (c) && c != '-' && c != '.' &&
c != ':' && c != '[' &&
+ c != ']')
return 0;
}
return 1;
@@ -627,7 +643,8 @@ valid_port (int port)
}
static int
-parse_one_server (guestfs_h *g, const char *server, struct drive_server *ret)
+parse_one_server (guestfs_h *g, const char *server,
+ struct drive_server *ret)
{
char *hostname;
char *port_str;
@@ -653,11 +670,11 @@ parse_one_server (guestfs_h *g, const char *server, struct
drive_server *ret)
return -1;
}
ret->transport = drive_transport_unix;
- ret->u.socket = safe_strdup (g, server+5);
+ ret->u.socket = safe_strdup (g, server + 5);
ret->port = 0;
return 0;
}
- skip_unix:
+skip_unix:
if (match2 (g, server, re_hostname_port, &hostname, &port_str)) {
if (sscanf (port_str, "%d", &port) != 1 || !valid_port (port)) {
@@ -718,8 +735,9 @@ parse_servers (guestfs_h *g, char *const *strs,
}
int
-guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
- const struct guestfs_add_drive_opts_argv *optargs)
+guestfs_impl_add_drive_opts (
+ guestfs_h *g, const char *filename,
+ const struct guestfs_add_drive_opts_argv *optargs)
{
struct drive_create_data data;
const char *protocol;
@@ -731,17 +749,23 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
data.exportname = filename;
data.readonly = optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_READONLY_BITMASK
- ? optargs->readonly : false;
+ ? optargs->readonly
+ : false;
data.format = optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_FORMAT_BITMASK
- ? optargs->format : NULL;
+ ? optargs->format
+ : NULL;
data.iface = optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_IFACE_BITMASK
- ? optargs->iface : NULL;
+ ? optargs->iface
+ : NULL;
data.name = optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_NAME_BITMASK
- ? optargs->name : NULL;
+ ? optargs->name
+ : NULL;
data.disk_label = optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_LABEL_BITMASK
- ? optargs->label : NULL;
+ ? optargs->label
+ : NULL;
protocol = optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_PROTOCOL_BITMASK
- ? optargs->protocol : "file";
+ ? optargs->protocol
+ : "file";
if (optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_SERVER_BITMASK) {
ssize_t r = parse_servers (g, optargs->server, &data.servers);
if (r == -1)
@@ -749,11 +773,15 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
data.nr_servers = r;
}
data.username = optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_USERNAME_BITMASK
- ? optargs->username : NULL;
+ ? optargs->username
+ : NULL;
data.secret = optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_SECRET_BITMASK
- ? optargs->secret : NULL;
- data.cachemode = optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_CACHEMODE_BITMASK
- ? optargs->cachemode : NULL;
+ ? optargs->secret
+ : NULL;
+ data.cachemode =
+ optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_CACHEMODE_BITMASK
+ ? optargs->cachemode
+ : NULL;
if (optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_DISCARD_BITMASK) {
if (STREQ (optargs->discard, "disable"))
@@ -763,17 +791,18 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
else if (STREQ (optargs->discard, "besteffort"))
data.discard = discard_besteffort;
else {
- error (g, _("discard parameter must be 'disable', 'enable' or
'besteffort'"));
+ error (g, _("discard parameter must be 'disable', 'enable' or
"
+ "'besteffort'"));
free_drive_servers (data.servers, data.nr_servers);
return -1;
}
- }
- else
+ } else
data.discard = discard_disable;
data.copyonread =
- optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_COPYONREAD_BITMASK
- ? optargs->copyonread : false;
+ optargs->bitmask & GUESTFS_ADD_DRIVE_OPTS_COPYONREAD_BITMASK
+ ? optargs->copyonread
+ : false;
if (data.readonly && data.discard == discard_enable) {
error (g, _("discard support cannot be enabled on read-only drives"));
@@ -783,24 +812,27 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
if (data.format && !valid_format_iface (data.format)) {
error (g, _("%s parameter is empty or contains disallowed characters"),
- "format");
+ "format");
free_drive_servers (data.servers, data.nr_servers);
return -1;
}
if (data.iface && !valid_format_iface (data.iface)) {
error (g, _("%s parameter is empty or contains disallowed characters"),
- "iface");
+ "iface");
free_drive_servers (data.servers, data.nr_servers);
return -1;
}
if (data.disk_label && !valid_disk_label (data.disk_label)) {
- error (g, _("label parameter is empty, too long, or contains disallowed
characters"));
+ error (g, _("label parameter is empty, too long, or contains "
+ "disallowed characters"));
free_drive_servers (data.servers, data.nr_servers);
return -1;
}
if (data.cachemode &&
- !(STREQ (data.cachemode, "writeback") || STREQ (data.cachemode,
"unsafe"))) {
- error (g, _("cachemode parameter must be 'writeback' (default) or
'unsafe'"));
+ !(STREQ (data.cachemode, "writeback") ||
+ STREQ (data.cachemode, "unsafe"))) {
+ error (g, _("cachemode parameter must be 'writeback' (default) or
"
+ "'unsafe'"));
free_drive_servers (data.servers, data.nr_servers);
return -1;
}
@@ -833,52 +865,40 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
drv = create_drive_file (g, &data);
}
- }
- else if (STREQ (protocol, "ftp")) {
+ } else if (STREQ (protocol, "ftp")) {
data.protocol = drive_protocol_ftp;
drv = create_drive_curl (g, &data);
- }
- else if (STREQ (protocol, "ftps")) {
+ } else if (STREQ (protocol, "ftps")) {
data.protocol = drive_protocol_ftps;
drv = create_drive_curl (g, &data);
- }
- else if (STREQ (protocol, "gluster")) {
+ } else if (STREQ (protocol, "gluster")) {
data.protocol = drive_protocol_gluster;
drv = create_drive_gluster (g, &data);
- }
- else if (STREQ (protocol, "http")) {
+ } else if (STREQ (protocol, "http")) {
data.protocol = drive_protocol_http;
drv = create_drive_curl (g, &data);
- }
- else if (STREQ (protocol, "https")) {
+ } else if (STREQ (protocol, "https")) {
data.protocol = drive_protocol_https;
drv = create_drive_curl (g, &data);
- }
- else if (STREQ (protocol, "iscsi")) {
+ } else if (STREQ (protocol, "iscsi")) {
data.protocol = drive_protocol_iscsi;
drv = create_drive_iscsi (g, &data);
- }
- else if (STREQ (protocol, "nbd")) {
+ } else if (STREQ (protocol, "nbd")) {
data.protocol = drive_protocol_nbd;
drv = create_drive_nbd (g, &data);
- }
- else if (STREQ (protocol, "rbd")) {
+ } else if (STREQ (protocol, "rbd")) {
data.protocol = drive_protocol_rbd;
drv = create_drive_rbd (g, &data);
- }
- else if (STREQ (protocol, "sheepdog")) {
+ } else if (STREQ (protocol, "sheepdog")) {
data.protocol = drive_protocol_sheepdog;
drv = create_drive_sheepdog (g, &data);
- }
- else if (STREQ (protocol, "ssh")) {
+ } else if (STREQ (protocol, "ssh")) {
data.protocol = drive_protocol_ssh;
drv = create_drive_ssh (g, &data);
- }
- else if (STREQ (protocol, "tftp")) {
+ } else if (STREQ (protocol, "tftp")) {
data.protocol = drive_protocol_tftp;
drv = create_drive_curl (g, &data);
- }
- else {
+ } else {
error (g, _("unknown protocol '%s'"), protocol);
drv = NULL; /*FALLTHROUGH*/
}
@@ -897,7 +917,8 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
/* ... else, hotplugging case. */
if (!g->backend_ops->hot_add_drive) {
- error (g, _("the current backend does not support hotplugging drives"));
+ error (g,
+ _("the current backend does not support hotplugging drives"));
free_drive_struct (drv);
return -1;
}
@@ -915,8 +936,8 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
drv_index = i;
/* Hot-add the drive. */
- if (g->backend_ops->hot_add_drive (g, g->backend_data,
- drv, drv_index) == -1) {
+ if (g->backend_ops->hot_add_drive (g, g->backend_data, drv, drv_index) ==
+ -1) {
free_drive_struct (drv);
return -1;
}
@@ -935,8 +956,7 @@ int
guestfs_impl_add_drive_ro (guestfs_h *g, const char *filename)
{
const struct guestfs_add_drive_opts_argv optargs = {
- .bitmask = GUESTFS_ADD_DRIVE_OPTS_READONLY_BITMASK,
- .readonly = true,
+ .bitmask = GUESTFS_ADD_DRIVE_OPTS_READONLY_BITMASK, .readonly = true,
};
return guestfs_add_drive_opts_argv (g, filename, &optargs);
@@ -944,11 +964,10 @@ guestfs_impl_add_drive_ro (guestfs_h *g, const char *filename)
int
guestfs_impl_add_drive_with_if (guestfs_h *g, const char *filename,
- const char *iface)
+ const char *iface)
{
const struct guestfs_add_drive_opts_argv optargs = {
- .bitmask = GUESTFS_ADD_DRIVE_OPTS_IFACE_BITMASK,
- .iface = iface,
+ .bitmask = GUESTFS_ADD_DRIVE_OPTS_IFACE_BITMASK, .iface = iface,
};
return guestfs_add_drive_opts_argv (g, filename, &optargs);
@@ -956,11 +975,11 @@ guestfs_impl_add_drive_with_if (guestfs_h *g, const char *filename,
int
guestfs_impl_add_drive_ro_with_if (guestfs_h *g, const char *filename,
- const char *iface)
+ const char *iface)
{
const struct guestfs_add_drive_opts_argv optargs = {
- .bitmask = GUESTFS_ADD_DRIVE_OPTS_IFACE_BITMASK
- | GUESTFS_ADD_DRIVE_OPTS_READONLY_BITMASK,
+ .bitmask = GUESTFS_ADD_DRIVE_OPTS_IFACE_BITMASK |
+ GUESTFS_ADD_DRIVE_OPTS_READONLY_BITMASK,
.iface = iface,
.readonly = true,
};
@@ -969,10 +988,11 @@ guestfs_impl_add_drive_ro_with_if (guestfs_h *g, const char
*filename,
}
int
-guestfs_impl_add_drive_scratch (guestfs_h *g, int64_t size,
- const struct guestfs_add_drive_scratch_argv *optargs)
+guestfs_impl_add_drive_scratch (
+ guestfs_h *g, int64_t size,
+ const struct guestfs_add_drive_scratch_argv *optargs)
{
- struct guestfs_add_drive_opts_argv add_drive_optargs = { .bitmask = 0 };
+ struct guestfs_add_drive_opts_argv add_drive_optargs = {.bitmask = 0 };
CLEANUP_FREE char *filename = NULL;
/* Some parameters we always set. */
@@ -1026,26 +1046,27 @@ guestfs_impl_remove_drive (guestfs_h *g, const char *label)
size_t i;
struct drive *drv;
- ITER_DRIVES (g, i, drv) {
+ ITER_DRIVES (g, i, drv)
+ {
if (drv->disk_label && STREQ (label, drv->disk_label))
goto found;
}
error (g, _("disk with label '%s' not found"), label);
return -1;
- found:
- if (g->state == CONFIG) { /* Not hotplugging. */
+found:
+ if (g->state == CONFIG) { /* Not hotplugging. */
free_drive_struct (drv);
g->nr_drives--;
for (; i < g->nr_drives; ++i)
- g->drives[i] = g->drives[i+1];
+ g->drives[i] = g->drives[i + 1];
return 0;
- }
- else { /* Hotplugging. */
+ } else { /* Hotplugging. */
if (!g->backend_ops->hot_remove_drive) {
- error (g, _("the current backend does not support hotplugging drives"));
+ error (g,
+ _("the current backend does not support hotplugging drives"));
return -1;
}
@@ -1057,7 +1078,7 @@ guestfs_impl_remove_drive (guestfs_h *g, const char *label)
free_drive_struct (drv);
g->drives[i] = NULL;
- if (i == g->nr_drives-1)
+ if (i == g->nr_drives - 1)
g->nr_drives--;
if (guestfs_internal_hot_remove_drive (g, label) == -1)
@@ -1096,13 +1117,14 @@ guestfs_impl_debug_drives (guestfs_h *g)
DECLARE_STRINGSBUF (ret);
struct drive *drv;
- ITER_DRIVES (g, i, drv) {
+ ITER_DRIVES (g, i, drv)
+ {
guestfs_int_add_string_nodup (g, &ret, drive_to_string (g, drv));
}
guestfs_int_end_stringsbuf (g, &ret);
- return ret.argv; /* caller frees */
+ return ret.argv; /* caller frees */
}
static void
diff --git a/src/errors.c b/src/errors.c
index c85aed5..2a91d35 100644
--- a/src/errors.c
+++ b/src/errors.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -65,7 +66,8 @@ guestfs_int_warning (guestfs_h *g, const char *fs, ...)
len = vasprintf (&msg, fs, args);
va_end (args);
- if (len < 0) return;
+ if (len < 0)
+ return;
guestfs_int_call_callbacks_message (g, GUESTFS_EVENT_WARNING, msg, len);
}
@@ -89,7 +91,8 @@ guestfs_int_debug (guestfs_h *g, const char *fs, ...)
len = vasprintf (&msg, fs, args);
va_end (args);
- if (len < 0) return;
+ if (len < 0)
+ return;
guestfs_int_call_callbacks_message (g, GUESTFS_EVENT_LIBRARY, msg, len);
}
@@ -109,7 +112,8 @@ guestfs_int_trace (guestfs_h *g, const char *fs, ...)
len = vasprintf (&msg, fs, args);
va_end (args);
- if (len < 0) return;
+ if (len < 0)
+ return;
guestfs_int_call_callbacks_message (g, GUESTFS_EVENT_TRACE, msg, len);
}
@@ -125,13 +129,15 @@ guestfs_int_error_errno (guestfs_h *g, int errnum, const char *fs,
...)
err = vasprintf (&msg, fs, args);
va_end (args);
- if (err < 0) return;
+ if (err < 0)
+ return;
/* set_last_error first so that the callback can access the error
* message and errno through the handle if it wishes.
*/
set_last_error (g, errnum, msg);
- if (g->error_cb) g->error_cb (g, g->error_cb_data, msg);
+ if (g->error_cb)
+ g->error_cb (g, g->error_cb_data, msg);
}
void
@@ -147,7 +153,8 @@ guestfs_int_perrorf (guestfs_h *g, const char *fs, ...)
err = vasprintf (&msg, fs, args);
va_end (args);
- if (err < 0) return;
+ if (err < 0)
+ return;
strerror_r (errnum, buf, sizeof buf);
@@ -159,7 +166,8 @@ guestfs_int_perrorf (guestfs_h *g, const char *fs, ...)
* message and errno through the handle if it wishes.
*/
set_last_error (g, errnum, msg);
- if (g->error_cb) g->error_cb (g, g->error_cb_data, msg);
+ if (g->error_cb)
+ g->error_cb (g, g->error_cb_data, msg);
}
void
@@ -175,8 +183,8 @@ guestfs_get_out_of_memory_handler (guestfs_h *g)
}
void
-guestfs_set_error_handler (guestfs_h *g,
- guestfs_error_handler_cb cb, void *data)
+guestfs_set_error_handler (guestfs_h *g, guestfs_error_handler_cb cb,
+ void *data)
{
g->error_cb = cb;
g->error_cb_data = data;
@@ -185,13 +193,14 @@ guestfs_set_error_handler (guestfs_h *g,
guestfs_error_handler_cb
guestfs_get_error_handler (guestfs_h *g, void **data_rtn)
{
- if (data_rtn) *data_rtn = g->error_cb_data;
+ if (data_rtn)
+ *data_rtn = g->error_cb_data;
return g->error_cb;
}
void
-guestfs_push_error_handler (guestfs_h *g,
- guestfs_error_handler_cb cb, void *data)
+guestfs_push_error_handler (guestfs_h *g, guestfs_error_handler_cb cb,
+ void *data)
{
struct error_cb_stack *old_stack;
@@ -215,8 +224,7 @@ guestfs_pop_error_handler (guestfs_h *g)
g->error_cb_stack->error_cb_data);
free (g->error_cb_stack);
g->error_cb_stack = next_stack;
- }
- else
+ } else
guestfs_int_init_error_handler (g);
}
@@ -253,14 +261,13 @@ guestfs_int_print_BufferIn (FILE *out, const char *buf, size_t
buf_size)
if (c_isprint (buf[i]))
fputc (buf[i], out);
else
- fprintf (out, "\\x%02x", (unsigned char) buf[i]);
+ fprintf (out, "\\x%02x", (unsigned char)buf[i]);
}
fputc ('"', out);
if (orig_size > buf_size)
- fprintf (out,
- _("<truncated, original size %zu bytes>"), orig_size);
+ fprintf (out, _("<truncated, original size %zu bytes>"), orig_size);
}
void
@@ -271,12 +278,13 @@ guestfs_int_print_BufferOut (FILE *out, const char *buf, size_t
buf_size)
/* Some standard error messages for common failures. */
-#define DEBUG_ADVICE \
- "Do:\n" \
- " export LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1\n" \
- "and run the command again. For further information, read:\n" \
- "
http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs\n" \
- "You can also run 'libguestfs-test-tool' and post the *complete*
output\n" \
+#define DEBUG_ADVICE \
+ "Do:\n" \
+ " export LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1\n" \
+ "and run the command again. For further information, read:\n" \
+ "
http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs\n" \
+ "You can also run 'libguestfs-test-tool' and post the *complete* "
\
+ "output\n" \
"into a bug report or message to the libguestfs mailing list."
/* Launch failed. Since this is the most common error seen by people
@@ -290,10 +298,9 @@ guestfs_int_launch_failed_error (guestfs_h *g)
if (g->verbose)
error (g, _("guestfs_launch failed, see earlier error messages"));
else
- error (g, _(
- "guestfs_launch failed.\n"
- "This usually means the libguestfs appliance failed to start or crashed.\n"
- DEBUG_ADVICE));
+ error (g, _("guestfs_launch failed.\n"
+ "This usually means the libguestfs appliance failed to "
+ "start or crashed.\n" DEBUG_ADVICE));
}
/* As above, but for crashes that occur after launch. */
@@ -301,12 +308,12 @@ void
guestfs_int_unexpected_close_error (guestfs_h *g)
{
if (g->verbose)
- error (g, _("appliance closed the connection unexpectedly, see earlier error
messages"));
+ error (g, _("appliance closed the connection unexpectedly, see "
+ "earlier error messages"));
else
- error (g, _(
- "appliance closed the connection unexpectedly.\n"
- "This usually means the libguestfs appliance crashed.\n"
- DEBUG_ADVICE));
+ error (g, _("appliance closed the connection unexpectedly.\n"
+ "This usually means the libguestfs appliance "
+ "crashed.\n" DEBUG_ADVICE));
}
/* As above, but for appliance kernel hanging. */
@@ -316,16 +323,16 @@ guestfs_int_launch_timeout (guestfs_h *g)
if (g->verbose)
error (g, _("appliance launch timed out, see earlier error messages"));
else
- error (g, _(
- "appliance launch timed out.\n"
- "This usually means the kernel or appliance hung during launch.\n"
- DEBUG_ADVICE));
+ error (g, _("appliance launch timed out.\n"
+ "This usually means the kernel or appliance hung during "
+ "launch.\n" DEBUG_ADVICE));
}
/* External command failed. */
void
guestfs_int_external_command_failed (guestfs_h *g, int status,
- const char *cmd_name, const char *extra)
+ const char *cmd_name,
+ const char *extra)
{
size_t len = 80 + strlen (cmd_name);
CLEANUP_FREE char *status_string = safe_malloc (g, len);
@@ -336,19 +343,18 @@ guestfs_int_external_command_failed (guestfs_h *g, int status,
if (!extra)
error (g, _("%s, see debug messages above"), status_string);
else
- error (g, _("%s: %s: %s, see debug messages above"),
- cmd_name, extra, status_string);
- }
- else {
+ error (g, _("%s: %s: %s, see debug messages above"), cmd_name, extra,
+ status_string);
+ } else {
if (!extra)
error (g, _("%s.\n"
- "To see full error messages you may need to enable debugging.\n"
- DEBUG_ADVICE),
+ "To see full error messages you may need to enable "
+ "debugging.\n" DEBUG_ADVICE),
status_string);
else
error (g, _("%s: %s: %s.\n"
- "To see full error messages you may need to enable debugging.\n"
- DEBUG_ADVICE),
+ "To see full error messages you may need to enable "
+ "debugging.\n" DEBUG_ADVICE),
cmd_name, extra, status_string);
}
}
diff --git a/src/events.c b/src/events.c
index 2d065b8..6243bef 100644
--- a/src/events.c
+++ b/src/events.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -29,11 +30,8 @@
#include "guestfs-internal.h"
int
-guestfs_set_event_callback (guestfs_h *g,
- guestfs_event_callback cb,
- uint64_t event_bitmask,
- int flags,
- void *opaque)
+guestfs_set_event_callback (guestfs_h *g, guestfs_event_callback cb,
+ uint64_t event_bitmask, int flags, void *opaque)
{
int event_handle;
@@ -52,10 +50,9 @@ guestfs_set_event_callback (guestfs_h *g,
return -1;
}
- event_handle = (int) g->nr_events;
- g->events =
- safe_realloc (g, g->events,
- (g->nr_events+1) * sizeof (struct event));
+ event_handle = (int)g->nr_events;
+ g->events = safe_realloc (g, g->events,
+ (g->nr_events + 1) * sizeof (struct event));
g->nr_events++;
g->events[event_handle].event_bitmask = event_bitmask;
@@ -69,7 +66,7 @@ guestfs_set_event_callback (guestfs_h *g,
void
guestfs_delete_event_callback (guestfs_h *g, int event_handle)
{
- if (event_handle < 0 || event_handle >= (int) g->nr_events)
+ if (event_handle < 0 || event_handle >= (int)g->nr_events)
return;
/* Set the event_bitmask to 0, which will ensure that this callback
@@ -83,7 +80,7 @@ guestfs_delete_event_callback (guestfs_h *g, int event_handle)
* problem that this structure is not well-suited to handling large
* numbers of event handlers.
*/
- if ((unsigned) event_handle == g->nr_events-1)
+ if ((unsigned)event_handle == g->nr_events - 1)
g->nr_events--;
}
@@ -96,7 +93,8 @@ guestfs_int_call_callbacks_void (guestfs_h *g, uint64_t event)
for (i = 0; i < g->nr_events; ++i)
if ((g->events[i].event_bitmask & event) != 0)
- g->events[i].cb (g, g->events[i].opaque, event, i, 0, NULL, 0, NULL, 0);
+ g->events[i].cb (g, g->events[i].opaque, event, i, 0, NULL, 0, NULL,
+ 0);
/* All events with payload type void are discarded if no callback
* was registered.
@@ -105,14 +103,14 @@ guestfs_int_call_callbacks_void (guestfs_h *g, uint64_t event)
void
guestfs_int_call_callbacks_message (guestfs_h *g, uint64_t event,
- const char *buf, size_t buf_len)
+ const char *buf, size_t buf_len)
{
size_t i, count = 0;
for (i = 0; i < g->nr_events; ++i)
if ((g->events[i].event_bitmask & event) != 0) {
- g->events[i].cb (g, g->events[i].opaque, event, i, 0,
- buf, buf_len, NULL, 0);
+ g->events[i].cb (g, g->events[i].opaque, event, i, 0, buf, buf_len,
+ NULL, 0);
count++;
}
@@ -124,12 +122,9 @@ guestfs_int_call_callbacks_message (guestfs_h *g, uint64_t event,
if (count > 0)
return;
- if ((event == GUESTFS_EVENT_APPLIANCE ||
- event == GUESTFS_EVENT_LIBRARY ||
- event == GUESTFS_EVENT_WARNING ||
- event == GUESTFS_EVENT_TRACE) &&
- (g->verbose ||
- event == GUESTFS_EVENT_WARNING ||
+ if ((event == GUESTFS_EVENT_APPLIANCE || event == GUESTFS_EVENT_LIBRARY ||
+ event == GUESTFS_EVENT_WARNING || event == GUESTFS_EVENT_TRACE) &&
+ (g->verbose || event == GUESTFS_EVENT_WARNING ||
event == GUESTFS_EVENT_TRACE)) {
bool from_appliance = event == GUESTFS_EVENT_APPLIANCE;
size_t i0;
@@ -154,34 +149,34 @@ guestfs_int_call_callbacks_message (guestfs_h *g, uint64_t event,
}
}
- /* Special or non-printing characters in the buffer must be
- * escaped (RHBZ#731744). The buffer can contain any 8 bit
- * character, even \0.
- *
- * Handling of \n and \r characters is complex:
- *
- * Case 1: Messages from the appliance: These messages already
- * contain \n and \r characters at logical positions, so we just
- * echo those out directly.
- *
- * Case 2: Messages from other sources: These messages should NOT
- * contain \n or \r. If they do, it is escaped. However we also
- * need to print a real end of line after these messages.
- *
- * RHBZ#802109: Because stderr is usually not buffered, avoid
- * single 'putc' calls (which translate to a 1 byte write), and
- * try to send longest possible strings in single fwrite calls
- * (thanks to Jim Meyering for the basic approach).
- */
-#define NO_ESCAPING(c) \
- (c_isprint ((c)) || (from_appliance && ((c) == '\n' || (c) ==
'\r')))
+/* Special or non-printing characters in the buffer must be
+ * escaped (RHBZ#731744). The buffer can contain any 8 bit
+ * character, even \0.
+ *
+ * Handling of \n and \r characters is complex:
+ *
+ * Case 1: Messages from the appliance: These messages already
+ * contain \n and \r characters at logical positions, so we just
+ * echo those out directly.
+ *
+ * Case 2: Messages from other sources: These messages should NOT
+ * contain \n or \r. If they do, it is escaped. However we also
+ * need to print a real end of line after these messages.
+ *
+ * RHBZ#802109: Because stderr is usually not buffered, avoid
+ * single 'putc' calls (which translate to a 1 byte write), and
+ * try to send longest possible strings in single fwrite calls
+ * (thanks to Jim Meyering for the basic approach).
+ */
+#define NO_ESCAPING(c) \
+ (c_isprint ((c)) || (from_appliance && ((c) == '\n' || (c) ==
'\r')))
for (i = 0; i < buf_len; ++i) {
if (NO_ESCAPING (buf[i])) {
i0 = i;
while (i < buf_len && NO_ESCAPING (buf[i]))
++i;
- fwrite (&buf[i0], 1, i-i0, stderr);
+ fwrite (&buf[i0], 1, i - i0, stderr);
/* Adjust i so that next time around the loop, the next
* non-printing character will be displayed.
*/
@@ -189,16 +184,32 @@ guestfs_int_call_callbacks_message (guestfs_h *g, uint64_t event,
--i;
} else {
switch (buf[i]) {
- case '\0': fputs ("\\0", stderr); break;
- case '\a': fputs ("\\a", stderr); break;
- case '\b': fputs ("\\b", stderr); break;
- case '\f': fputs ("\\f", stderr); break;
- case '\n': fputs ("\\n", stderr); break;
- case '\r': fputs ("\\r", stderr); break;
- case '\t': fputs ("\\t", stderr); break;
- case '\v': fputs ("\\v", stderr); break;
+ case '\0':
+ fputs ("\\0", stderr);
+ break;
+ case '\a':
+ fputs ("\\a", stderr);
+ break;
+ case '\b':
+ fputs ("\\b", stderr);
+ break;
+ case '\f':
+ fputs ("\\f", stderr);
+ break;
+ case '\n':
+ fputs ("\\n", stderr);
+ break;
+ case '\r':
+ fputs ("\\r", stderr);
+ break;
+ case '\t':
+ fputs ("\\t", stderr);
+ break;
+ case '\v':
+ fputs ("\\v", stderr);
+ break;
default:
- fprintf (stderr, "\\x%x", (unsigned char) buf[i]);
+ fprintf (stderr, "\\x%x", (unsigned char)buf[i]);
}
}
}
@@ -210,14 +221,14 @@ guestfs_int_call_callbacks_message (guestfs_h *g, uint64_t event,
void
guestfs_int_call_callbacks_array (guestfs_h *g, uint64_t event,
- const uint64_t *array, size_t array_len)
+ const uint64_t *array, size_t array_len)
{
size_t i;
for (i = 0; i < g->nr_events; ++i)
if ((g->events[i].event_bitmask & event) != 0)
- g->events[i].cb (g, g->events[i].opaque, event, i, 0,
- NULL, 0, array, array_len);
+ g->events[i].cb (g, g->events[i].opaque, event, i, 0, NULL, 0, array,
+ array_len);
/* All events with payload type array are discarded if no callback
* was registered.
@@ -233,10 +244,8 @@ guestfs_int_call_callbacks_array (guestfs_h *g, uint64_t event,
*/
static void
-replace_old_style_event_callback (guestfs_h *g,
- guestfs_event_callback cb,
- uint64_t event_bitmask,
- void *opaque,
+replace_old_style_event_callback (guestfs_h *g, guestfs_event_callback cb,
+ uint64_t event_bitmask, void *opaque,
void *opaque2)
{
size_t i;
@@ -263,12 +272,11 @@ replace_old_style_event_callback (guestfs_h *g,
return; /* see above */
/* i == g->nr_events */
- g->events =
- safe_realloc (g, g->events,
- (g->nr_events+1) * sizeof (struct event));
+ g->events = safe_realloc (g, g->events,
+ (g->nr_events + 1) * sizeof (struct event));
g->nr_events++;
- replace:
+replace:
g->events[i].event_bitmask = event_bitmask;
g->events[i].cb = cb;
g->events[i].opaque = opaque;
@@ -276,39 +284,33 @@ replace_old_style_event_callback (guestfs_h *g,
}
static void
-log_message_callback_wrapper (guestfs_h *g,
- void *opaque,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+log_message_callback_wrapper (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len)
{
guestfs_log_message_cb cb = g->events[event_handle].opaque2;
/* Note that the old callback declared the message buffer as
* (char *, int). I sure hope message buffers aren't too large
* and that callers aren't writing to them. XXX
*/
- cb (g, opaque, (char *) buf, (int) buf_len);
+ cb (g, opaque, (char *)buf, (int)buf_len);
}
void
-guestfs_set_log_message_callback (guestfs_h *g,
- guestfs_log_message_cb cb, void *opaque)
+guestfs_set_log_message_callback (guestfs_h *g, guestfs_log_message_cb cb,
+ void *opaque)
{
replace_old_style_event_callback (g, log_message_callback_wrapper,
- GUESTFS_EVENT_APPLIANCE,
- opaque, cb);
+ GUESTFS_EVENT_APPLIANCE, opaque, cb);
}
static void
-subprocess_quit_callback_wrapper (guestfs_h *g,
- void *opaque,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+subprocess_quit_callback_wrapper (guestfs_h *g, void *opaque,
+ uint64_t event, int event_handle,
+ int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len)
{
guestfs_subprocess_quit_cb cb = g->events[event_handle].opaque2;
cb (g, opaque);
@@ -316,76 +318,64 @@ subprocess_quit_callback_wrapper (guestfs_h *g,
void
guestfs_set_subprocess_quit_callback (guestfs_h *g,
- guestfs_subprocess_quit_cb cb, void *opaque)
+ guestfs_subprocess_quit_cb cb,
+ void *opaque)
{
replace_old_style_event_callback (g, subprocess_quit_callback_wrapper,
- GUESTFS_EVENT_SUBPROCESS_QUIT,
- opaque, cb);
+ GUESTFS_EVENT_SUBPROCESS_QUIT, opaque,
+ cb);
}
static void
-launch_done_callback_wrapper (guestfs_h *g,
- void *opaque,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+launch_done_callback_wrapper (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len)
{
guestfs_launch_done_cb cb = g->events[event_handle].opaque2;
cb (g, opaque);
}
void
-guestfs_set_launch_done_callback (guestfs_h *g,
- guestfs_launch_done_cb cb, void *opaque)
+guestfs_set_launch_done_callback (guestfs_h *g, guestfs_launch_done_cb cb,
+ void *opaque)
{
replace_old_style_event_callback (g, launch_done_callback_wrapper,
- GUESTFS_EVENT_LAUNCH_DONE,
- opaque, cb);
+ GUESTFS_EVENT_LAUNCH_DONE, opaque, cb);
}
static void
-close_callback_wrapper (guestfs_h *g,
- void *opaque,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+close_callback_wrapper (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len)
{
guestfs_close_cb cb = g->events[event_handle].opaque2;
cb (g, opaque);
}
void
-guestfs_set_close_callback (guestfs_h *g,
- guestfs_close_cb cb, void *opaque)
+guestfs_set_close_callback (guestfs_h *g, guestfs_close_cb cb, void *opaque)
{
replace_old_style_event_callback (g, close_callback_wrapper,
- GUESTFS_EVENT_CLOSE,
- opaque, cb);
+ GUESTFS_EVENT_CLOSE, opaque, cb);
}
static void
-progress_callback_wrapper (guestfs_h *g,
- void *opaque,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+progress_callback_wrapper (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len)
{
guestfs_progress_cb cb = g->events[event_handle].opaque2;
assert (array_len >= 4);
- cb (g, opaque, (int) array[0], (int) array[1], array[2], array[3]);
+ cb (g, opaque, (int)array[0], (int)array[1], array[2], array[3]);
}
void
-guestfs_set_progress_callback (guestfs_h *g,
- guestfs_progress_cb cb, void *opaque)
+guestfs_set_progress_callback (guestfs_h *g, guestfs_progress_cb cb,
+ void *opaque)
{
replace_old_style_event_callback (g, progress_callback_wrapper,
- GUESTFS_EVENT_PROGRESS,
- opaque, cb);
+ GUESTFS_EVENT_PROGRESS, opaque, cb);
}
diff --git a/src/file.c b/src/file.c
index d57c4e1..be18d72 100644
--- a/src/file.c
+++ b/src/file.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -36,8 +37,8 @@
static int
compare (const void *vp1, const void *vp2)
{
- char * const *p1 = (char * const *) vp1;
- char * const *p2 = (char * const *) vp2;
+ char *const *p1 = (char *const *)vp1;
+ char *const *p2 = (char *const *)vp2;
return strcmp (*p1, *p2);
}
@@ -52,11 +53,12 @@ sort_strings (char **argv, size_t len)
* then it is updated with the pointer to the list of remaining names.
*/
static char **
-take_strings (guestfs_h *g, char *const *names, size_t n, char *const **lastp)
+take_strings (guestfs_h *g, char *const *names, size_t n,
+ char *const **lastp)
{
size_t i;
- char **ret = safe_malloc (g, (n+1) * sizeof (char *));
+ char **ret = safe_malloc (g, (n + 1) * sizeof (char *));
for (i = 0; names[i] != NULL && i < n; ++i)
ret[i] = names[i];
@@ -94,7 +96,7 @@ guestfs_impl_read_file (guestfs_h *g, const char *path, size_t *size_r)
if (guestfs_download (g, path, tmpfile) == -1)
goto err;
- fd = open (tmpfile, O_RDONLY|O_CLOEXEC);
+ fd = open (tmpfile, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
perrorf (g, "open: %s", tmpfile);
goto err;
@@ -106,7 +108,8 @@ guestfs_impl_read_file (guestfs_h *g, const char *path, size_t
*size_r)
goto err;
}
- /* Don't use safe_malloc, because we want to return an errno to the caller. */
+ /* Don't use safe_malloc, because we want to return an errno to the
+ * caller. */
size = statbuf.st_size;
ret = malloc (size + 1);
if (!ret) {
@@ -132,7 +135,7 @@ guestfs_impl_read_file (guestfs_h *g, const char *path, size_t
*size_r)
*size_r = size;
return ret;
- err:
+err:
free (ret);
if (fd >= 0)
close (fd);
@@ -160,7 +163,7 @@ guestfs_impl_read_lines (guestfs_h *g, const char *file)
for (i = 0; i < size; ++i)
if (buf[i] == '\n')
count++;
- if (size > 0 && buf[size-1] != '\n')
+ if (size > 0 && buf[size - 1] != '\n')
count++;
ret = malloc ((count + 1) * sizeof (char *));
@@ -175,8 +178,8 @@ guestfs_impl_read_lines (guestfs_h *g, const char *file)
for (i = 0; i < size; ++i) {
if (buf[i] == '\n') {
buf[i] = '\0';
- if (i+1 < size)
- ret[count++] = &buf[i+1];
+ if (i + 1 < size)
+ ret[count++] = &buf[i + 1];
}
}
}
@@ -192,13 +195,13 @@ guestfs_impl_read_lines (guestfs_h *g, const char *file)
goto err;
}
len = strlen (ret[i]);
- if (len > 0 && ret[i][len-1] == '\r')
- ret[i][len-1] = '\0';
+ if (len > 0 && ret[i][len - 1] == '\r')
+ ret[i][len - 1] = '\0';
}
return ret;
- err:
+err:
free (ret);
return NULL;
}
@@ -221,7 +224,7 @@ guestfs_impl_find (guestfs_h *g, const char *directory)
if (guestfs_find0 (g, directory, tmpfile) == -1)
goto err;
- fd = open (tmpfile, O_RDONLY|O_CLOEXEC);
+ fd = open (tmpfile, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
perrorf (g, "open: %s", tmpfile);
goto err;
@@ -233,7 +236,8 @@ guestfs_impl_find (guestfs_h *g, const char *directory)
goto err;
}
- /* Don't use safe_malloc, because we want to return an errno to the caller. */
+ /* Don't use safe_malloc, because we want to return an errno to the
+ * caller. */
size = statbuf.st_size;
buf = malloc (size);
if (!buf) {
@@ -272,7 +276,7 @@ guestfs_impl_find (guestfs_h *g, const char *directory)
ret[count++] = buf;
for (i = 0; i < size; ++i) {
if (buf[i] == '\0')
- ret[count++] = &buf[i+1];
+ ret[count++] = &buf[i + 1];
}
ret[--count] = NULL;
@@ -291,9 +295,9 @@ guestfs_impl_find (guestfs_h *g, const char *directory)
sort_strings (ret, count);
- return ret; /* caller frees */
+ return ret; /* caller frees */
- err:
+err:
free (ret);
if (fd >= 0)
close (fd);
@@ -301,9 +305,8 @@ guestfs_impl_find (guestfs_h *g, const char *directory)
}
static int
-write_or_append (guestfs_h *g, const char *path,
- const char *content, size_t size,
- int append)
+write_or_append (guestfs_h *g, const char *path, const char *content,
+ size_t size, int append)
{
CLEANUP_UNLINK_FREE char *tmpfile = NULL;
int fd = -1;
@@ -312,10 +315,10 @@ write_or_append (guestfs_h *g, const char *path,
/* If the content is small enough, use guestfs_internal_write{,_append}
* since that call is more efficient.
*/
- if (size <= 2*1024*1024)
- return
- (!append ? guestfs_internal_write : guestfs_internal_write_append)
- (g, path, content, size);
+ if (size <= 2 * 1024 * 1024)
+ return (!append
+ ? guestfs_internal_write
+ : guestfs_internal_write_append) (g, path, content, size);
if (guestfs_int_lazy_make_tmpdir (g) == -1)
goto err;
@@ -323,7 +326,7 @@ write_or_append (guestfs_h *g, const char *path,
/* Write the content out to a temporary file. */
tmpfile = safe_asprintf (g, "%s/write%d", g->tmpdir, ++g->unique);
- fd = open (tmpfile, O_WRONLY|O_CREAT|O_NOCTTY|O_CLOEXEC, 0600);
+ fd = open (tmpfile, O_WRONLY | O_CREAT | O_NOCTTY | O_CLOEXEC, 0600);
if (fd == -1) {
perrorf (g, "open: %s", tmpfile);
goto err;
@@ -343,8 +346,7 @@ write_or_append (guestfs_h *g, const char *path,
if (!append) {
if (guestfs_upload (g, tmpfile, path) == -1)
goto err;
- }
- else {
+ } else {
/* XXX Should have an 'upload-append' call to make this atomic. */
filesize = guestfs_filesize (g, path);
if (filesize == -1)
@@ -355,22 +357,22 @@ write_or_append (guestfs_h *g, const char *path,
return 0;
- err:
+err:
if (fd >= 0)
close (fd);
return -1;
}
int
-guestfs_impl_write (guestfs_h *g, const char *path,
- const char *content, size_t size)
+guestfs_impl_write (guestfs_h *g, const char *path, const char *content,
+ size_t size)
{
return write_or_append (g, path, content, size, 0);
}
int
guestfs_impl_write_append (guestfs_h *g, const char *path,
- const char *content, size_t size)
+ const char *content, size_t size)
{
return write_or_append (g, path, content, size, 1);
}
@@ -378,7 +380,7 @@ guestfs_impl_write_append (guestfs_h *g, const char *path,
#define LSTATNSLIST_MAX 1000
struct guestfs_statns_list *
-guestfs_impl_lstatnslist (guestfs_h *g, const char *dir, char * const*names)
+guestfs_impl_lstatnslist (guestfs_h *g, const char *dir, char *const *names)
{
size_t len = guestfs_int_count_strings (names);
size_t old_len;
@@ -394,7 +396,8 @@ guestfs_impl_lstatnslist (guestfs_h *g, const char *dir, char *
const*names)
/* Note we don't need to free up the strings because take_strings
* does not do a deep copy.
*/
- CLEANUP_FREE char **first = take_strings (g, names, LSTATNSLIST_MAX, &names);
+ CLEANUP_FREE char **first =
+ take_strings (g, names, LSTATNSLIST_MAX, &names);
len = len <= LSTATNSLIST_MAX ? 0 : len - LSTATNSLIST_MAX;
@@ -436,7 +439,8 @@ guestfs_impl_lxattrlist (guestfs_h *g, const char *dir, char *const
*names)
/* Note we don't need to free up the strings because take_strings
* does not do a deep copy.
*/
- CLEANUP_FREE char **first = take_strings (g, names, LXATTRLIST_MAX, &names);
+ CLEANUP_FREE char **first =
+ take_strings (g, names, LXATTRLIST_MAX, &names);
len = len <= LXATTRLIST_MAX ? 0 : len - LXATTRLIST_MAX;
xattrs = guestfs_internal_lxattrlist (g, dir, first);
@@ -455,7 +459,8 @@ guestfs_impl_lxattrlist (guestfs_h *g, const char *dir, char *const
*names)
/* We have to make a deep copy of the attribute name and value.
*/
ret->val[old_len].attrname = safe_strdup (g, xattrs->val[i].attrname);
- ret->val[old_len].attrval = safe_malloc (g, xattrs->val[i].attrval_len);
+ ret->val[old_len].attrval =
+ safe_malloc (g, xattrs->val[i].attrval_len);
ret->val[old_len].attrval_len = xattrs->val[i].attrval_len;
memcpy (ret->val[old_len].attrval, xattrs->val[i].attrval,
xattrs->val[i].attrval_len);
@@ -468,7 +473,8 @@ guestfs_impl_lxattrlist (guestfs_h *g, const char *dir, char *const
*names)
#define READLINK_MAX 1000
char **
-guestfs_impl_readlinklist (guestfs_h *g, const char *dir, char *const *names)
+guestfs_impl_readlinklist (guestfs_h *g, const char *dir,
+ char *const *names)
{
size_t len = guestfs_int_count_strings (names);
size_t old_len, ret_len = 0;
@@ -480,7 +486,8 @@ guestfs_impl_readlinklist (guestfs_h *g, const char *dir, char *const
*names)
* deep copy.
*/
CLEANUP_FREE char **links = NULL;
- CLEANUP_FREE char **first = take_strings (g, names, READLINK_MAX, &names);
+ CLEANUP_FREE char **first =
+ take_strings (g, names, READLINK_MAX, &names);
len = len <= READLINK_MAX ? 0 : len - READLINK_MAX;
links = guestfs_internal_readlinklist (g, dir, first);
@@ -495,11 +502,11 @@ guestfs_impl_readlinklist (guestfs_h *g, const char *dir, char
*const *names)
old_len = ret_len;
ret_len += guestfs_int_count_strings (links);
ret = safe_realloc (g, ret, ret_len * sizeof (char *));
- memcpy (&ret[old_len], links, (ret_len-old_len) * sizeof (char *));
+ memcpy (&ret[old_len], links, (ret_len - old_len) * sizeof (char *));
}
/* NULL-terminate the list. */
- ret = safe_realloc (g, ret, (ret_len+1) * sizeof (char *));
+ ret = safe_realloc (g, ret, (ret_len + 1) * sizeof (char *));
ret[ret_len] = NULL;
return ret;
@@ -523,7 +530,7 @@ guestfs_impl_ls (guestfs_h *g, const char *directory)
if (guestfs_ls0 (g, directory, tmpfile) == -1)
goto err;
- fd = open (tmpfile, O_RDONLY|O_CLOEXEC);
+ fd = open (tmpfile, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
perrorf (g, "open: %s", tmpfile);
goto err;
@@ -535,7 +542,8 @@ guestfs_impl_ls (guestfs_h *g, const char *directory)
goto err;
}
- /* Don't use safe_malloc, because we want to return an errno to the caller. */
+ /* Don't use safe_malloc, because we want to return an errno to the
+ * caller. */
size = statbuf.st_size;
buf = malloc (size);
if (!buf) {
@@ -573,7 +581,7 @@ guestfs_impl_ls (guestfs_h *g, const char *directory)
ret[count++] = buf;
for (i = 0; i < size; ++i) {
if (buf[i] == '\0')
- ret[count++] = &buf[i+1];
+ ret[count++] = &buf[i + 1];
}
ret[--count] = NULL;
@@ -592,9 +600,9 @@ guestfs_impl_ls (guestfs_h *g, const char *directory)
sort_strings (ret, count);
- return ret; /* caller frees */
+ return ret; /* caller frees */
- err:
+err:
free (ret);
if (fd >= 0)
close (fd);
@@ -631,7 +639,7 @@ guestfs_impl_stat (guestfs_h *g, const char *path)
ret = safe_malloc (g, sizeof *ret);
statns_to_old_stat (r, ret);
- return ret; /* caller frees */
+ return ret; /* caller frees */
}
struct guestfs_stat *
@@ -646,11 +654,11 @@ guestfs_impl_lstat (guestfs_h *g, const char *path)
ret = safe_malloc (g, sizeof *ret);
statns_to_old_stat (r, ret);
- return ret; /* caller frees */
+ return ret; /* caller frees */
}
struct guestfs_stat_list *
-guestfs_impl_lstatlist (guestfs_h *g, const char *dir, char * const*names)
+guestfs_impl_lstatlist (guestfs_h *g, const char *dir, char *const *names)
{
CLEANUP_FREE_STATNS_LIST struct guestfs_statns_list *r;
struct guestfs_stat_list *ret;
diff --git a/src/filearch.c b/src/filearch.c
index 5985b73..c674f59 100644
--- a/src/filearch.c
+++ b/src/filearch.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -39,31 +40,34 @@
#if defined(HAVE_LIBMAGIC)
-# ifdef HAVE_ATTRIBUTE_CLEANUP
-# define CLEANUP_MAGIC_T_FREE __attribute__((cleanup(cleanup_magic_t_free)))
+#ifdef HAVE_ATTRIBUTE_CLEANUP
+#define CLEANUP_MAGIC_T_FREE \
+ __attribute__ ((cleanup (cleanup_magic_t_free)))
static void
cleanup_magic_t_free (void *ptr)
{
- magic_t m = *(magic_t *) ptr;
+ magic_t m = *(magic_t *)ptr;
if (m)
magic_close (m);
}
-# else
-# define CLEANUP_MAGIC_T_FREE
-# endif
+#else
+#define CLEANUP_MAGIC_T_FREE
+#endif
-COMPILE_REGEXP (re_file_elf,
- "ELF.*(MSB|LSB).*(?:executable|shared object|relocatable),
(.+?),", 0)
+COMPILE_REGEXP (
+ re_file_elf,
+ "ELF.*(MSB|LSB).*(?:executable|shared object|relocatable), (.+?),", 0)
COMPILE_REGEXP (re_elf_ppc64, ".*64.*PowerPC", 0)
/* Convert output from 'file' command on ELF files to the canonical
* architecture string. Caller must free the result.
*/
static char *
-canonical_elf_arch (guestfs_h *g, const char *endianness, const char *elf_arch)
+canonical_elf_arch (guestfs_h *g, const char *endianness,
+ const char *elf_arch)
{
const char *r;
char *ret;
@@ -91,8 +95,7 @@ canonical_elf_arch (guestfs_h *g, const char *endianness, const char
*elf_arch)
error (g, "file_architecture: unknown endianness '%s'",
endianness);
return NULL;
}
- }
- else if (strstr (elf_arch, "PowerPC"))
+ } else if (strstr (elf_arch, "PowerPC"))
r = "ppc";
else if (strstr (elf_arch, "ARM aarch64"))
r = "aarch64";
@@ -164,15 +167,9 @@ magic_for_file (guestfs_h *g, const char *filename, bool
*loading_ok,
/* Download and uncompress the cpio file to find binaries within. */
static const char *initrd_binaries[] = {
- "bin/ls",
- "bin/rm",
- "bin/modprobe",
- "sbin/modprobe",
- "bin/sh",
- "bin/bash",
- "bin/dash",
- "bin/nash",
- NULL
+ "bin/ls", "bin/rm", "bin/modprobe",
+ "sbin/modprobe", "bin/sh", "bin/bash",
+ "bin/dash", "bin/nash", NULL
};
static char *
@@ -202,8 +199,8 @@ cpio_arch (guestfs_h *g, const char *file, const char *path)
/* Security: Refuse to download initrd if it is huge. */
size = guestfs_filesize (g, path);
if (size == -1 || size > 100000000) {
- error (g, _("size of %s unreasonable (%" PRIi64 " bytes)"),
- path, size);
+ error (g, _("size of %s unreasonable (%" PRIi64 " bytes)"),
path,
+ size);
goto out;
}
@@ -218,7 +215,7 @@ cpio_arch (guestfs_h *g, const char *file, const char *path)
/* Construct a command to extract named binaries from the initrd file. */
guestfs_int_cmd_add_string_unquoted (cmd, "cd ");
- guestfs_int_cmd_add_string_quoted (cmd, dir);
+ guestfs_int_cmd_add_string_quoted (cmd, dir);
guestfs_int_cmd_add_string_unquoted (cmd, " && ");
guestfs_int_cmd_add_string_unquoted (cmd, method);
guestfs_int_cmd_add_string_unquoted (cmd, " initrd | cpio --quiet -id");
@@ -237,7 +234,7 @@ cpio_arch (guestfs_h *g, const char *file, const char *path)
for (i = 0; initrd_binaries[i] != NULL; ++i) {
CLEANUP_FREE char *bin =
- safe_asprintf (g, "%s/%s", dir, initrd_binaries[i]);
+ safe_asprintf (g, "%s/%s", dir, initrd_binaries[i]);
if (is_regular_file (bin)) {
bool loading_ok, matched;
@@ -247,9 +244,10 @@ cpio_arch (guestfs_h *g, const char *file, const char *path)
goto out;
}
}
- error (g, "file_architecture: could not determine architecture of cpio
archive");
+ error (g, "file_architecture: could not determine architecture of cpio "
+ "archive");
- out:
+out:
guestfs_int_recursive_remove_dir (g, dir);
return ret;
@@ -274,8 +272,8 @@ compressed_file_arch (guestfs_h *g, const char *path, const char
*method)
/* Security: Refuse to download file if it is huge. */
size = guestfs_filesize (g, path);
if (size == -1 || size > 10000000) {
- error (g, _("size of %s unreasonable (%" PRIi64 " bytes)"),
- path, size);
+ error (g, _("size of %s unreasonable (%" PRIi64 " bytes)"),
path,
+ size);
goto out;
}
@@ -307,9 +305,10 @@ compressed_file_arch (guestfs_h *g, const char *path, const char
*method)
ret = magic_for_file (g, tempfile_extracted, NULL, &matched);
if (!matched)
- error (g, "file_architecture: could not determine architecture of compressed
file");
+ error (g, "file_architecture: could not determine architecture of "
+ "compressed file");
- out:
+out:
guestfs_int_recursive_remove_dir (g, dir);
return ret;
@@ -345,21 +344,23 @@ guestfs_impl_file_architecture (guestfs_h *g, const char *path)
else
error (g, "file_architecture: unknown architecture: %s", path);
- return ret; /* caller frees */
+ return ret; /* caller frees */
}
#else /* no libmagic at compile time */
/* XXX Should be an optgroup. */
-#define NOT_IMPL(r) \
- error (g, _("file-architecture API not available since this version of libguestfs
was compiled without the libmagic library")); \
+#define NOT_IMPL(r) \
+ error (g, \
+ _("file-architecture API not available since this version of " \
+ "libguestfs was compiled without the libmagic library")); \
return r
char *
guestfs_impl_file_architecture (guestfs_h *g, const char *path)
{
- NOT_IMPL(NULL);
+ NOT_IMPL (NULL);
}
#endif /* no libmagic at compile time */
diff --git a/src/fuse.c b/src/fuse.c
index cb8274f..7cb8de3 100644
--- a/src/fuse.c
+++ b/src/fuse.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -55,39 +56,43 @@ static int init_dir_caches (guestfs_h *);
static void free_dir_caches (guestfs_h *);
static void dir_cache_remove_all_expired (guestfs_h *, time_t now);
static void dir_cache_invalidate (guestfs_h *, const char *path);
-static int lsc_insert (guestfs_h *, const char *path, const char *name, time_t now,
struct stat const *statbuf);
-static int xac_insert (guestfs_h *, const char *path, const char *name, time_t now,
struct guestfs_xattr_list *xattrs);
-static int rlc_insert (guestfs_h *, const char *path, const char *name, time_t now, char
*link);
+static int lsc_insert (guestfs_h *, const char *path, const char *name,
+ time_t now, struct stat const *statbuf);
+static int xac_insert (guestfs_h *, const char *path, const char *name,
+ time_t now, struct guestfs_xattr_list *xattrs);
+static int rlc_insert (guestfs_h *, const char *path, const char *name,
+ time_t now, char *link);
static const struct stat *lsc_lookup (guestfs_h *, const char *pathname);
-static const struct guestfs_xattr_list *xac_lookup (guestfs_h *, const char *pathname);
+static const struct guestfs_xattr_list *xac_lookup (guestfs_h *,
+ const char *pathname);
static const char *rlc_lookup (guestfs_h *, const char *pathname);
/* This lock protects access to g->localmountpoint. */
gl_lock_define_initialized (static, mount_local_lock);
-#define DECL_G() guestfs_h *g = fuse_get_context()->private_data
-#define DEBUG_CALL(fs,...) \
- if (g->ml_debug_calls) { \
- debug (g, \
- "%s: %s (" fs ")", \
- g->localmountpoint, __func__, ## __VA_ARGS__); \
+#define DECL_G() guestfs_h *g = fuse_get_context ()->private_data
+#define DEBUG_CALL(fs, ...) \
+ if (g->ml_debug_calls) { \
+ debug (g, "%s: %s (" fs ")", g->localmountpoint, __func__,
\
+ ##__VA_ARGS__); \
}
-#define RETURN_ERRNO \
- do { \
- int ret_errno = guestfs_last_errno (g); \
- \
- /* 0 doesn't mean "no error". It means the errno was not \
- * captured. Therefore we have to substitute an errno here. \
- */ \
- if (ret_errno == 0) \
- ret_errno = EINVAL; \
- \
- return -ret_errno; \
+#define RETURN_ERRNO \
+ do { \
+ int ret_errno = guestfs_last_errno (g); \
+ \
+ /* 0 doesn't mean "no error". It means the errno was not
\
+ * captured. Therefore we have to substitute an errno here. \
+ */ \
+ if (ret_errno == 0) \
+ ret_errno = EINVAL; \
+ \
+ return -ret_errno; \
} while (0)
static struct guestfs_xattr_list *
-copy_xattr_list (guestfs_h *g, const struct guestfs_xattr *first, size_t num)
+copy_xattr_list (guestfs_h *g, const struct guestfs_xattr *first,
+ size_t num)
{
struct guestfs_xattr_list *xattrs;
size_t i;
@@ -125,7 +130,7 @@ mount_local_readdir (const char *path, void *buf, fuse_fill_dir_t
filler,
char **names;
CLEANUP_FREE_DIRENT_LIST struct guestfs_dirent_list *ents = NULL;
DECL_G ();
- DEBUG_CALL ("%s, %p, %ld", path, buf, (long) offset);
+ DEBUG_CALL ("%s, %p, %ld", path, buf, (long)offset);
time (&now);
@@ -141,16 +146,31 @@ mount_local_readdir (const char *path, void *buf, fuse_fill_dir_t
filler,
stat.st_ino = ents->val[i].ino;
switch (ents->val[i].ftyp) {
- case 'b': stat.st_mode = S_IFBLK; break;
- case 'c': stat.st_mode = S_IFCHR; break;
- case 'd': stat.st_mode = S_IFDIR; break;
- case 'f': stat.st_mode = S_IFIFO; break;
- case 'l': stat.st_mode = S_IFLNK; break;
- case 'r': stat.st_mode = S_IFREG; break;
- case 's': stat.st_mode = S_IFSOCK; break;
+ case 'b':
+ stat.st_mode = S_IFBLK;
+ break;
+ case 'c':
+ stat.st_mode = S_IFCHR;
+ break;
+ case 'd':
+ stat.st_mode = S_IFDIR;
+ break;
+ case 'f':
+ stat.st_mode = S_IFIFO;
+ break;
+ case 'l':
+ stat.st_mode = S_IFLNK;
+ break;
+ case 'r':
+ stat.st_mode = S_IFREG;
+ break;
+ case 's':
+ stat.st_mode = S_IFSOCK;
+ break;
case 'u':
case '?':
- default: stat.st_mode = 0;
+ default:
+ stat.st_mode = 0;
}
/* Copied from the example, which also ignores 'offset'. I'm
@@ -221,7 +241,8 @@ mount_local_readdir (const char *path, void *buf, fuse_fill_dir_t
filler,
++i;
first = &xattrs->val[i];
num = 0;
- for (; i < xattrs->len && strlen (xattrs->val[i].attrname)
> 0; ++i)
+ for (; i < xattrs->len && strlen (xattrs->val[i].attrname)
> 0;
+ ++i)
num++;
copy = copy_xattr_list (g, first, num);
@@ -243,7 +264,7 @@ mount_local_readdir (const char *path, void *buf, fuse_fill_dir_t
filler,
/* which is why we have to free links[i] here. */
free (links[i]);
}
- free (links); /* free the array, not the strings */
+ free (links); /* free the array, not the strings */
}
free (names);
@@ -328,36 +349,35 @@ mount_local_access (const char *path, int mask)
if (fuse->uid != 0) {
if (mask & R_OK)
ok = ok &&
- ( fuse->uid == statbuf.st_uid ? statbuf.st_mode & S_IRUSR
- : fuse->gid == statbuf.st_gid ? statbuf.st_mode & S_IRGRP
- : statbuf.st_mode & S_IROTH);
+ (fuse->uid == statbuf.st_uid
+ ? statbuf.st_mode & S_IRUSR
+ : fuse->gid == statbuf.st_gid ? statbuf.st_mode & S_IRGRP
+ : statbuf.st_mode & S_IROTH);
if (mask & W_OK)
ok = ok &&
- ( fuse->uid == statbuf.st_uid ? statbuf.st_mode & S_IWUSR
- : fuse->gid == statbuf.st_gid ? statbuf.st_mode & S_IWGRP
- : statbuf.st_mode & S_IWOTH);
+ (fuse->uid == statbuf.st_uid
+ ? statbuf.st_mode & S_IWUSR
+ : fuse->gid == statbuf.st_gid ? statbuf.st_mode & S_IWGRP
+ : statbuf.st_mode & S_IWOTH);
if (mask & X_OK)
ok = ok &&
- ( fuse->uid == statbuf.st_uid ? statbuf.st_mode & S_IXUSR
- : fuse->gid == statbuf.st_gid ? statbuf.st_mode & S_IXGRP
- : statbuf.st_mode & S_IXOTH);
+ (fuse->uid == statbuf.st_uid
+ ? statbuf.st_mode & S_IXUSR
+ : fuse->gid == statbuf.st_gid ? statbuf.st_mode & S_IXGRP
+ : statbuf.st_mode & S_IXOTH);
}
debug (g, "%s: "
- "testing access mask%s%s%s%s: "
- "caller UID:GID = %ju:%ju, "
- "file UID:GID = %ju:%ju, "
- "file mode = %o, "
- "result = %s",
- path,
- mask & R_OK ? " R_OK" : "",
- mask & W_OK ? " W_OK" : "",
- mask & X_OK ? " X_OK" : "",
- mask == 0 ? " 0" : "",
- (uintmax_t) fuse->uid, (uintmax_t) fuse->gid,
- (uintmax_t) statbuf.st_uid, (uintmax_t) statbuf.st_gid,
- statbuf.st_mode,
- ok ? "OK" : "EACCESS");
+ "testing access mask%s%s%s%s: "
+ "caller UID:GID = %ju:%ju, "
+ "file UID:GID = %ju:%ju, "
+ "file mode = %o, "
+ "result = %s",
+ path, mask & R_OK ? " R_OK" : "", mask & W_OK ?
" W_OK" : "",
+ mask & X_OK ? " X_OK" : "", mask == 0 ? " 0" :
"",
+ (uintmax_t)fuse->uid, (uintmax_t)fuse->gid,
+ (uintmax_t)statbuf.st_uid, (uintmax_t)statbuf.st_gid,
+ statbuf.st_mode, ok ? "OK" : "EACCESS");
return ok ? 0 : -EACCES;
}
@@ -390,7 +410,7 @@ mount_local_readlink (const char *path, char *buf, size_t size)
buf[len] = '\0';
if (free_it) {
- char *tmp = (char *) r;
+ char *tmp = (char *)r;
free (tmp);
}
@@ -402,9 +422,10 @@ mount_local_mknod (const char *path, mode_t mode, dev_t rdev)
{
int r;
DECL_G ();
- DEBUG_CALL ("%s, 0%o, 0x%jx", path, mode, (uintmax_t) rdev);
+ DEBUG_CALL ("%s, 0%o, 0x%jx", path, mode, (uintmax_t)rdev);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, path);
@@ -422,7 +443,8 @@ mount_local_mkdir (const char *path, mode_t mode)
DECL_G ();
DEBUG_CALL ("%s, 0%o", path, mode);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, path);
@@ -440,7 +462,8 @@ mount_local_unlink (const char *path)
DECL_G ();
DEBUG_CALL ("%s", path);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, path);
@@ -458,7 +481,8 @@ mount_local_rmdir (const char *path)
DECL_G ();
DEBUG_CALL ("%s", path);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, path);
@@ -476,7 +500,8 @@ mount_local_symlink (const char *from, const char *to)
DECL_G ();
DEBUG_CALL ("%s, %s", from, to);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, to);
@@ -494,7 +519,8 @@ mount_local_rename (const char *from, const char *to)
DECL_G ();
DEBUG_CALL ("%s, %s", from, to);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, from);
dir_cache_invalidate (g, to);
@@ -513,7 +539,8 @@ mount_local_link (const char *from, const char *to)
DECL_G ();
DEBUG_CALL ("%s, %s", from, to);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, from);
dir_cache_invalidate (g, to);
@@ -532,7 +559,8 @@ mount_local_chmod (const char *path, mode_t mode)
DECL_G ();
DEBUG_CALL ("%s, 0%o", path, mode);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, path);
@@ -548,9 +576,10 @@ mount_local_chown (const char *path, uid_t uid, gid_t gid)
{
int r;
DECL_G ();
- DEBUG_CALL ("%s, %ju, %ju", path, (uintmax_t) uid, (uintmax_t) gid);
+ DEBUG_CALL ("%s, %ju, %ju", path, (uintmax_t)uid, (uintmax_t)gid);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, path);
@@ -566,9 +595,10 @@ mount_local_truncate (const char *path, off_t size)
{
int r;
DECL_G ();
- DEBUG_CALL ("%s, %ld", path, (long) size);
+ DEBUG_CALL ("%s, %ld", path, (long)size);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, path);
@@ -586,10 +616,11 @@ mount_local_utimens (const char *path, const struct timespec ts[2])
time_t atsecs, mtsecs;
long atnsecs, mtnsecs;
DECL_G ();
- DEBUG_CALL ("%s, [{ %ld, %ld }, { %ld, %ld }]",
- path, ts[0].tv_sec, ts[0].tv_nsec, ts[1].tv_sec, ts[1].tv_nsec);
+ DEBUG_CALL ("%s, [{ %ld, %ld }, { %ld, %ld }]", path, ts[0].tv_sec,
+ ts[0].tv_nsec, ts[1].tv_sec, ts[1].tv_nsec);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, path);
@@ -630,7 +661,7 @@ mount_local_open (const char *path, struct fuse_file_info *fi)
{
int flags = fi->flags & O_ACCMODE;
DECL_G ();
- DEBUG_CALL ("%s, 0%o", path, (unsigned) fi->flags);
+ DEBUG_CALL ("%s, 0%o", path, (unsigned)fi->flags);
if (g->ml_read_only && flags != O_RDONLY)
return -EROFS;
@@ -646,7 +677,7 @@ mount_local_read (const char *path, char *buf, size_t size, off_t
offset,
size_t rsize;
const size_t limit = 2 * 1024 * 1024;
DECL_G ();
- DEBUG_CALL ("%s, %p, %zu, %ld", path, buf, size, (long) offset);
+ DEBUG_CALL ("%s, %p, %zu, %ld", path, buf, size, (long)offset);
/* The guestfs protocol limits size to somewhere over 2MB. We just
* reduce the requested size here accordingly and push the problem
@@ -678,9 +709,10 @@ mount_local_write (const char *path, const char *buf, size_t size,
const size_t limit = 2 * 1024 * 1024;
int r;
DECL_G ();
- DEBUG_CALL ("%s, %p, %zu, %ld", path, buf, size, (long) offset);
+ DEBUG_CALL ("%s, %p, %zu, %ld", path, buf, size, (long)offset);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, path);
@@ -751,13 +783,14 @@ mount_local_fsync (const char *path, int isdatasync,
static int
mount_local_setxattr (const char *path, const char *name, const char *value,
- size_t size, int flags)
+ size_t size, int flags)
{
int r;
DECL_G ();
DEBUG_CALL ("%s, %s, %p, %zu", path, name, value, size);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, path);
@@ -798,7 +831,7 @@ mount_local_getxattr (const char *path, const char *name, char
*value,
break;
}
- if (i == xattrs->len) { /* not found */
+ if (i == xattrs->len) { /* not found */
r = -ENOATTR;
goto out;
}
@@ -824,9 +857,9 @@ mount_local_getxattr (const char *path, const char *name, char
*value,
}
memcpy (value, xattrs->val[i].attrval, sz);
- out:
+out:
if (free_attrs)
- guestfs_free_xattr_list ((struct guestfs_xattr_list *) xattrs);
+ guestfs_free_xattr_list ((struct guestfs_xattr_list *)xattrs);
return r;
}
@@ -884,21 +917,22 @@ mount_local_listxattr (const char *path, char *list, size_t size)
}
}
- out:
+out:
if (free_attrs)
- guestfs_free_xattr_list ((struct guestfs_xattr_list *) xattrs);
+ guestfs_free_xattr_list ((struct guestfs_xattr_list *)xattrs);
return r;
}
static int
-mount_local_removexattr(const char *path, const char *name)
+mount_local_removexattr (const char *path, const char *name)
{
int r;
DECL_G ();
DEBUG_CALL ("%s, %s", path, name);
- if (g->ml_read_only) return -EROFS;
+ if (g->ml_read_only)
+ return -EROFS;
dir_cache_invalidate (g, path);
@@ -910,7 +944,7 @@ mount_local_removexattr(const char *path, const char *name)
}
static int
-mount_local_flush(const char *path, struct fuse_file_info *fi)
+mount_local_flush (const char *path, struct fuse_file_info *fi)
{
DECL_G ();
DEBUG_CALL ("%s", path);
@@ -924,37 +958,37 @@ mount_local_flush(const char *path, struct fuse_file_info *fi)
}
static struct fuse_operations mount_local_operations = {
- .getattr = mount_local_getattr,
- .access = mount_local_access,
- .readlink = mount_local_readlink,
- .readdir = mount_local_readdir,
- .mknod = mount_local_mknod,
- .mkdir = mount_local_mkdir,
- .symlink = mount_local_symlink,
- .unlink = mount_local_unlink,
- .rmdir = mount_local_rmdir,
- .rename = mount_local_rename,
- .link = mount_local_link,
- .chmod = mount_local_chmod,
- .chown = mount_local_chown,
- .truncate = mount_local_truncate,
- .utimens = mount_local_utimens,
- .open = mount_local_open,
- .read = mount_local_read,
- .write = mount_local_write,
- .statfs = mount_local_statfs,
- .release = mount_local_release,
- .fsync = mount_local_fsync,
- .setxattr = mount_local_setxattr,
- .getxattr = mount_local_getxattr,
- .listxattr = mount_local_listxattr,
- .removexattr = mount_local_removexattr,
- .flush = mount_local_flush,
+ .getattr = mount_local_getattr,
+ .access = mount_local_access,
+ .readlink = mount_local_readlink,
+ .readdir = mount_local_readdir,
+ .mknod = mount_local_mknod,
+ .mkdir = mount_local_mkdir,
+ .symlink = mount_local_symlink,
+ .unlink = mount_local_unlink,
+ .rmdir = mount_local_rmdir,
+ .rename = mount_local_rename,
+ .link = mount_local_link,
+ .chmod = mount_local_chmod,
+ .chown = mount_local_chown,
+ .truncate = mount_local_truncate,
+ .utimens = mount_local_utimens,
+ .open = mount_local_open,
+ .read = mount_local_read,
+ .write = mount_local_write,
+ .statfs = mount_local_statfs,
+ .release = mount_local_release,
+ .fsync = mount_local_fsync,
+ .setxattr = mount_local_setxattr,
+ .getxattr = mount_local_getxattr,
+ .listxattr = mount_local_listxattr,
+ .removexattr = mount_local_removexattr,
+ .flush = mount_local_flush,
};
int
guestfs_impl_mount_local (guestfs_h *g, const char *localmountpoint,
- const struct guestfs_mount_local_argv *optargs)
+ const struct guestfs_mount_local_argv *optargs)
{
const char *t;
struct fuse_args args = FUSE_ARGS_INIT (0, NULL);
@@ -1022,9 +1056,8 @@ guestfs_impl_mount_local (guestfs_h *g, const char
*localmountpoint,
debug (g, "%s: fuse_new", __func__);
/* Create the FUSE handle. */
- g->fuse = fuse_new (ch, &args,
- &mount_local_operations, sizeof mount_local_operations,
- g);
+ g->fuse = fuse_new (ch, &args, &mount_local_operations,
+ sizeof mount_local_operations, g);
if (!g->fuse) {
perrorf (g, _("fuse_new: %s"), localmountpoint);
fuse_unmount (localmountpoint, ch);
@@ -1066,7 +1099,9 @@ guestfs_impl_mount_local_run (guestfs_h *g)
r = guestfs_exists (g, "/");
guestfs_pop_error_handler (g);
if (r == -1) {
- error (g, _("you must call 'guestfs_mount' first to mount a filesystem
on '/'.\nNote: '%s' is still mounted. Use 'guestunmount %s' to
clean up."),
+ error (g, _("you must call 'guestfs_mount' first to mount a "
+ "filesystem on '/'.\nNote: '%s' is still mounted.
Use "
+ "'guestunmount %s' to clean up."),
g->localmountpoint, g->localmountpoint);
return -1;
}
@@ -1095,14 +1130,14 @@ void
guestfs_int_free_fuse (guestfs_h *g)
{
if (g->fuse)
- fuse_destroy (g->fuse); /* also closes the channel */
+ fuse_destroy (g->fuse); /* also closes the channel */
g->fuse = NULL;
free_dir_caches (g);
}
int
guestfs_impl_umount_local (guestfs_h *g,
- const struct guestfs_umount_local_argv *optargs)
+ const struct guestfs_umount_local_argv *optargs)
{
const char *retry;
int r;
@@ -1169,22 +1204,26 @@ guestfs_impl_umount_local (guestfs_h *g,
* if you like.
*/
-struct entry_common {
- char *pathname; /* full path to the file */
- time_t timeout; /* when this entry expires */
+struct entry_common
+{
+ char *pathname; /* full path to the file */
+ time_t timeout; /* when this entry expires */
};
-struct lsc_entry { /* lstat cache entry */
+struct lsc_entry
+{ /* lstat cache entry */
struct entry_common c;
- struct stat statbuf; /* statbuf */
+ struct stat statbuf; /* statbuf */
};
-struct xac_entry { /* xattr cache entry */
+struct xac_entry
+{ /* xattr cache entry */
struct entry_common c;
struct guestfs_xattr_list *xattrs;
};
-struct rlc_entry { /* readlink cache entry */
+struct rlc_entry
+{ /* readlink cache entry */
struct entry_common c;
char *link;
};
@@ -1264,7 +1303,8 @@ free_dir_caches (guestfs_h *g)
g->rlc_ht = NULL;
}
-struct gen_remove_data {
+struct gen_remove_data
+{
time_t now;
Hash_table *ht;
Hash_data_freer freer;
@@ -1311,8 +1351,8 @@ dir_cache_remove_all_expired (guestfs_h *g, time_t now)
}
static int
-gen_replace (guestfs_h *g, Hash_table *ht,
- struct entry_common *new_entry, Hash_data_freer freer)
+gen_replace (guestfs_h *g, Hash_table *ht, struct entry_common *new_entry,
+ Hash_data_freer freer)
{
struct entry_common *old_entry;
@@ -1331,8 +1371,7 @@ gen_replace (guestfs_h *g, Hash_table *ht,
}
static int
-lsc_insert (guestfs_h *g,
- const char *path, const char *name, time_t now,
+lsc_insert (guestfs_h *g, const char *path, const char *name, time_t now,
struct stat const *statbuf)
{
struct lsc_entry *entry;
@@ -1360,12 +1399,11 @@ lsc_insert (guestfs_h *g,
entry->c.timeout = now + g->ml_dir_cache_timeout;
- return gen_replace (g, g->lsc_ht, (struct entry_common *) entry, lsc_free);
+ return gen_replace (g, g->lsc_ht, (struct entry_common *)entry, lsc_free);
}
static int
-xac_insert (guestfs_h *g,
- const char *path, const char *name, time_t now,
+xac_insert (guestfs_h *g, const char *path, const char *name, time_t now,
struct guestfs_xattr_list *xattrs)
{
struct xac_entry *entry;
@@ -1393,12 +1431,11 @@ xac_insert (guestfs_h *g,
entry->c.timeout = now + g->ml_dir_cache_timeout;
- return gen_replace (g, g->xac_ht, (struct entry_common *) entry, xac_free);
+ return gen_replace (g, g->xac_ht, (struct entry_common *)entry, xac_free);
}
static int
-rlc_insert (guestfs_h *g,
- const char *path, const char *name, time_t now,
+rlc_insert (guestfs_h *g, const char *path, const char *name, time_t now,
char *link)
{
struct rlc_entry *entry;
@@ -1426,13 +1463,13 @@ rlc_insert (guestfs_h *g,
entry->c.timeout = now + g->ml_dir_cache_timeout;
- return gen_replace (g, g->rlc_ht, (struct entry_common *) entry, rlc_free);
+ return gen_replace (g, g->rlc_ht, (struct entry_common *)entry, rlc_free);
}
static const struct stat *
lsc_lookup (guestfs_h *g, const char *pathname)
{
- const struct entry_common key = { .pathname = (char *) pathname };
+ const struct entry_common key = {.pathname = (char *)pathname };
struct lsc_entry *entry;
time_t now;
@@ -1448,7 +1485,7 @@ lsc_lookup (guestfs_h *g, const char *pathname)
static const struct guestfs_xattr_list *
xac_lookup (guestfs_h *g, const char *pathname)
{
- const struct entry_common key = { .pathname = (char *) pathname };
+ const struct entry_common key = {.pathname = (char *)pathname };
struct xac_entry *entry;
time_t now;
@@ -1464,7 +1501,7 @@ xac_lookup (guestfs_h *g, const char *pathname)
static const char *
rlc_lookup (guestfs_h *g, const char *pathname)
{
- const struct entry_common key = { .pathname = (char *) pathname };
+ const struct entry_common key = {.pathname = (char *)pathname };
struct rlc_entry *entry;
time_t now;
@@ -1480,7 +1517,7 @@ rlc_lookup (guestfs_h *g, const char *pathname)
static void
gen_remove (Hash_table *ht, const char *pathname, Hash_data_freer freer)
{
- const struct entry_common key = { .pathname = (char *) pathname };
+ const struct entry_common key = {.pathname = (char *)pathname };
struct entry_common *entry;
entry = hash_delete (ht, &key);
@@ -1498,14 +1535,14 @@ dir_cache_invalidate (guestfs_h *g, const char *path)
#else /* !HAVE_FUSE */
-#define FUSE_NOT_SUPPORTED() \
- NOT_SUPPORTED (g, -1, _("FUSE is not supported in this build of " \
- "libguestfs because libfuse was not found " \
+#define FUSE_NOT_SUPPORTED() \
+ NOT_SUPPORTED (g, -1, _("FUSE is not supported in this build of " \
+ "libguestfs because libfuse was not found " \
"when libguestfs was compiled"))
int
guestfs_impl_mount_local (guestfs_h *g, const char *localmountpoint,
- const struct guestfs_mount_local_argv *optargs)
+ const struct guestfs_mount_local_argv *optargs)
{
FUSE_NOT_SUPPORTED ();
}
@@ -1518,7 +1555,7 @@ guestfs_impl_mount_local_run (guestfs_h *g)
int
guestfs_impl_umount_local (guestfs_h *g,
- const struct guestfs_umount_local_argv *optargs)
+ const struct guestfs_umount_local_argv *optargs)
{
FUSE_NOT_SUPPORTED ();
}
diff --git a/src/guestfs-internal-all.h b/src/guestfs-internal-all.h
index af30e58..810cd65 100644
--- a/src/guestfs-internal-all.h
+++ b/src/guestfs-internal-all.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
/* NB: This contains ONLY definitions which are shared by libguestfs
@@ -25,40 +26,43 @@
/* This is also defined in <guestfs.h>, so don't redefine it. */
#if defined(__GNUC__) && !defined(GUESTFS_GCC_VERSION)
-# define GUESTFS_GCC_VERSION \
- (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+#define GUESTFS_GCC_VERSION \
+ (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
-#if !defined(__attribute__) && defined(__GNUC__) && GUESTFS_GCC_VERSION
< 20800 /* gcc < 2.8 */
-# define __attribute__(x) /* empty */
+#if !defined(__attribute__) && defined(__GNUC__) &&
\
+ GUESTFS_GCC_VERSION < 20800 /* gcc < 2.8 */
+#define __attribute__(x) /* empty */
#endif
#ifndef ATTRIBUTE_UNUSED
-# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
#endif
-#define STREQ(a,b) (strcmp((a),(b)) == 0)
-#define STRCASEEQ(a,b) (strcasecmp((a),(b)) == 0)
-#define STRNEQ(a,b) (strcmp((a),(b)) != 0)
-#define STRCASENEQ(a,b) (strcasecmp((a),(b)) != 0)
-#define STREQLEN(a,b,n) (strncmp((a),(b),(n)) == 0)
-#define STRCASEEQLEN(a,b,n) (strncasecmp((a),(b),(n)) == 0)
-#define STRNEQLEN(a,b,n) (strncmp((a),(b),(n)) != 0)
-#define STRCASENEQLEN(a,b,n) (strncasecmp((a),(b),(n)) != 0)
-#define STRPREFIX(a,b) (strncmp((a),(b),strlen((b))) == 0)
-#define STRCASEPREFIX(a,b) (strncasecmp((a),(b),strlen((b))) == 0)
-#define STRSUFFIX(a,b) (strlen((a)) >= strlen((b)) &&
STREQ((a)+strlen((a))-strlen((b)),(b)))
+#define STREQ(a, b) (strcmp ((a), (b)) == 0)
+#define STRCASEEQ(a, b) (strcasecmp ((a), (b)) == 0)
+#define STRNEQ(a, b) (strcmp ((a), (b)) != 0)
+#define STRCASENEQ(a, b) (strcasecmp ((a), (b)) != 0)
+#define STREQLEN(a, b, n) (strncmp ((a), (b), (n)) == 0)
+#define STRCASEEQLEN(a, b, n) (strncasecmp ((a), (b), (n)) == 0)
+#define STRNEQLEN(a, b, n) (strncmp ((a), (b), (n)) != 0)
+#define STRCASENEQLEN(a, b, n) (strncasecmp ((a), (b), (n)) != 0)
+#define STRPREFIX(a, b) (strncmp ((a), (b), strlen ((b))) == 0)
+#define STRCASEPREFIX(a, b) (strncasecmp ((a), (b), strlen ((b))) == 0)
+#define STRSUFFIX(a, b) \
+ (strlen ((a)) >= strlen ((b)) && \
+ STREQ ((a) + strlen ((a)) - strlen ((b)), (b)))
#ifndef SOCK_CLOEXEC
#define SOCK_CLOEXEC 0
#endif
#ifndef MAX
-#define MAX(a,b) ((a)>(b)?(a):(b))
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
#endif
#ifndef MIN
-#define MIN(a,b) ((a)<(b)?(a):(b))
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
#endif
#ifdef __APPLE__
@@ -68,28 +72,23 @@
/* Macro which compiles the regexp once when the program/library is
* loaded, and frees it when the library is unloaded.
*/
-#define COMPILE_REGEXP(name,pattern,options) \
- static void compile_regexp_##name (void) __attribute__((constructor)); \
- static void free_regexp_##name (void) __attribute__((destructor)); \
- static pcre *name; \
- \
- static void \
- compile_regexp_##name (void) \
- { \
- const char *err; \
- int offset; \
- name = pcre_compile ((pattern), (options), &err, &offset, NULL); \
- if (name == NULL) { \
- ignore_value (write (2, err, strlen (err))); \
- abort (); \
- } \
- } \
- \
- static void \
- free_regexp_##name (void) \
- { \
- pcre_free (name); \
- }
+#define COMPILE_REGEXP(name, pattern, options) \
+ static void compile_regexp_##name (void) __attribute__ ((constructor)); \
+ static void free_regexp_##name (void) __attribute__ ((destructor)); \
+ static pcre *name; \
+ \
+ static void compile_regexp_##name (void) \
+ { \
+ const char *err; \
+ int offset; \
+ name = pcre_compile ((pattern), (options), &err, &offset, NULL); \
+ if (name == NULL) { \
+ ignore_value (write (2, err, strlen (err))); \
+ abort (); \
+ } \
+ } \
+ \
+ static void free_regexp_##name (void) { pcre_free (name); }
/* The type field of a parsed mountable.
*
@@ -98,9 +97,9 @@
*/
typedef enum {
- MOUNTABLE_DEVICE, /* A bare device */
- MOUNTABLE_BTRFSVOL, /* A btrfs subvolume: device + volume */
- MOUNTABLE_PATH /* An already mounted path: device = path */
+ MOUNTABLE_DEVICE, /* A bare device */
+ MOUNTABLE_BTRFSVOL, /* A btrfs subvolume: device + volume */
+ MOUNTABLE_PATH /* An already mounted path: device = path */
} mountable_type_t;
#endif /* GUESTFS_INTERNAL_ALL_H_ */
diff --git a/src/guestfs-internal-frontend.h b/src/guestfs-internal-frontend.h
index 7f10906..8c889b7 100644
--- a/src/guestfs-internal-frontend.h
+++ b/src/guestfs-internal-frontend.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
/* NB: This contains ONLY definitions which are shared by libguestfs
@@ -32,31 +33,33 @@
#include "guestfs-internal-all.h"
-#define _(str) dgettext(PACKAGE, (str))
-#define N_(str) dgettext(PACKAGE, (str))
+#define _(str) dgettext (PACKAGE, (str))
+#define N_(str) dgettext (PACKAGE, (str))
#ifdef HAVE_ATTRIBUTE_CLEANUP
-#define CLEANUP_FREE __attribute__((cleanup(guestfs_int_cleanup_free)))
-#define CLEANUP_FREE_STRING_LIST \
- __attribute__((cleanup(guestfs_int_cleanup_free_string_list)))
-#define CLEANUP_HASH_FREE \
- __attribute__((cleanup(guestfs_int_cleanup_hash_free)))
-#define CLEANUP_UNLINK_FREE \
- __attribute__((cleanup(guestfs_int_cleanup_unlink_free)))
-#define CLEANUP_XMLBUFFERFREE \
- __attribute__((cleanup(guestfs_int_cleanup_xmlBufferFree)))
-#define CLEANUP_XMLFREEDOC \
- __attribute__((cleanup(guestfs_int_cleanup_xmlFreeDoc)))
-#define CLEANUP_XMLFREEURI \
- __attribute__((cleanup(guestfs_int_cleanup_xmlFreeURI)))
-#define CLEANUP_XMLFREETEXTWRITER \
- __attribute__((cleanup(guestfs_int_cleanup_xmlFreeTextWriter)))
-#define CLEANUP_XMLXPATHFREECONTEXT \
- __attribute__((cleanup(guestfs_int_cleanup_xmlXPathFreeContext)))
-#define CLEANUP_XMLXPATHFREEOBJECT \
- __attribute__((cleanup(guestfs_int_cleanup_xmlXPathFreeObject)))
-#define CLEANUP_FCLOSE __attribute__((cleanup(guestfs_int_cleanup_fclose)))
-#define CLEANUP_PCLOSE __attribute__((cleanup(guestfs_int_cleanup_pclose)))
+#define CLEANUP_FREE __attribute__ ((cleanup (guestfs_int_cleanup_free)))
+#define CLEANUP_FREE_STRING_LIST \
+ __attribute__ ((cleanup (guestfs_int_cleanup_free_string_list)))
+#define CLEANUP_HASH_FREE \
+ __attribute__ ((cleanup (guestfs_int_cleanup_hash_free)))
+#define CLEANUP_UNLINK_FREE \
+ __attribute__ ((cleanup (guestfs_int_cleanup_unlink_free)))
+#define CLEANUP_XMLBUFFERFREE \
+ __attribute__ ((cleanup (guestfs_int_cleanup_xmlBufferFree)))
+#define CLEANUP_XMLFREEDOC \
+ __attribute__ ((cleanup (guestfs_int_cleanup_xmlFreeDoc)))
+#define CLEANUP_XMLFREEURI \
+ __attribute__ ((cleanup (guestfs_int_cleanup_xmlFreeURI)))
+#define CLEANUP_XMLFREETEXTWRITER \
+ __attribute__ ((cleanup (guestfs_int_cleanup_xmlFreeTextWriter)))
+#define CLEANUP_XMLXPATHFREECONTEXT \
+ __attribute__ ((cleanup (guestfs_int_cleanup_xmlXPathFreeContext)))
+#define CLEANUP_XMLXPATHFREEOBJECT \
+ __attribute__ ((cleanup (guestfs_int_cleanup_xmlXPathFreeObject)))
+#define CLEANUP_FCLOSE \
+ __attribute__ ((cleanup (guestfs_int_cleanup_fclose)))
+#define CLEANUP_PCLOSE \
+ __attribute__ ((cleanup (guestfs_int_cleanup_pclose)))
#else
#define CLEANUP_FREE
#define CLEANUP_FREE_STRING_LIST
@@ -79,7 +82,10 @@ extern char *guestfs_int_concat_strings (char *const *);
extern char **guestfs_int_copy_string_list (char *const *);
extern char *guestfs_int_join_strings (const char *sep, char *const *);
extern char **guestfs_int_split_string (char sep, const char *);
-extern char *guestfs_int_exit_status_to_string (int status, const char *cmd_name, char
*buffer, size_t buflen);
+extern char *guestfs_int_exit_status_to_string (int status,
+ const char *cmd_name,
+ char *buffer,
+ size_t buflen);
extern int guestfs_int_random_string (char *ret, size_t len);
extern char *guestfs_int_drive_name (size_t index, char *ret);
extern ssize_t guestfs_int_drive_index (const char *);
@@ -113,36 +119,38 @@ extern void guestfs_int_cleanup_pclose (void *ptr);
* that want to use 'guestfs_int_program_name'.
*/
#if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME == 1
-# define guestfs_int_program_name program_invocation_short_name
+#define guestfs_int_program_name program_invocation_short_name
#elif HAVE_GETPROGNAME
-# define guestfs_int_program_name getprogname()
+#define guestfs_int_program_name getprogname ()
#else
-# define guestfs_int_program_name "libguestfs"
+#define guestfs_int_program_name "libguestfs"
#endif
/* Close all file descriptors matching the condition. */
-#define close_file_descriptors(cond) do { \
- int max_fd = sysconf (_SC_OPEN_MAX); \
- int fd; \
- if (max_fd == -1) \
- max_fd = 1024; \
- if (max_fd > 65536) \
- max_fd = 65536; /* bound the amount of work we do here */ \
- for (fd = 0; fd < max_fd; ++fd) { \
- if (cond) \
- close (fd); \
- } \
+#define close_file_descriptors(cond) \
+ do { \
+ int max_fd = sysconf (_SC_OPEN_MAX); \
+ int fd; \
+ if (max_fd == -1) \
+ max_fd = 1024; \
+ if (max_fd > 65536) \
+ max_fd = 65536; /* bound the amount of work we do here */ \
+ for (fd = 0; fd < max_fd; ++fd) { \
+ if (cond) \
+ close (fd); \
+ } \
} while (0)
/* Not all language bindings know how to deal with Pointer arguments.
* Those that don't will use this macro which complains noisily and
* returns NULL.
*/
-#define POINTER_NOT_IMPLEMENTED(type) \
- ( \
- fprintf (stderr, "*** WARNING: this language binding does not support conversion
of Pointer(%s), so the current function will always fail. Patches to fix this should be
sent to the libguestfs upstream mailing list.\n", \
- type), \
- NULL \
-)
+#define POINTER_NOT_IMPLEMENTED(type) \
+ (fprintf (stderr, "*** WARNING: this language binding does not support " \
+ "conversion of Pointer(%s), so the current function " \
+ "will always fail. Patches to fix this should be " \
+ "sent to the libguestfs upstream mailing list.\n", \
+ type), \
+ NULL)
#endif /* GUESTFS_INTERNAL_FRONTEND_H_ */
diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h
index 61f384c..6fc9aec 100644
--- a/src/guestfs-internal.h
+++ b/src/guestfs-internal.h
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#ifndef GUESTFS_INTERNAL_H_
@@ -21,7 +22,7 @@
#include <stdbool.h>
-#include <rpc/types.h> /* Needed on libc's different than glibc. */
+#include <rpc/types.h> /* Needed on libc's different than glibc. */
#include <rpc/xdr.h>
#include <pcre.h>
@@ -34,9 +35,9 @@
#define MIN_LIBVIRT_MAJOR 0
#define MIN_LIBVIRT_MINOR 10
#define MIN_LIBVIRT_MICRO 2 /* XXX patches in > 2 already */
-#define MIN_LIBVIRT_VERSION (MIN_LIBVIRT_MAJOR * 1000000 + \
- MIN_LIBVIRT_MINOR * 1000 + \
- MIN_LIBVIRT_MICRO)
+#define MIN_LIBVIRT_VERSION \
+ (MIN_LIBVIRT_MAJOR * 1000000 + MIN_LIBVIRT_MINOR * 1000 + \
+ MIN_LIBVIRT_MICRO)
#ifdef HAVE_LIBVIRT
#include <libvirt/libvirt.h>
@@ -52,15 +53,14 @@
#if ENABLE_PROBES
#include <sys/sdt.h>
/* NB: The 'name' parameter is a literal identifier, NOT a string! */
-#define TRACE0(name) DTRACE_PROBE(guestfs, name)
-#define TRACE1(name, arg1) \
- DTRACE_PROBE(guestfs, name, (arg1))
-#define TRACE2(name, arg1, arg2) \
- DTRACE_PROBE(guestfs, name, (arg1), (arg2))
-#define TRACE3(name, arg1, arg2, arg3) \
- DTRACE_PROBE(guestfs, name, (arg1), (arg2), (arg3))
-#define TRACE4(name, arg1, arg2, arg3, arg4) \
- DTRACE_PROBE(guestfs, name, (arg1), (arg2), (arg3), (arg4))
+#define TRACE0(name) DTRACE_PROBE (guestfs, name)
+#define TRACE1(name, arg1) DTRACE_PROBE (guestfs, name, (arg1))
+#define TRACE2(name, arg1, arg2) \
+ DTRACE_PROBE (guestfs, name, (arg1), (arg2))
+#define TRACE3(name, arg1, arg2, arg3) \
+ DTRACE_PROBE (guestfs, name, (arg1), (arg2), (arg3))
+#define TRACE4(name, arg1, arg2, arg3, arg4) \
+ DTRACE_PROBE (guestfs, name, (arg1), (arg2), (arg3), (arg4))
#else /* !ENABLE_PROBES */
#define TRACE0(name)
#define TRACE1(name, arg1)
@@ -77,8 +77,8 @@
* creating device nodes.
*/
#ifdef __powerpc__
-# define DEFAULT_MEMSIZE 768
-# define MIN_MEMSIZE 256
+#define DEFAULT_MEMSIZE 768
+#define MIN_MEMSIZE 256
#endif
/* Kernel 3.19 is unable to uncompress the initramfs on aarch64 unless
@@ -87,16 +87,16 @@
* common on aarch64, treat this like the ppc case above.
*/
#ifdef __aarch64__
-# define DEFAULT_MEMSIZE 768
-# define MIN_MEMSIZE 256
+#define DEFAULT_MEMSIZE 768
+#define MIN_MEMSIZE 256
#endif
/* The default and minimum memory size for most users. */
#ifndef DEFAULT_MEMSIZE
-# define DEFAULT_MEMSIZE 500
+#define DEFAULT_MEMSIZE 500
#endif
#ifndef MIN_MEMSIZE
-# define MIN_MEMSIZE 128
+#define MIN_MEMSIZE 128
#endif
/* Timeout waiting for appliance to come up (seconds).
@@ -105,7 +105,7 @@
* configurable. Also it interacts with libguestfs-test-tool -t
* option.
*/
-#define APPLIANCE_TIMEOUT (20*60) /* 20 mins */
+#define APPLIANCE_TIMEOUT (20 * 60) /* 20 mins */
/* Some limits on what the inspection code will read, for safety. */
@@ -121,15 +121,15 @@
* create a lot of metadata so we really need to be careful about
* those.
*/
-#define MAX_SMALL_FILE_SIZE (2 * 1000 * 1000)
-#define MAX_AUGEAS_FILE_SIZE (100 * 1000)
+#define MAX_SMALL_FILE_SIZE (2 * 1000 * 1000)
+#define MAX_AUGEAS_FILE_SIZE (100 * 1000)
/* Maximum RPM or dpkg database we will download to /tmp. RPM
* 'Packages' database can get very large: 70 MB is roughly the
* standard size for a new Fedora install, and after lots of package
* installation/removal I have seen well over 100 MB databases.
*/
-#define MAX_PKG_DB_SIZE (300 * 1000 * 1000)
+#define MAX_PKG_DB_SIZE (300 * 1000 * 1000)
/* Maximum size of Windows explorer.exe. 2.6MB on Windows 7. */
#define MAX_WINDOWS_EXPLORER_SIZE (4 * 1000 * 1000)
@@ -163,11 +163,11 @@
/* Guestfs handle and associated structures. */
/* State. */
-enum state { CONFIG = 0, LAUNCHING = 1, READY = 2,
- NO_HANDLE = 0xebadebad };
+enum state { CONFIG = 0, LAUNCHING = 1, READY = 2, NO_HANDLE = 0xebadebad };
/* Event. */
-struct event {
+struct event
+{
uint64_t event_bitmask;
guestfs_event_callback cb;
void *opaque;
@@ -195,36 +195,40 @@ enum drive_protocol {
};
enum drive_transport {
- drive_transport_none = 0, /* no transport specified */
- drive_transport_tcp, /* +tcp */
- drive_transport_unix, /* +unix */
+ drive_transport_none = 0, /* no transport specified */
+ drive_transport_tcp, /* +tcp */
+ drive_transport_unix, /* +unix */
/* XXX In theory gluster+rdma could be supported here, but
* I have no idea what gluster+rdma URLs would look like.
*/
};
-struct drive_server {
+struct drive_server
+{
enum drive_transport transport;
/* This field is always non-NULL. */
- union {
- char *hostname; /* hostname or IP address as a string */
- char *socket; /* Unix domain socket */
+ union
+ {
+ char *hostname; /* hostname or IP address as a string */
+ char *socket; /* Unix domain socket */
} u;
- int port; /* port number */
+ int port; /* port number */
};
-struct drive_source {
+struct drive_source
+{
enum drive_protocol protocol;
/* Format (eg. raw, qcow2). NULL = autodetect. */
char *format;
/* This field is always non-NULL. It may be an empty string. */
- union {
- char *path; /* path to file (file) */
- char *exportname; /* name of export (nbd) */
+ union
+ {
+ char *path; /* path to file (file) */
+ char *exportname; /* name of export (nbd) */
} u;
/* For network transports, zero or more servers can be specified here.
@@ -247,7 +251,8 @@ enum discard {
};
/* There is one 'struct drive' per drive, including hot-plugged drives. */
-struct drive {
+struct drive
+{
/* Original source of the drive, eg. file:..., http:... */
struct drive_source src;
@@ -272,15 +277,17 @@ struct drive {
};
/* Extra hv parameters (from guestfs_config). */
-struct hv_param {
+struct hv_param
+{
struct hv_param *next;
char *hv_param;
- char *hv_value; /* May be NULL. */
+ char *hv_value; /* May be NULL. */
};
/* Backend operations. */
-struct backend_ops {
+struct backend_ops
+{
/* Size (in bytes) of the per-handle data structure needed by this
* backend. The data pointer is allocated and freed by libguestfs
* and passed to the functions in the 'void *data' parameter.
@@ -305,15 +312,18 @@ struct backend_ops {
int (*max_disks) (guestfs_h *g, void *data);
/* Hotplugging drives. */
- int (*hot_add_drive) (guestfs_h *g, void *data, struct drive *drv, size_t drv_index);
- int (*hot_remove_drive) (guestfs_h *g, void *data, struct drive *drv, size_t
drv_index);
+ int (*hot_add_drive) (guestfs_h *g, void *data, struct drive *drv,
+ size_t drv_index);
+ int (*hot_remove_drive) (guestfs_h *g, void *data, struct drive *drv,
+ size_t drv_index);
};
/* Connection module. A 'connection' represents the appliance console
* connection plus the daemon connection. It hides the underlying
* representation (POSIX sockets, virStreamPtr).
*/
-struct connection {
+struct connection
+{
const struct connection_ops *ops;
/* In the real struct, private data used by each connection module
@@ -321,8 +331,10 @@ struct connection {
*/
};
-struct connection_ops {
- /* Close everything and free the connection struct and any internal data. */
+struct connection_ops
+{
+ /* Close everything and free the connection struct and any internal data.
+ */
void (*free_connection) (guestfs_h *g, struct connection *);
/* Accept the connection (back to us) from the daemon.
@@ -343,24 +355,29 @@ struct connection_ops {
* return 0 to mean that the appliance closed the connection or
* otherwise went away. -1 means there's an error.
*/
- ssize_t (*read_data) (guestfs_h *g, struct connection *, void *buf, size_t len);
- ssize_t (*write_data) (guestfs_h *g, struct connection *, const void *buf, size_t
len);
+ ssize_t (*read_data) (guestfs_h *g, struct connection *, void *buf,
+ size_t len);
+ ssize_t (*write_data) (guestfs_h *g, struct connection *, const void *buf,
+ size_t len);
- /* Test if data is available to read on the daemon socket, without blocking.
+ /* Test if data is available to read on the daemon socket, without
+ * blocking.
* Returns: 1 = yes, 0 = no, -1 = error
*/
int (*can_read_data) (guestfs_h *g, struct connection *);
};
/* Stack of old error handlers. */
-struct error_cb_stack {
- struct error_cb_stack *next;
+struct error_cb_stack
+{
+ struct error_cb_stack *next;
guestfs_error_handler_cb error_cb;
- void * error_cb_data;
+ void *error_cb_data;
};
/* Cached queried features. */
-struct cached_feature {
+struct cached_feature
+{
char *group;
int result;
};
@@ -368,31 +385,31 @@ struct cached_feature {
/* The libguestfs handle. */
struct guestfs_h
{
- struct guestfs_h *next; /* Linked list of open handles. */
- enum state state; /* See the state machine diagram in guestfs(3)*/
+ struct guestfs_h *next; /* Linked list of open handles. */
+ enum state state; /* See the state machine diagram in guestfs(3)*/
/**** Configuration of the handle. ****/
- bool verbose; /* Debugging. */
- bool trace; /* Trace calls. */
- bool autosync; /* Autosync. */
- bool direct_mode; /* Direct mode. */
- bool recovery_proc; /* Create a recovery process. */
- bool enable_network; /* Enable the network. */
- bool selinux; /* selinux enabled? */
- bool pgroup; /* Create process group for children? */
- bool close_on_exit; /* Is this handle on the atexit list? */
+ bool verbose; /* Debugging. */
+ bool trace; /* Trace calls. */
+ bool autosync; /* Autosync. */
+ bool direct_mode; /* Direct mode. */
+ bool recovery_proc; /* Create a recovery process. */
+ bool enable_network; /* Enable the network. */
+ bool selinux; /* selinux enabled? */
+ bool pgroup; /* Create process group for children? */
+ bool close_on_exit; /* Is this handle on the atexit list? */
- int smp; /* If > 1, -smp flag passed to hv. */
- int memsize; /* Size of RAM (megabytes). */
+ int smp; /* If > 1, -smp flag passed to hv. */
+ int memsize; /* Size of RAM (megabytes). */
- char *path; /* Path to the appliance. */
- char *hv; /* Hypervisor (HV) binary. */
- char *append; /* Append to kernel command line. */
+ char *path; /* Path to the appliance. */
+ char *hv; /* Hypervisor (HV) binary. */
+ char *append; /* Append to kernel command line. */
- struct hv_param *hv_params; /* Extra hv parameters. */
+ struct hv_param *hv_params; /* Extra hv parameters. */
- char *program; /* Program name. */
- char *identifier; /* Handle identifier. */
+ char *program; /* Program name. */
+ char *identifier; /* Handle identifier. */
/* Array of drives added by add-drive* APIs.
*
@@ -414,20 +431,20 @@ struct guestfs_h
struct drive **drives;
size_t nr_drives;
-#define ITER_DRIVES(g,i,drv) \
- for (i = 0; i < (g)->nr_drives; ++i) \
+#define ITER_DRIVES(g, i, drv) \
+ for (i = 0; i < (g)->nr_drives; ++i) \
if (((drv) = (g)->drives[i]) != NULL)
/* Backend. NB: Use guestfs_int_set_backend to change the backend. */
- char *backend; /* The full string, always non-NULL. */
- char *backend_arg; /* Pointer to the argument part. */
+ char *backend; /* The full string, always non-NULL. */
+ char *backend_arg; /* Pointer to the argument part. */
const struct backend_ops *backend_ops;
- void *backend_data; /* Per-handle data. */
- char **backend_settings; /* Backend settings (can be NULL). */
+ void *backend_data; /* Per-handle data. */
+ char **backend_settings; /* Backend settings (can be NULL). */
/**** Runtime information. ****/
- char *last_error; /* Last error on handle. */
- int last_errnum; /* errno, or 0 if there was no errno */
+ char *last_error; /* Last error on handle. */
+ int last_errnum; /* errno, or 0 if there was no errno */
/* Temporary and cache directories. */
/* The actual temporary directory - this is not created with the
@@ -436,18 +453,19 @@ struct guestfs_h
char *tmpdir;
char *sockdir;
/* Environment variables that affect tmpdir/cachedir/sockdir locations. */
- char *env_tmpdir; /* $TMPDIR (NULL if not set) */
- char *env_runtimedir; /* $XDG_RUNTIME_DIR (NULL if not set)*/
+ char *env_tmpdir; /* $TMPDIR (NULL if not set) */
+ char *env_runtimedir; /* $XDG_RUNTIME_DIR (NULL if not set)*/
char *int_tmpdir; /* $LIBGUESTFS_TMPDIR or guestfs_set_tmpdir or NULL */
- char *int_cachedir; /* $LIBGUESTFS_CACHEDIR or guestfs_set_cachedir or NULL */
+ char *int_cachedir; /* $LIBGUESTFS_CACHEDIR or guestfs_set_cachedir or
+ NULL */
/* Error handler, plus stack of old error handlers. */
- guestfs_error_handler_cb error_cb;
- void * error_cb_data;
- struct error_cb_stack *error_cb_stack;
+ guestfs_error_handler_cb error_cb;
+ void *error_cb_data;
+ struct error_cb_stack *error_cb_stack;
/* Out of memory error handler. */
- guestfs_abort_cb abort_cb;
+ guestfs_abort_cb abort_cb;
/* Events. */
struct event *events;
@@ -468,7 +486,7 @@ struct guestfs_h
*/
int user_cancel;
- struct timeval launch_t; /* The time that we called guestfs_launch. */
+ struct timeval launch_t; /* The time that we called guestfs_launch. */
/* Used by bindtests. */
FILE *test_fp;
@@ -480,7 +498,7 @@ struct guestfs_h
int unique;
/*** Protocol. ***/
- struct connection *conn; /* Connection to appliance. */
+ struct connection *conn; /* Connection to appliance. */
int msg_next_serial;
#if HAVE_FUSE
@@ -490,11 +508,11 @@ struct guestfs_h
int ml_dir_cache_timeout; /* Directory cache timeout. */
Hash_table *lsc_ht, *xac_ht, *rlc_ht; /* Directory cache. */
int ml_read_only; /* If mounted read-only. */
- int ml_debug_calls; /* Extra debug info on each FUSE call. */
+ int ml_debug_calls; /* Extra debug info on each FUSE call. */
#endif
#ifdef HAVE_LIBVIRT_BACKEND
- /* Used by src/libvirt-auth.c. */
+/* Used by src/libvirt-auth.c. */
#define NR_CREDENTIAL_TYPES 9
unsigned int nr_supported_credentials;
int supported_credentials[NR_CREDENTIAL_TYPES];
@@ -590,7 +608,8 @@ enum inspect_os_package_management {
OS_PACKAGE_MANAGEMENT_APK,
};
-struct inspect_fs {
+struct inspect_fs
+{
int is_root;
char *mountable;
enum inspect_os_type type;
@@ -614,7 +633,8 @@ struct inspect_fs {
size_t nr_fstab;
};
-struct inspect_fstab_entry {
+struct inspect_fstab_entry
+{
char *mountable;
char *mountpoint;
};
@@ -624,19 +644,24 @@ struct guestfs_message_error;
struct guestfs_progress;
/* handle.c */
-extern int guestfs_int_get_backend_setting_bool (guestfs_h *g, const char *name);
+extern int guestfs_int_get_backend_setting_bool (guestfs_h *g,
+ const char *name);
/* alloc.c */
extern void *guestfs_int_safe_malloc (guestfs_h *g, size_t nbytes);
extern void *guestfs_int_safe_calloc (guestfs_h *g, size_t n, size_t s);
extern char *guestfs_int_safe_strdup (guestfs_h *g, const char *str);
-extern void *guestfs_int_safe_memdup (guestfs_h *g, const void *ptr, size_t size);
-extern void *guestfs_int_safe_realloc (guestfs_h *g, void *ptr, size_t nbytes);
+extern void *guestfs_int_safe_memdup (guestfs_h *g, const void *ptr,
+ size_t size);
+extern void *guestfs_int_safe_realloc (guestfs_h *g, void *ptr,
+ size_t nbytes);
extern char *guestfs_int_safe_strdup (guestfs_h *g, const char *str);
-extern char *guestfs_int_safe_strndup (guestfs_h *g, const char *str, size_t n);
-extern void *guestfs_int_safe_memdup (guestfs_h *g, const void *ptr, size_t size);
+extern char *guestfs_int_safe_strndup (guestfs_h *g, const char *str,
+ size_t n);
+extern void *guestfs_int_safe_memdup (guestfs_h *g, const void *ptr,
+ size_t size);
extern char *guestfs_int_safe_asprintf (guestfs_h *g, const char *fs, ...)
- __attribute__((format (printf,2,3)));
+ __attribute__ ((format (printf, 2, 3)));
#define safe_calloc guestfs_int_safe_calloc
#define safe_malloc guestfs_int_safe_malloc
@@ -649,59 +674,82 @@ extern char *guestfs_int_safe_asprintf (guestfs_h *g, const char
*fs, ...)
/* errors.c */
extern void guestfs_int_init_error_handler (guestfs_h *g);
-extern void guestfs_int_error_errno (guestfs_h *g, int errnum, const char *fs, ...)
- __attribute__((format (printf,3,4)));
+extern void guestfs_int_error_errno (guestfs_h *g, int errnum,
+ const char *fs, ...)
+ __attribute__ ((format (printf, 3, 4)));
extern void guestfs_int_perrorf (guestfs_h *g, const char *fs, ...)
- __attribute__((format (printf,2,3)));
+ __attribute__ ((format (printf, 2, 3)));
extern void guestfs_int_warning (guestfs_h *g, const char *fs, ...)
- __attribute__((format (printf,2,3)));
+ __attribute__ ((format (printf, 2, 3)));
extern void guestfs_int_debug (guestfs_h *g, const char *fs, ...)
- __attribute__((format (printf,2,3)));
+ __attribute__ ((format (printf, 2, 3)));
extern void guestfs_int_trace (guestfs_h *g, const char *fs, ...)
- __attribute__((format (printf,2,3)));
+ __attribute__ ((format (printf, 2, 3)));
-extern void guestfs_int_print_BufferIn (FILE *out, const char *buf, size_t buf_size);
-extern void guestfs_int_print_BufferOut (FILE *out, const char *buf, size_t buf_size);
+extern void guestfs_int_print_BufferIn (FILE *out, const char *buf,
+ size_t buf_size);
+extern void guestfs_int_print_BufferOut (FILE *out, const char *buf,
+ size_t buf_size);
-#define error(g,...) guestfs_int_error_errno((g),0,__VA_ARGS__)
+#define error(g, ...) guestfs_int_error_errno ((g), 0, __VA_ARGS__)
#define perrorf guestfs_int_perrorf
-#define warning(g,...) guestfs_int_warning((g),__VA_ARGS__)
-#define debug(g,...) \
- do { if ((g)->verbose) guestfs_int_debug ((g),__VA_ARGS__); } while (0)
+#define warning(g, ...) guestfs_int_warning ((g), __VA_ARGS__)
+#define debug(g, ...) \
+ do { \
+ if ((g)->verbose) \
+ guestfs_int_debug ((g), __VA_ARGS__); \
+ } while (0)
-#define NOT_SUPPORTED(g,errcode,...) \
- do { \
- guestfs_int_error_errno ((g), ENOTSUP, __VA_ARGS__); \
- return (errcode); \
- } \
- while (0)
+#define NOT_SUPPORTED(g, errcode, ...) \
+ do { \
+ guestfs_int_error_errno ((g), ENOTSUP, __VA_ARGS__); \
+ return (errcode); \
+ } while (0)
extern void guestfs_int_launch_failed_error (guestfs_h *g);
extern void guestfs_int_unexpected_close_error (guestfs_h *g);
extern void guestfs_int_launch_timeout (guestfs_h *g);
-extern void guestfs_int_external_command_failed (guestfs_h *g, int status, const char
*cmd_name, const char *extra);
+extern void guestfs_int_external_command_failed (guestfs_h *g, int status,
+ const char *cmd_name,
+ const char *extra);
/* actions-support.c */
-struct trace_buffer {
+struct trace_buffer
+{
FILE *fp;
char *buf;
size_t len;
bool opened;
};
-extern int guestfs_int_check_reply_header (guestfs_h *g, const struct
guestfs_message_header *hdr, unsigned int proc_nr, unsigned int serial);
-extern int guestfs_int_check_appliance_up (guestfs_h *g, const char *caller);
+extern int
+guestfs_int_check_reply_header (guestfs_h *g,
+ const struct guestfs_message_header *hdr,
+ unsigned int proc_nr, unsigned int serial);
+extern int guestfs_int_check_appliance_up (guestfs_h *g,
+ const char *caller);
extern void guestfs_int_trace_open (struct trace_buffer *tb);
-extern void guestfs_int_trace_send_line (guestfs_h *g, struct trace_buffer *tb);
+extern void guestfs_int_trace_send_line (guestfs_h *g,
+ struct trace_buffer *tb);
/* match.c */
-extern int guestfs_int_match (guestfs_h *g, const char *str, const pcre *re);
-extern char *guestfs_int_match1 (guestfs_h *g, const char *str, const pcre *re);
-extern int guestfs_int_match2 (guestfs_h *g, const char *str, const pcre *re, char
**ret1, char **ret2);
-extern int guestfs_int_match3 (guestfs_h *g, const char *str, const pcre *re, char
**ret1, char **ret2, char **ret3);
-extern int guestfs_int_match4 (guestfs_h *g, const char *str, const pcre *re, char
**ret1, char **ret2, char **ret3, char **ret4);
-extern int guestfs_int_match6 (guestfs_h *g, const char *str, const pcre *re, char
**ret1, char **ret2, char **ret3, char **ret4, char **ret5, char **ret6);
+extern int guestfs_int_match (guestfs_h *g, const char *str,
+ const pcre *re);
+extern char *guestfs_int_match1 (guestfs_h *g, const char *str,
+ const pcre *re);
+extern int guestfs_int_match2 (guestfs_h *g, const char *str,
+ const pcre *re, char **ret1, char **ret2);
+extern int guestfs_int_match3 (guestfs_h *g, const char *str,
+ const pcre *re, char **ret1, char **ret2,
+ char **ret3);
+extern int guestfs_int_match4 (guestfs_h *g, const char *str,
+ const pcre *re, char **ret1, char **ret2,
+ char **ret3, char **ret4);
+extern int guestfs_int_match6 (guestfs_h *g, const char *str,
+ const pcre *re, char **ret1, char **ret2,
+ char **ret3, char **ret4, char **ret5,
+ char **ret6);
#define match guestfs_int_match
#define match1 guestfs_int_match1
@@ -711,123 +759,192 @@ extern int guestfs_int_match6 (guestfs_h *g, const char *str,
const pcre *re, ch
#define match6 guestfs_int_match6
/* stringsbuf.c */
-struct stringsbuf {
+struct stringsbuf
+{
char **argv;
size_t size;
size_t alloc;
};
-#define DECLARE_STRINGSBUF(v) \
- struct stringsbuf (v) = { .argv = NULL, .size = 0, .alloc = 0 }
+#define DECLARE_STRINGSBUF(v) \
+ struct stringsbuf (v) = {.argv = NULL, .size = 0, .alloc = 0 }
-extern void guestfs_int_add_string_nodup (guestfs_h *g, struct stringsbuf *sb, char
*str);
-extern void guestfs_int_add_string (guestfs_h *g, struct stringsbuf *sb, const char
*str);
-extern void guestfs_int_add_sprintf (guestfs_h *g, struct stringsbuf *sb, const char *fs,
...)
- __attribute__((format (printf,3,4)));
-extern void guestfs_int_end_stringsbuf (guestfs_h *g, struct stringsbuf *sb);
+extern void guestfs_int_add_string_nodup (guestfs_h *g,
+ struct stringsbuf *sb, char *str);
+extern void guestfs_int_add_string (guestfs_h *g, struct stringsbuf *sb,
+ const char *str);
+extern void guestfs_int_add_sprintf (guestfs_h *g, struct stringsbuf *sb,
+ const char *fs, ...)
+ __attribute__ ((format (printf, 3, 4)));
+extern void guestfs_int_end_stringsbuf (guestfs_h *g,
+ struct stringsbuf *sb);
extern void guestfs_int_free_stringsbuf (struct stringsbuf *sb);
#ifdef HAVE_ATTRIBUTE_CLEANUP
-#define CLEANUP_FREE_STRINGSBUF
__attribute__((cleanup(guestfs_int_cleanup_free_stringsbuf)))
+#define CLEANUP_FREE_STRINGSBUF \
+ __attribute__ ((cleanup (guestfs_int_cleanup_free_stringsbuf)))
#else
#define CLEANUP_FREE_STRINGSBUF
#endif
extern void guestfs_int_cleanup_free_stringsbuf (struct stringsbuf *sb);
/* proto.c */
-extern int guestfs_int_send (guestfs_h *g, int proc_nr, uint64_t progress_hint, uint64_t
optargs_bitmask, xdrproc_t xdrp, char *args);
-extern int guestfs_int_recv (guestfs_h *g, const char *fn, struct guestfs_message_header
*hdr, struct guestfs_message_error *err, xdrproc_t xdrp, char *ret);
+extern int guestfs_int_send (guestfs_h *g, int proc_nr,
+ uint64_t progress_hint,
+ uint64_t optargs_bitmask, xdrproc_t xdrp,
+ char *args);
+extern int guestfs_int_recv (guestfs_h *g, const char *fn,
+ struct guestfs_message_header *hdr,
+ struct guestfs_message_error *err,
+ xdrproc_t xdrp, char *ret);
extern int guestfs_int_recv_discard (guestfs_h *g, const char *fn);
extern int guestfs_int_send_file (guestfs_h *g, const char *filename);
extern int guestfs_int_recv_file (guestfs_h *g, const char *filename);
-extern int guestfs_int_recv_from_daemon (guestfs_h *g, uint32_t *size_rtn, void
**buf_rtn);
-extern void guestfs_int_progress_message_callback (guestfs_h *g, const struct
guestfs_progress *message);
-extern void guestfs_int_log_message_callback (guestfs_h *g, const char *buf, size_t
len);
+extern int guestfs_int_recv_from_daemon (guestfs_h *g, uint32_t *size_rtn,
+ void **buf_rtn);
+extern void guestfs_int_progress_message_callback (
+ guestfs_h *g, const struct guestfs_progress *message);
+extern void guestfs_int_log_message_callback (guestfs_h *g, const char *buf,
+ size_t len);
/* conn-socket.c */
-extern struct connection *guestfs_int_new_conn_socket_listening (guestfs_h *g, int
daemon_accept_sock, int console_sock);
-extern struct connection *guestfs_int_new_conn_socket_connected (guestfs_h *g, int
daemon_sock, int console_sock);
+extern struct connection *
+guestfs_int_new_conn_socket_listening (guestfs_h *g, int daemon_accept_sock,
+ int console_sock);
+extern struct connection *
+guestfs_int_new_conn_socket_connected (guestfs_h *g, int daemon_sock,
+ int console_sock);
/* events.c */
extern void guestfs_int_call_callbacks_void (guestfs_h *g, uint64_t event);
-extern void guestfs_int_call_callbacks_message (guestfs_h *g, uint64_t event, const char
*buf, size_t buf_len);
-extern void guestfs_int_call_callbacks_array (guestfs_h *g, uint64_t event, const
uint64_t *array, size_t array_len);
+extern void guestfs_int_call_callbacks_message (guestfs_h *g,
+ uint64_t event,
+ const char *buf,
+ size_t buf_len);
+extern void guestfs_int_call_callbacks_array (guestfs_h *g, uint64_t event,
+ const uint64_t *array,
+ size_t array_len);
/* tmpdirs.c */
extern int guestfs_int_set_env_tmpdir (guestfs_h *g, const char *tmpdir);
-extern int guestfs_int_set_env_runtimedir (guestfs_h *g, const char *runtimedir);
+extern int guestfs_int_set_env_runtimedir (guestfs_h *g,
+ const char *runtimedir);
extern int guestfs_int_lazy_make_tmpdir (guestfs_h *g);
extern int guestfs_int_lazy_make_sockdir (guestfs_h *g);
extern void guestfs_int_remove_tmpdir (guestfs_h *g);
extern void guestfs_int_remove_sockdir (guestfs_h *g);
-extern void guestfs_int_recursive_remove_dir (guestfs_h *g, const char *dir);
+extern void guestfs_int_recursive_remove_dir (guestfs_h *g,
+ const char *dir);
/* whole-file.c */
-extern int guestfs_int_read_whole_file (guestfs_h *g, const char *filename, char
**data_r, size_t *size_r);
+extern int guestfs_int_read_whole_file (guestfs_h *g, const char *filename,
+ char **data_r, size_t *size_r);
/* drives.c */
extern size_t guestfs_int_checkpoint_drives (guestfs_h *g);
extern void guestfs_int_rollback_drives (guestfs_h *g, size_t);
extern void guestfs_int_add_dummy_appliance_drive (guestfs_h *g);
extern void guestfs_int_free_drives (guestfs_h *g);
-extern const char *guestfs_int_drive_protocol_to_string (enum drive_protocol protocol);
+extern const char *
+guestfs_int_drive_protocol_to_string (enum drive_protocol protocol);
/* appliance.c */
-extern int guestfs_int_build_appliance (guestfs_h *g, char **kernel, char **initrd, char
**appliance);
+extern int guestfs_int_build_appliance (guestfs_h *g, char **kernel,
+ char **initrd, char **appliance);
extern int guestfs_int_get_uefi (guestfs_h *g, char **code, char **vars);
/* launch.c */
-extern int64_t guestfs_int_timeval_diff (const struct timeval *x, const struct timeval
*y);
+extern int64_t guestfs_int_timeval_diff (const struct timeval *x,
+ const struct timeval *y);
extern void guestfs_int_launch_send_progress (guestfs_h *g, int perdozen);
-extern char *guestfs_int_appliance_command_line (guestfs_h *g, const char *appliance_dev,
int flags);
+extern char *guestfs_int_appliance_command_line (guestfs_h *g,
+ const char *appliance_dev,
+ int flags);
#define APPLIANCE_COMMAND_LINE_IS_TCG 1
const char *guestfs_int_get_cpu_model (int kvm);
-int guestfs_int_create_socketname (guestfs_h *g, const char *filename, char
(*sockname)[UNIX_PATH_MAX]);
-extern void guestfs_int_register_backend (const char *name, const struct backend_ops *);
+int guestfs_int_create_socketname (guestfs_h *g, const char *filename,
+ char (*sockname)[UNIX_PATH_MAX]);
+extern void guestfs_int_register_backend (const char *name,
+ const struct backend_ops *);
extern int guestfs_int_set_backend (guestfs_h *g, const char *method);
/* inspect.c */
extern void guestfs_int_free_inspect_info (guestfs_h *g);
-extern char *guestfs_int_download_to_tmp (guestfs_h *g, struct inspect_fs *fs, const char
*filename, const char *basename, uint64_t max_size);
-extern struct inspect_fs *guestfs_int_search_for_root (guestfs_h *g, const char *root);
+extern char *guestfs_int_download_to_tmp (guestfs_h *g,
+ struct inspect_fs *fs,
+ const char *filename,
+ const char *basename,
+ uint64_t max_size);
+extern struct inspect_fs *guestfs_int_search_for_root (guestfs_h *g,
+ const char *root);
extern int guestfs_int_is_partition (guestfs_h *g, const char *partition);
/* inspect-fs.c */
extern int guestfs_int_is_file_nocase (guestfs_h *g, const char *);
extern int guestfs_int_is_dir_nocase (guestfs_h *g, const char *);
extern int guestfs_int_check_for_filesystem_on (guestfs_h *g,
- const char *mountable);
+ const char *mountable);
extern int guestfs_int_parse_unsigned_int (guestfs_h *g, const char *str);
-extern int guestfs_int_parse_unsigned_int_ignore_trailing (guestfs_h *g, const char
*str);
-extern int guestfs_int_parse_major_minor (guestfs_h *g, struct inspect_fs *fs);
-extern char *guestfs_int_first_line_of_file (guestfs_h *g, const char *filename);
-extern int guestfs_int_first_egrep_of_file (guestfs_h *g, const char *filename, const
char *eregex, int iflag, char **ret);
-extern void guestfs_int_check_package_format (guestfs_h *g, struct inspect_fs *fs);
-extern void guestfs_int_check_package_management (guestfs_h *g, struct inspect_fs *fs);
-extern void guestfs_int_merge_fs_inspections (guestfs_h *g, struct inspect_fs *dst,
struct inspect_fs *src);
+extern int guestfs_int_parse_unsigned_int_ignore_trailing (guestfs_h *g,
+ const char *str);
+extern int guestfs_int_parse_major_minor (guestfs_h *g,
+ struct inspect_fs *fs);
+extern char *guestfs_int_first_line_of_file (guestfs_h *g,
+ const char *filename);
+extern int guestfs_int_first_egrep_of_file (guestfs_h *g,
+ const char *filename,
+ const char *eregex, int iflag,
+ char **ret);
+extern void guestfs_int_check_package_format (guestfs_h *g,
+ struct inspect_fs *fs);
+extern void guestfs_int_check_package_management (guestfs_h *g,
+ struct inspect_fs *fs);
+extern void guestfs_int_merge_fs_inspections (guestfs_h *g,
+ struct inspect_fs *dst,
+ struct inspect_fs *src);
/* inspect-fs-unix.c */
-extern int guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs);
-extern int guestfs_int_check_freebsd_root (guestfs_h *g, struct inspect_fs *fs);
-extern int guestfs_int_check_netbsd_root (guestfs_h *g, struct inspect_fs *fs);
-extern int guestfs_int_check_openbsd_root (guestfs_h *g, struct inspect_fs *fs);
-extern int guestfs_int_check_hurd_root (guestfs_h *g, struct inspect_fs *fs);
-extern int guestfs_int_check_minix_root (guestfs_h *g, struct inspect_fs *fs);
-extern int guestfs_int_check_coreos_root (guestfs_h *g, struct inspect_fs *fs);
-extern int guestfs_int_check_coreos_usr (guestfs_h *g, struct inspect_fs *fs);
+extern int guestfs_int_check_linux_root (guestfs_h *g,
+ struct inspect_fs *fs);
+extern int guestfs_int_check_freebsd_root (guestfs_h *g,
+ struct inspect_fs *fs);
+extern int guestfs_int_check_netbsd_root (guestfs_h *g,
+ struct inspect_fs *fs);
+extern int guestfs_int_check_openbsd_root (guestfs_h *g,
+ struct inspect_fs *fs);
+extern int guestfs_int_check_hurd_root (guestfs_h *g,
+ struct inspect_fs *fs);
+extern int guestfs_int_check_minix_root (guestfs_h *g,
+ struct inspect_fs *fs);
+extern int guestfs_int_check_coreos_root (guestfs_h *g,
+ struct inspect_fs *fs);
+extern int guestfs_int_check_coreos_usr (guestfs_h *g,
+ struct inspect_fs *fs);
/* inspect-fs-windows.c */
-extern char *guestfs_int_case_sensitive_path_silently (guestfs_h *g, const char *);
-extern char * guestfs_int_get_windows_systemroot (guestfs_h *g);
-extern int guestfs_int_check_windows_root (guestfs_h *g, struct inspect_fs *fs, char
*windows_systemroot);
+extern char *guestfs_int_case_sensitive_path_silently (guestfs_h *g,
+ const char *);
+extern char *guestfs_int_get_windows_systemroot (guestfs_h *g);
+extern int guestfs_int_check_windows_root (guestfs_h *g,
+ struct inspect_fs *fs,
+ char *windows_systemroot);
/* inspect-fs-cd.c */
-extern int guestfs_int_check_installer_root (guestfs_h *g, struct inspect_fs *fs);
-extern int guestfs_int_check_installer_iso (guestfs_h *g, struct inspect_fs *fs, const
char *device);
+extern int guestfs_int_check_installer_root (guestfs_h *g,
+ struct inspect_fs *fs);
+extern int guestfs_int_check_installer_iso (guestfs_h *g,
+ struct inspect_fs *fs,
+ const char *device);
/* dbdump.c */
-typedef int (*guestfs_int_db_dump_callback) (guestfs_h *g, const unsigned char *key,
size_t keylen, const unsigned char *value, size_t valuelen, void *opaque);
-extern int guestfs_int_read_db_dump (guestfs_h *g, const char *dumpfile, void *opaque,
guestfs_int_db_dump_callback callback);
+typedef int (*guestfs_int_db_dump_callback) (guestfs_h *g,
+ const unsigned char *key,
+ size_t keylen,
+ const unsigned char *value,
+ size_t valuelen, void *opaque);
+extern int guestfs_int_read_db_dump (guestfs_h *g, const char *dumpfile,
+ void *opaque,
+ guestfs_int_db_dump_callback callback);
/* lpj.c */
extern int guestfs_int_get_lpj (guestfs_h *g);
@@ -839,11 +956,14 @@ extern void guestfs_int_free_fuse (guestfs_h *g);
/* libvirt-auth.c */
#ifdef HAVE_LIBVIRT
-extern virConnectPtr guestfs_int_open_libvirt_connection (guestfs_h *g, const char *uri,
unsigned int flags);
+extern virConnectPtr
+guestfs_int_open_libvirt_connection (guestfs_h *g, const char *uri,
+ unsigned int flags);
#endif
/* osinfo.c */
-struct osinfo {
+struct osinfo
+{
/* Data provided by libosinfo database. */
enum inspect_os_type type;
enum inspect_os_distro distro;
@@ -866,27 +986,38 @@ struct osinfo {
pcre *re_publisher_id;
pcre *re_application_id;
};
-extern int guestfs_int_osinfo_map (guestfs_h *g, const struct guestfs_isoinfo *isoinfo,
const struct osinfo **osinfo_ret);
+extern int guestfs_int_osinfo_map (guestfs_h *g,
+ const struct guestfs_isoinfo *isoinfo,
+ const struct osinfo **osinfo_ret);
/* command.c */
struct command;
-typedef void (*cmd_stdout_callback) (guestfs_h *g, void *data, const char *line, size_t
len);
+typedef void (*cmd_stdout_callback) (guestfs_h *g, void *data,
+ const char *line, size_t len);
typedef int (*cmd_child_callback) (guestfs_h *g, void *data);
extern struct command *guestfs_int_new_command (guestfs_h *g);
extern void guestfs_int_cmd_add_arg (struct command *, const char *arg);
-extern void guestfs_int_cmd_add_arg_format (struct command *, const char *fs, ...)
- __attribute__((format (printf,2,3)));
-extern void guestfs_int_cmd_add_string_unquoted (struct command *, const char *str);
-extern void guestfs_int_cmd_add_string_quoted (struct command *, const char *str);
-extern void guestfs_int_cmd_set_stdout_callback (struct command *, cmd_stdout_callback
stdout_callback, void *data, unsigned flags);
-#define CMD_STDOUT_FLAG_LINE_BUFFER 0
-#define CMD_STDOUT_FLAG_UNBUFFERED 1
-#define CMD_STDOUT_FLAG_WHOLE_BUFFER 2
+extern void guestfs_int_cmd_add_arg_format (struct command *,
+ const char *fs, ...)
+ __attribute__ ((format (printf, 2, 3)));
+extern void guestfs_int_cmd_add_string_unquoted (struct command *,
+ const char *str);
+extern void guestfs_int_cmd_add_string_quoted (struct command *,
+ const char *str);
+extern void
+guestfs_int_cmd_set_stdout_callback (struct command *,
+ cmd_stdout_callback stdout_callback,
+ void *data, unsigned flags);
+#define CMD_STDOUT_FLAG_LINE_BUFFER 0
+#define CMD_STDOUT_FLAG_UNBUFFERED 1
+#define CMD_STDOUT_FLAG_WHOLE_BUFFER 2
extern void guestfs_int_cmd_set_stderr_to_stdout (struct command *);
-extern void guestfs_int_cmd_set_child_rlimit (struct command *, int resource, long
limit);
+extern void guestfs_int_cmd_set_child_rlimit (struct command *,
+ int resource, long limit);
extern void guestfs_int_cmd_clear_capture_errors (struct command *);
extern void guestfs_int_cmd_clear_close_files (struct command *);
-extern void guestfs_int_cmd_set_child_callback (struct command *, cmd_child_callback
child_callback, void *data);
+extern void guestfs_int_cmd_set_child_callback (
+ struct command *, cmd_child_callback child_callback, void *data);
extern int guestfs_int_cmd_run (struct command *);
extern void guestfs_int_cmd_close (struct command *);
extern int guestfs_int_cmd_pipe_run (struct command *cmd, const char *mode);
@@ -894,23 +1025,27 @@ extern int guestfs_int_cmd_pipe_wait (struct command *cmd);
extern char *guestfs_int_cmd_get_pipe_errors (struct command *cmd);
#ifdef HAVE_ATTRIBUTE_CLEANUP
-#define CLEANUP_CMD_CLOSE __attribute__((cleanup(guestfs_int_cleanup_cmd_close)))
+#define CLEANUP_CMD_CLOSE \
+ __attribute__ ((cleanup (guestfs_int_cleanup_cmd_close)))
#else
#define CLEANUP_CMD_CLOSE
#endif
extern void guestfs_int_cleanup_cmd_close (struct command **);
/* launch-direct.c */
-extern char *guestfs_int_drive_source_qemu_param (guestfs_h *g, const struct drive_source
*src);
-extern bool guestfs_int_discard_possible (guestfs_h *g, struct drive *drv, unsigned long
qemu_version);
+extern char *
+guestfs_int_drive_source_qemu_param (guestfs_h *g,
+ const struct drive_source *src);
+extern bool guestfs_int_discard_possible (guestfs_h *g, struct drive *drv,
+ unsigned long qemu_version);
/* launch-*.c constructors */
-void guestfs_int_init_direct_backend (void) __attribute__((constructor));
+void guestfs_int_init_direct_backend (void) __attribute__ ((constructor));
#ifdef HAVE_LIBVIRT_BACKEND
-void guestfs_int_init_libvirt_backend (void) __attribute__((constructor));
+void guestfs_int_init_libvirt_backend (void) __attribute__ ((constructor));
#endif
-void guestfs_int_init_uml_backend (void) __attribute__((constructor));
-void guestfs_int_init_unix_backend (void) __attribute__((constructor));
+void guestfs_int_init_uml_backend (void) __attribute__ ((constructor));
+void guestfs_int_init_unix_backend (void) __attribute__ ((constructor));
/* guid.c */
extern int guestfs_int_validate_guid (const char *);
diff --git a/src/guid.c b/src/guid.c
index a69f5ec..46aff44 100644
--- a/src/guid.c
+++ b/src/guid.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -28,7 +29,8 @@
#include "guestfs-internal.h"
/* Check whether a string supposed to contain a GUID actually contains it.
- * It can recognize strings either as '{21EC2020-3AEA-1069-A2DD-08002B30309D}'
+ * It can recognize strings either as
+ * '{21EC2020-3AEA-1069-A2DD-08002B30309D}'
* or '21EC2020-3AEA-1069-A2DD-08002B30309D'.
*/
int
@@ -40,7 +42,7 @@ guestfs_int_validate_guid (const char *str)
case 36:
break;
case 38:
- if (str[0] == '{' && str[len -1] == '}') {
+ if (str[0] == '{' && str[len - 1] == '}') {
++str;
len -= 2;
break;
diff --git a/src/handle.c b/src/handle.c
index 25d3c99..fda9b5f 100644
--- a/src/handle.c
+++ b/src/handle.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -48,7 +49,7 @@ gl_lock_define_initialized (static, init_lock);
* multiple threads. Hence this constructor function which is called
* when libguestfs is first loaded.
*/
-static void init_libguestfs (void) __attribute__((constructor));
+static void init_libguestfs (void) __attribute__ ((constructor));
static void
init_libguestfs (void)
@@ -77,7 +78,8 @@ guestfs_create_flags (unsigned flags, ...)
guestfs_h *g;
g = calloc (1, sizeof (*g));
- if (!g) return NULL;
+ if (!g)
+ return NULL;
g->state = CONFIG;
@@ -100,7 +102,8 @@ guestfs_create_flags (unsigned flags, ...)
g->smp = 1;
g->path = strdup (GUESTFS_DEFAULT_PATH);
- if (!g->path) goto error;
+ if (!g->path)
+ goto error;
#ifdef QEMU
g->hv = strdup (QEMU);
@@ -111,9 +114,10 @@ guestfs_create_flags (unsigned flags, ...)
*/
g->hv = strdup ("false");
#endif
- if (!g->hv) goto error;
+ if (!g->hv)
+ goto error;
- /* Get program name. */
+/* Get program name. */
#if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME == 1
if (STRPREFIX (program_invocation_short_name, "lt-"))
/* Remove libtool (lt-*) prefix from short name. */
@@ -123,13 +127,16 @@ guestfs_create_flags (unsigned flags, ...)
#else
g->program = strdup ("");
#endif
- if (!g->program) goto error;
+ if (!g->program)
+ goto error;
g->identifier = strdup ("");
- if (!g->identifier) goto error;
+ if (!g->identifier)
+ goto error;
if (guestfs_int_set_backend (g, DEFAULT_BACKEND) == -1) {
- warning (g, _("libguestfs was built with an invalid default backend, using
'direct' instead"));
+ warning (g, _("libguestfs was built with an invalid default backend, "
+ "using 'direct' instead"));
if (guestfs_int_set_backend (g, "direct") == -1) {
warning (g, _("'direct' backend does not work"));
goto error;
@@ -153,12 +160,12 @@ guestfs_create_flags (unsigned flags, ...)
gl_lock_unlock (handles_lock);
}
- debug (g, "create: flags = %u, handle = %p, program = %s",
- flags, g, g->program);
+ debug (g, "create: flags = %u, handle = %p, program = %s", flags, g,
+ g->program);
return g;
- error:
+error:
guestfs_int_free_string_list (g->backend_settings);
free (g->backend);
free (g->identifier);
@@ -251,8 +258,7 @@ parse_environment (guestfs_h *g,
if (str && STRNEQ (str, "")) {
if (guestfs_set_backend (g, str) == -1)
return -1;
- }
- else {
+ } else {
str = do_getenv (data, "LIBGUESTFS_ATTACH_METHOD");
if (str && STRNEQ (str, "")) {
if (guestfs_set_backend (g, str) == -1)
@@ -262,7 +268,8 @@ parse_environment (guestfs_h *g,
str = do_getenv (data, "LIBGUESTFS_BACKEND_SETTINGS");
if (str) {
- CLEANUP_FREE_STRING_LIST char **settings = guestfs_int_split_string (':',
str);
+ CLEANUP_FREE_STRING_LIST char **settings =
+ guestfs_int_split_string (':', str);
if (settings == NULL) {
perrorf (g, "split_string: malloc");
@@ -295,18 +302,18 @@ guestfs_impl_parse_environment (guestfs_h *g)
static char *
getenv_from_strings (const void *stringsv, const char *name)
{
- char **strings = (char **) stringsv;
+ char **strings = (char **)stringsv;
size_t len = strlen (name);
size_t i;
for (i = 0; strings[i] != NULL; ++i)
if (STRPREFIX (strings[i], name) && strings[i][len] == '=')
- return &strings[i][len+1];
+ return &strings[i][len + 1];
return NULL;
}
int
-guestfs_impl_parse_environment_list (guestfs_h *g, char * const *strings)
+guestfs_impl_parse_environment_list (guestfs_h *g, char *const *strings)
{
return parse_environment (g, getenv_from_strings, strings);
}
@@ -319,7 +326,8 @@ guestfs_close (guestfs_h *g)
if (g->state == NO_HANDLE) {
/* Not safe to call ANY callbacks here, so ... */
- fprintf (stderr, _("guestfs_close: called twice on the same handle\n"));
+ fprintf (stderr,
+ _("guestfs_close: called twice on the same handle\n"));
return;
}
@@ -335,11 +343,11 @@ guestfs_close (guestfs_h *g)
if (g->trace) {
const char trace_msg[] = "close";
- guestfs_int_call_callbacks_message (g, GUESTFS_EVENT_TRACE,
- trace_msg, strlen (trace_msg));
+ guestfs_int_call_callbacks_message (g, GUESTFS_EVENT_TRACE, trace_msg,
+ strlen (trace_msg));
}
- debug (g, "closing guestfs handle %p (state %d)", g, (int) g->state);
+ debug (g, "closing guestfs handle %p (state %d)", g, (int)g->state);
if (g->state != CONFIG)
shutdown_backend (g, 0);
@@ -404,7 +412,7 @@ guestfs_close (guestfs_h *g)
int64_t
guestfs_impl_c_pointer (guestfs_h *g)
{
- return (int64_t) g;
+ return (int64_t)g;
}
#pragma GCC diagnostic pop
@@ -463,7 +471,8 @@ shutdown_backend (guestfs_h *g, int check_for_errors)
static void
close_handles (void)
{
- while (handles) guestfs_close (handles);
+ while (handles)
+ guestfs_close (handles);
}
int
@@ -498,9 +507,8 @@ guestfs_impl_set_path (guestfs_h *g, const char *path)
free (g->path);
g->path = NULL;
- g->path =
- path == NULL ?
- safe_strdup (g, GUESTFS_DEFAULT_PATH) : safe_strdup (g, path);
+ g->path = path == NULL ? safe_strdup (g, GUESTFS_DEFAULT_PATH)
+ : safe_strdup (g, path);
return 0;
}
@@ -523,11 +531,11 @@ guestfs_impl_set_qemu (guestfs_h *g, const char *qemu)
#ifdef QEMU
new_hv = safe_strdup (g, QEMU);
#else
- error (g, _("configured --without-qemu so calling guestfs_set_qemu with qemu ==
NULL is an error"));
+ error (g, _("configured --without-qemu so calling guestfs_set_qemu "
+ "with qemu == NULL is an error"));
return -1;
#endif
- }
- else
+ } else
new_hv = safe_strdup (g, qemu);
free (g->hv);
@@ -576,7 +584,8 @@ int
guestfs_impl_set_memsize (guestfs_h *g, int memsize)
{
if (memsize < MIN_MEMSIZE) {
- error (g, _("too small value for memsize (must be at least %d)"),
MIN_MEMSIZE);
+ error (g, _("too small value for memsize (must be at least %d)"),
+ MIN_MEMSIZE);
return -1;
}
g->memsize = memsize;
@@ -693,7 +702,8 @@ guestfs_impl_set_identifier (guestfs_h *g, const char *identifier)
char c = identifier[i];
if (!c_isalnum (c) && c != '_' && c != '-') {
- error (g, _("identifier must contain only alphanumeric characters, underscore
or minus sign"));
+ error (g, _("identifier must contain only alphanumeric characters, "
+ "underscore or minus sign"));
return -1;
}
}
@@ -776,7 +786,7 @@ guestfs_impl_get_backend_settings (guestfs_h *g)
return NULL;
}
- return ret; /* caller frees */
+ return ret; /* caller frees */
}
char *
@@ -795,10 +805,10 @@ guestfs_impl_get_backend_setting (guestfs_h *g, const char *name)
return safe_strdup (g, "1");
/* "name=...", return value */
if (STRPREFIX (settings[i], name) && settings[i][namelen] == '=')
- return safe_strdup (g, &settings[i][namelen+1]);
+ return safe_strdup (g, &settings[i][namelen + 1]);
}
- not_found:
+not_found:
guestfs_int_error_errno (g, ESRCH, _("setting not found"));
return NULL;
}
@@ -820,9 +830,10 @@ guestfs_impl_clear_backend_setting (guestfs_h *g, const char *name)
count++;
free (settings[i]);
- /* We move all the following strings down one place, including the NULL. */
+ /* We move all the following strings down one place, including the
+ * NULL. */
for (j = i; settings[j] != NULL; ++j)
- settings[j] = settings[j+1];
+ settings[j] = settings[j + 1];
i--;
}
@@ -832,7 +843,8 @@ guestfs_impl_clear_backend_setting (guestfs_h *g, const char *name)
}
int
-guestfs_impl_set_backend_setting (guestfs_h *g, const char *name, const char *value)
+guestfs_impl_set_backend_setting (guestfs_h *g, const char *name,
+ const char *value)
{
char *new_setting;
size_t len;
@@ -843,14 +855,13 @@ guestfs_impl_set_backend_setting (guestfs_h *g, const char *name,
const char *va
g->backend_settings = safe_malloc (g, sizeof (char *));
g->backend_settings[0] = NULL;
len = 0;
- }
- else {
+ } else {
ignore_value (guestfs_clear_backend_setting (g, name));
len = guestfs_int_count_strings (g->backend_settings);
}
g->backend_settings =
- safe_realloc (g, g->backend_settings, (len+2) * sizeof (char *));
+ safe_realloc (g, g->backend_settings, (len + 2) * sizeof (char *));
g->backend_settings[len++] = new_setting;
g->backend_settings[len++] = NULL;
diff --git a/src/info.c b/src/info.c
index 9791730..c031c9b 100644
--- a/src/info.c
+++ b/src/info.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -45,12 +46,13 @@
#include "guestfs-internal-actions.h"
#ifdef HAVE_ATTRIBUTE_CLEANUP
-#define CLEANUP_YAJL_TREE_FREE __attribute__((cleanup(cleanup_yajl_tree_free)))
+#define CLEANUP_YAJL_TREE_FREE \
+ __attribute__ ((cleanup (cleanup_yajl_tree_free)))
static void
cleanup_yajl_tree_free (void *ptr)
{
- yajl_tree_free (* (yajl_val *) ptr);
+ yajl_tree_free (*(yajl_val *)ptr);
}
#else
@@ -69,14 +71,14 @@ guestfs_impl_disk_format (guestfs_h *g, const char *filename)
if (tree == NULL)
return NULL;
- if (! YAJL_IS_OBJECT (tree))
+ if (!YAJL_IS_OBJECT (tree))
goto bad_type;
- len = YAJL_GET_OBJECT(tree)->len;
+ len = YAJL_GET_OBJECT (tree)->len;
for (i = 0; i < len; ++i) {
- if (STREQ (YAJL_GET_OBJECT(tree)->keys[i], "format")) {
+ if (STREQ (YAJL_GET_OBJECT (tree)->keys[i], "format")) {
const char *str;
- yajl_val node = YAJL_GET_OBJECT(tree)->values[i];
+ yajl_val node = YAJL_GET_OBJECT (tree)->values[i];
if (YAJL_IS_NULL (node))
goto bad_type;
str = YAJL_GET_STRING (node);
@@ -86,7 +88,7 @@ guestfs_impl_disk_format (guestfs_h *g, const char *filename)
}
}
- bad_type:
+bad_type:
error (g, _("qemu-img info: JSON output did not contain 'format'
key"));
return NULL;
}
@@ -100,27 +102,30 @@ guestfs_impl_disk_virtual_size (guestfs_h *g, const char *filename)
if (tree == NULL)
return -1;
- if (! YAJL_IS_OBJECT (tree))
+ if (!YAJL_IS_OBJECT (tree))
goto bad_type;
- len = YAJL_GET_OBJECT(tree)->len;
+ len = YAJL_GET_OBJECT (tree)->len;
for (i = 0; i < len; ++i) {
- if (STREQ (YAJL_GET_OBJECT(tree)->keys[i], "virtual-size")) {
- yajl_val node = YAJL_GET_OBJECT(tree)->values[i];
+ if (STREQ (YAJL_GET_OBJECT (tree)->keys[i], "virtual-size")) {
+ yajl_val node = YAJL_GET_OBJECT (tree)->values[i];
if (YAJL_IS_NULL (node))
goto bad_type;
- if (! YAJL_IS_NUMBER (node))
+ if (!YAJL_IS_NUMBER (node))
goto bad_type;
- if (! YAJL_IS_INTEGER (node)) {
- error (g, _("qemu-img info: 'virtual-size' is not representable as a
64 bit integer"));
+ if (!YAJL_IS_INTEGER (node)) {
+ error (g, _("qemu-img info: 'virtual-size' is not representable
"
+ "as a 64 bit integer"));
return -1;
}
return YAJL_GET_INTEGER (node);
}
}
- bad_type:
- error (g, _("qemu-img info: JSON output did not contain 'virtual-size'
key"));
+bad_type:
+ error (
+ g,
+ _("qemu-img info: JSON output did not contain 'virtual-size'
key"));
return -1;
}
@@ -133,13 +138,13 @@ guestfs_impl_disk_has_backing_file (guestfs_h *g, const char
*filename)
if (tree == NULL)
return -1;
- if (! YAJL_IS_OBJECT (tree))
+ if (!YAJL_IS_OBJECT (tree))
goto bad_type;
- len = YAJL_GET_OBJECT(tree)->len;
+ len = YAJL_GET_OBJECT (tree)->len;
for (i = 0; i < len; ++i) {
- if (STREQ (YAJL_GET_OBJECT(tree)->keys[i], "backing-filename")) {
- yajl_val node = YAJL_GET_OBJECT(tree)->values[i];
+ if (STREQ (YAJL_GET_OBJECT (tree)->keys[i], "backing-filename")) {
+ yajl_val node = YAJL_GET_OBJECT (tree)->values[i];
/* Work on the assumption that if this field is null, it means
* no backing file, rather than being an error.
*/
@@ -151,7 +156,7 @@ guestfs_impl_disk_has_backing_file (guestfs_h *g, const char
*filename)
return 0; /* no backing-filename key means no backing file */
- bad_type:
+bad_type:
error (g, _("qemu-img info: JSON output was not an object"));
return -1;
}
@@ -159,8 +164,9 @@ guestfs_impl_disk_has_backing_file (guestfs_h *g, const char
*filename)
/* Run 'qemu-img info --output json filename', and parse the output
* as JSON, returning a JSON tree and handling errors.
*/
-static void parse_json (guestfs_h *g, void *treevp, const char *input, size_t len);
-#define PARSE_JSON_NO_OUTPUT ((void *) -1)
+static void parse_json (guestfs_h *g, void *treevp, const char *input,
+ size_t len);
+#define PARSE_JSON_NO_OUTPUT ((void *)-1)
static yajl_val
get_json_output (guestfs_h *g, const char *filename)
@@ -209,15 +215,16 @@ get_json_output (guestfs_h *g, const char *filename)
}
if (tree == NULL)
- return NULL; /* parse_json callback already set an error */
+ return NULL; /* parse_json callback already set an error */
if (tree == PARSE_JSON_NO_OUTPUT) {
/* If this ever happened, it would indicate a bug in 'qemu-img info'. */
- error (g, _("qemu-img info command produced no output, but didn't return an
error status code"));
+ error (g, _("qemu-img info command produced no output, but didn't "
+ "return an error status code"));
return NULL;
}
- return tree; /* caller must call yajl_tree_free (tree) */
+ return tree; /* caller must call yajl_tree_free (tree) */
}
/* Parse the JSON document printed by qemu-img info --output json. */
diff --git a/src/inspect-apps.c b/src/inspect-apps.c
index e53d87c..3cf4840 100644
--- a/src/inspect-apps.c
+++ b/src/inspect-apps.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -33,11 +34,11 @@
#if defined __APPLE__ && defined __MACH__
/* Define/include necessary items on MacOS X */
#include <machine/endian.h>
-#define __BIG_ENDIAN BIG_ENDIAN
-#define __LITTLE_ENDIAN LITTLE_ENDIAN
-#define __BYTE_ORDER BYTE_ORDER
+#define __BIG_ENDIAN BIG_ENDIAN
+#define __LITTLE_ENDIAN LITTLE_ENDIAN
+#define __BYTE_ORDER BYTE_ORDER
#include <libkern/OSByteOrder.h>
-#define __bswap_32 OSSwapConstInt32
+#define __bswap_32 OSSwapConstInt32
#endif /* __APPLE__ */
#include "guestfs.h"
@@ -45,13 +46,23 @@
#include "guestfs-internal-actions.h"
#ifdef DB_DUMP
-static struct guestfs_application2_list *list_applications_rpm (guestfs_h *g, struct
inspect_fs *fs);
+static struct guestfs_application2_list *
+list_applications_rpm (guestfs_h *g, struct inspect_fs *fs);
#endif
-static struct guestfs_application2_list *list_applications_deb (guestfs_h *g, struct
inspect_fs *fs);
-static struct guestfs_application2_list *list_applications_pacman (guestfs_h *g, struct
inspect_fs *fs);
-static struct guestfs_application2_list *list_applications_apk (guestfs_h *g, struct
inspect_fs *fs);
-static struct guestfs_application2_list *list_applications_windows (guestfs_h *g, struct
inspect_fs *fs);
-static void add_application (guestfs_h *g, struct guestfs_application2_list *, const char
*name, const char *display_name, int32_t epoch, const char *version, const char *release,
const char *arch, const char *install_path, const char *publisher, const char *url, const
char *description);
+static struct guestfs_application2_list *
+list_applications_deb (guestfs_h *g, struct inspect_fs *fs);
+static struct guestfs_application2_list *
+list_applications_pacman (guestfs_h *g, struct inspect_fs *fs);
+static struct guestfs_application2_list *
+list_applications_apk (guestfs_h *g, struct inspect_fs *fs);
+static struct guestfs_application2_list *
+list_applications_windows (guestfs_h *g, struct inspect_fs *fs);
+static void
+add_application (guestfs_h *g, struct guestfs_application2_list *,
+ const char *name, const char *display_name, int32_t epoch,
+ const char *version, const char *release, const char *arch,
+ const char *install_path, const char *publisher,
+ const char *url, const char *description);
static void sort_applications (struct guestfs_application2_list *);
/* The deprecated guestfs_inspect_list_applications call, which is now
@@ -72,8 +83,7 @@ guestfs_impl_inspect_list_applications (guestfs_h *g, const char *root)
/* Translate the structures from the new format to the old format. */
ret = safe_malloc (g, sizeof (struct guestfs_application_list));
ret->len = r->len;
- ret->val =
- safe_malloc (g, sizeof (struct guestfs_application) * r->len);
+ ret->val = safe_malloc (g, sizeof (struct guestfs_application) * r->len);
for (i = 0; i < r->len; ++i) {
ret->val[i].app_name = r->val[i].app2_name;
ret->val[i].app_display_name = r->val[i].app2_display_name;
@@ -95,7 +105,7 @@ guestfs_impl_inspect_list_applications (guestfs_h *g, const char
*root)
free (r->val[i].app2_spare3);
free (r->val[i].app2_spare4);
}
- free (r->val); /* Must not free the other strings. */
+ free (r->val); /* Must not free the other strings. */
free (r);
return ret;
@@ -135,10 +145,10 @@ guestfs_impl_inspect_list_applications2 (guestfs_h *g, const char
*root)
break;
case OS_PACKAGE_FORMAT_PACMAN:
- ret = list_applications_pacman (g, fs);
- if (ret == NULL)
- return NULL;
- break;
+ ret = list_applications_pacman (g, fs);
+ if (ret == NULL)
+ return NULL;
+ break;
case OS_PACKAGE_FORMAT_APK:
ret = list_applications_apk (g, fs);
@@ -149,8 +159,7 @@ guestfs_impl_inspect_list_applications2 (guestfs_h *g, const char
*root)
case OS_PACKAGE_FORMAT_EBUILD:
case OS_PACKAGE_FORMAT_PISI:
case OS_PACKAGE_FORMAT_PKGSRC:
- case OS_PACKAGE_FORMAT_UNKNOWN:
- ; /* nothing */
+ case OS_PACKAGE_FORMAT_UNKNOWN:; /* nothing */
}
break;
@@ -165,8 +174,7 @@ guestfs_impl_inspect_list_applications2 (guestfs_h *g, const char
*root)
case OS_TYPE_NETBSD:
case OS_TYPE_DOS:
case OS_TYPE_OPENBSD:
- case OS_TYPE_UNKNOWN:
- ; /* nothing */
+ case OS_TYPE_UNKNOWN:; /* nothing */
}
}
@@ -189,11 +197,13 @@ guestfs_impl_inspect_list_applications2 (guestfs_h *g, const char
*root)
/* This data comes from the Name database, and contains the application
* names and the first 4 bytes of each link field.
*/
-struct rpm_names_list {
+struct rpm_names_list
+{
struct rpm_name *names;
size_t len;
};
-struct rpm_name {
+struct rpm_name
+{
char *name;
char link[4];
};
@@ -217,10 +227,8 @@ compare_links (const void *av, const void *bv)
}
static int
-read_rpm_name (guestfs_h *g,
- const unsigned char *key, size_t keylen,
- const unsigned char *value, size_t valuelen,
- void *listv)
+read_rpm_name (guestfs_h *g, const unsigned char *key, size_t keylen,
+ const unsigned char *value, size_t valuelen, void *listv)
{
struct rpm_names_list *list = listv;
const unsigned char *link_p;
@@ -236,7 +244,7 @@ read_rpm_name (guestfs_h *g,
* entry. Add an entry onto list for all installed instances.
*/
for (link_p = value; link_p < value + valuelen; link_p += 8) {
- name = safe_strndup (g, (const char *) key, keylen);
+ name = safe_strndup (g, (const char *)key, keylen);
list->names = safe_realloc (g, list->names,
(list->len + 1) * sizeof (struct rpm_name));
@@ -279,7 +287,7 @@ get_rpm_header_tag (guestfs_h *g, const unsigned char *header_start,
if (header_len < 24)
return NULL;
- num_fields = be32toh (*(uint32_t *) header_start);
+ num_fields = be32toh (*(uint32_t *)header_start);
store = header_start + 8 + (16 * num_fields);
/* The first byte *after* the buffer. If you are here, you've gone
@@ -287,8 +295,8 @@ get_rpm_header_tag (guestfs_h *g, const unsigned char *header_start,
header_end = header_start + header_len;
while (cursor < store && cursor <= header_end - 16) {
- if (be32toh (*(uint32_t *) cursor) == tag) {
- offset = be32toh(*(uint32_t *) (cursor + 8));
+ if (be32toh (*(uint32_t *)cursor) == tag) {
+ offset = be32toh (*(uint32_t *)(cursor + 8));
if (store + offset >= header_end)
return NULL;
@@ -296,11 +304,11 @@ get_rpm_header_tag (guestfs_h *g, const unsigned char
*header_start,
switch (type) {
case 's':
- return safe_strndup (g, (const char *) (store + offset), max_len);
+ return safe_strndup (g, (const char *)(store + offset), max_len);
case 'i':
memset (iv, 0, sizeof iv);
- memcpy (iv, (void *) (store + offset),
+ memcpy (iv, (void *)(store + offset),
max_len > sizeof iv ? sizeof iv : max_len);
return safe_memdup (g, iv, sizeof iv);
@@ -314,21 +322,20 @@ get_rpm_header_tag (guestfs_h *g, const unsigned char
*header_start,
return NULL;
}
-struct read_package_data {
+struct read_package_data
+{
struct rpm_names_list *list;
struct guestfs_application2_list *apps;
};
static int
-read_package (guestfs_h *g,
- const unsigned char *key, size_t keylen,
- const unsigned char *value, size_t valuelen,
- void *datav)
+read_package (guestfs_h *g, const unsigned char *key, size_t keylen,
+ const unsigned char *value, size_t valuelen, void *datav)
{
struct read_package_data *data = datav;
struct rpm_name nkey, *entry;
- CLEANUP_FREE char *version = NULL, *release = NULL,
- *epoch_str = NULL, *arch = NULL;
+ CLEANUP_FREE char *version = NULL, *release = NULL, *epoch_str = NULL,
+ *arch = NULL;
int32_t epoch;
/* This function reads one (key, value) pair from the Packages
@@ -347,7 +354,7 @@ read_package (guestfs_h *g,
entry = bsearch (&nkey, data->list->names, data->list->len,
sizeof (struct rpm_name), compare_links);
if (!entry)
- return 0; /* Not found - ignore it. */
+ return 0; /* Not found - ignore it. */
/* We found a matching link entry, so that gives us the application
* name (entry->name). Now we can get other data for this
@@ -361,14 +368,14 @@ read_package (guestfs_h *g,
/* The epoch is stored as big-endian integer. */
if (epoch_str)
- epoch = be32toh (*(int32_t *) epoch_str);
+ epoch = be32toh (*(int32_t *)epoch_str);
else
epoch = 0;
/* Add the application and what we know. */
if (version && release)
- add_application (g, data->apps, entry->name, "", epoch, version,
release,
- arch ? arch : "", "", "",
"", "");
+ add_application (g, data->apps, entry->name, "", epoch, version,
+ release, arch ? arch : "", "", "",
"", "");
return 0;
}
@@ -379,19 +386,17 @@ static struct guestfs_application2_list *
list_applications_rpm (guestfs_h *g, struct inspect_fs *fs)
{
CLEANUP_FREE char *Name = NULL, *Packages = NULL;
- struct rpm_names_list list = { .names = NULL, .len = 0 };
+ struct rpm_names_list list = {.names = NULL, .len = 0 };
struct guestfs_application2_list *apps = NULL;
struct read_package_data data;
- Name = guestfs_int_download_to_tmp (g, fs,
- "/var/lib/rpm/Name", "rpm_Name",
- MAX_PKG_DB_SIZE);
+ Name = guestfs_int_download_to_tmp (g, fs, "/var/lib/rpm/Name",
+ "rpm_Name", MAX_PKG_DB_SIZE);
if (Name == NULL)
goto error;
- Packages = guestfs_int_download_to_tmp (g, fs,
- "/var/lib/rpm/Packages", "rpm_Packages",
- MAX_PKG_DB_SIZE);
+ Packages = guestfs_int_download_to_tmp (g, fs, "/var/lib/rpm/Packages",
+ "rpm_Packages", MAX_PKG_DB_SIZE);
if (Packages == NULL)
goto error;
@@ -417,7 +422,7 @@ list_applications_rpm (guestfs_h *g, struct inspect_fs *fs)
return apps;
- error:
+error:
free_rpm_names_list (&list);
guestfs_free_application2_list (apps);
@@ -435,11 +440,12 @@ list_applications_deb (guestfs_h *g, struct inspect_fs *fs)
char line[1024];
size_t len;
int32_t epoch = 0;
- CLEANUP_FREE char *name = NULL, *version = NULL, *release = NULL, *arch = NULL;
+ CLEANUP_FREE char *name = NULL, *version = NULL, *release = NULL,
+ *arch = NULL;
int installed_flag = 0;
- status = guestfs_int_download_to_tmp (g, fs, "/var/lib/dpkg/status",
"status",
- MAX_PKG_DB_SIZE);
+ status = guestfs_int_download_to_tmp (g, fs, "/var/lib/dpkg/status",
+ "status", MAX_PKG_DB_SIZE);
if (status == NULL)
return NULL;
@@ -463,26 +469,25 @@ list_applications_deb (guestfs_h *g, struct inspect_fs *fs)
*/
while (fgets (line, sizeof line, fp) != NULL) {
len = strlen (line);
- if (len > 0 && line[len-1] == '\n') {
- line[len-1] = '\0';
+ if (len > 0 && line[len - 1] == '\n') {
+ line[len - 1] = '\0';
len--;
}
if (STRPREFIX (line, "Package: ")) {
free (name);
name = safe_strdup (g, &line[9]);
- }
- else if (STRPREFIX (line, "Status: ")) {
+ } else if (STRPREFIX (line, "Status: ")) {
installed_flag = strstr (&line[8], "installed") != NULL;
- }
- else if (STRPREFIX (line, "Version: ")) {
+ } else if (STRPREFIX (line, "Version: ")) {
free (version);
free (release);
char *p1, *p2;
p1 = strchr (&line[9], ':');
if (p1) {
*p1++ = '\0';
- epoch = guestfs_int_parse_unsigned_int (g, &line[9]); /* -1 on error */
+ epoch =
+ guestfs_int_parse_unsigned_int (g, &line[9]); /* -1 on error */
} else {
p1 = &line[9];
epoch = 0;
@@ -495,15 +500,13 @@ list_applications_deb (guestfs_h *g, struct inspect_fs *fs)
release = NULL;
}
version = safe_strdup (g, p1);
- }
- else if (STRPREFIX (line, "Architecture: ")) {
+ } else if (STRPREFIX (line, "Architecture: ")) {
free (arch);
arch = safe_strdup (g, &line[14]);
- }
- else if (STREQ (line, "")) {
+ } else if (STREQ (line, "")) {
if (installed_flag && name && version && (epoch >= 0))
- add_application (g, apps, name, "", epoch, version, release ? :
"",
- arch ? : "", "", "", "",
"");
+ add_application (g, apps, name, "", epoch, version, release ?:
"",
+ arch ?: "", "", "", "",
"");
free (name);
free (version);
free (release);
@@ -520,7 +523,7 @@ list_applications_deb (guestfs_h *g, struct inspect_fs *fs)
ret = apps;
- out:
+out:
if (ret == NULL)
guestfs_free_application2_list (apps);
/*
@@ -544,7 +547,8 @@ list_applications_pacman (guestfs_h *g, struct inspect_fs *fs)
CLEANUP_FREE char *arch = NULL, *url = NULL;
char **key = NULL, *rel = NULL, *ver = NULL, *p;
int32_t epoch;
- const size_t path_len = strlen ("/var/lib/pacman/local/") + strlen
("/desc");
+ const size_t path_len =
+ strlen ("/var/lib/pacman/local/") + strlen ("/desc");
local_db = guestfs_readdir (g, "/var/lib/pacman/local");
if (local_db == NULL)
@@ -558,17 +562,20 @@ list_applications_pacman (guestfs_h *g, struct inspect_fs *fs)
for (i = 0; i < local_db->len; i++) {
curr = &local_db->val[i];
- if (curr->ftyp != 'd' || STREQ (curr->name, ".") || STREQ
(curr->name, ".."))
+ if (curr->ftyp != 'd' || STREQ (curr->name, ".") ||
+ STREQ (curr->name, ".."))
continue;
free (fname);
fname = safe_malloc (g, strlen (curr->name) + path_len + 1);
sprintf (fname, "/var/lib/pacman/local/%s/desc", curr->name);
free (desc_file);
- desc_file = guestfs_int_download_to_tmp (g, fs, fname, curr->name, 8192);
+ desc_file =
+ guestfs_int_download_to_tmp (g, fs, fname, curr->name, 8192);
/* The desc files are small (4K). If the desc file does not exist or is
- * larger than the 8K limit we've used, the database is probably corrupted,
+ * larger than the 8K limit we've used, the database is probably
+ * corrupted,
* but we'll continue with the next package anyway.
*/
if (desc_file == NULL)
@@ -580,8 +587,8 @@ list_applications_pacman (guestfs_h *g, struct inspect_fs *fs)
goto out;
}
- while ((len = getline(&line, &allocsize, fp)) != -1) {
- if (len > 0 && line[len-1] == '\n') {
+ while ((len = getline (&line, &allocsize, fp)) != -1) {
+ if (len > 0 && line[len - 1] == '\n') {
line[--len] = '\0';
}
@@ -633,7 +640,7 @@ list_applications_pacman (guestfs_h *g, struct inspect_fs *fs)
if ((epoch >= 0) && (ver[0] != '\0') && (rel[0] !=
'\0'))
add_application (g, apps, name, "", epoch, ver, rel, arch, "",
"",
- url ? : "", desc ? : "");
+ url ?: "", desc ?: "");
after_add_application:
key = NULL;
@@ -649,12 +656,11 @@ list_applications_pacman (guestfs_h *g, struct inspect_fs *fs)
perrorf (g, "fclose: %s", desc_file);
goto out;
}
-
}
ret = apps;
- out:
+out:
if (ret == NULL)
guestfs_free_application2_list (apps);
@@ -670,8 +676,8 @@ list_applications_apk (guestfs_h *g, struct inspect_fs *fs)
size_t allocsize = 0;
ssize_t len;
int32_t epoch = 0;
- CLEANUP_FREE char *name = NULL, *version = NULL, *release = NULL, *arch = NULL,
- *url = NULL, *description = NULL;
+ CLEANUP_FREE char *name = NULL, *version = NULL, *release = NULL,
+ *arch = NULL, *url = NULL, *description = NULL;
installed = guestfs_int_download_to_tmp (g, fs, "/lib/apk/db/installed",
"installed", MAX_PKG_DB_SIZE);
@@ -693,8 +699,8 @@ list_applications_apk (guestfs_h *g, struct inspect_fs *fs)
* a blank line. Each package line is <character>:<field>.
*/
while ((len = getline (&line, &allocsize, fp)) != -1) {
- if (len > 0 && line[len-1] == '\n') {
- line[len-1] = '\0';
+ if (len > 0 && line[len - 1] == '\n') {
+ line[len - 1] = '\0';
--len;
}
@@ -706,8 +712,8 @@ list_applications_apk (guestfs_h *g, struct inspect_fs *fs)
switch (line[0]) {
case '\0':
if (name && version && (epoch >= 0))
- add_application (g, apps, name, "", epoch, version, release ? :
"",
- arch ? : "", "", "", url ? :
"", description ? : "");
+ add_application (g, apps, name, "", epoch, version, release ?:
"",
+ arch ?: "", "", "", url ?:
"", description ?: "");
free (name);
free (version);
free (release);
@@ -739,7 +745,8 @@ list_applications_apk (guestfs_h *g, struct inspect_fs *fs)
p1 = strchr (&line[2], ':');
if (p1) {
*p1++ = '\0';
- epoch = guestfs_int_parse_unsigned_int (g, &line[2]); /* -1 on error */
+ epoch =
+ guestfs_int_parse_unsigned_int (g, &line[2]); /* -1 on error */
} else {
p1 = &line[2];
epoch = 0;
@@ -766,7 +773,7 @@ list_applications_apk (guestfs_h *g, struct inspect_fs *fs)
ret = apps;
- out:
+out:
if (ret == NULL)
guestfs_free_application2_list (apps);
/*
@@ -776,13 +783,16 @@ list_applications_apk (guestfs_h *g, struct inspect_fs *fs)
return ret;
}
-static void list_applications_windows_from_path (guestfs_h *g, struct
guestfs_application2_list *apps, const char **path, size_t path_len);
+static void
+list_applications_windows_from_path (guestfs_h *g,
+ struct guestfs_application2_list *apps,
+ const char **path, size_t path_len);
static struct guestfs_application2_list *
list_applications_windows (guestfs_h *g, struct inspect_fs *fs)
{
- CLEANUP_FREE char *software =
- safe_asprintf (g, "%s/system32/config/software",
fs->windows_systemroot);
+ CLEANUP_FREE char *software = safe_asprintf (
+ g, "%s/system32/config/software", fs->windows_systemroot);
CLEANUP_FREE char *software_path;
struct guestfs_application2_list *ret = NULL;
@@ -790,8 +800,8 @@ list_applications_windows (guestfs_h *g, struct inspect_fs *fs)
if (!software_path)
return NULL;
- if (guestfs_hivex_open (g, software_path,
- GUESTFS_HIVEX_OPEN_VERBOSE, g->verbose, -1) == -1)
+ if (guestfs_hivex_open (g, software_path, GUESTFS_HIVEX_OPEN_VERBOSE,
+ g->verbose, -1) == -1)
return NULL;
/* Allocate apps list. */
@@ -800,18 +810,18 @@ list_applications_windows (guestfs_h *g, struct inspect_fs *fs)
ret->val = NULL;
/* Ordinary native applications. */
- const char *hivepath[] =
- { "Microsoft", "Windows", "CurrentVersion",
"Uninstall" };
- list_applications_windows_from_path (g, ret, hivepath,
- sizeof hivepath / sizeof hivepath[0]);
+ const char *hivepath[] = { "Microsoft", "Windows",
"CurrentVersion",
+ "Uninstall" };
+ list_applications_windows_from_path (
+ g, ret, hivepath, sizeof hivepath / sizeof hivepath[0]);
/* 32-bit emulated Windows apps running on the WOW64 emulator.
*
http://support.microsoft.com/kb/896459 (RHBZ#692545).
*/
- const char *hivepath2[] =
- { "WOW6432node", "Microsoft", "Windows",
"CurrentVersion", "Uninstall" };
- list_applications_windows_from_path (g, ret, hivepath2,
- sizeof hivepath2 / sizeof hivepath2[0]);
+ const char *hivepath2[] = { "WOW6432node", "Microsoft",
"Windows",
+ "CurrentVersion", "Uninstall" };
+ list_applications_windows_from_path (
+ g, ret, hivepath2, sizeof hivepath2 / sizeof hivepath2[0]);
guestfs_hivex_close (g);
return ret;
@@ -822,7 +832,8 @@ list_applications_windows_from_path (guestfs_h *g,
struct guestfs_application2_list *apps,
const char **path, size_t path_len)
{
- CLEANUP_FREE_HIVEX_NODE_LIST struct guestfs_hivex_node_list *children = NULL;
+ CLEANUP_FREE_HIVEX_NODE_LIST struct guestfs_hivex_node_list *children =
+ NULL;
int64_t node;
size_t i;
@@ -846,7 +857,8 @@ list_applications_windows_from_path (guestfs_h *g,
int64_t child = children->val[i].hivex_node_h;
int64_t value;
CLEANUP_FREE char *name = NULL, *display_name = NULL, *version = NULL,
- *install_path = NULL, *publisher = NULL, *url = NULL, *comments = NULL;
+ *install_path = NULL, *publisher = NULL, *url = NULL,
+ *comments = NULL;
/* Use the node name as a proxy for the package name in Linux. The
* display name is not language-independent, so it cannot be used.
@@ -875,13 +887,9 @@ list_applications_windows_from_path (guestfs_h *g,
if (value)
comments = guestfs_hivex_value_utf8 (g, value);
- add_application (g, apps, name, display_name, 0,
- version ? : "",
- "", "",
- install_path ? : "",
- publisher ? : "",
- url ? : "",
- comments ? : "");
+ add_application (g, apps, name, display_name, 0, version ?: "",
"",
+ "", install_path ?: "", publisher ?:
"", url ?: "",
+ comments ?: "");
}
}
}
@@ -891,35 +899,36 @@ static void
add_application (guestfs_h *g, struct guestfs_application2_list *apps,
const char *name, const char *display_name, int32_t epoch,
const char *version, const char *release, const char *arch,
- const char *install_path,
- const char *publisher, const char *url,
- const char *description)
+ const char *install_path, const char *publisher,
+ const char *url, const char *description)
{
apps->len++;
- apps->val = safe_realloc (g, apps->val,
- apps->len * sizeof (struct guestfs_application2));
- apps->val[apps->len-1].app2_name = safe_strdup (g, name);
- apps->val[apps->len-1].app2_display_name = safe_strdup (g, display_name);
- apps->val[apps->len-1].app2_epoch = epoch;
- apps->val[apps->len-1].app2_version = safe_strdup (g, version);
- apps->val[apps->len-1].app2_release = safe_strdup (g, release);
- apps->val[apps->len-1].app2_arch = safe_strdup (g, arch);
- apps->val[apps->len-1].app2_install_path = safe_strdup (g, install_path);
+ apps->val = safe_realloc (
+ g, apps->val, apps->len * sizeof (struct guestfs_application2));
+ apps->val[apps->len - 1].app2_name = safe_strdup (g, name);
+ apps->val[apps->len - 1].app2_display_name =
+ safe_strdup (g, display_name);
+ apps->val[apps->len - 1].app2_epoch = epoch;
+ apps->val[apps->len - 1].app2_version = safe_strdup (g, version);
+ apps->val[apps->len - 1].app2_release = safe_strdup (g, release);
+ apps->val[apps->len - 1].app2_arch = safe_strdup (g, arch);
+ apps->val[apps->len - 1].app2_install_path =
+ safe_strdup (g, install_path);
/* XXX Translated path is not implemented yet. */
- apps->val[apps->len-1].app2_trans_path = safe_strdup (g, "");
- apps->val[apps->len-1].app2_publisher = safe_strdup (g, publisher);
- apps->val[apps->len-1].app2_url = safe_strdup (g, url);
+ apps->val[apps->len - 1].app2_trans_path = safe_strdup (g, "");
+ apps->val[apps->len - 1].app2_publisher = safe_strdup (g, publisher);
+ apps->val[apps->len - 1].app2_url = safe_strdup (g, url);
/* XXX The next two are not yet implemented for any package
* format, but we could easily support them for rpm and deb.
*/
- apps->val[apps->len-1].app2_source_package = safe_strdup (g, "");
- apps->val[apps->len-1].app2_summary = safe_strdup (g, "");
- apps->val[apps->len-1].app2_description = safe_strdup (g, description);
+ apps->val[apps->len - 1].app2_source_package = safe_strdup (g, "");
+ apps->val[apps->len - 1].app2_summary = safe_strdup (g, "");
+ apps->val[apps->len - 1].app2_description = safe_strdup (g, description);
/* XXX Reserved for future use. */
- apps->val[apps->len-1].app2_spare1 = safe_strdup (g, "");
- apps->val[apps->len-1].app2_spare2 = safe_strdup (g, "");
- apps->val[apps->len-1].app2_spare3 = safe_strdup (g, "");
- apps->val[apps->len-1].app2_spare4 = safe_strdup (g, "");
+ apps->val[apps->len - 1].app2_spare1 = safe_strdup (g, "");
+ apps->val[apps->len - 1].app2_spare2 = safe_strdup (g, "");
+ apps->val[apps->len - 1].app2_spare3 = safe_strdup (g, "");
+ apps->val[apps->len - 1].app2_spare4 = safe_strdup (g, "");
}
/* Sort applications by name before returning the list. */
diff --git a/src/inspect-fs-cd.c b/src/inspect-fs-cd.c
index b008f58..8db1861 100644
--- a/src/inspect-fs-cd.c
+++ b/src/inspect-fs-cd.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -55,11 +56,11 @@ check_debian_installer_root (guestfs_h *g, struct inspect_fs *fs)
else if (STRPREFIX (fs->product_name, "Debian"))
fs->distro = OS_DISTRO_DEBIAN;
- (void) guestfs_int_parse_major_minor (g, fs);
+ (void)guestfs_int_parse_major_minor (g, fs);
if (guestfs_is_file (g, "/.disk/cd_type") > 0) {
CLEANUP_FREE char *cd_type =
- guestfs_int_first_line_of_file (g, "/.disk/cd_type");
+ guestfs_int_first_line_of_file (g, "/.disk/cd_type");
if (!cd_type)
return -1;
@@ -67,13 +68,11 @@ check_debian_installer_root (guestfs_h *g, struct inspect_fs *fs)
STRPREFIX (cd_type, "full_cd/single")) {
fs->is_multipart_disk = 0;
fs->is_netinst_disk = 0;
- }
- else if (STRPREFIX (cd_type, "dvd") ||
- STRPREFIX (cd_type, "full_cd")) {
+ } else if (STRPREFIX (cd_type, "dvd") ||
+ STRPREFIX (cd_type, "full_cd")) {
fs->is_multipart_disk = 1;
fs->is_netinst_disk = 0;
- }
- else if (STRPREFIX (cd_type, "not_complete")) {
+ } else if (STRPREFIX (cd_type, "not_complete")) {
fs->is_multipart_disk = 0;
fs->is_netinst_disk = 1;
}
@@ -181,8 +180,8 @@ check_fedora_installer_root (guestfs_h *g, struct inspect_fs *fs)
fs->type = OS_TYPE_LINUX;
- r = guestfs_int_first_egrep_of_file (g, "/.treeinfo",
- "^family = Fedora$", 0, &str);
+ r = guestfs_int_first_egrep_of_file (g, "/.treeinfo", "^family =
Fedora$",
+ 0, &str);
if (r == -1)
return -1;
if (r > 0) {
@@ -190,9 +189,8 @@ check_fedora_installer_root (guestfs_h *g, struct inspect_fs *fs)
free (str);
}
- r = guestfs_int_first_egrep_of_file (g, "/.treeinfo",
- "^family = Red Hat Enterprise Linux$",
- 0, &str);
+ r = guestfs_int_first_egrep_of_file (
+ g, "/.treeinfo", "^family = Red Hat Enterprise Linux$", 0,
&str);
if (r == -1)
return -1;
if (r > 0) {
@@ -200,9 +198,8 @@ check_fedora_installer_root (guestfs_h *g, struct inspect_fs *fs)
free (str);
}
- r = guestfs_int_first_egrep_of_file (g, "/.treeinfo",
- "^family = Oracle Linux Server$",
- 0, &str);
+ r = guestfs_int_first_egrep_of_file (
+ g, "/.treeinfo", "^family = Oracle Linux Server$", 0,
&str);
if (r == -1)
return -1;
if (r > 0) {
@@ -212,19 +209,20 @@ check_fedora_installer_root (guestfs_h *g, struct inspect_fs *fs)
/* XXX should do major.minor before this */
r = guestfs_int_first_egrep_of_file (g, "/.treeinfo",
- "^version = [[:digit:]]+", 0, &str);
+ "^version = [[:digit:]]+", 0,
&str);
if (r == -1)
return -1;
if (r > 0) {
v = find_value (str);
- fs->major_version = guestfs_int_parse_unsigned_int_ignore_trailing (g, v);
+ fs->major_version =
+ guestfs_int_parse_unsigned_int_ignore_trailing (g, v);
free (str);
if (fs->major_version == -1)
return -1;
}
r = guestfs_int_first_egrep_of_file (g, "/.treeinfo",
- "^arch = [-_[:alnum:]]+$", 0, &str);
+ "^arch = [-_[:alnum:]]+$", 0,
&str);
if (r == -1)
return -1;
if (r > 0) {
@@ -234,7 +232,7 @@ check_fedora_installer_root (guestfs_h *g, struct inspect_fs *fs)
}
r = guestfs_int_first_egrep_of_file (g, "/.treeinfo",
- "^discnum = [[:digit:]]+$", 0, &str);
+ "^discnum = [[:digit:]]+$", 0,
&str);
if (r == -1)
return -1;
if (r > 0) {
@@ -245,8 +243,8 @@ check_fedora_installer_root (guestfs_h *g, struct inspect_fs *fs)
return -1;
}
- r = guestfs_int_first_egrep_of_file (g, "/.treeinfo",
- "^totaldiscs = [[:digit:]]+$", 0, &str);
+ r = guestfs_int_first_egrep_of_file (
+ g, "/.treeinfo", "^totaldiscs = [[:digit:]]+$", 0, &str);
if (r == -1)
return -1;
if (r > 0) {
@@ -279,60 +277,61 @@ check_isolinux_installer_root (guestfs_h *g, struct inspect_fs *fs)
fs->type = OS_TYPE_LINUX;
- r = guestfs_int_first_egrep_of_file (g, "/isolinux/isolinux.cfg",
- "^menu title Welcome to Fedora [[:digit:]]+",
- 0, &str);
+ r = guestfs_int_first_egrep_of_file (
+ g, "/isolinux/isolinux.cfg",
+ "^menu title Welcome to Fedora [[:digit:]]+", 0, &str);
if (r == -1)
return -1;
if (r > 0) {
fs->distro = OS_DISTRO_FEDORA;
fs->major_version =
- guestfs_int_parse_unsigned_int_ignore_trailing (g, &str[29]);
+ guestfs_int_parse_unsigned_int_ignore_trailing (g, &str[29]);
free (str);
if (fs->major_version == -1)
return -1;
}
/* XXX parse major.minor */
- r = guestfs_int_first_egrep_of_file (g, "/isolinux/isolinux.cfg",
- "^menu title Welcome to Red Hat Enterprise Linux [[:digit:]]+",
- 0, &str);
+ r = guestfs_int_first_egrep_of_file (
+ g, "/isolinux/isolinux.cfg",
+ "^menu title Welcome to Red Hat Enterprise Linux [[:digit:]]+", 0,
+ &str);
if (r == -1)
return -1;
if (r > 0) {
fs->distro = OS_DISTRO_RHEL;
fs->major_version =
- guestfs_int_parse_unsigned_int_ignore_trailing (g, &str[47]);
+ guestfs_int_parse_unsigned_int_ignore_trailing (g, &str[47]);
free (str);
if (fs->major_version == -1)
return -1;
}
/* XXX parse major.minor */
- r = guestfs_int_first_egrep_of_file (g, "/isolinux/isolinux.cfg",
- "^menu title Welcome to RHEL[[:digit:]]+",
- 0, &str);
+ r = guestfs_int_first_egrep_of_file (
+ g, "/isolinux/isolinux.cfg",
+ "^menu title Welcome to RHEL[[:digit:]]+", 0, &str);
if (r == -1)
return -1;
if (r > 0) {
fs->distro = OS_DISTRO_RHEL;
fs->major_version =
- guestfs_int_parse_unsigned_int_ignore_trailing (g, &str[26]);
+ guestfs_int_parse_unsigned_int_ignore_trailing (g, &str[26]);
free (str);
if (fs->major_version == -1)
return -1;
}
/* XXX parse major.minor */
- r = guestfs_int_first_egrep_of_file (g, "/isolinux/isolinux.cfg",
- "^menu title Welcome to Oracle Linux Server [[:digit:]]+",
- 0, &str);
+ r = guestfs_int_first_egrep_of_file (
+ g, "/isolinux/isolinux.cfg",
+ "^menu title Welcome to Oracle Linux Server [[:digit:]]+", 0, &str);
if (r == -1)
return -1;
if (r > 0) {
fs->distro = OS_DISTRO_ORACLE_LINUX;
fs->major_version =
- guestfs_int_parse_unsigned_int_ignore_trailing (g, &str[42]);
+ guestfs_int_parse_unsigned_int_ignore_trailing (g, &str[42]);
free (str);
if (fs->major_version == -1)
return -1;
@@ -350,16 +349,16 @@ static void
trim_cr (char *str)
{
size_t n = strlen (str);
- if (n > 0 && str[n-1] == '\r')
- str[n-1] = '\0';
+ if (n > 0 && str[n - 1] == '\r')
+ str[n - 1] = '\0';
}
static void
trim_quot (char *str)
{
size_t n = strlen (str);
- if (n > 0 && str[n-1] == '"')
- str[n-1] = '\0';
+ if (n > 0 && str[n - 1] == '"')
+ str[n - 1] = '\0';
}
static int
@@ -373,41 +372,43 @@ check_w2k3_installer_root (guestfs_h *g, struct inspect_fs *fs,
fs->type = OS_TYPE_WINDOWS;
fs->distro = OS_DISTRO_WINDOWS;
- r = guestfs_int_first_egrep_of_file (g, txtsetup,
- "^productname[[:space:]]*=[[:space:]]*\"", 1, &str);
+ r = guestfs_int_first_egrep_of_file (
+ g, txtsetup, "^productname[[:space:]]*=[[:space:]]*\"", 1,
&str);
if (r == -1)
return -1;
if (r > 0) {
trim_cr (str);
trim_quot (str);
v = find_value (str);
- fs->product_name = safe_strdup (g, v+1);
+ fs->product_name = safe_strdup (g, v + 1);
free (str);
}
- r = guestfs_int_first_egrep_of_file (g, txtsetup,
- "^majorversion[[:space:]]*=[[:space:]]*[[:digit:]]+",
- 1, &str);
+ r = guestfs_int_first_egrep_of_file (
+ g, txtsetup, "^majorversion[[:space:]]*=[[:space:]]*[[:digit:]]+", 1,
+ &str);
if (r == -1)
return -1;
if (r > 0) {
trim_cr (str);
v = find_value (str);
- fs->major_version = guestfs_int_parse_unsigned_int_ignore_trailing (g, v);
+ fs->major_version =
+ guestfs_int_parse_unsigned_int_ignore_trailing (g, v);
free (str);
if (fs->major_version == -1)
return -1;
}
- r = guestfs_int_first_egrep_of_file (g, txtsetup,
- "^minorversion[[:space:]]*=[[:space:]]*[[:digit:]]+",
- 1, &str);
+ r = guestfs_int_first_egrep_of_file (
+ g, txtsetup, "^minorversion[[:space:]]*=[[:space:]]*[[:digit:]]+", 1,
+ &str);
if (r == -1)
return -1;
if (r > 0) {
trim_cr (str);
v = find_value (str);
- fs->minor_version = guestfs_int_parse_unsigned_int_ignore_trailing (g, v);
+ fs->minor_version =
+ guestfs_int_parse_unsigned_int_ignore_trailing (g, v);
free (str);
if (fs->minor_version == -1)
return -1;
@@ -417,9 +418,8 @@ check_w2k3_installer_root (guestfs_h *g, struct inspect_fs *fs,
* installation by default, although not necessarily the one that
* the user will finally choose.
*/
- r = guestfs_int_first_egrep_of_file (g, txtsetup,
- "^defaultpath[[:space:]]*=[[:space:]]*",
- 1, &str);
+ r = guestfs_int_first_egrep_of_file (
+ g, txtsetup, "^defaultpath[[:space:]]*=[[:space:]]*", 1, &str);
if (r == -1)
return -1;
if (r > 0) {
@@ -505,7 +505,7 @@ guestfs_int_check_installer_root (guestfs_h *g, struct inspect_fs
*fs)
*/
int
guestfs_int_check_installer_iso (guestfs_h *g, struct inspect_fs *fs,
- const char *device)
+ const char *device)
{
CLEANUP_FREE_ISOINFO struct guestfs_isoinfo *isoinfo = NULL;
const struct osinfo *osinfo;
@@ -518,9 +518,9 @@ guestfs_int_check_installer_iso (guestfs_h *g, struct inspect_fs *fs,
return 0;
r = guestfs_int_osinfo_map (g, isoinfo, &osinfo);
- if (r == -1) /* Fatal error. */
+ if (r == -1) /* Fatal error. */
return -1;
- if (r == 0) /* Could not locate any matching ISO. */
+ if (r == 0) /* Could not locate any matching ISO. */
return 0;
/* Otherwise we matched an ISO, so fill in the fs fields. */
@@ -530,7 +530,7 @@ guestfs_int_check_installer_iso (guestfs_h *g, struct inspect_fs *fs,
fs->type = osinfo->type;
fs->distro = osinfo->distro;
fs->product_name =
- osinfo->product_name ? safe_strdup (g, osinfo->product_name) : NULL;
+ osinfo->product_name ? safe_strdup (g, osinfo->product_name) : NULL;
fs->major_version = osinfo->major_version;
fs->minor_version = osinfo->minor_version;
fs->arch = osinfo->arch ? safe_strdup (g, osinfo->arch) : NULL;
diff --git a/src/inspect-fs-unix.c b/src/inspect-fs-unix.c
index dab4370..598e10f 100644
--- a/src/inspect-fs-unix.c
+++ b/src/inspect-fs-unix.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -51,8 +52,7 @@ COMPILE_REGEXP (re_scientific_linux_no_minor,
"Scientific Linux.*release (\\d+)", 0)
COMPILE_REGEXP (re_oracle_linux_old,
"Oracle Linux.*release (\\d+).*Update (\\d+)", 0)
-COMPILE_REGEXP (re_oracle_linux,
- "Oracle Linux.*release (\\d+)\\.(\\d+)", 0)
+COMPILE_REGEXP (re_oracle_linux, "Oracle Linux.*release (\\d+)\\.(\\d+)", 0)
COMPILE_REGEXP (re_oracle_linux_no_minor, "Oracle Linux.*release (\\d+)", 0)
COMPILE_REGEXP (re_major_minor, "(\\d+)\\.(\\d+)", 0)
COMPILE_REGEXP (re_xdev, "^/dev/(h|s|v|xv)d([a-z]+)(\\d*)$", 0)
@@ -75,7 +75,9 @@ COMPILE_REGEXP (re_openbsd, "^OpenBSD
(\\d+|\\?)\\.(\\d+|\\?)", 0)
COMPILE_REGEXP (re_openbsd_duid, "^[0-9a-f]{16}\\.[a-z]", 0)
COMPILE_REGEXP (re_openbsd_dev, "^/dev/(s|w)d([0-9])([a-z])$", 0)
COMPILE_REGEXP (re_netbsd_dev, "^/dev/(l|s)d([0-9])([a-z])$", 0)
-COMPILE_REGEXP (re_altlinux, "
(?:(\\d+)(?:\\.(\\d+)(?:[\\.\\d]+)?)?)\\s+\\((?:[^)]+)\\)$", 0)
+COMPILE_REGEXP (
+ re_altlinux,
+ " (?:(\\d+)(?:\\.(\\d+)(?:[\\.\\d]+)?)?)\\s+\\((?:[^)]+)\\)$", 0)
COMPILE_REGEXP (re_frugalware, "Frugalware (\\d+)\\.(\\d+)", 0)
static void check_architecture (guestfs_h *g, struct inspect_fs *fs);
@@ -88,32 +90,37 @@ static void add_fstab_entry (guestfs_h *g, struct inspect_fs *fs,
static char *resolve_fstab_device (guestfs_h *g, const char *spec,
Hash_table *md_map,
enum inspect_os_type os_type);
-static int inspect_with_augeas (guestfs_h *g, struct inspect_fs *fs, const char
**configfiles, int (*f) (guestfs_h *, struct inspect_fs *));
+static int inspect_with_augeas (guestfs_h *g, struct inspect_fs *fs,
+ const char **configfiles,
+ int (*f) (guestfs_h *,
+ struct inspect_fs *));
/* Hash structure for uuid->path lookups */
-typedef struct md_uuid {
+typedef struct md_uuid
+{
uint32_t uuid[4];
char *path;
} md_uuid;
-static size_t uuid_hash(const void *x, size_t table_size);
-static bool uuid_cmp(const void *x, const void *y);
-static void md_uuid_free(void *x);
+static size_t uuid_hash (const void *x, size_t table_size);
+static bool uuid_cmp (const void *x, const void *y);
+static void md_uuid_free (void *x);
-static int parse_uuid(const char *str, uint32_t *uuid);
+static int parse_uuid (const char *str, uint32_t *uuid);
/* Hash structure for path(mdadm)->path(appliance) lookup */
-typedef struct {
+typedef struct
+{
char *mdadm;
char *app;
} mdadm_app;
-static size_t mdadm_app_hash(const void *x, size_t table_size);
-static bool mdadm_app_cmp(const void *x, const void *y);
-static void mdadm_app_free(void *x);
+static size_t mdadm_app_hash (const void *x, size_t table_size);
+static bool mdadm_app_cmp (const void *x, const void *y);
+static void mdadm_app_free (void *x);
static ssize_t map_app_md_devices (guestfs_h *g, Hash_table **map);
-static int map_md_devices(guestfs_h *g, Hash_table **map);
+static int map_md_devices (guestfs_h *g, Hash_table **map);
/* Set fs->product_name to the first line of the release file. */
static int
@@ -126,7 +133,8 @@ parse_release_file (guestfs_h *g, struct inspect_fs *fs,
if (STREQ (fs->product_name, "")) {
free (fs->product_name);
fs->product_name = NULL;
- error (g, _("release file %s is empty or malformed"), release_filename);
+ error (g, _("release file %s is empty or malformed"),
+ release_filename);
return -1;
}
return 0;
@@ -181,12 +189,12 @@ parse_os_release (guestfs_h *g, struct inspect_fs *fs, const char
*filename)
++value;
value_len = strlen (line) - (value - line);
- if (value_len > 1 && value[0] == '"' &&
value[value_len-1] == '"') {
+ if (value_len > 1 && value[0] == '"' &&
value[value_len - 1] == '"') {
++value;
value_len -= 2;
}
-#define VALUE_IS(a) STREQLEN(value, a, value_len)
+#define VALUE_IS(a) STREQLEN (value, a, value_len)
if (STRPREFIX (line, "ID=")) {
if (VALUE_IS ("alpine"))
distro = OS_DISTRO_ALPINE_LINUX;
@@ -234,7 +242,7 @@ parse_os_release (guestfs_h *g, struct inspect_fs *fs, const char
*filename)
return -1;
} else {
CLEANUP_FREE char *buf =
- safe_asprintf (g, "%.*s", (int) value_len, value);
+ safe_asprintf (g, "%.*s", (int)value_len, value);
major_version = guestfs_int_parse_unsigned_int (g, buf);
/* Handle cases where VERSION_ID is not a number. */
if (major_version != -1)
@@ -293,14 +301,16 @@ parse_os_release (guestfs_h *g, struct inspect_fs *fs, const char
*filename)
* DISTRIB_DESCRIPTION="Mandriva Linux 2010.1"
* Mandriva also has a normal release file called /etc/mandriva-release.
*
- * CoreOS has a /etc/lsb-release link to /usr/share/coreos/lsb-release containing:
+ * CoreOS has a /etc/lsb-release link to /usr/share/coreos/lsb-release
+ * containing:
* DISTRIB_ID=CoreOS
* DISTRIB_RELEASE=647.0.0
* DISTRIB_CODENAME="Red Dog"
* DISTRIB_DESCRIPTION="CoreOS 647.0.0"
*/
static int
-parse_lsb_release (guestfs_h *g, struct inspect_fs *fs, const char *filename)
+parse_lsb_release (guestfs_h *g, struct inspect_fs *fs,
+ const char *filename)
{
int64_t size;
CLEANUP_FREE_STRING_LIST char **lines = NULL;
@@ -325,32 +335,25 @@ parse_lsb_release (guestfs_h *g, struct inspect_fs *fs, const char
*filename)
return -1;
for (i = 0; lines[i] != NULL; ++i) {
- if (fs->distro == 0 &&
- STREQ (lines[i], "DISTRIB_ID=Ubuntu")) {
+ if (fs->distro == 0 && STREQ (lines[i], "DISTRIB_ID=Ubuntu")) {
fs->distro = OS_DISTRO_UBUNTU;
r = 1;
- }
- else if (fs->distro == 0 &&
- STREQ (lines[i], "DISTRIB_ID=LinuxMint")) {
+ } else if (fs->distro == 0 &&
+ STREQ (lines[i], "DISTRIB_ID=LinuxMint")) {
fs->distro = OS_DISTRO_LINUX_MINT;
r = 1;
- }
- else if (fs->distro == 0 &&
- STREQ (lines[i], "DISTRIB_ID=MandrivaLinux")) {
+ } else if (fs->distro == 0 &&
+ STREQ (lines[i], "DISTRIB_ID=MandrivaLinux")) {
fs->distro = OS_DISTRO_MANDRIVA;
r = 1;
- }
- else if (fs->distro == 0 &&
- STREQ (lines[i], "DISTRIB_ID=\"Mageia\"")) {
+ } else if (fs->distro == 0 &&
+ STREQ (lines[i], "DISTRIB_ID=\"Mageia\"")) {
fs->distro = OS_DISTRO_MAGEIA;
r = 1;
- }
- else if (fs->distro == 0 &&
- STREQ (lines[i], "DISTRIB_ID=CoreOS")) {
+ } else if (fs->distro == 0 && STREQ (lines[i],
"DISTRIB_ID=CoreOS")) {
fs->distro = OS_DISTRO_COREOS;
r = 1;
- }
- else if (STRPREFIX (lines[i], "DISTRIB_RELEASE=")) {
+ } else if (STRPREFIX (lines[i], "DISTRIB_RELEASE=")) {
char *major, *minor;
if (match2 (g, &lines[i][16], re_major_minor, &major, &minor)) {
fs->major_version = guestfs_int_parse_unsigned_int (g, major);
@@ -364,16 +367,14 @@ parse_lsb_release (guestfs_h *g, struct inspect_fs *fs, const char
*filename)
if (fs->minor_version == -1)
return -1;
}
- }
- else if (fs->product_name == NULL &&
- (STRPREFIX (lines[i], "DISTRIB_DESCRIPTION=\"") ||
- STRPREFIX (lines[i], "DISTRIB_DESCRIPTION='"))) {
+ } else if (fs->product_name == NULL &&
+ (STRPREFIX (lines[i], "DISTRIB_DESCRIPTION=\"") ||
+ STRPREFIX (lines[i], "DISTRIB_DESCRIPTION='"))) {
size_t len = strlen (lines[i]) - 21 - 1;
fs->product_name = safe_strndup (g, &lines[i][21], len);
r = 1;
- }
- else if (fs->product_name == NULL &&
- STRPREFIX (lines[i], "DISTRIB_DESCRIPTION=")) {
+ } else if (fs->product_name == NULL &&
+ STRPREFIX (lines[i], "DISTRIB_DESCRIPTION=")) {
size_t len = strlen (lines[i]) - 20;
fs->product_name = safe_strndup (g, &lines[i][20], len);
r = 1;
@@ -387,7 +388,8 @@ parse_lsb_release (guestfs_h *g, struct inspect_fs *fs, const char
*filename)
}
static int
-parse_suse_release (guestfs_h *g, struct inspect_fs *fs, const char *filename)
+parse_suse_release (guestfs_h *g, struct inspect_fs *fs,
+ const char *filename)
{
int64_t size;
char *major, *minor;
@@ -417,8 +419,10 @@ parse_suse_release (guestfs_h *g, struct inspect_fs *fs, const char
*filename)
/* First line is dist release name */
fs->product_name = safe_strdup (g, lines[0]);
- /* Match SLES first because openSuSE regex overlaps some SLES release strings */
- if (match (g, fs->product_name, re_sles) || match (g, fs->product_name, re_nld))
{
+ /* Match SLES first because openSuSE regex overlaps some SLES release
+ * strings */
+ if (match (g, fs->product_name, re_sles) ||
+ match (g, fs->product_name, re_nld)) {
fs->distro = OS_DISTRO_SLES;
/* Second line contains version string */
@@ -442,8 +446,7 @@ parse_suse_release (guestfs_h *g, struct inspect_fs *fs, const char
*filename)
free (minor);
if (fs->minor_version == -1)
goto out;
- }
- else if (match (g, fs->product_name, re_opensuse)) {
+ } else if (match (g, fs->product_name, re_opensuse)) {
fs->distro = OS_DISTRO_OPENSUSE;
/* Second line contains version string */
@@ -461,7 +464,7 @@ parse_suse_release (guestfs_h *g, struct inspect_fs *fs, const char
*filename)
r = 0;
- out:
+out:
return r;
}
@@ -479,20 +482,22 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
fs->type = OS_TYPE_LINUX;
if (guestfs_is_file_opts (g, "/etc/os-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
r = parse_os_release (g, fs, "/etc/os-release");
- if (r == -1) /* error */
+ if (r == -1) /* error */
return -1;
- if (r == 1) /* ok - detected the release from this file */
+ if (r == 1) /* ok - detected the release from this file */
goto skip_release_checks;
}
if (guestfs_is_file_opts (g, "/etc/lsb-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
r = parse_lsb_release (g, fs, "/etc/lsb-release");
- if (r == -1) /* error */
+ if (r == -1) /* error */
return -1;
- if (r == 1) /* ok - detected the release from this file */
+ if (r == 1) /* ok - detected the release from this file */
goto skip_release_checks;
}
@@ -500,7 +505,8 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
* checks need to be performed before the Red-Hat one.
*/
if (guestfs_is_file_opts (g, "/etc/oracle-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_ORACLE_LINUX;
@@ -519,23 +525,24 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
free (minor);
if (fs->minor_version == -1)
return -1;
- } else if ((major = match1 (g, fs->product_name, re_oracle_linux_no_minor)) !=
NULL) {
+ } else if ((major = match1 (g, fs->product_name,
+ re_oracle_linux_no_minor)) != NULL) {
fs->major_version = guestfs_int_parse_unsigned_int (g, major);
free (major);
if (fs->major_version == -1)
return -1;
fs->minor_version = 0;
}
- }
- else if (guestfs_is_file_opts (g, "/etc/centos-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/centos-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_CENTOS;
if (parse_release_file (g, fs, "/etc/centos-release") == -1)
return -1;
if (match2 (g, fs->product_name, re_centos_old, &major, &minor) ||
- match2 (g, fs->product_name, re_centos, &major, &minor)) {
+ match2 (g, fs->product_name, re_centos, &major, &minor)) {
fs->major_version = guestfs_int_parse_unsigned_int (g, major);
free (major);
if (fs->major_version == -1) {
@@ -546,17 +553,17 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
free (minor);
if (fs->minor_version == -1)
return -1;
- }
- else if ((major = match1 (g, fs->product_name, re_centos_no_minor)) != NULL) {
+ } else if ((major = match1 (g, fs->product_name, re_centos_no_minor)) !=
+ NULL) {
fs->major_version = guestfs_int_parse_unsigned_int (g, major);
free (major);
if (fs->major_version == -1)
return -1;
fs->minor_version = 0;
}
- }
- else if (guestfs_is_file_opts (g, "/etc/altlinux-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/altlinux-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_ALTLINUX;
if (parse_release_file (g, fs, "/etc/altlinux-release") == -1)
@@ -574,10 +581,11 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (fs->minor_version == -1)
return -1;
}
- }
- else if (guestfs_is_file_opts (g, "/etc/redhat-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
- fs->distro = OS_DISTRO_REDHAT_BASED; /* Something generic Red Hat-like. */
+ } else if (guestfs_is_file_opts (g, "/etc/redhat-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
+ fs->distro =
+ OS_DISTRO_REDHAT_BASED; /* Something generic Red Hat-like. */
if (parse_release_file (g, fs, "/etc/redhat-release") == -1)
return -1;
@@ -588,9 +596,8 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
free (major);
if (fs->major_version == -1)
return -1;
- }
- else if (match2 (g, fs->product_name, re_rhel_old, &major, &minor) ||
- match2 (g, fs->product_name, re_rhel, &major, &minor)) {
+ } else if (match2 (g, fs->product_name, re_rhel_old, &major, &minor) ||
+ match2 (g, fs->product_name, re_rhel, &major, &minor)) {
fs->distro = OS_DISTRO_RHEL;
fs->major_version = guestfs_int_parse_unsigned_int (g, major);
free (major);
@@ -602,17 +609,17 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
free (minor);
if (fs->minor_version == -1)
return -1;
- }
- else if ((major = match1 (g, fs->product_name, re_rhel_no_minor)) != NULL) {
+ } else if ((major = match1 (g, fs->product_name, re_rhel_no_minor)) !=
+ NULL) {
fs->distro = OS_DISTRO_RHEL;
fs->major_version = guestfs_int_parse_unsigned_int (g, major);
free (major);
if (fs->major_version == -1)
return -1;
fs->minor_version = 0;
- }
- else if (match2 (g, fs->product_name, re_centos_old, &major, &minor) ||
- match2 (g, fs->product_name, re_centos, &major, &minor)) {
+ } else if (match2 (g, fs->product_name, re_centos_old, &major,
+ &minor) ||
+ match2 (g, fs->product_name, re_centos, &major, &minor)) {
fs->distro = OS_DISTRO_CENTOS;
fs->major_version = guestfs_int_parse_unsigned_int (g, major);
free (major);
@@ -624,17 +631,18 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
free (minor);
if (fs->minor_version == -1)
return -1;
- }
- else if ((major = match1 (g, fs->product_name, re_centos_no_minor)) != NULL) {
+ } else if ((major = match1 (g, fs->product_name, re_centos_no_minor)) !=
+ NULL) {
fs->distro = OS_DISTRO_CENTOS;
fs->major_version = guestfs_int_parse_unsigned_int (g, major);
free (major);
if (fs->major_version == -1)
return -1;
fs->minor_version = 0;
- }
- else if (match2 (g, fs->product_name, re_scientific_linux_old, &major,
&minor) ||
- match2 (g, fs->product_name, re_scientific_linux, &major,
&minor)) {
+ } else if (match2 (g, fs->product_name, re_scientific_linux_old, &major,
+ &minor) ||
+ match2 (g, fs->product_name, re_scientific_linux, &major,
+ &minor)) {
fs->distro = OS_DISTRO_SCIENTIFIC_LINUX;
fs->major_version = guestfs_int_parse_unsigned_int (g, major);
free (major);
@@ -646,8 +654,8 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
free (minor);
if (fs->minor_version == -1)
return -1;
- }
- else if ((major = match1 (g, fs->product_name, re_scientific_linux_no_minor)) !=
NULL) {
+ } else if ((major = match1 (g, fs->product_name,
+ re_scientific_linux_no_minor)) != NULL) {
fs->distro = OS_DISTRO_SCIENTIFIC_LINUX;
fs->major_version = guestfs_int_parse_unsigned_int (g, major);
free (major);
@@ -655,9 +663,9 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
return -1;
fs->minor_version = 0;
}
- }
- else if (guestfs_is_file_opts (g, "/etc/debian_version",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/debian_version",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_DEBIAN;
if (parse_release_file (g, fs, "/etc/debian_version") == -1)
@@ -665,9 +673,9 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (guestfs_int_parse_major_minor (g, fs) == -1)
return -1;
- }
- else if (guestfs_is_file_opts (g, "/etc/pardus-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/pardus-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_PARDUS;
if (parse_release_file (g, fs, "/etc/pardus-release") == -1)
@@ -675,17 +683,17 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (guestfs_int_parse_major_minor (g, fs) == -1)
return -1;
- }
- else if (guestfs_is_file_opts (g, "/etc/arch-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/arch-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_ARCHLINUX;
/* /etc/arch-release file is empty and I can't see a way to
* determine the actual release or product string.
*/
- }
- else if (guestfs_is_file_opts (g, "/etc/gentoo-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/gentoo-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_GENTOO;
if (parse_release_file (g, fs, "/etc/gentoo-release") == -1)
@@ -693,9 +701,9 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (guestfs_int_parse_major_minor (g, fs) == -1)
return -1;
- }
- else if (guestfs_is_file_opts (g, "/etc/meego-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/meego-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_MEEGO;
if (parse_release_file (g, fs, "/etc/meego-release") == -1)
@@ -703,9 +711,9 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (guestfs_int_parse_major_minor (g, fs) == -1)
return -1;
- }
- else if (guestfs_is_file_opts (g, "/etc/slackware-version",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/slackware-version",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_SLACKWARE;
if (parse_release_file (g, fs, "/etc/slackware-version") == -1)
@@ -713,9 +721,9 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (guestfs_int_parse_major_minor (g, fs) == -1)
return -1;
- }
- else if (guestfs_is_file_opts (g, "/etc/ttylinux-target",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/ttylinux-target",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_TTYLINUX;
if (parse_release_file (g, fs, "/etc/ttylinux-target") == -1)
@@ -723,9 +731,9 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (guestfs_int_parse_major_minor (g, fs) == -1)
return -1;
- }
- else if (guestfs_is_file_opts (g, "/etc/SuSE-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/SuSE-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_SUSE_BASED;
if (parse_suse_release (g, fs, "/etc/SuSE-release") == -1)
@@ -735,7 +743,8 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
/* CirrOS versions providing a own version file.
*/
else if (guestfs_is_file_opts (g, "/etc/cirros/version",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_CIRROS;
if (parse_release_file (g, fs, "/etc/cirros/version") == -1)
@@ -748,9 +757,11 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
* toolkit. It is used by specific distros such as Cirros.
*/
else if (guestfs_is_file_opts (g, "/etc/br-version",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
if (guestfs_is_file_opts (g, "/usr/share/cirros/logo",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0)
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0)
fs->distro = OS_DISTRO_CIRROS;
else
fs->distro = OS_DISTRO_BUILDROOT;
@@ -761,9 +772,9 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (guestfs_int_parse_major_minor (g, fs) == -1)
return -1;
- }
- else if (guestfs_is_file_opts (g, "/etc/alpine-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/alpine-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_ALPINE_LINUX;
if (parse_release_file (g, fs, "/etc/alpine-release") == -1)
@@ -771,9 +782,9 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (guestfs_int_parse_major_minor (g, fs) == -1)
return -1;
- }
- else if (guestfs_is_file_opts (g, "/etc/frugalware-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ } else if (guestfs_is_file_opts (g, "/etc/frugalware-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_FRUGALWARE;
if (parse_release_file (g, fs, "/etc/frugalware-release") == -1)
@@ -793,7 +804,7 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
}
}
- skip_release_checks:;
+skip_release_checks:;
/* Determine the architecture. */
check_architecture (g, fs);
@@ -826,8 +837,8 @@ guestfs_int_check_freebsd_root (guestfs_h *g, struct inspect_fs *fs)
* we'll use that anyway.
*/
- if (guestfs_is_file_opts (g, "/etc/motd",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ if (guestfs_is_file_opts (
+ g, "/etc/motd", GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0)
{
if (parse_release_file (g, fs, "/etc/motd") == -1)
return -1;
@@ -838,7 +849,8 @@ guestfs_int_check_freebsd_root (guestfs_h *g, struct inspect_fs *fs)
/* Determine the architecture. */
check_architecture (g, fs);
- /* We already know /etc/fstab exists because it's part of the test above. */
+ /* We already know /etc/fstab exists because it's part of the test above.
+ */
const char *configfiles[] = { "/etc/fstab", NULL };
if (inspect_with_augeas (g, fs, configfiles, check_fstab) == -1)
return -1;
@@ -856,7 +868,8 @@ guestfs_int_check_netbsd_root (guestfs_h *g, struct inspect_fs *fs)
{
if (guestfs_is_file_opts (g, "/etc/release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
char *major, *minor;
if (parse_release_file (g, fs, "/etc/release") == -1)
return -1;
@@ -882,7 +895,8 @@ guestfs_int_check_netbsd_root (guestfs_h *g, struct inspect_fs *fs)
/* Determine the architecture. */
check_architecture (g, fs);
- /* We already know /etc/fstab exists because it's part of the test above. */
+ /* We already know /etc/fstab exists because it's part of the test above.
+ */
const char *configfiles[] = { "/etc/fstab", NULL };
if (inspect_with_augeas (g, fs, configfiles, check_fstab) == -1)
return -1;
@@ -898,8 +912,8 @@ guestfs_int_check_netbsd_root (guestfs_h *g, struct inspect_fs *fs)
int
guestfs_int_check_openbsd_root (guestfs_h *g, struct inspect_fs *fs)
{
- if (guestfs_is_file_opts (g, "/etc/motd",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ if (guestfs_is_file_opts (
+ g, "/etc/motd", GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0)
{
CLEANUP_FREE char *major = NULL, *minor = NULL;
/* The first line of this file gets automatically updated at boot. */
@@ -931,7 +945,8 @@ guestfs_int_check_openbsd_root (guestfs_h *g, struct inspect_fs *fs)
/* Determine the architecture. */
check_architecture (g, fs);
- /* We already know /etc/fstab exists because it's part of the test above. */
+ /* We already know /etc/fstab exists because it's part of the test above.
+ */
const char *configfiles[] = { "/etc/fstab", NULL };
if (inspect_with_augeas (g, fs, configfiles, check_fstab) == -1)
return -1;
@@ -952,7 +967,8 @@ guestfs_int_check_hurd_root (guestfs_h *g, struct inspect_fs *fs)
fs->type = OS_TYPE_HURD;
if (guestfs_is_file_opts (g, "/etc/debian_version",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
fs->distro = OS_DISTRO_DEBIAN;
if (parse_release_file (g, fs, "/etc/debian_version") == -1)
@@ -989,7 +1005,8 @@ guestfs_int_check_minix_root (guestfs_h *g, struct inspect_fs *fs)
fs->type = OS_TYPE_MINIX;
if (guestfs_is_file_opts (g, "/etc/version",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
char *major, *minor;
if (parse_release_file (g, fs, "/etc/version") == -1)
return -1;
@@ -1059,22 +1076,24 @@ guestfs_int_check_coreos_usr (guestfs_h *g, struct inspect_fs
*fs)
fs->distro = OS_DISTRO_COREOS;
if (guestfs_is_file_opts (g, "/lib/os-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
r = parse_os_release (g, fs, "/lib/os-release");
- if (r == -1) /* error */
+ if (r == -1) /* error */
return -1;
- if (r == 1) /* ok - detected the release from this file */
+ if (r == 1) /* ok - detected the release from this file */
goto skip_release_checks;
}
if (guestfs_is_file_opts (g, "/share/coreos/lsb-release",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
r = parse_lsb_release (g, fs, "/share/coreos/lsb-release");
- if (r == -1) /* error */
+ if (r == -1) /* error */
return -1;
}
- skip_release_checks:;
+skip_release_checks:;
/* Determine the architecture. */
check_architecture (g, fs);
@@ -1090,8 +1109,8 @@ guestfs_int_check_coreos_usr (guestfs_h *g, struct inspect_fs *fs)
static void
check_architecture (guestfs_h *g, struct inspect_fs *fs)
{
- const char *binaries[] =
- { "/bin/bash", "/bin/ls", "/bin/echo",
"/bin/rm", "/bin/sh" };
+ const char *binaries[] = { "/bin/bash", "/bin/ls",
"/bin/echo", "/bin/rm",
+ "/bin/sh" };
size_t i;
char *arch = NULL;
@@ -1101,7 +1120,8 @@ check_architecture (guestfs_h *g, struct inspect_fs *fs)
* then we can check the architecture of their target.
*/
if (guestfs_is_file_opts (g, binaries[i],
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0) {
CLEANUP_FREE char *resolved = NULL;
/* Ignore errors from realpath and file_architecture calls. */
@@ -1163,8 +1183,8 @@ check_hostname_unix (guestfs_h *g, struct inspect_fs *fs)
if (!fs->hostname && guestfs_is_file (g,
"/etc/sysconfig/network")) {
const char *configfiles[] = { "/etc/sysconfig/network", NULL };
- if (inspect_with_augeas (g, fs, configfiles,
- check_hostname_redhat) == -1)
+ if (inspect_with_augeas (g, fs, configfiles, check_hostname_redhat) ==
+ -1)
return -1;
}
break;
@@ -1194,7 +1214,8 @@ check_hostname_unix (guestfs_h *g, struct inspect_fs *fs)
case OS_TYPE_MINIX:
if (guestfs_is_file (g, "/etc/hostname.file")) {
- fs->hostname = guestfs_int_first_line_of_file (g,
"/etc/hostname.file");
+ fs->hostname =
+ guestfs_int_first_line_of_file (g, "/etc/hostname.file");
if (fs->hostname == NULL)
return -1;
if (STREQ (fs->hostname, "")) {
@@ -1207,7 +1228,7 @@ check_hostname_unix (guestfs_h *g, struct inspect_fs *fs)
case OS_TYPE_WINDOWS: /* not here, see check_windows_system_registry */
case OS_TYPE_DOS:
case OS_TYPE_UNKNOWN:
- /* nothing */;
+ /* nothing */;
}
return 0;
@@ -1292,14 +1313,16 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
char augpath[256];
CLEANUP_HASH_FREE Hash_table *md_map = NULL;
bool is_bsd = (fs->type == OS_TYPE_FREEBSD ||
- fs->type == OS_TYPE_NETBSD ||
- fs->type == OS_TYPE_OPENBSD);
+ fs->type == OS_TYPE_NETBSD || fs->type == OS_TYPE_OPENBSD);
- /* Generate a map of MD device paths listed in /etc/mdadm.conf to MD device
+ /* Generate a map of MD device paths listed in /etc/mdadm.conf to MD
+ * device
* paths in the guestfs appliance */
- if (map_md_devices (g, &md_map) == -1) return -1;
+ if (map_md_devices (g, &md_map) == -1)
+ return -1;
- entries = guestfs_aug_match (g, "/files/etc/fstab/*[label() !=
'#comment']");
+ entries =
+ guestfs_aug_match (g, "/files/etc/fstab/*[label() !=
'#comment']");
if (entries == NULL)
return -1;
@@ -1320,8 +1343,7 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
* discs.
*/
if ((STRPREFIX (spec, "/dev/fd") && c_isdigit (spec[7])) ||
- STREQ (spec, "/dev/floppy") ||
- STREQ (spec, "/dev/cdrom") ||
+ STREQ (spec, "/dev/floppy") || STREQ (spec, "/dev/cdrom") ||
STRPREFIX (spec, "/dev/iso9660/"))
continue;
@@ -1331,14 +1353,10 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
return -1;
/* Ignore certain mountpoints. */
- if (STRPREFIX (mp, "/dev/") ||
- STREQ (mp, "/dev") ||
- STRPREFIX (mp, "/media/") ||
- STRPREFIX (mp, "/proc/") ||
- STREQ (mp, "/proc") ||
- STRPREFIX (mp, "/selinux/") ||
- STREQ (mp, "/selinux") ||
- STRPREFIX (mp, "/sys/") ||
+ if (STRPREFIX (mp, "/dev/") || STREQ (mp, "/dev") ||
+ STRPREFIX (mp, "/media/") || STRPREFIX (mp, "/proc/") ||
+ STREQ (mp, "/proc") || STRPREFIX (mp, "/selinux/") ||
+ STREQ (mp, "/selinux") || STRPREFIX (mp, "/sys/") ||
STREQ (mp, "/sys"))
continue;
@@ -1358,7 +1376,8 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
/* Resolve guest block device names. */
mountable = resolve_fstab_device (g, spec, md_map, fs->type);
else if (match (g, spec, re_openbsd_duid)) {
- /* In OpenBSD's fstab you can specify partitions on a disk by appending a
+ /* In OpenBSD's fstab you can specify partitions on a disk by
+ * appending a
* period and a partition letter to a Disklable Unique Identifier. The
* DUID is a 16 hex digit field found in the OpenBSD's altered BSD
* disklabel. For more info see here:
@@ -1370,7 +1389,7 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
/* We cannot peep into disklables, we can only assume that this is the
* first disk.
*/
- snprintf(device, 10, "%s%c", "/dev/sd0", part);
+ snprintf (device, 10, "%s%c", "/dev/sd0", part);
mountable = resolve_fstab_device (g, device, md_map, fs->type);
}
@@ -1382,18 +1401,21 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
snprintf (augpath, sizeof augpath, "%s/vfstype", *entry);
vfstype = guestfs_aug_get (g, augpath);
- if (vfstype == NULL) return -1;
+ if (vfstype == NULL)
+ return -1;
if (STREQ (vfstype, "btrfs")) {
char **opt;
snprintf (augpath, sizeof augpath, "%s/opt", *entry);
CLEANUP_FREE_STRING_LIST char **opts = guestfs_aug_match (g, augpath);
- if (opts == NULL) return -1;
+ if (opts == NULL)
+ return -1;
for (opt = opts; *opt; opt++) {
CLEANUP_FREE char *optname = guestfs_aug_get (g, augpath);
- if (optname == NULL) return -1;
+ if (optname == NULL)
+ return -1;
if (STREQ (optname, "subvol")) {
CLEANUP_FREE char *subvol = NULL;
@@ -1401,7 +1423,8 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
snprintf (augpath, sizeof augpath, "%s/value", *opt);
subvol = guestfs_aug_get (g, augpath);
- if (subvol == NULL) return -1;
+ if (subvol == NULL)
+ return -1;
new = safe_asprintf (g, "btrfsvol:%s/%s", mountable, subvol);
free (mountable);
@@ -1425,8 +1448,8 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
* 'mp' is the mount point, which could also be 'swap' or
'none'.
*/
static void
-add_fstab_entry (guestfs_h *g, struct inspect_fs *fs,
- const char *mountable, const char *mountpoint)
+add_fstab_entry (guestfs_h *g, struct inspect_fs *fs, const char *mountable,
+ const char *mountpoint)
{
/* Add this to the fstab entry in 'fs'.
* Note these are further filtered by guestfs_inspect_get_mountpoints
@@ -1440,16 +1463,17 @@ add_fstab_entry (guestfs_h *g, struct inspect_fs *fs,
fs->fstab = p;
fs->nr_fstab = n;
- /* These are owned by the handle and freed by guestfs_int_free_inspect_info. */
- fs->fstab[n-1].mountable = safe_strdup (g, mountable);
- fs->fstab[n-1].mountpoint = safe_strdup (g, mountpoint);
+ /* These are owned by the handle and freed by
+ * guestfs_int_free_inspect_info. */
+ fs->fstab[n - 1].mountable = safe_strdup (g, mountable);
+ fs->fstab[n - 1].mountpoint = safe_strdup (g, mountpoint);
debug (g, "fstab: mountable=%s mountpoint=%s", mountable, mountpoint);
}
/* Compute a uuid hash as a simple xor of of its 4 32bit components */
static size_t
-uuid_hash(const void *x, size_t table_size)
+uuid_hash (const void *x, size_t table_size)
{
const md_uuid *a = x;
size_t h, i;
@@ -1463,25 +1487,26 @@ uuid_hash(const void *x, size_t table_size)
}
static bool
-uuid_cmp(const void *x, const void *y)
+uuid_cmp (const void *x, const void *y)
{
const md_uuid *a = x;
const md_uuid *b = y;
size_t i;
for (i = 0; i < 1; i++) {
- if (a->uuid[i] != b->uuid[i]) return 0;
+ if (a->uuid[i] != b->uuid[i])
+ return 0;
}
return 1;
}
static void
-md_uuid_free(void *x)
+md_uuid_free (void *x)
{
md_uuid *a = x;
- free(a->path);
- free(a);
+ free (a->path);
+ free (a);
}
/* Taken from parse_uuid in mdadm */
@@ -1514,7 +1539,8 @@ parse_uuid (const char *str, uint32_t *uuid)
}
hit++;
}
- if (hit == 32) return 0;
+ if (hit == 32)
+ return 0;
return -1;
}
@@ -1528,20 +1554,24 @@ map_app_md_devices (guestfs_h *g, Hash_table **map)
char **md;
/* A hash mapping uuids to md device names */
- *map = hash_initialize(16, NULL, uuid_hash, uuid_cmp, md_uuid_free);
- if (*map == NULL) g->abort_cb();
+ *map = hash_initialize (16, NULL, uuid_hash, uuid_cmp, md_uuid_free);
+ if (*map == NULL)
+ g->abort_cb ();
- mds = guestfs_list_md_devices(g);
- if (mds == NULL) goto error;
+ mds = guestfs_list_md_devices (g);
+ if (mds == NULL)
+ goto error;
for (md = mds; *md != NULL; md++) {
char **i;
CLEANUP_FREE_STRING_LIST char **detail = guestfs_md_detail (g, *md);
- if (detail == NULL) goto error;
+ if (detail == NULL)
+ goto error;
/* Iterate over keys until we find uuid */
for (i = detail; *i != NULL; i += 2) {
- if (STREQ(*i, "uuid")) break;
+ if (STREQ (*i, "uuid"))
+ break;
}
/* We found it */
@@ -1551,52 +1581,54 @@ map_app_md_devices (guestfs_h *g, Hash_table **map)
/* Next item is the uuid value */
i++;
- entry = safe_malloc(g, sizeof(md_uuid));
- entry->path = safe_strdup(g, *md);
+ entry = safe_malloc (g, sizeof (md_uuid));
+ entry->path = safe_strdup (g, *md);
- if (parse_uuid(*i, entry->uuid) == -1) {
+ if (parse_uuid (*i, entry->uuid) == -1) {
/* Invalid UUID is weird, but not fatal. */
- debug(g, "inspect-os: guestfs_md_detail returned invalid "
- "uuid for %s: %s", *md, *i);
- md_uuid_free(entry);
+ debug (g, "inspect-os: guestfs_md_detail returned invalid "
+ "uuid for %s: %s",
+ *md, *i);
+ md_uuid_free (entry);
continue;
}
const void *matched = NULL;
- switch (hash_insert_if_absent(*map, entry, &matched)) {
+ switch (hash_insert_if_absent (*map, entry, &matched)) {
case -1:
- g->abort_cb();
+ g->abort_cb ();
case 0:
- /* Duplicate uuid in for md device is weird, but not fatal. */
- debug(g, "inspect-os: md devices %s and %s have the same uuid",
- ((md_uuid *)matched)->path, entry->path);
- md_uuid_free(entry);
- break;
+ /* Duplicate uuid in for md device is weird, but not fatal. */
+ debug (g, "inspect-os: md devices %s and %s have the same uuid",
+ ((md_uuid *)matched)->path, entry->path);
+ md_uuid_free (entry);
+ break;
default:
- n++;
+ n++;
}
}
}
return n;
- error:
- hash_free (*map); *map = NULL;
+error:
+ hash_free (*map);
+ *map = NULL;
return -1;
}
static size_t
-mdadm_app_hash(const void *x, size_t table_size)
+mdadm_app_hash (const void *x, size_t table_size)
{
const mdadm_app *a = x;
- return hash_pjw(a->mdadm, table_size);
+ return hash_pjw (a->mdadm, table_size);
}
static bool
-mdadm_app_cmp(const void *x, const void *y)
+mdadm_app_cmp (const void *x, const void *y)
{
const mdadm_app *a = x;
const mdadm_app *b = y;
@@ -1605,18 +1637,18 @@ mdadm_app_cmp(const void *x, const void *y)
}
static void
-mdadm_app_free(void *x)
+mdadm_app_free (void *x)
{
mdadm_app *a = x;
- free(a->mdadm);
- free(a->app);
- free(a);
+ free (a->mdadm);
+ free (a->app);
+ free (a);
}
/* Get a map of md device names in mdadm.conf to their device names in the
* appliance */
static int
-map_md_devices(guestfs_h *g, Hash_table **map)
+map_md_devices (guestfs_h *g, Hash_table **map)
{
CLEANUP_HASH_FREE Hash_table *app_map = NULL;
CLEANUP_FREE_STRING_LIST char **matches = NULL;
@@ -1626,32 +1658,38 @@ map_md_devices(guestfs_h *g, Hash_table **map)
/* Get a map of md device uuids to their device names in the appliance */
n_app_md_devices = map_app_md_devices (g, &app_map);
- if (n_app_md_devices == -1) goto error;
+ if (n_app_md_devices == -1)
+ goto error;
/* Nothing to do if there are no md devices */
if (n_app_md_devices == 0)
return 0;
/* Get all arrays listed in mdadm.conf */
- matches = guestfs_aug_match(g, "/files/etc/mdadm.conf/array");
- if (!matches) goto error;
+ matches = guestfs_aug_match (g, "/files/etc/mdadm.conf/array");
+ if (!matches)
+ goto error;
- /* Log a debug message if we've got md devices, but nothing in mdadm.conf */
+ /* Log a debug message if we've got md devices, but nothing in mdadm.conf
+ */
if (matches[0] == NULL) {
- debug(g, "Appliance has MD devices, but augeas returned no array matches "
- "in mdadm.conf");
+ debug (g,
+ "Appliance has MD devices, but augeas returned no array matches "
+ "in mdadm.conf");
return 0;
}
- *map = hash_initialize(16, NULL, mdadm_app_hash, mdadm_app_cmp,
- mdadm_app_free);
- if (!*map) g->abort_cb();
+ *map = hash_initialize (16, NULL, mdadm_app_hash, mdadm_app_cmp,
+ mdadm_app_free);
+ if (!*map)
+ g->abort_cb ();
for (char **m = matches; *m != NULL; m++) {
/* Get device name and uuid for each array */
CLEANUP_FREE char *dev_path = safe_asprintf (g, "%s/devicename", *m);
char *dev = guestfs_aug_get (g, dev_path);
- if (!dev) goto error;
+ if (!dev)
+ goto error;
CLEANUP_FREE char *uuid_path = safe_asprintf (g, "%s/uuid", *m);
CLEANUP_FREE char *uuid = guestfs_aug_get (g, uuid_path);
@@ -1664,32 +1702,32 @@ map_md_devices(guestfs_h *g, Hash_table **map)
* uuid->appliance device map */
md_uuid mdadm;
mdadm.path = dev;
- if (parse_uuid(uuid, mdadm.uuid) == -1) {
+ if (parse_uuid (uuid, mdadm.uuid) == -1) {
/* Invalid uuid. Weird, but not fatal. */
- debug(g, "inspect-os: mdadm.conf contains invalid uuid for %s: %s",
- dev, uuid);
+ debug (g, "inspect-os: mdadm.conf contains invalid uuid for %s: %s",
+ dev, uuid);
free (dev);
continue;
}
/* If there's a corresponding uuid in the appliance, create a new
* entry in the transitive map */
- md_uuid *app = hash_lookup(app_map, &mdadm);
+ md_uuid *app = hash_lookup (app_map, &mdadm);
if (app) {
- mdadm_app *entry = safe_malloc(g, sizeof(mdadm_app));
+ mdadm_app *entry = safe_malloc (g, sizeof (mdadm_app));
entry->mdadm = dev;
- entry->app = safe_strdup(g, app->path);
+ entry->app = safe_strdup (g, app->path);
- switch (hash_insert_if_absent(*map, entry, NULL)) {
+ switch (hash_insert_if_absent (*map, entry, NULL)) {
case -1:
- g->abort_cb();
+ g->abort_cb ();
case 0:
- /* Duplicate uuid in for md device is weird, but not fatal. */
- debug(g, "inspect-os: mdadm.conf contains multiple entries for %s",
- app->path);
- mdadm_app_free(entry);
- continue;
+ /* Duplicate uuid in for md device is weird, but not fatal. */
+ debug (g, "inspect-os: mdadm.conf contains multiple entries for %s",
+ app->path);
+ mdadm_app_free (entry);
+ continue;
}
} else
free (dev);
@@ -1697,8 +1735,9 @@ map_md_devices(guestfs_h *g, Hash_table **map)
return 0;
- error:
- if (*map) hash_free (*map);
+error:
+ if (*map)
+ hash_free (*map);
return -1;
}
@@ -1725,7 +1764,8 @@ resolve_fstab_device_xdev (guestfs_h *g, const char *type, const
char *disk,
/* Check any hints we were passed for a non-heuristic mapping */
name = safe_asprintf (g, "%sd%s", type, disk);
- ITER_DRIVES (g, i, drv) {
+ ITER_DRIVES (g, i, drv)
+ {
if (drv->name && STREQ (drv->name, name)) {
device = safe_asprintf (g, "%s%s", devices[i], part);
if (!guestfs_int_is_partition (g, device)) {
@@ -1746,11 +1786,13 @@ resolve_fstab_device_xdev (guestfs_h *g, const char *type, const
char *disk,
/* Calculate the numerical index of the disk */
i = disk[0] - 'a';
for (p = disk + 1; *p != '\0'; p++) {
- i += 1; i *= 26;
+ i += 1;
+ i *= 26;
i += *p - 'a';
}
- /* Check the index makes sense wrt the number of disks the appliance has.
+ /* Check the index makes sense wrt the number of disks the appliance
+ * has.
* If it does, map it to an appliance disk.
*/
if (i < count) {
@@ -1767,8 +1809,8 @@ resolve_fstab_device_xdev (guestfs_h *g, const char *type, const
char *disk,
}
static int
-resolve_fstab_device_cciss (guestfs_h *g, const char *disk, const char *part,
- char **device_ret)
+resolve_fstab_device_cciss (guestfs_h *g, const char *disk,
+ const char *part, char **device_ret)
{
char *device;
CLEANUP_FREE_STRING_LIST char **devices = NULL;
@@ -1784,7 +1826,8 @@ resolve_fstab_device_cciss (guestfs_h *g, const char *disk, const
char *part,
return -1;
/* Check any hints we were passed for a non-heuristic mapping */
- ITER_DRIVES (g, i, drv) {
+ ITER_DRIVES (g, i, drv)
+ {
if (drv->name && STREQ (drv->name, disk)) {
if (part) {
device = safe_asprintf (g, "%s%s", devices[i], part);
@@ -1793,8 +1836,7 @@ resolve_fstab_device_cciss (guestfs_h *g, const char *disk, const
char *part,
return 0;
}
*device_ret = device;
- }
- else
+ } else
*device_ret = safe_strdup (g, devices[i]);
break;
}
@@ -1868,35 +1910,33 @@ resolve_fstab_device (guestfs_h *g, const char *spec, Hash_table
*md_map,
* we have implemented lvm_canonical_lv_name in the daemon.
*/
device = guestfs_lvm_canonical_lv_name (g, spec);
- }
- else if (match3 (g, spec, re_xdev, &type, &disk, &part)) {
+ } else if (match3 (g, spec, re_xdev, &type, &disk, &part)) {
r = resolve_fstab_device_xdev (g, type, disk, part, &device);
free (type);
free (disk);
free (part);
if (r == -1)
return NULL;
- }
- else if (match2 (g, spec, re_cciss, &disk, &part)) {
+ } else if (match2 (g, spec, re_cciss, &disk, &part)) {
r = resolve_fstab_device_cciss (g, disk, part, &device);
free (disk);
free (part);
if (r == -1)
return NULL;
- }
- else if (md_map && (disk = match1 (g, spec, re_mdN)) != NULL) {
+ } else if (md_map && (disk = match1 (g, spec, re_mdN)) != NULL) {
mdadm_app entry;
entry.mdadm = disk;
mdadm_app *app = hash_lookup (md_map, &entry);
- if (app) device = safe_strdup (g, app->app);
+ if (app)
+ device = safe_strdup (g, app->app);
free (disk);
- }
- else if (match3 (g, spec, re_freebsd_gpt, &type, &disk, &part)) {
+ } else if (match3 (g, spec, re_freebsd_gpt, &type, &disk, &part)) {
/* If the FreeBSD disk contains GPT partitions, the translation to Linux
* device names is straight forward. Partitions on a virtio disk are
- * prefixed with vtbd. IDE hard drives used to be prefixed with ad and now
+ * prefixed with vtbd. IDE hard drives used to be prefixed with ad and
+ * now
* are with ada.
*/
int disk_i = guestfs_int_parse_unsigned_int (g, disk);
@@ -1907,8 +1947,8 @@ resolve_fstab_device (guestfs_h *g, const char *spec, Hash_table
*md_map,
if (disk_i != -1 && disk_i <= 26 && part_i > 0 &&
part_i <= 128)
device = safe_asprintf (g, "/dev/sd%c%d", disk_i + 'a', part_i);
- }
- else if (match4 (g, spec, re_freebsd_mbr, &type, &disk, &slice, &part))
{
+ } else if (match4 (g, spec, re_freebsd_mbr, &type, &disk, &slice,
+ &part)) {
/* FreeBSD disks are organized quite differently. See:
*
http://www.freebsd.org/doc/handbook/disk-organization.html
* FreeBSD "partitions" are exposed as quasi-extended partitions
@@ -1924,17 +1964,17 @@ resolve_fstab_device (guestfs_h *g, const char *spec, Hash_table
*md_map,
free (part);
if (part_i > 2)
- /* Partition 'c' has the size of the enclosing slice. Not mapped under
Linux. */
+ /* Partition 'c' has the size of the enclosing slice. Not mapped under
+ * Linux. */
part_i -= 1;
- if (disk_i != -1 && disk_i <= 26 &&
- slice_i > 0 && slice_i <= 1 /* > 4 .. see comment above */
&&
- part_i >= 0 && part_i < 25) {
+ if (disk_i != -1 && disk_i <= 26 && slice_i > 0 &&
+ slice_i <= 1 /* > 4 .. see comment above */ && part_i >= 0
&&
+ part_i < 25) {
device = safe_asprintf (g, "/dev/sd%c%d", disk_i + 'a', part_i +
5);
}
- }
- else if ((os_type == OS_TYPE_NETBSD) &&
- match3 (g, spec, re_netbsd_dev, &type, &disk, &part)) {
+ } else if ((os_type == OS_TYPE_NETBSD) &&
+ match3 (g, spec, re_netbsd_dev, &type, &disk, &part)) {
int disk_i = guestfs_int_parse_unsigned_int (g, disk);
int part_i = part[0] - 'a'; /* counting from 0 */
free (type);
@@ -1942,16 +1982,16 @@ resolve_fstab_device (guestfs_h *g, const char *spec, Hash_table
*md_map,
free (part);
if (part_i > 3)
- /* Partition 'c' is the disklabel partition and 'd' the hard disk
itself.
+ /* Partition 'c' is the disklabel partition and 'd' the hard disk
+ * itself.
* Not mapped under Linux.
*/
part_i -= 2;
if (disk_i != -1 && part_i >= 0 && part_i < 24)
device = safe_asprintf (g, "/dev/sd%c%d", disk_i + 'a', part_i +
5);
- }
- else if ((os_type == OS_TYPE_OPENBSD) &&
- match3 (g, spec, re_openbsd_dev, &type, &disk, &part)) {
+ } else if ((os_type == OS_TYPE_OPENBSD) &&
+ match3 (g, spec, re_openbsd_dev, &type, &disk, &part)) {
int disk_i = guestfs_int_parse_unsigned_int (g, disk);
int part_i = part[0] - 'a'; /* counting from 0 */
free (type);
@@ -1965,14 +2005,12 @@ resolve_fstab_device (guestfs_h *g, const char *spec, Hash_table
*md_map,
/* In OpenBSD MAXPARTITIONS is defined to 16 for all architectures */
if (disk_i != -1 && part_i >= 0 && part_i < 15)
device = safe_asprintf (g, "/dev/sd%c%d", disk_i + 'a', part_i +
5);
- }
- else if ((part = match1 (g, spec, re_diskbyid)) != NULL) {
+ } else if ((part = match1 (g, spec, re_diskbyid)) != NULL) {
r = resolve_fstab_device_diskbyid (g, part, &device);
free (part);
if (r == -1)
return NULL;
- }
- else if (match3 (g, spec, re_hurd_dev, &type, &disk, &part)) {
+ } else if (match3 (g, spec, re_hurd_dev, &type, &disk, &part)) {
/* Hurd disk devices are like /dev/hdNsM, where hdN is the
* N-th disk and M is the M-th partition on that disk.
* Turn the disk number into a letter-based identifier, so
@@ -1995,7 +2033,8 @@ resolve_fstab_device (guestfs_h *g, const char *spec, Hash_table
*md_map,
return device;
}
-static char *make_augeas_path_expression (guestfs_h *g, const char **configfiles);
+static char *make_augeas_path_expression (guestfs_h *g,
+ const char **configfiles);
/* Call 'f' with Augeas opened and having parsed 'configfiles' (these
* files must exist). As a security measure, this bails if any file
@@ -2017,7 +2056,8 @@ inspect_with_augeas (guestfs_h *g, struct inspect_fs *fs,
/* Security: Refuse to do this if a config file is too large. */
for (i = 0; configfiles[i] != NULL; ++i) {
if (guestfs_is_file_opts (g, configfiles[i],
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) == 0)
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) == 0)
continue;
size = guestfs_filesize (g, configfiles[i]);
@@ -2031,7 +2071,8 @@ inspect_with_augeas (guestfs_h *g, struct inspect_fs *fs,
}
}
- if (guestfs_aug_init (g, "/", 16|32 /* AUG_SAVE_NOOP|AUG_NO_LOAD */) == -1)
+ if (guestfs_aug_init (g, "/", 16 | 32 /* AUG_SAVE_NOOP|AUG_NO_LOAD */) ==
+ -1)
return -1;
r = -1;
@@ -2056,27 +2097,24 @@ inspect_with_augeas (guestfs_h *g, struct inspect_fs *fs,
for (match = matches; *match != NULL; ++match) {
for (i = 0; configfiles[i] != NULL; ++i) {
CLEANUP_FREE char *errorpath =
- safe_asprintf (g, "/augeas/files%s/error", configfiles[i]);
+ safe_asprintf (g, "/augeas/files%s/error", configfiles[i]);
if (STREQ (*match, errorpath)) {
/* Get the various error details. */
guestfs_push_error_handler (g, NULL, NULL);
CLEANUP_FREE char *messagepath =
- safe_asprintf (g, "%s/message", errorpath);
+ safe_asprintf (g, "%s/message", errorpath);
CLEANUP_FREE char *message = guestfs_aug_get (g, messagepath);
CLEANUP_FREE char *linepath =
- safe_asprintf (g, "%s/line", errorpath);
+ safe_asprintf (g, "%s/line", errorpath);
CLEANUP_FREE char *line = guestfs_aug_get (g, linepath);
CLEANUP_FREE char *charpath =
- safe_asprintf (g, "%s/char", errorpath);
+ safe_asprintf (g, "%s/char", errorpath);
CLEANUP_FREE char *charp = guestfs_aug_get (g, charpath);
guestfs_pop_error_handler (g);
- error (g, _("%s:%s:%s: augeas parse failure: %s"),
- configfiles[i],
- line ? : "<none>",
- charp ? : "<none>",
- message ? : "<none>");
+ error (g, _("%s:%s:%s: augeas parse failure: %s"), configfiles[i],
+ line ?: "<none>", charp ?: "<none>",
message ?: "<none>");
goto out;
}
}
@@ -2084,7 +2122,7 @@ inspect_with_augeas (guestfs_h *g, struct inspect_fs *fs,
r = f (g, fs);
- out:
+out:
guestfs_aug_close (g);
return r;
@@ -2100,13 +2138,14 @@ make_augeas_path_expression (guestfs_h *g, const char
**configfiles)
CLEANUP_FREE char *subexpr = NULL;
char *ret;
- nr_files = guestfs_int_count_strings ((char **) configfiles);
+ nr_files = guestfs_int_count_strings ((char **)configfiles);
subexprs = safe_malloc (g, sizeof (char *) * (nr_files + 1));
for (i = 0; i < nr_files; ++i) {
subexprs[i] = /* v NB trailing '/' after filename */
- safe_asprintf (g, "\"%s/\" !~ regexp('^') + glob(incl) +
regexp('/.*')",
- configfiles[i]);
+ safe_asprintf (
+ g, "\"%s/\" !~ regexp('^') + glob(incl) +
regexp('/.*')",
+ configfiles[i]);
}
subexprs[nr_files] = NULL;
diff --git a/src/inspect-fs-windows.c b/src/inspect-fs-windows.c
index 3ac9107..8b7be18 100644
--- a/src/inspect-fs-windows.c
+++ b/src/inspect-fs-windows.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -36,8 +37,8 @@
#if defined __APPLE__ && defined __MACH__
#include <libkern/OSByteOrder.h>
-#define le32toh(x) OSSwapLittleToHostInt32(x)
-#define le64toh(x) OSSwapLittleToHostInt64(x)
+#define le32toh(x) OSSwapLittleToHostInt32 (x)
+#define le64toh(x) OSSwapLittleToHostInt64 (x)
#endif
#include <pcre.h>
@@ -51,15 +52,20 @@
COMPILE_REGEXP (re_windows_version, "^(\\d+)\\.(\\d+)", 0)
COMPILE_REGEXP (re_boot_ini_os_header, "^\\[operating systems\\]\\s*$", 0)
-COMPILE_REGEXP (re_boot_ini_os,
-
"^(multi|scsi)\\((\\d+)\\)disk\\((\\d+)\\)rdisk\\((\\d+)\\)partition\\((\\d+)\\)([^=]+)=",
0)
+COMPILE_REGEXP (re_boot_ini_os, "^(multi|scsi)\\((\\d+)\\)disk\\((\\d+)\\)"
+ "rdisk\\((\\d+)\\)partition\\((\\d+)\\)([^="
+ "]+)=",
+ 0)
static int check_windows_arch (guestfs_h *g, struct inspect_fs *fs);
-static int check_windows_software_registry (guestfs_h *g, struct inspect_fs *fs);
-static int check_windows_system_registry (guestfs_h *g, struct inspect_fs *fs);
+static int check_windows_software_registry (guestfs_h *g,
+ struct inspect_fs *fs);
+static int check_windows_system_registry (guestfs_h *g,
+ struct inspect_fs *fs);
static char *map_registry_disk_blob (guestfs_h *g, const void *blob);
static char *map_registry_disk_blob_gpt (guestfs_h *g, const void *blob);
-static char *extract_guid_from_registry_blob (guestfs_h *g, const void *blob);
+static char *extract_guid_from_registry_blob (guestfs_h *g,
+ const void *blob);
/* XXX Handling of boot.ini in the Perl version was pretty broken. It
* essentially didn't do anything for modern Windows guests.
@@ -104,12 +110,12 @@ char *
guestfs_int_get_windows_systemroot (guestfs_h *g)
{
/* Check a predefined list of common windows system root locations */
- static const char *systemroots[] =
- { "/windows", "/winnt", "/win32", "/win",
"/reactos", NULL };
+ static const char *systemroots[] = { "/windows", "/winnt",
"/win32",
+ "/win", "/reactos", NULL
};
for (size_t i = 0; i < sizeof systemroots / sizeof systemroots[0]; ++i) {
char *systemroot =
- guestfs_int_case_sensitive_path_silently (g, systemroots[i]);
+ guestfs_int_case_sensitive_path_silently (g, systemroots[i]);
if (!systemroot)
continue;
@@ -125,10 +131,10 @@ guestfs_int_get_windows_systemroot (guestfs_h *g)
/* If the fs contains boot.ini, check it for non-standard
* systemroot locations */
CLEANUP_FREE char *boot_ini_path =
- guestfs_int_case_sensitive_path_silently (g, "/boot.ini");
+ guestfs_int_case_sensitive_path_silently (g, "/boot.ini");
if (boot_ini_path && guestfs_is_file (g, boot_ini_path) > 0) {
CLEANUP_FREE_STRING_LIST char **boot_ini =
- guestfs_read_lines (g, boot_ini_path);
+ guestfs_read_lines (g, boot_ini_path);
if (!boot_ini) {
debug (g, "error reading %s", boot_ini_path);
return NULL;
@@ -154,51 +160,52 @@ guestfs_int_get_windows_systemroot (guestfs_h *g)
/* See
http://support.microsoft.com/kb/102873 for a discussion
* of what this line means */
- if (match6 (g, line, re_boot_ini_os, &controller_type,
- &controller, &disk, &rdisk, &partition, &path))
- {
- /* The Windows system root may be on any disk. However, there
- * are currently (at least) 2 practical problems preventing us
- * from locating it on another disk:
- *
- * 1. We don't have enough metadata about the disks we were
- * given to know if what controller they were on and what
- * index they had.
- *
- * 2. The way inspection of filesystems currently works, we
- * can't mark another filesystem, which we may have already
- * inspected, to be inspected for a specific Windows system
- * root.
- *
- * Solving 1 properly would require a new API at a minimum. We
- * might be able to fudge something practical without this,
- * though, e.g. by looking at the <partition>th partition of
- * every disk for the specific windows root.
- *
- * Solving 2 would probably require a significant refactoring
- * of the way filesystems are inspected. We should probably do
- * this some time.
- *
- * For the moment, we ignore all partition information and
- * assume the system root is on the current partition. In
- * practice, this will normally be correct.
- */
+ if (match6 (g, line, re_boot_ini_os, &controller_type, &controller,
+ &disk, &rdisk, &partition, &path)) {
+ /* The Windows system root may be on any disk. However, there
+ * are currently (at least) 2 practical problems preventing us
+ * from locating it on another disk:
+ *
+ * 1. We don't have enough metadata about the disks we were
+ * given to know if what controller they were on and what
+ * index they had.
+ *
+ * 2. The way inspection of filesystems currently works, we
+ * can't mark another filesystem, which we may have already
+ * inspected, to be inspected for a specific Windows system
+ * root.
+ *
+ * Solving 1 properly would require a new API at a minimum. We
+ * might be able to fudge something practical without this,
+ * though, e.g. by looking at the <partition>th partition of
+ * every disk for the specific windows root.
+ *
+ * Solving 2 would probably require a significant refactoring
+ * of the way filesystems are inspected. We should probably do
+ * this some time.
+ *
+ * For the moment, we ignore all partition information and
+ * assume the system root is on the current partition. In
+ * practice, this will normally be correct.
+ */
- /* Swap backslashes for forward slashes in the system root
- * path */
- for (char *j = path; *j != '\0'; j++) {
- if (*j == '\\') *j = '/';
- }
+ /* Swap backslashes for forward slashes in the system root
+ * path */
+ for (char *j = path; *j != '\0'; j++) {
+ if (*j == '\\')
+ *j = '/';
+ }
- char *systemroot = guestfs_int_case_sensitive_path_silently (g, path);
- if (systemroot && is_systemroot (g, systemroot)) {
- debug (g, "windows %%SYSTEMROOT%% = %s", systemroot);
+ char *systemroot =
+ guestfs_int_case_sensitive_path_silently (g, path);
+ if (systemroot && is_systemroot (g, systemroot)) {
+ debug (g, "windows %%SYSTEMROOT%% = %s", systemroot);
- return systemroot;
- } else {
- free (systemroot);
- }
- }
+ return systemroot;
+ } else {
+ free (systemroot);
+ }
+ }
}
}
@@ -207,7 +214,7 @@ guestfs_int_get_windows_systemroot (guestfs_h *g)
int
guestfs_int_check_windows_root (guestfs_h *g, struct inspect_fs *fs,
- char *const systemroot)
+ char *const systemroot)
{
fs->type = OS_TYPE_WINDOWS;
fs->distro = OS_DISTRO_WINDOWS;
@@ -233,10 +240,12 @@ static int
check_windows_arch (guestfs_h *g, struct inspect_fs *fs)
{
CLEANUP_FREE char *cmd_exe =
- safe_asprintf (g, "%s/system32/cmd.exe", fs->windows_systemroot);
+ safe_asprintf (g, "%s/system32/cmd.exe", fs->windows_systemroot);
- /* Should exist because of previous check above in get_windows_systemroot. */
- CLEANUP_FREE char *cmd_exe_path = guestfs_case_sensitive_path (g, cmd_exe);
+ /* Should exist because of previous check above in get_windows_systemroot.
+ */
+ CLEANUP_FREE char *cmd_exe_path =
+ guestfs_case_sensitive_path (g, cmd_exe);
if (!cmd_exe_path)
return -1;
@@ -244,7 +253,7 @@ check_windows_arch (guestfs_h *g, struct inspect_fs *fs)
if (!arch)
return -1;
- fs->arch = arch; /* freed by guestfs_int_free_inspect_info */
+ fs->arch = arch; /* freed by guestfs_int_free_inspect_info */
return 0;
}
@@ -259,10 +268,11 @@ check_windows_software_registry (guestfs_h *g, struct inspect_fs
*fs)
int ret = -1;
int r;
- CLEANUP_FREE char *software =
- safe_asprintf (g, "%s/system32/config/software",
fs->windows_systemroot);
+ CLEANUP_FREE char *software = safe_asprintf (
+ g, "%s/system32/config/software", fs->windows_systemroot);
- CLEANUP_FREE char *software_path = guestfs_case_sensitive_path (g, software);
+ CLEANUP_FREE char *software_path =
+ guestfs_case_sensitive_path (g, software);
if (!software_path)
return -1;
@@ -276,14 +286,14 @@ check_windows_software_registry (guestfs_h *g, struct inspect_fs
*fs)
return 0;
int64_t node;
- const char *hivepath[] =
- { "Microsoft", "Windows NT", "CurrentVersion" };
+ const char *hivepath[] = { "Microsoft", "Windows NT",
"CurrentVersion" };
size_t i;
- CLEANUP_FREE_HIVEX_VALUE_LIST struct guestfs_hivex_value_list *values = NULL;
+ CLEANUP_FREE_HIVEX_VALUE_LIST struct guestfs_hivex_value_list *values =
+ NULL;
bool ignore_currentversion = false;
- if (guestfs_hivex_open (g, software_path,
- GUESTFS_HIVEX_OPEN_VERBOSE, g->verbose, -1) == -1)
+ if (guestfs_hivex_open (g, software_path, GUESTFS_HIVEX_OPEN_VERBOSE,
+ g->verbose, -1) == -1)
return -1;
node = guestfs_hivex_root (g);
@@ -294,7 +304,8 @@ check_windows_software_registry (guestfs_h *g, struct inspect_fs *fs)
goto out;
if (node == 0) {
- perrorf (g, "hivex: cannot locate HKLM\\SOFTWARE\\Microsoft\\Windows
NT\\CurrentVersion");
+ perrorf (g, "hivex: cannot locate HKLM\\SOFTWARE\\Microsoft\\Windows "
+ "NT\\CurrentVersion");
goto out;
}
@@ -310,11 +321,11 @@ check_windows_software_registry (guestfs_h *g, struct inspect_fs
*fs)
fs->product_name = guestfs_hivex_value_utf8 (g, value);
if (!fs->product_name)
goto out;
- }
- else if (STRCASEEQ (key, "CurrentMajorVersionNumber")) {
+ } else if (STRCASEEQ (key, "CurrentMajorVersionNumber")) {
size_t vsize;
int64_t vtype = guestfs_hivex_value_type (g, value);
- CLEANUP_FREE char *vbuf = guestfs_hivex_value_value (g, value, &vsize);
+ CLEANUP_FREE char *vbuf =
+ guestfs_hivex_value_value (g, value, &vsize);
if (vbuf == NULL)
goto out;
@@ -328,11 +339,11 @@ check_windows_software_registry (guestfs_h *g, struct inspect_fs
*fs)
/* Ignore CurrentVersion if we see it after this key. */
ignore_currentversion = true;
- }
- else if (STRCASEEQ (key, "CurrentMinorVersionNumber")) {
+ } else if (STRCASEEQ (key, "CurrentMinorVersionNumber")) {
size_t vsize;
int64_t vtype = guestfs_hivex_value_type (g, value);
- CLEANUP_FREE char *vbuf = guestfs_hivex_value_value (g, value, &vsize);
+ CLEANUP_FREE char *vbuf =
+ guestfs_hivex_value_value (g, value, &vsize);
if (vbuf == NULL)
goto out;
@@ -346,8 +357,8 @@ check_windows_software_registry (guestfs_h *g, struct inspect_fs *fs)
/* Ignore CurrentVersion if we see it after this key. */
ignore_currentversion = true;
- }
- else if (!ignore_currentversion && STRCASEEQ (key,
"CurrentVersion")) {
+ } else if (!ignore_currentversion &&
+ STRCASEEQ (key, "CurrentVersion")) {
CLEANUP_FREE char *version = guestfs_hivex_value_utf8 (g, value);
if (!version)
goto out;
@@ -364,8 +375,7 @@ check_windows_software_registry (guestfs_h *g, struct inspect_fs *fs)
if (fs->minor_version == -1)
goto out;
}
- }
- else if (STRCASEEQ (key, "InstallationType")) {
+ } else if (STRCASEEQ (key, "InstallationType")) {
fs->product_variant = guestfs_hivex_value_utf8 (g, value);
if (!fs->product_variant)
goto out;
@@ -374,7 +384,7 @@ check_windows_software_registry (guestfs_h *g, struct inspect_fs *fs)
ret = 0;
- out:
+out:
guestfs_hivex_close (g);
return ret;
@@ -386,9 +396,8 @@ check_windows_system_registry (guestfs_h *g, struct inspect_fs *fs)
int r;
static const char gpt_prefix[] = "DMIO:ID:";
- CLEANUP_FREE char *system =
- safe_asprintf (g, "%s/system32/config/system",
- fs->windows_systemroot);
+ CLEANUP_FREE char *system = safe_asprintf (g, "%s/system32/config/system",
+ fs->windows_systemroot);
CLEANUP_FREE char *system_path = guestfs_case_sensitive_path (g, system);
if (!system_path)
@@ -405,17 +414,19 @@ check_windows_system_registry (guestfs_h *g, struct inspect_fs *fs)
int ret = -1;
int64_t root, node, value;
- CLEANUP_FREE_HIVEX_VALUE_LIST struct guestfs_hivex_value_list *values = NULL;
- CLEANUP_FREE_HIVEX_VALUE_LIST struct guestfs_hivex_value_list *values2 = NULL;
+ CLEANUP_FREE_HIVEX_VALUE_LIST struct guestfs_hivex_value_list *values =
+ NULL;
+ CLEANUP_FREE_HIVEX_VALUE_LIST struct guestfs_hivex_value_list *values2 =
+ NULL;
int32_t dword;
size_t i, count;
CLEANUP_FREE void *buf = NULL;
size_t buflen;
- const char *hivepath[] =
- { NULL /* current control set */, "Services", "Tcpip",
"Parameters" };
+ const char *hivepath[] = { NULL /* current control set */, "Services",
+ "Tcpip", "Parameters" };
- if (guestfs_hivex_open (g, system_path,
- GUESTFS_HIVEX_OPEN_VERBOSE, g->verbose, -1) == -1)
+ if (guestfs_hivex_open (g, system_path, GUESTFS_HIVEX_OPEN_VERBOSE,
+ g->verbose, -1) == -1)
goto out;
root = guestfs_hivex_root (g);
@@ -448,7 +459,8 @@ check_windows_system_registry (guestfs_h *g, struct inspect_fs *fs)
goto out;
}
dword = le32toh (*(int32_t *)buf);
- fs->windows_current_control_set = safe_asprintf (g, "ControlSet%03d",
dword);
+ fs->windows_current_control_set =
+ safe_asprintf (g, "ControlSet%03d", dword);
/* Get the drive mappings.
* This page explains the contents of HKLM\System\MountedDevices:
@@ -470,23 +482,23 @@ check_windows_system_registry (guestfs_h *g, struct inspect_fs *fs)
*/
for (i = count = 0; i < values->len; ++i) {
CLEANUP_FREE char *key =
- guestfs_hivex_value_key (g, values->val[i].hivex_value_h);
+ guestfs_hivex_value_key (g, values->val[i].hivex_value_h);
if (key == NULL)
goto out;
- if (STRCASEEQLEN (key, "\\DosDevices\\", 12) &&
- c_isalpha (key[12]) && key[13] == ':')
+ if (STRCASEEQLEN (key, "\\DosDevices\\", 12) && c_isalpha (key[12])
&&
+ key[13] == ':')
count++;
}
- fs->drive_mappings = safe_calloc (g, 2*count + 1, sizeof (char *));
+ fs->drive_mappings = safe_calloc (g, 2 * count + 1, sizeof (char *));
for (i = count = 0; i < values->len; ++i) {
int64_t v = values->val[i].hivex_value_h;
CLEANUP_FREE char *key = guestfs_hivex_value_key (g, v);
if (key == NULL)
goto out;
- if (STRCASEEQLEN (key, "\\DosDevices\\", 12) &&
- c_isalpha (key[12]) && key[13] == ':') {
+ if (STRCASEEQLEN (key, "\\DosDevices\\", 12) && c_isalpha (key[12])
&&
+ key[13] == ':') {
/* Get the binary value. Is it a fixed disk? */
CLEANUP_FREE char *blob = NULL;
char *device;
@@ -512,12 +524,11 @@ check_windows_system_registry (guestfs_h *g, struct inspect_fs *fs)
}
}
- skip_drive_letter_mappings:;
+skip_drive_letter_mappings:;
/* Get the hostname. */
hivepath[0] = fs->windows_current_control_set;
for (node = root, i = 0;
- node > 0 && i < sizeof hivepath / sizeof hivepath[0];
- ++i) {
+ node > 0 && i < sizeof hivepath / sizeof hivepath[0]; ++i) {
node = guestfs_hivex_node_get_child (g, node, hivepath[i]);
}
@@ -525,7 +536,8 @@ check_windows_system_registry (guestfs_h *g, struct inspect_fs *fs)
goto out;
if (node == 0) {
- perrorf (g, "hivex: cannot locate
HKLM\\SYSTEM\\%s\\Services\\Tcpip\\Parameters",
+ perrorf (g, "hivex: cannot locate "
+ "HKLM\\SYSTEM\\%s\\Services\\Tcpip\\Parameters",
fs->windows_current_control_set);
goto out;
}
@@ -550,7 +562,7 @@ check_windows_system_registry (guestfs_h *g, struct inspect_fs *fs)
ret = 0;
- out:
+out:
guestfs_hivex_close (g);
return ret;
@@ -566,7 +578,8 @@ static char *
map_registry_disk_blob (guestfs_h *g, const void *blob)
{
CLEANUP_FREE_STRING_LIST char **devices = NULL;
- CLEANUP_FREE_PARTITION_LIST struct guestfs_partition_list *partitions = NULL;
+ CLEANUP_FREE_PARTITION_LIST struct guestfs_partition_list *partitions =
+ NULL;
size_t i, j, len;
uint64_t part_offset;
@@ -580,7 +593,7 @@ map_registry_disk_blob (guestfs_h *g, const void *blob)
for (i = 0; devices[i] != NULL; ++i) {
/* Read the disk ID. */
CLEANUP_FREE char *diskid =
- guestfs_pread_device (g, devices[i], 4, 0x01b8, &len);
+ guestfs_pread_device (g, devices[i], 4, 0x01b8, &len);
if (diskid == NULL)
continue;
if (len < 4)
@@ -590,12 +603,12 @@ map_registry_disk_blob (guestfs_h *g, const void *blob)
}
return NULL;
- found_disk:
+found_disk:
/* Next 8 bytes are the offset of the partition in bytes(!) given as
* a 64 bit little endian number. Luckily it's easy to get the
* partition byte offset from guestfs_part_list.
*/
- memcpy (&part_offset, (char *) blob + 4, sizeof (part_offset));
+ memcpy (&part_offset, (char *)blob + 4, sizeof (part_offset));
part_offset = le64toh (part_offset);
partitions = guestfs_part_list (g, devices[i]);
@@ -608,7 +621,7 @@ map_registry_disk_blob (guestfs_h *g, const void *blob)
}
return NULL;
- found_partition:
+found_partition:
/* Construct the full device name. */
return safe_asprintf (g, "%s%d", devices[i],
partitions->val[j].part_num);
}
@@ -676,7 +689,7 @@ extract_guid_from_registry_blob (guestfs_h *g, const void *blob)
uint64_t data4;
/* get the GUID bytes from blob (skip 8 byte "DMIO:ID:" prefix) */
- memcpy (&guid_bytes, (char *) blob + 8, sizeof (guid_bytes));
+ memcpy (&guid_bytes, (char *)blob + 8, sizeof (guid_bytes));
/* copy relevant sections from blob to respective ints */
memcpy (&data1, guid_bytes, sizeof (data1));
@@ -690,9 +703,10 @@ extract_guid_from_registry_blob (guestfs_h *g, const void *blob)
data3 = le16toh (data3);
data4 = be64toh (data4);
- return safe_asprintf (g,
- "%08" PRIX32 "-%04" PRIX16 "-%04" PRIX16
"-%04" PRIX64 "-%012" PRIX64,
- data1, data2, data3, data4 >> 48, data4 & 0xffffffffffff);
+ return safe_asprintf (g, "%08" PRIX32 "-%04" PRIX16
"-%04" PRIX16
+ "-%04" PRIX64 "-%012" PRIX64,
+ data1, data2, data3, data4 >> 48,
+ data4 & 0xffffffffffff);
}
/* NB: This function DOES NOT test for the existence of the file. It
@@ -741,7 +755,7 @@ static char *
utf16_to_utf8 (/* const */ char *input, size_t len)
{
iconv_t ic = iconv_open ("UTF-8", "UTF-16LE");
- if (ic == (iconv_t) -1)
+ if (ic == (iconv_t)-1)
return NULL;
/* iconv(3) has an insane interface ... */
@@ -749,7 +763,7 @@ utf16_to_utf8 (/* const */ char *input, size_t len)
/* Mostly UTF-8 will be smaller, so this is a good initial guess. */
size_t outalloc = len;
- again:;
+again:;
size_t inlen = len;
size_t outlen = outalloc;
char *out = malloc (outlen + 1);
@@ -762,8 +776,8 @@ utf16_to_utf8 (/* const */ char *input, size_t len)
char *inp = input;
char *outp = out;
- size_t r = iconv (ic, (ICONV_CONST char **) &inp, &inlen, &outp,
&outlen);
- if (r == (size_t) -1) {
+ size_t r = iconv (ic, (ICONV_CONST char **)&inp, &inlen, &outp,
&outlen);
+ if (r == (size_t)-1) {
if (errno == E2BIG) {
int err = errno;
size_t prev = outalloc;
@@ -776,8 +790,7 @@ utf16_to_utf8 (/* const */ char *input, size_t len)
return NULL;
}
goto again;
- }
- else {
+ } else {
/* Else some conversion failure, eg. EILSEQ, EINVAL. */
int err = errno;
iconv_close (ic);
diff --git a/src/inspect-fs.c b/src/inspect-fs.c
index 0714ae1..7708dbc 100644
--- a/src/inspect-fs.c
+++ b/src/inspect-fs.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -42,8 +43,10 @@ static int check_filesystem (guestfs_h *g, const char *mountable,
const struct guestfs_internal_mountable *m,
int whole_device);
static void extend_fses (guestfs_h *g);
-static int get_partition_context (guestfs_h *g, const char *partition, int *partnum_ret,
int *nr_partitions_ret);
-static int is_symlink_to (guestfs_h *g, const char *file, const char *wanted_target);
+static int get_partition_context (guestfs_h *g, const char *partition,
+ int *partnum_ret, int *nr_partitions_ret);
+static int is_symlink_to (guestfs_h *g, const char *file,
+ const char *wanted_target);
/* Find out if 'device' contains a filesystem. If it does, add
* another entry in g->fses.
@@ -54,7 +57,8 @@ guestfs_int_check_for_filesystem_on (guestfs_h *g, const char
*mountable)
CLEANUP_FREE char *vfs_type = NULL;
int is_swap, r;
struct inspect_fs *fs;
- CLEANUP_FREE_INTERNAL_MOUNTABLE struct guestfs_internal_mountable *m = NULL;
+ CLEANUP_FREE_INTERNAL_MOUNTABLE struct guestfs_internal_mountable *m =
+ NULL;
int whole_device = 0;
/* Get vfs-type in order to check if it's a Linux(?) swap device.
@@ -66,12 +70,12 @@ guestfs_int_check_for_filesystem_on (guestfs_h *g, const char
*mountable)
guestfs_pop_error_handler (g);
is_swap = vfs_type && STREQ (vfs_type, "swap");
- debug (g, "check_for_filesystem_on: %s (%s)",
- mountable, vfs_type ? vfs_type : "failed to get vfs type");
+ debug (g, "check_for_filesystem_on: %s (%s)", mountable,
+ vfs_type ? vfs_type : "failed to get vfs type");
if (is_swap) {
extend_fses (g);
- fs = &g->fses[g->nr_fses-1];
+ fs = &g->fses[g->nr_fses - 1];
fs->mountable = safe_strdup (g, mountable);
return 0;
}
@@ -90,14 +94,14 @@ guestfs_int_check_for_filesystem_on (guestfs_h *g, const char
*mountable)
if (whole_device) {
extend_fses (g);
- fs = &g->fses[g->nr_fses-1];
+ fs = &g->fses[g->nr_fses - 1];
r = guestfs_int_check_installer_iso (g, fs, m->im_device);
- if (r == -1) { /* Fatal error. */
+ if (r == -1) { /* Fatal error. */
g->nr_fses--;
return -1;
}
- if (r > 0) /* Found something. */
+ if (r > 0) /* Found something. */
return 0;
/* Didn't find anything. Fall through ... */
@@ -142,16 +146,17 @@ check_filesystem (guestfs_h *g, const char *mountable,
if (!whole_device && m->im_type == MOUNTABLE_DEVICE &&
guestfs_int_is_partition (g, m->im_device)) {
- if (get_partition_context (g, m->im_device,
- &partnum, &nr_partitions) == -1)
+ if (get_partition_context (g, m->im_device, &partnum, &nr_partitions) ==
+ -1)
return -1;
}
- struct inspect_fs *fs = &g->fses[g->nr_fses-1];
+ struct inspect_fs *fs = &g->fses[g->nr_fses - 1];
fs->mountable = safe_strdup (g, mountable);
- /* Optimize some of the tests by avoiding multiple tests of the same thing. */
+ /* Optimize some of the tests by avoiding multiple tests of the same
+ * thing. */
int is_dir_etc = guestfs_is_dir (g, "/etc") > 0;
int is_dir_bin = guestfs_is_dir (g, "/bin") > 0;
int is_dir_share = guestfs_is_dir (g, "/share") > 0;
@@ -162,8 +167,7 @@ check_filesystem (guestfs_h *g, const char *mountable,
guestfs_is_file (g, "/grub2/grub.cfg") > 0)
;
/* FreeBSD root? */
- else if (is_dir_etc &&
- is_dir_bin &&
+ else if (is_dir_etc && is_dir_bin &&
guestfs_is_file (g, "/etc/freebsd-update.conf") > 0 &&
guestfs_is_file (g, "/etc/fstab") > 0) {
fs->is_root = 1;
@@ -172,9 +176,7 @@ check_filesystem (guestfs_h *g, const char *mountable,
return -1;
}
/* NetBSD root? */
- else if (is_dir_etc &&
- is_dir_bin &&
- guestfs_is_file (g, "/netbsd") > 0 &&
+ else if (is_dir_etc && is_dir_bin && guestfs_is_file (g,
"/netbsd") > 0 &&
guestfs_is_file (g, "/etc/fstab") > 0 &&
guestfs_is_file (g, "/etc/release") > 0) {
fs->is_root = 1;
@@ -183,9 +185,7 @@ check_filesystem (guestfs_h *g, const char *mountable,
return -1;
}
/* OpenBSD root? */
- else if (is_dir_etc &&
- is_dir_bin &&
- guestfs_is_file (g, "/bsd") > 0 &&
+ else if (is_dir_etc && is_dir_bin && guestfs_is_file (g,
"/bsd") > 0 &&
guestfs_is_file (g, "/etc/fstab") > 0 &&
guestfs_is_file (g, "/etc/motd") > 0) {
fs->is_root = 1;
@@ -203,8 +203,7 @@ check_filesystem (guestfs_h *g, const char *mountable,
return -1;
}
/* Minix root? */
- else if (is_dir_etc &&
- is_dir_bin &&
+ else if (is_dir_etc && is_dir_bin &&
guestfs_is_file (g, "/service/vm") > 0 &&
guestfs_is_file (g, "/etc/fstab") > 0 &&
guestfs_is_file (g, "/etc/version") > 0) {
@@ -215,8 +214,7 @@ check_filesystem (guestfs_h *g, const char *mountable,
}
/* Linux root? */
else if (is_dir_etc &&
- (is_dir_bin ||
- is_symlink_to (g, "/bin", "usr/bin") > 0) &&
+ (is_dir_bin || is_symlink_to (g, "/bin", "usr/bin") >
0) &&
guestfs_is_file (g, "/etc/fstab") > 0) {
fs->is_root = 1;
fs->format = OS_FORMAT_INSTALLED;
@@ -224,8 +222,7 @@ check_filesystem (guestfs_h *g, const char *mountable,
return -1;
}
/* CoreOS root? */
- else if (is_dir_etc &&
- guestfs_is_dir (g, "/root") > 0 &&
+ else if (is_dir_etc && guestfs_is_dir (g, "/root") > 0 &&
guestfs_is_dir (g, "/home") > 0 &&
guestfs_is_dir (g, "/usr") > 0 &&
guestfs_is_file (g, "/etc/coreos/update.conf") > 0) {
@@ -235,23 +232,17 @@ check_filesystem (guestfs_h *g, const char *mountable,
return -1;
}
/* Linux /usr/local? */
- else if (is_dir_etc &&
- is_dir_bin &&
- is_dir_share &&
+ else if (is_dir_etc && is_dir_bin && is_dir_share &&
guestfs_is_dir (g, "/local") == 0 &&
guestfs_is_file (g, "/etc/fstab") == 0)
;
/* Linux /usr? */
- else if (is_dir_etc &&
- is_dir_bin &&
- is_dir_share &&
+ else if (is_dir_etc && is_dir_bin && is_dir_share &&
guestfs_is_dir (g, "/local") > 0 &&
guestfs_is_file (g, "/etc/fstab") == 0)
;
/* CoreOS /usr? */
- else if (is_dir_bin &&
- is_dir_share &&
- guestfs_is_dir (g, "/local") > 0 &&
+ else if (is_dir_bin && is_dir_share && guestfs_is_dir (g,
"/local") > 0 &&
guestfs_is_dir (g, "/share/coreos") > 0) {
if (guestfs_int_check_coreos_usr (g, fs) == -1)
return -1;
@@ -262,15 +253,16 @@ check_filesystem (guestfs_h *g, const char *mountable,
guestfs_is_dir (g, "/spool") > 0)
;
/* Windows root? */
- else if ((windows_systemroot = guestfs_int_get_windows_systemroot (g)) != NULL)
- {
- fs->is_root = 1;
- fs->format = OS_FORMAT_INSTALLED;
- if (guestfs_int_check_windows_root (g, fs, windows_systemroot) == -1)
- return -1;
- }
+ else if ((windows_systemroot = guestfs_int_get_windows_systemroot (g)) !=
+ NULL) {
+ fs->is_root = 1;
+ fs->format = OS_FORMAT_INSTALLED;
+ if (guestfs_int_check_windows_root (g, fs, windows_systemroot) == -1)
+ return -1;
+ }
/* Windows volume with installed applications (but not root)? */
- else if (guestfs_int_is_dir_nocase (g, "/System Volume Information") > 0
&&
+ else if (guestfs_int_is_dir_nocase (g, "/System Volume Information") >
+ 0 &&
guestfs_int_is_dir_nocase (g, "/Program Files") > 0)
;
/* Windows volume (but not root)? */
@@ -333,7 +325,7 @@ extend_fses (guestfs_h *g)
g->fses = p;
g->nr_fses = n;
- memset (&g->fses[n-1], 0, sizeof (struct inspect_fs));
+ memset (&g->fses[n - 1], 0, sizeof (struct inspect_fs));
}
/* Given a partition (eg. /dev/sda2) then return the partition number
@@ -345,7 +337,8 @@ get_partition_context (guestfs_h *g, const char *partition,
{
int partnum, nr_partitions;
CLEANUP_FREE char *device = NULL;
- CLEANUP_FREE_PARTITION_LIST struct guestfs_partition_list *partitions = NULL;
+ CLEANUP_FREE_PARTITION_LIST struct guestfs_partition_list *partitions =
+ NULL;
partnum = guestfs_part_to_partnum (g, partition);
if (partnum == -1)
@@ -423,7 +416,8 @@ guestfs_int_parse_unsigned_int (guestfs_h *g, const char *str)
/* Like parse_unsigned_int, but ignore trailing stuff. */
int
-guestfs_int_parse_unsigned_int_ignore_trailing (guestfs_h *g, const char *str)
+guestfs_int_parse_unsigned_int_ignore_trailing (guestfs_h *g,
+ const char *str)
{
long ret;
int r = xstrtol (str, NULL, 10, &ret, NULL);
@@ -529,7 +523,8 @@ guestfs_int_check_package_management (guestfs_h *g, struct inspect_fs
*fs)
/* If Fedora >= 22 and dnf is installed, say "dnf". */
if (fs->major_version >= 22 &&
guestfs_is_file_opts (g, "/usr/bin/dnf",
- GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0)
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1,
+ -1) > 0)
fs->package_management = OS_PACKAGE_MANAGEMENT_DNF;
else
fs->package_management = OS_PACKAGE_MANAGEMENT_YUM;
@@ -632,7 +627,7 @@ guestfs_int_first_line_of_file (guestfs_h *g, const char *filename)
}
/* lines[1] should be NULL because of '1' argument above ... */
- ret = lines[0]; /* caller frees */
+ ret = lines[0]; /* caller frees */
free (lines);
@@ -648,7 +643,7 @@ guestfs_int_first_line_of_file (guestfs_h *g, const char *filename)
*/
int
guestfs_int_first_egrep_of_file (guestfs_h *g, const char *filename,
- const char *eregex, int iflag, char **ret)
+ const char *eregex, int iflag, char **ret)
{
char **lines;
int64_t size;
@@ -682,7 +677,7 @@ guestfs_int_first_egrep_of_file (guestfs_h *g, const char *filename,
return 0;
}
- *ret = lines[0]; /* caller frees */
+ *ret = lines[0]; /* caller frees */
/* free up any other matches and the array itself */
for (i = 1; lines[i] != NULL; ++i)
@@ -692,16 +687,18 @@ guestfs_int_first_egrep_of_file (guestfs_h *g, const char
*filename,
return 1;
}
-/* Merge the missing OS inspection information found on the src inspect_fs into
+/* Merge the missing OS inspection information found on the src inspect_fs
+ * into
* the ones of the dst inspect_fs. This function is useful if the inspection
* information for an OS are gathered by inspecting multiple filesystems.
*/
void
-guestfs_int_merge_fs_inspections (guestfs_h *g, struct inspect_fs *dst, struct inspect_fs
*src)
+guestfs_int_merge_fs_inspections (guestfs_h *g, struct inspect_fs *dst,
+ struct inspect_fs *src)
{
size_t n, i, old;
struct inspect_fstab_entry *fstab = NULL;
- char ** mappings = NULL;
+ char **mappings = NULL;
if (dst->type == 0)
dst->type = src->type;
@@ -721,7 +718,7 @@ guestfs_int_merge_fs_inspections (guestfs_h *g, struct inspect_fs
*dst, struct i
}
if (dst->product_variant == NULL) {
- dst->product_variant= src->product_variant;
+ dst->product_variant = src->product_variant;
src->product_variant = NULL;
}
@@ -764,7 +761,8 @@ guestfs_int_merge_fs_inspections (guestfs_h *g, struct inspect_fs
*dst, struct i
;
/* Merge the src mappings to dst */
- mappings = safe_realloc (g, dst->drive_mappings,(n + 1) * sizeof (char *));
+ mappings =
+ safe_realloc (g, dst->drive_mappings, (n + 1) * sizeof (char *));
for (i = old; i < n; i++)
mappings[i] = src->drive_mappings[i - old];
@@ -772,20 +770,21 @@ guestfs_int_merge_fs_inspections (guestfs_h *g, struct inspect_fs
*dst, struct i
mappings[n] = NULL;
dst->drive_mappings = mappings;
- free(src->drive_mappings);
+ free (src->drive_mappings);
src->drive_mappings = NULL;
}
}
if (src->nr_fstab > 0) {
n = dst->nr_fstab + src->nr_fstab;
- fstab = safe_realloc (g, dst->fstab, n * sizeof (struct inspect_fstab_entry));
+ fstab = safe_realloc (g, dst->fstab,
+ n * sizeof (struct inspect_fstab_entry));
for (i = 0; i < src->nr_fstab; i++) {
fstab[dst->nr_fstab + i].mountable = src->fstab[i].mountable;
fstab[dst->nr_fstab + i].mountpoint = src->fstab[i].mountpoint;
}
- free(src->fstab);
+ free (src->fstab);
src->fstab = NULL;
src->nr_fstab = 0;
diff --git a/src/inspect-icon.c b/src/inspect-icon.c
index 5c5169e..f70cd61 100644
--- a/src/inspect-icon.c
+++ b/src/inspect-icon.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -29,11 +30,11 @@
#include "guestfs-internal-actions.h"
/* External tools are required for some icon types. Check we have them. */
-#if defined(PBMTEXT) && defined (PNMTOPNG)
+#if defined(PBMTEXT) && defined(PNMTOPNG)
#define CAN_DO_CIRROS 1
#endif
-#if defined(WRESTOOL) && defined(BMPTOPNM) && defined(PNMTOPNG)
&& \
- defined(PAMCUT)
+#if defined(WRESTOOL) && defined(BMPTOPNM) && defined(PNMTOPNG)
&& \
+ defined(PAMCUT)
#define CAN_DO_WINDOWS 1
#endif
@@ -51,22 +52,31 @@
* An icon was found. 'ret' points to the icon buffer, and *size_r
* is the size.
*/
-static char *icon_favicon (guestfs_h *g, struct inspect_fs *fs, size_t *size_r);
-static char *icon_fedora (guestfs_h *g, struct inspect_fs *fs, size_t *size_r);
-static char *icon_rhel (guestfs_h *g, struct inspect_fs *fs, size_t *size_r);
-static char *icon_debian (guestfs_h *g, struct inspect_fs *fs, size_t *size_r);
-static char *icon_ubuntu (guestfs_h *g, struct inspect_fs *fs, size_t *size_r);
-static char *icon_mageia (guestfs_h *g, struct inspect_fs *fs, size_t *size_r);
-static char *icon_opensuse (guestfs_h *g, struct inspect_fs *fs, size_t *size_r);
+static char *icon_favicon (guestfs_h *g, struct inspect_fs *fs,
+ size_t *size_r);
+static char *icon_fedora (guestfs_h *g, struct inspect_fs *fs,
+ size_t *size_r);
+static char *icon_rhel (guestfs_h *g, struct inspect_fs *fs,
+ size_t *size_r);
+static char *icon_debian (guestfs_h *g, struct inspect_fs *fs,
+ size_t *size_r);
+static char *icon_ubuntu (guestfs_h *g, struct inspect_fs *fs,
+ size_t *size_r);
+static char *icon_mageia (guestfs_h *g, struct inspect_fs *fs,
+ size_t *size_r);
+static char *icon_opensuse (guestfs_h *g, struct inspect_fs *fs,
+ size_t *size_r);
#if CAN_DO_CIRROS
-static char *icon_cirros (guestfs_h *g, struct inspect_fs *fs, size_t *size_r);
+static char *icon_cirros (guestfs_h *g, struct inspect_fs *fs,
+ size_t *size_r);
#endif
#if CAN_DO_WINDOWS
-static char *icon_windows (guestfs_h *g, struct inspect_fs *fs, size_t *size_r);
+static char *icon_windows (guestfs_h *g, struct inspect_fs *fs,
+ size_t *size_r);
#endif
/* Dummy static object. */
-static char *NOT_FOUND = (char *) "not_found";
+static char *NOT_FOUND = (char *)"not_found";
/* For the unexpected legal consequences of this function, see:
*
http://lists.fedoraproject.org/pipermail/legal/2011-April/001615.html
@@ -77,8 +87,9 @@ static char *NOT_FOUND = (char *) "not_found";
* Check optargs for the optional argument.
*/
char *
-guestfs_impl_inspect_get_icon (guestfs_h *g, const char *root, size_t *size_r,
- const struct guestfs_inspect_get_icon_argv *optargs)
+guestfs_impl_inspect_get_icon (
+ guestfs_h *g, const char *root, size_t *size_r,
+ const struct guestfs_inspect_get_icon_argv *optargs)
{
struct inspect_fs *fs;
char *r = NOT_FOUND;
@@ -90,13 +101,14 @@ guestfs_impl_inspect_get_icon (guestfs_h *g, const char *root, size_t
*size_r,
return NULL;
/* Get optargs, or defaults. */
- favicon =
- optargs->bitmask & GUESTFS_INSPECT_GET_ICON_FAVICON_BITMASK ?
- optargs->favicon : 1;
+ favicon = optargs->bitmask & GUESTFS_INSPECT_GET_ICON_FAVICON_BITMASK
+ ? optargs->favicon
+ : 1;
highquality =
- optargs->bitmask & GUESTFS_INSPECT_GET_ICON_HIGHQUALITY_BITMASK ?
- optargs->highquality : 0;
+ optargs->bitmask & GUESTFS_INSPECT_GET_ICON_HIGHQUALITY_BITMASK
+ ? optargs->highquality
+ : 0;
/* Favicons are never high quality, so ... */
if (highquality)
@@ -158,7 +170,7 @@ guestfs_impl_inspect_get_icon (guestfs_h *g, const char *root, size_t
*size_r,
#endif
break;
- /* These are just to keep gcc warnings happy. */
+ /* These are just to keep gcc warnings happy. */
case OS_DISTRO_ARCHLINUX:
case OS_DISTRO_BUILDROOT:
case OS_DISTRO_COREOS:
@@ -178,8 +190,7 @@ guestfs_impl_inspect_get_icon (guestfs_h *g, const char *root, size_t
*size_r,
case OS_DISTRO_ALTLINUX:
case OS_DISTRO_FRUGALWARE:
case OS_DISTRO_PLD_LINUX:
- case OS_DISTRO_UNKNOWN:
- ; /* nothing */
+ case OS_DISTRO_UNKNOWN:; /* nothing */
}
break;
@@ -198,8 +209,7 @@ guestfs_impl_inspect_get_icon (guestfs_h *g, const char *root, size_t
*size_r,
case OS_TYPE_DOS:
case OS_TYPE_OPENBSD:
case OS_TYPE_MINIX:
- case OS_TYPE_UNKNOWN:
- ; /* nothing */
+ case OS_TYPE_UNKNOWN:; /* nothing */
}
if (r == NOT_FOUND) {
@@ -296,7 +306,8 @@ icon_favicon (guestfs_h *g, struct inspect_fs *fs, size_t *size_r)
/* Return FEDORA_ICON. I checked that this exists on at least Fedora 6
* through 16.
*/
-#define FEDORA_ICON "/usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png"
+#define FEDORA_ICON \
+ "/usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png"
static char *
icon_fedora (guestfs_h *g, struct inspect_fs *fs, size_t *size_r)
@@ -402,9 +413,9 @@ icon_cirros (guestfs_h *g, struct inspect_fs *fs, size_t *size_r)
pngfile = safe_asprintf (g, "%s/cirros.png", g->tmpdir);
guestfs_int_cmd_add_string_unquoted (cmd, PBMTEXT " < ");
- guestfs_int_cmd_add_string_quoted (cmd, local);
+ guestfs_int_cmd_add_string_quoted (cmd, local);
guestfs_int_cmd_add_string_unquoted (cmd, " | " PNMTOPNG " >
");
- guestfs_int_cmd_add_string_quoted (cmd, pngfile);
+ guestfs_int_cmd_add_string_quoted (cmd, pngfile);
r = guestfs_int_cmd_run (cmd);
if (r == -1)
return NOT_FOUND;
@@ -462,19 +473,19 @@ icon_windows_xp (guestfs_h *g, struct inspect_fs *fs, size_t
*size_r)
if (r == 0)
return NOT_FOUND;
- filename_downloaded = guestfs_int_download_to_tmp (g, fs, filename_case,
- "explorer.exe",
- MAX_WINDOWS_EXPLORER_SIZE);
+ filename_downloaded = guestfs_int_download_to_tmp (
+ g, fs, filename_case, "explorer.exe", MAX_WINDOWS_EXPLORER_SIZE);
if (filename_downloaded == NULL)
return NOT_FOUND;
pngfile = safe_asprintf (g, "%s/windows-xp-icon.png", g->tmpdir);
- guestfs_int_cmd_add_string_unquoted (cmd, WRESTOOL " -x --type=2 --name=143
");
- guestfs_int_cmd_add_string_quoted (cmd, filename_downloaded);
guestfs_int_cmd_add_string_unquoted (cmd,
- " | " BMPTOPNM " | " PNMTOPNG " > ");
- guestfs_int_cmd_add_string_quoted (cmd, pngfile);
+ WRESTOOL " -x --type=2 --name=143 ");
+ guestfs_int_cmd_add_string_quoted (cmd, filename_downloaded);
+ guestfs_int_cmd_add_string_unquoted (cmd,
+ " | " BMPTOPNM " | " PNMTOPNG
" > ");
+ guestfs_int_cmd_add_string_quoted (cmd, pngfile);
r = guestfs_int_cmd_run (cmd);
if (r == -1)
return NULL;
@@ -512,21 +523,19 @@ icon_windows_7 (guestfs_h *g, struct inspect_fs *fs, size_t
*size_r)
if (r == 0)
return NOT_FOUND;
- filename_downloaded = guestfs_int_download_to_tmp (g, fs, filename_case,
- "explorer.exe",
- MAX_WINDOWS_EXPLORER_SIZE);
+ filename_downloaded = guestfs_int_download_to_tmp (
+ g, fs, filename_case, "explorer.exe", MAX_WINDOWS_EXPLORER_SIZE);
if (filename_downloaded == NULL)
return NOT_FOUND;
pngfile = safe_asprintf (g, "%s/windows-7-icon.png", g->tmpdir);
- guestfs_int_cmd_add_string_unquoted (cmd, WRESTOOL " -x --type=2 --name=6801
");
- guestfs_int_cmd_add_string_quoted (cmd, filename_downloaded);
- guestfs_int_cmd_add_string_unquoted (cmd,
- " | " BMPTOPNM " | "
- PAMCUT " -bottom 54 | "
- PNMTOPNG " > ");
- guestfs_int_cmd_add_string_quoted (cmd, pngfile);
+ guestfs_int_cmd_add_string_unquoted (cmd, WRESTOOL
+ " -x --type=2 --name=6801 ");
+ guestfs_int_cmd_add_string_quoted (cmd, filename_downloaded);
+ guestfs_int_cmd_add_string_unquoted (
+ cmd, " | " BMPTOPNM " | " PAMCUT " -bottom 54 | "
PNMTOPNG " > ");
+ guestfs_int_cmd_add_string_quoted (cmd, pngfile);
r = guestfs_int_cmd_run (cmd);
if (r == -1)
return NULL;
@@ -552,8 +561,8 @@ icon_windows_8 (guestfs_h *g, struct inspect_fs *fs, size_t *size_r)
int r;
char *ret;
- filename_case = guestfs_int_case_sensitive_path_silently
- (g, "/ProgramData/Microsoft/Windows Live/WLive48x48.png");
+ filename_case = guestfs_int_case_sensitive_path_silently (
+ g, "/ProgramData/Microsoft/Windows Live/WLive48x48.png");
if (filename_case == NULL)
return NOT_FOUND; /* Not an error since a parent dir might not exist. */
@@ -565,12 +574,13 @@ icon_windows_8 (guestfs_h *g, struct inspect_fs *fs, size_t
*size_r)
if (r == 0)
return NOT_FOUND;
- filename_downloaded = guestfs_int_download_to_tmp (g, fs, filename_case,
- "wlive48x48.png", 8192);
+ filename_downloaded = guestfs_int_download_to_tmp (
+ g, fs, filename_case, "wlive48x48.png", 8192);
if (filename_downloaded == NULL)
return NOT_FOUND;
- if (guestfs_int_read_whole_file (g, filename_downloaded, &ret, size_r) == -1)
+ if (guestfs_int_read_whole_file (g, filename_downloaded, &ret, size_r) ==
+ -1)
return NULL;
return ret;
@@ -595,7 +605,8 @@ icon_windows (guestfs_h *g, struct inspect_fs *fs, size_t *size_r)
return icon_windows_8 (g, fs, size_r);
/* Not (yet) a supported version of Windows. */
- else return NOT_FOUND;
+ else
+ return NOT_FOUND;
}
#endif /* CAN_DO_WINDOWS */
diff --git a/src/inspect.c b/src/inspect.c
index 497794e..0903371 100644
--- a/src/inspect.c
+++ b/src/inspect.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -60,7 +61,8 @@ guestfs_impl_inspect_os (guestfs_h *g)
*/
fses = guestfs_list_filesystems (g);
- if (fses == NULL) return NULL;
+ if (fses == NULL)
+ return NULL;
for (fs = fses; *fs; fs += 2) {
if (guestfs_int_check_for_filesystem_on (g, *fs)) {
@@ -124,14 +126,15 @@ collect_coreos_inspection_info (guestfs_h *g)
* partition is empty and it gets filled up when an update is performed.
* Then, when the system reboots, the boot loader is instructed to boot
* from the passive partition. If both partitions are valid, we cannot
- * determine which the active and which the passive is, unless we peep into
- * the boot loader. As a workaround, we check the OS versions and pick the
+ * determine which the active and which the passive is, unless we peep
+ * into
+ * the boot loader. As a workaround, we check the OS versions and pick
+ * the
* one with the higher version as active.
*/
- if (usr &&
- (usr->major_version > fs->major_version ||
- (usr->major_version == fs->major_version &&
- usr->minor_version > fs->minor_version)))
+ if (usr && (usr->major_version > fs->major_version ||
+ (usr->major_version == fs->major_version &&
+ usr->minor_version > fs->minor_version)))
continue;
usr = fs;
@@ -157,10 +160,8 @@ check_for_duplicated_bsd_root (guestfs_h *g)
bool is_bsd;
struct inspect_fs *fs = &g->fses[i];
- is_bsd =
- fs->type == OS_TYPE_FREEBSD ||
- fs->type == OS_TYPE_NETBSD ||
- fs->type == OS_TYPE_OPENBSD;
+ is_bsd = fs->type == OS_TYPE_FREEBSD || fs->type == OS_TYPE_NETBSD ||
+ fs->type == OS_TYPE_OPENBSD;
if (fs->is_root && is_bsd &&
match (g, fs->mountable, re_primary_partition)) {
@@ -180,8 +181,8 @@ check_for_duplicated_bsd_root (guestfs_h *g)
static int
compare_strings (const void *vp1, const void *vp2)
{
- const char *s1 = * (char * const *) vp1;
- const char *s2 = * (char * const *) vp2;
+ const char *s1 = *(char *const *)vp1;
+ const char *s2 = *(char *const *)vp2;
return strcmp (s1, s2);
}
@@ -201,7 +202,7 @@ guestfs_impl_inspect_get_roots (guestfs_h *g)
}
guestfs_int_end_stringsbuf (g, &ret);
- qsort (ret.argv, ret.size-1, sizeof (char *), compare_strings);
+ qsort (ret.argv, ret.size - 1, sizeof (char *), compare_strings);
return ret.argv;
}
@@ -216,15 +217,33 @@ guestfs_impl_inspect_get_type (guestfs_h *g, const char *root)
return NULL;
switch (fs->type) {
- case OS_TYPE_DOS: ret = safe_strdup (g, "dos"); break;
- case OS_TYPE_FREEBSD: ret = safe_strdup (g, "freebsd"); break;
- case OS_TYPE_HURD: ret = safe_strdup (g, "hurd"); break;
- case OS_TYPE_LINUX: ret = safe_strdup (g, "linux"); break;
- case OS_TYPE_MINIX: ret = safe_strdup (g, "minix"); break;
- case OS_TYPE_NETBSD: ret = safe_strdup (g, "netbsd"); break;
- case OS_TYPE_OPENBSD: ret = safe_strdup (g, "openbsd"); break;
- case OS_TYPE_WINDOWS: ret = safe_strdup (g, "windows"); break;
- case OS_TYPE_UNKNOWN: ret = safe_strdup (g, "unknown"); break;
+ case OS_TYPE_DOS:
+ ret = safe_strdup (g, "dos");
+ break;
+ case OS_TYPE_FREEBSD:
+ ret = safe_strdup (g, "freebsd");
+ break;
+ case OS_TYPE_HURD:
+ ret = safe_strdup (g, "hurd");
+ break;
+ case OS_TYPE_LINUX:
+ ret = safe_strdup (g, "linux");
+ break;
+ case OS_TYPE_MINIX:
+ ret = safe_strdup (g, "minix");
+ break;
+ case OS_TYPE_NETBSD:
+ ret = safe_strdup (g, "netbsd");
+ break;
+ case OS_TYPE_OPENBSD:
+ ret = safe_strdup (g, "openbsd");
+ break;
+ case OS_TYPE_WINDOWS:
+ ret = safe_strdup (g, "windows");
+ break;
+ case OS_TYPE_UNKNOWN:
+ ret = safe_strdup (g, "unknown");
+ break;
}
if (ret == NULL)
@@ -240,7 +259,7 @@ guestfs_impl_inspect_get_arch (guestfs_h *g, const char *root)
if (!fs)
return NULL;
- return safe_strdup (g, fs->arch ? : "unknown");
+ return safe_strdup (g, fs->arch ?: "unknown");
}
char *
@@ -253,39 +272,105 @@ guestfs_impl_inspect_get_distro (guestfs_h *g, const char *root)
return NULL;
switch (fs->distro) {
- case OS_DISTRO_ALPINE_LINUX: ret = safe_strdup (g, "alpinelinux"); break;
- case OS_DISTRO_ALTLINUX: ret = safe_strdup (g, "altlinux"); break;
- case OS_DISTRO_ARCHLINUX: ret = safe_strdup (g, "archlinux"); break;
- case OS_DISTRO_BUILDROOT: ret = safe_strdup (g, "buildroot"); break;
- case OS_DISTRO_CENTOS: ret = safe_strdup (g, "centos"); break;
- case OS_DISTRO_CIRROS: ret = safe_strdup (g, "cirros"); break;
- case OS_DISTRO_COREOS: ret = safe_strdup (g, "coreos"); break;
- case OS_DISTRO_DEBIAN: ret = safe_strdup (g, "debian"); break;
- case OS_DISTRO_FEDORA: ret = safe_strdup (g, "fedora"); break;
- case OS_DISTRO_FREEBSD: ret = safe_strdup (g, "freebsd"); break;
- case OS_DISTRO_FREEDOS: ret = safe_strdup (g, "freedos"); break;
- case OS_DISTRO_FRUGALWARE: ret = safe_strdup (g, "frugalware"); break;
- case OS_DISTRO_GENTOO: ret = safe_strdup (g, "gentoo"); break;
- case OS_DISTRO_LINUX_MINT: ret = safe_strdup (g, "linuxmint"); break;
- case OS_DISTRO_MAGEIA: ret = safe_strdup (g, "mageia"); break;
- case OS_DISTRO_MANDRIVA: ret = safe_strdup (g, "mandriva"); break;
- case OS_DISTRO_MEEGO: ret = safe_strdup (g, "meego"); break;
- case OS_DISTRO_NETBSD: ret = safe_strdup (g, "netbsd"); break;
- case OS_DISTRO_OPENBSD: ret = safe_strdup (g, "openbsd"); break;
- case OS_DISTRO_OPENSUSE: ret = safe_strdup (g, "opensuse"); break;
- case OS_DISTRO_ORACLE_LINUX: ret = safe_strdup (g, "oraclelinux"); break;
- case OS_DISTRO_PARDUS: ret = safe_strdup (g, "pardus"); break;
- case OS_DISTRO_PLD_LINUX: ret = safe_strdup (g, "pldlinux"); break;
- case OS_DISTRO_REDHAT_BASED: ret = safe_strdup (g, "redhat-based"); break;
- case OS_DISTRO_RHEL: ret = safe_strdup (g, "rhel"); break;
- case OS_DISTRO_SCIENTIFIC_LINUX: ret = safe_strdup (g, "scientificlinux");
break;
- case OS_DISTRO_SLACKWARE: ret = safe_strdup (g, "slackware"); break;
- case OS_DISTRO_SLES: ret = safe_strdup (g, "sles"); break;
- case OS_DISTRO_SUSE_BASED: ret = safe_strdup (g, "suse-based"); break;
- case OS_DISTRO_TTYLINUX: ret = safe_strdup (g, "ttylinux"); break;
- case OS_DISTRO_WINDOWS: ret = safe_strdup (g, "windows"); break;
- case OS_DISTRO_UBUNTU: ret = safe_strdup (g, "ubuntu"); break;
- case OS_DISTRO_UNKNOWN: ret = safe_strdup (g, "unknown"); break;
+ case OS_DISTRO_ALPINE_LINUX:
+ ret = safe_strdup (g, "alpinelinux");
+ break;
+ case OS_DISTRO_ALTLINUX:
+ ret = safe_strdup (g, "altlinux");
+ break;
+ case OS_DISTRO_ARCHLINUX:
+ ret = safe_strdup (g, "archlinux");
+ break;
+ case OS_DISTRO_BUILDROOT:
+ ret = safe_strdup (g, "buildroot");
+ break;
+ case OS_DISTRO_CENTOS:
+ ret = safe_strdup (g, "centos");
+ break;
+ case OS_DISTRO_CIRROS:
+ ret = safe_strdup (g, "cirros");
+ break;
+ case OS_DISTRO_COREOS:
+ ret = safe_strdup (g, "coreos");
+ break;
+ case OS_DISTRO_DEBIAN:
+ ret = safe_strdup (g, "debian");
+ break;
+ case OS_DISTRO_FEDORA:
+ ret = safe_strdup (g, "fedora");
+ break;
+ case OS_DISTRO_FREEBSD:
+ ret = safe_strdup (g, "freebsd");
+ break;
+ case OS_DISTRO_FREEDOS:
+ ret = safe_strdup (g, "freedos");
+ break;
+ case OS_DISTRO_FRUGALWARE:
+ ret = safe_strdup (g, "frugalware");
+ break;
+ case OS_DISTRO_GENTOO:
+ ret = safe_strdup (g, "gentoo");
+ break;
+ case OS_DISTRO_LINUX_MINT:
+ ret = safe_strdup (g, "linuxmint");
+ break;
+ case OS_DISTRO_MAGEIA:
+ ret = safe_strdup (g, "mageia");
+ break;
+ case OS_DISTRO_MANDRIVA:
+ ret = safe_strdup (g, "mandriva");
+ break;
+ case OS_DISTRO_MEEGO:
+ ret = safe_strdup (g, "meego");
+ break;
+ case OS_DISTRO_NETBSD:
+ ret = safe_strdup (g, "netbsd");
+ break;
+ case OS_DISTRO_OPENBSD:
+ ret = safe_strdup (g, "openbsd");
+ break;
+ case OS_DISTRO_OPENSUSE:
+ ret = safe_strdup (g, "opensuse");
+ break;
+ case OS_DISTRO_ORACLE_LINUX:
+ ret = safe_strdup (g, "oraclelinux");
+ break;
+ case OS_DISTRO_PARDUS:
+ ret = safe_strdup (g, "pardus");
+ break;
+ case OS_DISTRO_PLD_LINUX:
+ ret = safe_strdup (g, "pldlinux");
+ break;
+ case OS_DISTRO_REDHAT_BASED:
+ ret = safe_strdup (g, "redhat-based");
+ break;
+ case OS_DISTRO_RHEL:
+ ret = safe_strdup (g, "rhel");
+ break;
+ case OS_DISTRO_SCIENTIFIC_LINUX:
+ ret = safe_strdup (g, "scientificlinux");
+ break;
+ case OS_DISTRO_SLACKWARE:
+ ret = safe_strdup (g, "slackware");
+ break;
+ case OS_DISTRO_SLES:
+ ret = safe_strdup (g, "sles");
+ break;
+ case OS_DISTRO_SUSE_BASED:
+ ret = safe_strdup (g, "suse-based");
+ break;
+ case OS_DISTRO_TTYLINUX:
+ ret = safe_strdup (g, "ttylinux");
+ break;
+ case OS_DISTRO_WINDOWS:
+ ret = safe_strdup (g, "windows");
+ break;
+ case OS_DISTRO_UBUNTU:
+ ret = safe_strdup (g, "ubuntu");
+ break;
+ case OS_DISTRO_UNKNOWN:
+ ret = safe_strdup (g, "unknown");
+ break;
}
if (ret == NULL)
@@ -321,7 +406,7 @@ guestfs_impl_inspect_get_product_name (guestfs_h *g, const char
*root)
if (!fs)
return NULL;
- return safe_strdup (g, fs->product_name ? : "unknown");
+ return safe_strdup (g, fs->product_name ?: "unknown");
}
char *
@@ -331,7 +416,7 @@ guestfs_impl_inspect_get_product_variant (guestfs_h *g, const char
*root)
if (!fs)
return NULL;
- return safe_strdup (g, fs->product_variant ? : "unknown");
+ return safe_strdup (g, fs->product_variant ?: "unknown");
}
char *
@@ -342,7 +427,9 @@ guestfs_impl_inspect_get_windows_systemroot (guestfs_h *g, const char
*root)
return NULL;
if (!fs->windows_systemroot) {
- error (g, _("not a Windows guest, or systemroot could not be
determined"));
+ error (
+ g,
+ _("not a Windows guest, or systemroot could not be determined"));
return NULL;
}
@@ -351,14 +438,15 @@ guestfs_impl_inspect_get_windows_systemroot (guestfs_h *g, const
char *root)
char *
guestfs_impl_inspect_get_windows_current_control_set (guestfs_h *g,
- const char *root)
+ const char *root)
{
struct inspect_fs *fs = guestfs_int_search_for_root (g, root);
if (!fs)
return NULL;
if (!fs->windows_current_control_set) {
- error (g, _("not a Windows guest, or CurrentControlSet could not be
determined"));
+ error (g, _("not a Windows guest, or CurrentControlSet could not be "
+ "determined"));
return NULL;
}
@@ -374,9 +462,15 @@ guestfs_impl_inspect_get_format (guestfs_h *g, const char *root)
return NULL;
switch (fs->format) {
- case OS_FORMAT_INSTALLED: ret = safe_strdup (g, "installed"); break;
- case OS_FORMAT_INSTALLER: ret = safe_strdup (g, "installer"); break;
- case OS_FORMAT_UNKNOWN: ret = safe_strdup (g, "unknown"); break;
+ case OS_FORMAT_INSTALLED:
+ ret = safe_strdup (g, "installed");
+ break;
+ case OS_FORMAT_INSTALLER:
+ ret = safe_strdup (g, "installer");
+ break;
+ case OS_FORMAT_UNKNOWN:
+ ret = safe_strdup (g, "unknown");
+ break;
}
if (ret == NULL)
@@ -440,7 +534,7 @@ guestfs_impl_inspect_get_mountpoints (guestfs_h *g, const char *root)
}
/* Hashtables have 2N+1 entries. */
- ret = calloc (2*count+1, sizeof (char *));
+ ret = calloc (2 * count + 1, sizeof (char *));
if (ret == NULL) {
perrorf (g, "calloc");
return NULL;
@@ -457,8 +551,8 @@ guestfs_impl_inspect_get_mountpoints (guestfs_h *g, const char *root)
count = 0;
for (i = 0; i < nr; ++i)
if (CRITERION (fs, i)) {
- ret[2*count] = safe_strdup (g, fs->fstab[i].mountpoint);
- ret[2*count+1] = safe_strdup (g, fs->fstab[i].mountable);
+ ret[2 * count] = safe_strdup (g, fs->fstab[i].mountpoint);
+ ret[2 * count + 1] = safe_strdup (g, fs->fstab[i].mountable);
count++;
}
#undef CRITERION
@@ -477,7 +571,7 @@ guestfs_impl_inspect_get_filesystems (guestfs_h *g, const char *root)
return NULL;
nr = fs->nr_fstab;
- ret = calloc (nr == 0 ? 2 : nr+1, sizeof (char *));
+ ret = calloc (nr == 0 ? 2 : nr + 1, sizeof (char *));
if (ret == NULL) {
perrorf (g, "calloc");
return NULL;
@@ -525,13 +619,27 @@ guestfs_impl_inspect_get_package_format (guestfs_h *g, const char
*root)
return NULL;
switch (fs->package_format) {
- case OS_PACKAGE_FORMAT_RPM: ret = safe_strdup (g, "rpm"); break;
- case OS_PACKAGE_FORMAT_DEB: ret = safe_strdup (g, "deb"); break;
- case OS_PACKAGE_FORMAT_PACMAN: ret = safe_strdup (g, "pacman"); break;
- case OS_PACKAGE_FORMAT_EBUILD: ret = safe_strdup (g, "ebuild"); break;
- case OS_PACKAGE_FORMAT_PISI: ret = safe_strdup (g, "pisi"); break;
- case OS_PACKAGE_FORMAT_PKGSRC: ret = safe_strdup (g, "pkgsrc"); break;
- case OS_PACKAGE_FORMAT_APK: ret = safe_strdup (g, "apk"); break;
+ case OS_PACKAGE_FORMAT_RPM:
+ ret = safe_strdup (g, "rpm");
+ break;
+ case OS_PACKAGE_FORMAT_DEB:
+ ret = safe_strdup (g, "deb");
+ break;
+ case OS_PACKAGE_FORMAT_PACMAN:
+ ret = safe_strdup (g, "pacman");
+ break;
+ case OS_PACKAGE_FORMAT_EBUILD:
+ ret = safe_strdup (g, "ebuild");
+ break;
+ case OS_PACKAGE_FORMAT_PISI:
+ ret = safe_strdup (g, "pisi");
+ break;
+ case OS_PACKAGE_FORMAT_PKGSRC:
+ ret = safe_strdup (g, "pkgsrc");
+ break;
+ case OS_PACKAGE_FORMAT_APK:
+ ret = safe_strdup (g, "apk");
+ break;
case OS_PACKAGE_FORMAT_UNKNOWN:
ret = safe_strdup (g, "unknown");
break;
@@ -552,16 +660,36 @@ guestfs_impl_inspect_get_package_management (guestfs_h *g, const
char *root)
return NULL;
switch (fs->package_management) {
- case OS_PACKAGE_MANAGEMENT_APK: ret = safe_strdup (g, "apk"); break;
- case OS_PACKAGE_MANAGEMENT_APT: ret = safe_strdup (g, "apt"); break;
- case OS_PACKAGE_MANAGEMENT_DNF: ret = safe_strdup (g, "dnf"); break;
- case OS_PACKAGE_MANAGEMENT_PACMAN: ret = safe_strdup (g, "pacman"); break;
- case OS_PACKAGE_MANAGEMENT_PISI: ret = safe_strdup (g, "pisi"); break;
- case OS_PACKAGE_MANAGEMENT_PORTAGE: ret = safe_strdup (g, "portage"); break;
- case OS_PACKAGE_MANAGEMENT_UP2DATE: ret = safe_strdup (g, "up2date"); break;
- case OS_PACKAGE_MANAGEMENT_URPMI: ret = safe_strdup (g, "urpmi"); break;
- case OS_PACKAGE_MANAGEMENT_YUM: ret = safe_strdup (g, "yum"); break;
- case OS_PACKAGE_MANAGEMENT_ZYPPER: ret = safe_strdup (g, "zypper"); break;
+ case OS_PACKAGE_MANAGEMENT_APK:
+ ret = safe_strdup (g, "apk");
+ break;
+ case OS_PACKAGE_MANAGEMENT_APT:
+ ret = safe_strdup (g, "apt");
+ break;
+ case OS_PACKAGE_MANAGEMENT_DNF:
+ ret = safe_strdup (g, "dnf");
+ break;
+ case OS_PACKAGE_MANAGEMENT_PACMAN:
+ ret = safe_strdup (g, "pacman");
+ break;
+ case OS_PACKAGE_MANAGEMENT_PISI:
+ ret = safe_strdup (g, "pisi");
+ break;
+ case OS_PACKAGE_MANAGEMENT_PORTAGE:
+ ret = safe_strdup (g, "portage");
+ break;
+ case OS_PACKAGE_MANAGEMENT_UP2DATE:
+ ret = safe_strdup (g, "up2date");
+ break;
+ case OS_PACKAGE_MANAGEMENT_URPMI:
+ ret = safe_strdup (g, "urpmi");
+ break;
+ case OS_PACKAGE_MANAGEMENT_YUM:
+ ret = safe_strdup (g, "yum");
+ break;
+ case OS_PACKAGE_MANAGEMENT_ZYPPER:
+ ret = safe_strdup (g, "zypper");
+ break;
case OS_PACKAGE_MANAGEMENT_UNKNOWN:
ret = safe_strdup (g, "unknown");
break;
@@ -580,7 +708,7 @@ guestfs_impl_inspect_get_hostname (guestfs_h *g, const char *root)
if (!fs)
return NULL;
- return safe_strdup (g, fs->hostname ? : "unknown");
+ return safe_strdup (g, fs->hostname ?: "unknown");
}
void
@@ -624,8 +752,8 @@ guestfs_int_free_inspect_info (guestfs_h *g)
*/
char *
guestfs_int_download_to_tmp (guestfs_h *g, struct inspect_fs *fs,
- const char *filename,
- const char *basename, uint64_t max_size)
+ const char *filename, const char *basename,
+ uint64_t max_size)
{
char *r;
int fd;
@@ -649,13 +777,13 @@ guestfs_int_download_to_tmp (guestfs_h *g, struct inspect_fs *fs,
if (size == -1)
/* guestfs_filesize failed and has already set error in handle */
goto error;
- if ((uint64_t) size > max_size) {
+ if ((uint64_t)size > max_size) {
error (g, _("size of %s is unreasonably large (%" PRIi64 "
bytes)"),
filename, size);
goto error;
}
- fd = open (r, O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY|O_CLOEXEC, 0600);
+ fd = open (r, O_WRONLY | O_CREAT | O_TRUNC | O_NOCTTY | O_CLOEXEC, 0600);
if (fd == -1) {
perrorf (g, "open: %s", r);
goto error;
@@ -677,7 +805,7 @@ guestfs_int_download_to_tmp (guestfs_h *g, struct inspect_fs *fs,
return r;
- error:
+error:
free (r);
return NULL;
}
@@ -698,7 +826,8 @@ guestfs_int_search_for_root (guestfs_h *g, const char *root)
return fs;
}
- error (g, _("%s: root device not found: only call this function with a root device
previously returned by guestfs_inspect_os"),
+ error (g, _("%s: root device not found: only call this function with a "
+ "root device previously returned by guestfs_inspect_os"),
root);
return NULL;
}
diff --git a/src/journal.c b/src/journal.c
index 22b81de..0c0e545 100644
--- a/src/journal.c
+++ b/src/journal.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -36,7 +37,7 @@
#if defined __APPLE__ && defined __MACH__
#include <libkern/OSByteOrder.h>
-#define be64toh(x) OSSwapBigToHostInt64(x)
+#define be64toh(x) OSSwapBigToHostInt64 (x)
#endif
#include "full-read.h"
@@ -73,7 +74,7 @@ guestfs_impl_journal_get (guestfs_h *g)
if (guestfs_internal_journal_get (g, tmpfile) == -1)
goto err;
- fd = open (tmpfile, O_RDONLY|O_CLOEXEC);
+ fd = open (tmpfile, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
perrorf (g, "open: %s", tmpfile);
goto err;
@@ -87,13 +88,13 @@ guestfs_impl_journal_get (guestfs_h *g)
/* Don't use safe_malloc. Want to return an errno to the caller. */
size = statbuf.st_size;
- buf = malloc (size+1);
+ buf = malloc (size + 1);
if (!buf) {
perrorf (g, "malloc: %zu bytes", size);
goto err;
}
eobuf = &buf[size];
- *eobuf = '\0'; /* Makes strchr etc safe. */
+ *eobuf = '\0'; /* Makes strchr etc safe. */
if (full_read (fd, buf, size) != size) {
perrorf (g, "full-read: %s: %zu bytes", tmpfile, size);
@@ -116,44 +117,48 @@ guestfs_impl_journal_get (guestfs_h *g)
* 64 bit length field followed by N bytes of 'field=data' binary
* data.
*/
- for (i = 0; i < size; ) {
- if (i+8 > size) {
+ for (i = 0; i < size;) {
+ if (i + 8 > size) {
error (g, "invalid data from guestfs_internal_journal_get: "
- "truncated: "
- "size=%zu, i=%zu", size, i);
+ "truncated: "
+ "size=%zu, i=%zu",
+ size, i);
goto err;
}
- memcpy(&len, &buf[i], sizeof(len));
+ memcpy (&len, &buf[i], sizeof (len));
len = be64toh (len);
i += 8;
- eofield = &buf[i+len];
+ eofield = &buf[i + len];
if (eofield > eobuf) {
error (g, "invalid data from guestfs_internal_journal_get: "
- "length field is too large: "
- "size=%zu, i=%zu, len=%" PRIu64, size, i, len);
+ "length field is too large: "
+ "size=%zu, i=%zu, len=%" PRIu64,
+ size, i, len);
goto err;
}
p = strchr (&buf[i], '=');
if (!p || p >= eofield) {
error (g, "invalid data from guestfs_internal_journal_get: "
- "no '=' found separating field name and data: "
- "size=%zu, i=%zu, p=%p", size, i, p);
+ "no '=' found separating field name and data: "
+ "size=%zu, i=%zu, p=%p",
+ size, i, p);
goto err;
}
*p = '\0';
j++;
- ret->val = safe_realloc (g, ret->val, j * sizeof (struct guestfs_xattr));
- ret->val[j-1].attrname = safe_strdup (g, &buf[i]);
- ret->val[j-1].attrval_len = eofield - (p+1);
- ret->val[j-1].attrval = safe_memdup (g, p+1, eofield - (p+1));
+ ret->val =
+ safe_realloc (g, ret->val, j * sizeof (struct guestfs_xattr));
+ ret->val[j - 1].attrname = safe_strdup (g, &buf[i]);
+ ret->val[j - 1].attrval_len = eofield - (p + 1);
+ ret->val[j - 1].attrval = safe_memdup (g, p + 1, eofield - (p + 1));
ret->len = j;
i += len;
}
- return ret; /* caller frees */
+ return ret; /* caller frees */
- err:
+err:
guestfs_free_xattr_list (ret);
if (fd >= 0)
close (fd);
diff --git a/src/launch-direct.c b/src/launch-direct.c
index 322737d..79fd5fb 100644
--- a/src/launch-direct.c
+++ b/src/launch-direct.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -49,17 +50,18 @@
COMPILE_REGEXP (re_major_minor, "(\\d+)\\.(\\d+)", 0)
/* Per-handle data. */
-struct backend_direct_data {
- pid_t pid; /* Qemu PID. */
- pid_t recoverypid; /* Recovery process PID. */
+struct backend_direct_data
+{
+ pid_t pid; /* Qemu PID. */
+ pid_t recoverypid; /* Recovery process PID. */
- char *qemu_help; /* Output of qemu -help. */
- char *qemu_devices; /* Output of qemu -device ? */
+ char *qemu_help; /* Output of qemu -help. */
+ char *qemu_devices; /* Output of qemu -device ? */
/* qemu version (0, 0 if unable to parse). */
int qemu_version_major, qemu_version_minor;
- int virtio_scsi; /* See function qemu_supports_virtio_scsi */
+ int virtio_scsi; /* See function qemu_supports_virtio_scsi */
char guestfsd_sock[UNIX_PATH_MAX]; /* Path to daemon socket. */
};
@@ -67,9 +69,12 @@ struct backend_direct_data {
static int is_openable (guestfs_h *g, const char *path, int flags);
static char *make_appliance_dev (guestfs_h *g, int virtio_scsi);
static void print_qemu_command_line (guestfs_h *g, char **argv);
-static int qemu_supports (guestfs_h *g, struct backend_direct_data *, const char
*option);
-static int qemu_supports_device (guestfs_h *g, struct backend_direct_data *, const char
*device_name);
-static int qemu_supports_virtio_scsi (guestfs_h *g, struct backend_direct_data *);
+static int qemu_supports (guestfs_h *g, struct backend_direct_data *,
+ const char *option);
+static int qemu_supports_device (guestfs_h *g, struct backend_direct_data *,
+ const char *device_name);
+static int qemu_supports_virtio_scsi (guestfs_h *g,
+ struct backend_direct_data *);
static char *qemu_escape_param (guestfs_h *g, const char *param);
static char *
@@ -120,7 +125,7 @@ add_cmdline_shell_unquoted (guestfs_h *g, struct stringsbuf *sb,
while (*options) {
quote = *options;
if (quote == '\'' || quote == '"')
- startp = options+1;
+ startp = options + 1;
else {
startp = options;
quote = ' ';
@@ -129,9 +134,10 @@ add_cmdline_shell_unquoted (guestfs_h *g, struct stringsbuf *sb,
endp = strchr (options, quote);
if (endp == NULL) {
if (quote != ' ') {
- fprintf (stderr,
- _("unclosed quote character (%c) in command line near: %s"),
- quote, options);
+ fprintf (
+ stderr,
+ _("unclosed quote character (%c) in command line near: %s"),
+ quote, options);
_exit (EXIT_FAILURE);
}
endp = options + strlen (options);
@@ -141,15 +147,15 @@ add_cmdline_shell_unquoted (guestfs_h *g, struct stringsbuf *sb,
if (endp[0] == '\0')
nextp = endp;
else
- nextp = endp+1;
- }
- else {
+ nextp = endp + 1;
+ } else {
if (!endp[1])
- nextp = endp+1;
+ nextp = endp + 1;
else if (endp[1] == ' ')
- nextp = endp+2;
+ nextp = endp + 2;
else {
- fprintf (stderr, _("cannot parse quoted string near: %s"), options);
+ fprintf (stderr, _("cannot parse quoted string near: %s"),
+ options);
_exit (EXIT_FAILURE);
}
}
@@ -157,7 +163,7 @@ add_cmdline_shell_unquoted (guestfs_h *g, struct stringsbuf *sb,
nextp++;
guestfs_int_add_string_nodup (g, sb,
- safe_strndup (g, startp, endp-startp));
+ safe_strndup (g, startp, endp - startp));
options = nextp;
}
@@ -189,7 +195,8 @@ debian_kvm_warning (guestfs_h *g)
if ((statbuf.st_mode & 0777) != 0660)
return;
- /* They might be running libguestfs as root or have chowned /dev/kvm, so: */
+ /* They might be running libguestfs as root or have chowned /dev/kvm, so:
+ */
if (geteuid () == statbuf.st_uid)
return;
@@ -206,7 +213,7 @@ debian_kvm_warning (guestfs_h *g)
warning (g, "getgroups: %m (ignored)");
return;
}
- for (i = 0; i < (size_t) ngroups; ++i) {
+ for (i = 0; i < (size_t)ngroups; ++i) {
if (groups[i] == kvm_group)
return;
}
@@ -215,12 +222,15 @@ debian_kvm_warning (guestfs_h *g)
/* No, so emit the warning. Note that \n characters cannot appear
* in warnings.
*/
- warning (g,
- _("current user is not a member of the KVM group (group ID %d). "
- "This user cannot access /dev/kvm, so libguestfs may run very slowly. "
- "It is recommended that you 'chmod 0666 /dev/kvm' or add the current
user "
- "to the KVM group (you might need to log out and log in again)."),
- (int) kvm_group);
+ warning (
+ g,
+ _("current user is not a member of the KVM group (group ID %d). "
+ "This user cannot access /dev/kvm, so libguestfs may run very "
+ "slowly. "
+ "It is recommended that you 'chmod 0666 /dev/kvm' or add the "
+ "current user "
+ "to the KVM group (you might need to log out and log in again)."),
+ (int)kvm_group);
#endif /* __linux__ */
}
@@ -262,7 +272,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
* which case the user would not get hardware virtualization,
* although at least shouldn't fail.
*/
- has_kvm = is_openable (g, "/dev/kvm", O_RDWR|O_CLOEXEC);
+ has_kvm = is_openable (g, "/dev/kvm", O_RDWR | O_CLOEXEC);
force_tcg = guestfs_int_get_backend_setting_bool (g, "force_tcg");
if (force_tcg == -1)
@@ -297,7 +307,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
&data->guestfsd_sock) == -1)
goto cleanup0;
- daemon_accept_sock = socket (AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0);
+ daemon_accept_sock = socket (AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (daemon_accept_sock == -1) {
perrorf (g, "socket");
goto cleanup0;
@@ -305,10 +315,10 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
addr.sun_family = AF_UNIX;
strncpy (addr.sun_path, data->guestfsd_sock, UNIX_PATH_MAX);
- addr.sun_path[UNIX_PATH_MAX-1] = '\0';
+ addr.sun_path[UNIX_PATH_MAX - 1] = '\0';
- if (bind (daemon_accept_sock, (struct sockaddr *) &addr,
- sizeof addr) == -1) {
+ if (bind (daemon_accept_sock, (struct sockaddr *)&addr, sizeof addr) ==
+ -1) {
perrorf (g, "bind");
goto cleanup0;
}
@@ -319,7 +329,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
}
if (!g->direct_mode) {
- if (socketpair (AF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC, 0, sv) == -1) {
+ if (socketpair (AF_LOCAL, SOCK_STREAM | SOCK_CLOEXEC, 0, sv) == -1) {
perrorf (g, "socketpair");
goto cleanup0;
}
@@ -327,15 +337,14 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
debug (g, "finished testing qemu features");
- /* Construct the qemu command line. We have to do this before
- * forking, because after fork we are not allowed to use
- * non-signal-safe functions such as malloc.
- */
-#define ADD_CMDLINE(str) \
- guestfs_int_add_string (g, &cmdline, (str))
-#define ADD_CMDLINE_STRING_NODUP(str) \
+/* Construct the qemu command line. We have to do this before
+ * forking, because after fork we are not allowed to use
+ * non-signal-safe functions such as malloc.
+ */
+#define ADD_CMDLINE(str) guestfs_int_add_string (g, &cmdline, (str))
+#define ADD_CMDLINE_STRING_NODUP(str) \
guestfs_int_add_string_nodup (g, &cmdline, (str))
-#define ADD_CMDLINE_PRINTF(fs,...) \
+#define ADD_CMDLINE_PRINTF(fs, ...) \
guestfs_int_add_sprintf (g, &cmdline, (fs), ##__VA_ARGS__)
ADD_CMDLINE (g->hv);
@@ -379,28 +388,29 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
if (guestfs_int_get_backend_setting_bool (g, "gdb") > 0) {
ADD_CMDLINE ("-S");
ADD_CMDLINE ("-s");
- warning (g, "qemu debugging is enabled, connect gdb to tcp::1234 to
begin");
+ warning (
+ g, "qemu debugging is enabled, connect gdb to tcp::1234 to begin");
}
ADD_CMDLINE ("-machine");
if (!force_tcg)
ADD_CMDLINE (
#ifdef MACHINE_TYPE
- MACHINE_TYPE ","
+ MACHINE_TYPE ","
#endif
#ifdef __aarch64__
- "gic-version=host,"
+ "gic-version=host,"
#endif
- "accel=kvm:tcg");
+ "accel=kvm:tcg");
else
ADD_CMDLINE (
#ifdef MACHINE_TYPE
- MACHINE_TYPE ","
+ MACHINE_TYPE ","
#endif
#ifdef __aarch64__
- "gic-version=host,"
+ "gic-version=host,"
#endif
- "accel=tcg");
+ "accel=tcg");
cpu_model = guestfs_int_get_cpu_model (has_kvm && !force_tcg);
if (cpu_model) {
@@ -472,12 +482,14 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
ADD_CMDLINE (VIRTIO_SCSI ",id=scsi");
}
- ITER_DRIVES (g, i, drv) {
+ ITER_DRIVES (g, i, drv)
+ {
CLEANUP_FREE char *file = NULL, *escaped_file = NULL, *param = NULL;
if (!drv->overlay) {
const char *discard_mode = "";
- int major = data->qemu_version_major, minor = data->qemu_version_minor;
+ int major = data->qemu_version_major,
+ minor = data->qemu_version_minor;
unsigned long qemu_version = major * 1000000 + minor * 1000;
switch (drv->discard) {
@@ -490,7 +502,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
case discard_enable:
if (!guestfs_int_discard_possible (g, drv, qemu_version))
goto cleanup0;
- /*FALLTHROUGH*/
+ /*FALLTHROUGH*/
case discard_besteffort:
/* I believe from reading the code that this is always safe as
* long as qemu >= 1.5.
@@ -507,28 +519,22 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
/* Make the first part of the -drive parameter, everything up to
* the if=... at the end.
*/
- param = safe_asprintf
- (g, "file=%s%s,cache=%s%s%s%s%s%s%s,id=hd%zu",
- escaped_file,
- drv->readonly ? ",snapshot=on" : "",
- drv->cachemode ? drv->cachemode : "writeback",
- discard_mode,
- drv->src.format ? ",format=" : "",
- drv->src.format ? drv->src.format : "",
- drv->disk_label ? ",serial=" : "",
- drv->disk_label ? drv->disk_label : "",
- drv->copyonread ? ",copy-on-read=on" : "",
- i);
- }
- else {
+ param =
+ safe_asprintf (g, "file=%s%s,cache=%s%s%s%s%s%s%s,id=hd%zu",
+ escaped_file, drv->readonly ? ",snapshot=on" :
"",
+ drv->cachemode ? drv->cachemode : "writeback",
+ discard_mode, drv->src.format ? ",format=" :
"",
+ drv->src.format ? drv->src.format : "",
+ drv->disk_label ? ",serial=" : "",
+ drv->disk_label ? drv->disk_label : "",
+ drv->copyonread ? ",copy-on-read=on" :
"", i);
+ } else {
/* Writable qcow2 overlay on top of read-only drive. */
escaped_file = qemu_escape_param (g, drv->overlay);
- param = safe_asprintf
- (g, "file=%s,cache=unsafe,format=qcow2%s%s,id=hd%zu",
- escaped_file,
- drv->disk_label ? ",serial=" : "",
- drv->disk_label ? drv->disk_label : "",
- i);
+ param = safe_asprintf (
+ g, "file=%s,cache=unsafe,format=qcow2%s%s,id=hd%zu", escaped_file,
+ drv->disk_label ? ",serial=" : "",
+ drv->disk_label ? drv->disk_label : "", i);
}
/* If there's an explicit 'iface', use it. Otherwise default to
@@ -545,14 +551,12 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
else if (drv->iface) {
ADD_CMDLINE ("-drive");
ADD_CMDLINE_PRINTF ("%s,if=%s", param, drv->iface);
- }
- else if (virtio_scsi) {
+ } else if (virtio_scsi) {
ADD_CMDLINE ("-drive");
ADD_CMDLINE_PRINTF ("%s,if=none" /* sic */, param);
ADD_CMDLINE ("-device");
ADD_CMDLINE_PRINTF ("scsi-hd,drive=hd%zu", i);
- }
- else {
+ } else {
virtio_blk:
ADD_CMDLINE ("-drive");
ADD_CMDLINE_PRINTF ("%s,if=none" /* sic */, param);
@@ -564,14 +568,13 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
/* Add the ext2 appliance drive (after all the drives). */
if (has_appliance_drive) {
ADD_CMDLINE ("-drive");
- ADD_CMDLINE_PRINTF
("file=%s,snapshot=on,id=appliance,cache=unsafe,if=none",
- appliance);
+ ADD_CMDLINE_PRINTF (
+ "file=%s,snapshot=on,id=appliance,cache=unsafe,if=none", appliance);
if (virtio_scsi) {
ADD_CMDLINE ("-device");
ADD_CMDLINE ("scsi-hd,drive=appliance");
- }
- else {
+ } else {
ADD_CMDLINE ("-device");
ADD_CMDLINE (VIRTIO_BLK ",drive=appliance");
}
@@ -603,7 +606,8 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
ADD_CMDLINE ("-chardev");
ADD_CMDLINE_PRINTF ("socket,path=%s,id=channel0", data->guestfsd_sock);
ADD_CMDLINE ("-device");
- ADD_CMDLINE
("virtserialport,chardev=channel0,name=org.libguestfs.channel.0");
+ ADD_CMDLINE (
+ "virtserialport,chardev=channel0,name=org.libguestfs.channel.0");
/* Enable user networking. */
if (g->enable_network) {
@@ -617,16 +621,16 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
flags = 0;
if (!has_kvm || force_tcg)
flags |= APPLIANCE_COMMAND_LINE_IS_TCG;
- ADD_CMDLINE_STRING_NODUP (guestfs_int_appliance_command_line (g, appliance_dev,
- flags));
+ ADD_CMDLINE_STRING_NODUP (
+ guestfs_int_appliance_command_line (g, appliance_dev, flags));
- /* Note: custom command line parameters must come last so that
- * qemu -set parameters can modify previously added options.
- */
+/* Note: custom command line parameters must come last so that
+ * qemu -set parameters can modify previously added options.
+ */
- /* Add the extra options for the qemu command line specified
- * at configure time.
- */
+/* Add the extra options for the qemu command line specified
+ * at configure time.
+ */
#ifdef QEMU_OPTIONS
if (STRNEQ (QEMU_OPTIONS, ""))
add_cmdline_shell_unquoted (g, &cmdline, QEMU_OPTIONS);
@@ -652,7 +656,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
goto cleanup0;
}
- if (r == 0) { /* Child (qemu). */
+ if (r == 0) { /* Child (qemu). */
if (!g->direct_mode) {
/* Set up stdin, stdout, stderr. */
close (0);
@@ -702,7 +706,8 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
setpgid (0, 0);
setenv ("LC_ALL", "C", 1);
- setenv ("QEMU_AUDIO_DRV", "none", 1); /* Prevents qemu opening
/dev/dsp */
+ setenv ("QEMU_AUDIO_DRV", "none",
+ 1); /* Prevents qemu opening /dev/dsp */
TRACE0 (launch_run_qemu);
@@ -760,7 +765,8 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
* effectively polling. Is the cure worse than the disease?
*/
for (;;) {
- if (kill (qemu_pid, 0) == -1) /* qemu's gone away, we aren't needed */
+ if (kill (qemu_pid, 0) ==
+ -1) /* qemu's gone away, we aren't needed */
_exit (EXIT_SUCCESS);
if (kill (parent_pid, 0) == -1) {
/* Parent's gone away, qemu still around, so kill qemu. */
@@ -781,7 +787,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
/* Close the other end of the socketpair. */
close (sv[1]);
- console_sock = sv[0]; /* stdin of child */
+ console_sock = sv[0]; /* stdin of child */
sv[0] = -1;
}
@@ -790,8 +796,8 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
/* Wait for qemu to start and to connect back to us via
* virtio-serial and send the GUESTFS_LAUNCH_FLAG message.
*/
- g->conn =
- guestfs_int_new_conn_socket_listening (g, daemon_accept_sock, console_sock);
+ g->conn = guestfs_int_new_conn_socket_listening (g, daemon_accept_sock,
+ console_sock);
if (!g->conn)
goto cleanup1;
@@ -846,18 +852,22 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
return 0;
- cleanup1:
+cleanup1:
if (!g->direct_mode && sv[0] >= 0)
close (sv[0]);
- if (data->pid > 0) kill (data->pid, 9);
- if (data->recoverypid > 0) kill (data->recoverypid, 9);
- if (data->pid > 0) waitpid (data->pid, NULL, 0);
- if (data->recoverypid > 0) waitpid (data->recoverypid, NULL, 0);
+ if (data->pid > 0)
+ kill (data->pid, 9);
+ if (data->recoverypid > 0)
+ kill (data->recoverypid, 9);
+ if (data->pid > 0)
+ waitpid (data->pid, NULL, 0);
+ if (data->recoverypid > 0)
+ waitpid (data->recoverypid, NULL, 0);
data->pid = 0;
data->recoverypid = 0;
memset (&g->launch_t, 0, sizeof g->launch_t);
- cleanup0:
+cleanup0:
if (daemon_accept_sock >= 0)
close (daemon_accept_sock);
if (console_sock >= 0)
@@ -887,12 +897,12 @@ make_appliance_dev (guestfs_h *g, int virtio_scsi)
char dev[64] = "/dev/Xd";
/* Calculate the index of the drive. */
- ITER_DRIVES (g, i, drv) {
+ ITER_DRIVES (g, i, drv)
+ {
if (virtio_scsi) {
if (drv->iface == NULL || STREQ (drv->iface, "ide"))
index++;
- }
- else /* virtio-blk */ {
+ } else /* virtio-blk */ {
if (drv->iface == NULL || STRNEQ (drv->iface, "virtio"))
index++;
}
@@ -901,7 +911,7 @@ make_appliance_dev (guestfs_h *g, int virtio_scsi)
dev[5] = virtio_scsi ? 's' : 'v';
guestfs_int_drive_name (index, &dev[7]);
- return safe_strdup (g, dev); /* Caller frees. */
+ return safe_strdup (g, dev); /* Caller frees. */
}
/* This is called from the forked subprocess just before qemu runs, so
@@ -923,22 +933,27 @@ print_qemu_command_line (guestfs_h *g, char **argv)
if (argv[i][0] == '-') /* -option starts a new line */
fprintf (stderr, " \\\n ");
- if (i > 0) fputc (' ', stderr);
+ if (i > 0)
+ fputc (' ', stderr);
/* Does it need shell quoting? This only deals with simple cases. */
needs_quote = strcspn (argv[i], " ") != strlen (argv[i]);
- if (needs_quote) fputc ('\'', stderr);
+ if (needs_quote)
+ fputc ('\'', stderr);
fprintf (stderr, "%s", argv[i]);
- if (needs_quote) fputc ('\'', stderr);
+ if (needs_quote)
+ fputc ('\'', stderr);
i++;
}
fputc ('\n', stderr);
}
-static void parse_qemu_version (guestfs_h *g, struct backend_direct_data *data);
-static void read_all (guestfs_h *g, void *retv, const char *buf, size_t len);
+static void parse_qemu_version (guestfs_h *g,
+ struct backend_direct_data *data);
+static void read_all (guestfs_h *g, void *retv, const char *buf,
+ size_t len);
/* Test qemu binary (or wrapper) runs, and do 'qemu -help' so we know
* the version of qemu what options this qemu supports.
@@ -960,7 +975,7 @@ test_qemu (guestfs_h *g, struct backend_direct_data *data)
guestfs_int_cmd_add_arg (cmd1, "none");
guestfs_int_cmd_add_arg (cmd1, "-help");
guestfs_int_cmd_set_stdout_callback (cmd1, read_all, &data->qemu_help,
- CMD_STDOUT_FLAG_WHOLE_BUFFER);
+ CMD_STDOUT_FLAG_WHOLE_BUFFER);
r = guestfs_int_cmd_run (cmd1);
if (r == -1 || !WIFEXITED (r) || WEXITSTATUS (r) != 0)
goto error;
@@ -975,20 +990,20 @@ test_qemu (guestfs_h *g, struct backend_direct_data *data)
#ifdef MACHINE_TYPE
MACHINE_TYPE ","
#endif
- "accel=kvm:tcg");
+ "accel=kvm:tcg");
guestfs_int_cmd_add_arg (cmd2, "-device");
guestfs_int_cmd_add_arg (cmd2, "?");
guestfs_int_cmd_clear_capture_errors (cmd2);
guestfs_int_cmd_set_stderr_to_stdout (cmd2);
guestfs_int_cmd_set_stdout_callback (cmd2, read_all, &data->qemu_devices,
- CMD_STDOUT_FLAG_WHOLE_BUFFER);
+ CMD_STDOUT_FLAG_WHOLE_BUFFER);
r = guestfs_int_cmd_run (cmd2);
if (r == -1 || !WIFEXITED (r) || WEXITSTATUS (r) != 0)
goto error;
return 0;
- error:
+error:
if (r == -1)
return -1;
@@ -1014,7 +1029,9 @@ parse_qemu_version (guestfs_h *g, struct backend_direct_data *data)
if (!match2 (g, data->qemu_help, re_major_minor, &major_s, &minor_s)) {
parse_failed:
- debug (g, "%s: failed to parse qemu version string from the first line of the
output of '%s -help'. When reporting this bug please include the -help
output.",
+ debug (g, "%s: failed to parse qemu version string from the first line "
+ "of the output of '%s -help'. When reporting this bug "
+ "please include the -help output.",
__func__, g->hv);
return;
}
@@ -1112,7 +1129,7 @@ qemu_supports_virtio_scsi (guestfs_h *g, struct backend_direct_data
*data)
if (!data->qemu_help) {
if (test_qemu (g, data) == -1)
- return 0; /* safe option? */
+ return 0; /* safe option? */
}
/* data->virtio_scsi has these values:
@@ -1147,7 +1164,7 @@ qemu_escape_param (guestfs_h *g, const char *param)
size_t i, len = strlen (param);
char *p, *ret;
- ret = p = safe_malloc (g, len*2 + 1); /* max length of escaped name*/
+ ret = p = safe_malloc (g, len * 2 + 1); /* max length of escaped name*/
for (i = 0; i < len; ++i) {
*p++ = param[i];
if (param[i] == ',')
@@ -1160,11 +1177,10 @@ qemu_escape_param (guestfs_h *g, const char *param)
static char *
make_uri (guestfs_h *g, const char *scheme, const char *user,
- const char *password,
- struct drive_server *server, const char *path)
+ const char *password, struct drive_server *server,
+ const char *path)
{
- xmlURI uri = { .scheme = (char *) scheme,
- .user = (char *) user };
+ xmlURI uri = {.scheme = (char *)scheme, .user = (char *)user };
CLEANUP_FREE char *query = NULL;
CLEANUP_FREE char *pathslash = NULL;
CLEANUP_FREE char *userauth = NULL;
@@ -1173,13 +1189,13 @@ make_uri (guestfs_h *g, const char *scheme, const char *user,
if (path != NULL && path[0] != '/') {
pathslash = safe_asprintf (g, "/%s", path);
uri.path = pathslash;
- }
- else
- uri.path = (char *) path;
+ } else
+ uri.path = (char *)path;
/* Rebuild user:password. */
if (user != NULL && password != NULL) {
- /* Keep the string in an own variable so it can be freed automatically. */
+ /* Keep the string in an own variable so it can be freed automatically.
+ */
userauth = safe_asprintf (g, "%s:%s", user, password);
uri.user = userauth;
}
@@ -1196,7 +1212,7 @@ make_uri (guestfs_h *g, const char *scheme, const char *user,
break;
}
- return (char *) xmlSaveUri (&uri);
+ return (char *)xmlSaveUri (&uri);
}
/* Useful function to format a drive + protocol for qemu. Also shared
@@ -1207,7 +1223,8 @@ make_uri (guestfs_h *g, const char *scheme, const char *user,
* part of a full -drive parameter (but not for qemu-img).
*/
char *
-guestfs_int_drive_source_qemu_param (guestfs_h *g, const struct drive_source *src)
+guestfs_int_drive_source_qemu_param (guestfs_h *g,
+ const struct drive_source *src)
{
char *path;
@@ -1229,8 +1246,8 @@ guestfs_int_drive_source_qemu_param (guestfs_h *g, const struct
drive_source *sr
return path;
case drive_protocol_ftp:
- return make_uri (g, "ftp", src->username, src->secret,
- &src->servers[0], src->u.exportname);
+ return make_uri (g, "ftp", src->username, src->secret,
&src->servers[0],
+ src->u.exportname);
case drive_protocol_ftps:
return make_uri (g, "ftps", src->username, src->secret,
@@ -1239,14 +1256,14 @@ guestfs_int_drive_source_qemu_param (guestfs_h *g, const struct
drive_source *sr
case drive_protocol_gluster:
switch (src->servers[0].transport) {
case drive_transport_none:
- return make_uri (g, "gluster", NULL, NULL,
- &src->servers[0], src->u.exportname);
+ return make_uri (g, "gluster", NULL, NULL, &src->servers[0],
+ src->u.exportname);
case drive_transport_tcp:
- return make_uri (g, "gluster+tcp", NULL, NULL,
- &src->servers[0], src->u.exportname);
+ return make_uri (g, "gluster+tcp", NULL, NULL, &src->servers[0],
+ src->u.exportname);
case drive_transport_unix:
- return make_uri (g, "gluster+unix", NULL, NULL,
- &src->servers[0], NULL);
+ return make_uri (g, "gluster+unix", NULL, NULL, &src->servers[0],
+ NULL);
}
case drive_protocol_http:
@@ -1264,22 +1281,20 @@ guestfs_int_drive_source_qemu_param (guestfs_h *g, const struct
drive_source *sr
char port_str[16];
char *ret;
- escaped_hostname =
- (char *) xmlURIEscapeStr(BAD_CAST src->servers[0].u.hostname,
- BAD_CAST "");
+ escaped_hostname = (char *)xmlURIEscapeStr (
+ BAD_CAST src->servers[0].u.hostname, BAD_CAST "");
/* The target string must keep slash as it is, as exportname contains
* "iqn/lun".
*/
escaped_target =
- (char *) xmlURIEscapeStr(BAD_CAST src->u.exportname, BAD_CAST "/");
+ (char *)xmlURIEscapeStr (BAD_CAST src->u.exportname, BAD_CAST "/");
if (src->username != NULL && src->secret != NULL)
userauth = safe_asprintf (g, "%s%%%s@", src->username,
src->secret);
if (src->servers[0].port != 0)
snprintf (port_str, sizeof port_str, ":%d", src->servers[0].port);
ret = safe_asprintf (g, "iscsi://%s%s%s/%s",
- userauth != NULL ? userauth : "",
- escaped_hostname,
+ userauth != NULL ? userauth : "", escaped_hostname,
src->servers[0].port != 0 ? port_str : "",
escaped_target);
@@ -1293,8 +1308,8 @@ guestfs_int_drive_source_qemu_param (guestfs_h *g, const struct
drive_source *sr
switch (src->servers[0].transport) {
case drive_transport_none:
case drive_transport_tcp:
- p = safe_asprintf (g, "nbd:%s:%d",
- src->servers[0].u.hostname, src->servers[0].port);
+ p = safe_asprintf (g, "nbd:%s:%d", src->servers[0].u.hostname,
+ src->servers[0].port);
break;
case drive_transport_unix:
p = safe_asprintf (g, "nbd:unix:%s", src->servers[0].u.socket);
@@ -1352,26 +1367,24 @@ guestfs_int_drive_source_qemu_param (guestfs_h *g, const struct
drive_source *sr
else
auth = ":auth_supported=none";
- return safe_asprintf (g, "rbd:%s%s%s%s%s%s",
- src->u.exportname,
+ return safe_asprintf (g, "rbd:%s%s%s%s%s%s", src->u.exportname,
src->nr_servers > 0 ? ":mon_host=" :
"",
src->nr_servers > 0 ? mon_host : "",
- username ? username : "",
- auth,
+ username ? username : "", auth,
secret ? secret : "");
}
case drive_protocol_sheepdog:
if (src->nr_servers == 0)
return safe_asprintf (g, "sheepdog:%s", src->u.exportname);
- else /* XXX How to pass multiple hosts? */
+ else /* XXX How to pass multiple hosts? */
return safe_asprintf (g, "sheepdog:%s:%d:%s",
- src->servers[0].u.hostname, src->servers[0].port,
- src->u.exportname);
+ src->servers[0].u.hostname,
+ src->servers[0].port, src->u.exportname);
case drive_protocol_ssh:
- return make_uri (g, "ssh", src->username, src->secret,
- &src->servers[0], src->u.exportname);
+ return make_uri (g, "ssh", src->username, src->secret,
&src->servers[0],
+ src->u.exportname);
case drive_protocol_tftp:
return make_uri (g, "tftp", src->username, src->secret,
@@ -1392,7 +1405,7 @@ guestfs_int_drive_source_qemu_param (guestfs_h *g, const struct
drive_source *sr
*/
bool
guestfs_int_discard_possible (guestfs_h *g, struct drive *drv,
- unsigned long qemu_version)
+ unsigned long qemu_version)
{
/* qemu >= 1.5. This was the first version that supported the
* discard option on -drive at all.
@@ -1404,18 +1417,16 @@ guestfs_int_discard_possible (guestfs_h *g, struct drive *drv,
bool qemu16 = qemu_version >= 1006000;
if (!qemu15)
- NOT_SUPPORTED (g, false,
- _("discard cannot be enabled on this drive: "
- "qemu < 1.5"));
+ NOT_SUPPORTED (g, false, _("discard cannot be enabled on this drive: "
+ "qemu < 1.5"));
/* If it's an overlay, discard is not possible (on the underlying
* file). This has probably been caught earlier since we already
* checked that the drive is !readonly. Nevertheless ...
*/
if (drv->overlay)
- NOT_SUPPORTED (g, false,
- _("discard cannot be enabled on this drive: "
- "the drive has a read-only overlay"));
+ NOT_SUPPORTED (g, false, _("discard cannot be enabled on this drive: "
+ "the drive has a read-only overlay"));
/* Look at the source format. */
if (drv->src.format == NULL) {
@@ -1423,27 +1434,25 @@ guestfs_int_discard_possible (guestfs_h *g, struct drive *drv,
NOT_SUPPORTED (g, false,
_("discard cannot be enabled on this drive: "
"you have to specify the format of the file"));
- }
- else if (STREQ (drv->src.format, "raw"))
- /* OK */ ;
+ } else if (STREQ (drv->src.format, "raw"))
+ /* OK */;
else if (STREQ (drv->src.format, "qcow2")) {
if (!qemu16)
NOT_SUPPORTED (g, false,
_("discard cannot be enabled on this drive: "
"qemu < 1.6 cannot do discard on qcow2 files"));
- }
- else {
+ } else {
/* It's possible in future other formats will support discard, but
* currently (qemu 1.7) none of them do.
*/
- NOT_SUPPORTED (g, false,
- _("discard cannot be enabled on this drive: "
- "qemu does not support discard for '%s' format
files"),
- drv->src.format);
+ NOT_SUPPORTED (
+ g, false, _("discard cannot be enabled on this drive: "
+ "qemu does not support discard for '%s' format
files"),
+ drv->src.format);
}
switch (drv->src.protocol) {
- /* Protocols which support discard. */
+ /* Protocols which support discard. */
case drive_protocol_file:
case drive_protocol_gluster:
case drive_protocol_iscsi:
@@ -1452,17 +1461,17 @@ guestfs_int_discard_possible (guestfs_h *g, struct drive *drv,
case drive_protocol_sheepdog: /* XXX depends on server version */
break;
- /* Protocols which don't support discard. */
+ /* Protocols which don't support discard. */
case drive_protocol_ftp:
case drive_protocol_ftps:
case drive_protocol_http:
case drive_protocol_https:
case drive_protocol_ssh:
case drive_protocol_tftp:
- NOT_SUPPORTED (g, -1,
- _("discard cannot be enabled on this drive: "
- "protocol '%s' does not support discard"),
- guestfs_int_drive_protocol_to_string (drv->src.protocol));
+ NOT_SUPPORTED (
+ g, -1, _("discard cannot be enabled on this drive: "
+ "protocol '%s' does not support discard"),
+ guestfs_int_drive_protocol_to_string (drv->src.protocol));
}
return true;
@@ -1480,20 +1489,21 @@ shutdown_direct (guestfs_h *g, void *datav, int check_for_errors)
debug (g, "sending SIGTERM to process %d", data->pid);
kill (data->pid, SIGTERM);
}
- if (data->recoverypid > 0) kill (data->recoverypid, 9);
+ if (data->recoverypid > 0)
+ kill (data->recoverypid, 9);
/* Wait for subprocess(es) to exit. */
if (g->recovery_proc /* RHBZ#998482 */ && data->pid > 0) {
if (waitpid (data->pid, &status, 0) == -1) {
perrorf (g, "waitpid (qemu)");
ret = -1;
- }
- else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) {
+ } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) {
guestfs_int_external_command_failed (g, status, g->hv, NULL);
ret = -1;
}
}
- if (data->recoverypid > 0) waitpid (data->recoverypid, NULL, 0);
+ if (data->recoverypid > 0)
+ waitpid (data->recoverypid, NULL, 0);
data->pid = data->recoverypid = 0;
@@ -1532,7 +1542,7 @@ max_disks_direct (guestfs_h *g, void *datav)
if (qemu_supports_virtio_scsi (g, data))
return 255;
else
- return 27; /* conservative estimate */
+ return 27; /* conservative estimate */
}
static struct backend_ops backend_direct_ops = {
diff --git a/src/launch-libvirt.c b/src/launch-libvirt.c
index 7331acc..f2b7226 100644
--- a/src/launch-libvirt.c
+++ b/src/launch-libvirt.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -31,7 +32,7 @@
#include <assert.h>
#include <string.h>
#include <libintl.h>
-#include <sys/un.h> /* sockaddr_un */
+#include <sys/un.h> /* sockaddr_un */
#ifdef HAVE_LIBVIRT
#include <libvirt/virterror.h>
@@ -53,10 +54,10 @@
/* Fixes for Mac OS X */
#ifndef SOCK_CLOEXEC
-# define SOCK_CLOEXEC O_CLOEXEC
+#define SOCK_CLOEXEC O_CLOEXEC
#endif
#ifndef SOCK_NONBLOCK
-# define SOCK_NONBLOCK O_NONBLOCK
+#define SOCK_NONBLOCK O_NONBLOCK
#endif
/* End of fixes for Mac OS X */
@@ -86,12 +87,13 @@ xmlBufferDetach (xmlBufferPtr buf)
#endif
#ifdef HAVE_ATTRIBUTE_CLEANUP
-#define CLEANUP_VIRSECRETFREE __attribute__((cleanup(cleanup_virSecretFree)))
+#define CLEANUP_VIRSECRETFREE \
+ __attribute__ ((cleanup (cleanup_virSecretFree)))
static void
cleanup_virSecretFree (void *ptr)
{
- virSecretPtr secret_obj = * (virSecretPtr *) ptr;
+ virSecretPtr secret_obj = *(virSecretPtr *)ptr;
if (secret_obj)
virSecretFree (secret_obj);
}
@@ -101,27 +103,29 @@ cleanup_virSecretFree (void *ptr)
#endif
/* List used to store a mapping of secret to libvirt secret UUID. */
-struct secret {
+struct secret
+{
char *secret;
char uuid[VIR_UUID_STRING_BUFLEN];
};
-#define DOMAIN_NAME_LEN (8+16+1) /* "guestfs-" + random + \0 */
+#define DOMAIN_NAME_LEN (8 + 16 + 1) /* "guestfs-" + random + \0 */
/* Per-handle data. */
-struct backend_libvirt_data {
- virConnectPtr conn; /* libvirt connection */
- virDomainPtr dom; /* libvirt domain */
+struct backend_libvirt_data
+{
+ virConnectPtr conn; /* libvirt connection */
+ virDomainPtr dom; /* libvirt domain */
char *selinux_label;
char *selinux_imagelabel;
bool selinux_norelabel_disks;
char *network_bridge;
- char name[DOMAIN_NAME_LEN]; /* random name */
- bool is_kvm; /* false = qemu, true = kvm (from capabilities)*/
- unsigned long qemu_version; /* qemu version (from libvirt) */
- struct secret *secrets; /* list of secrets */
+ char name[DOMAIN_NAME_LEN]; /* random name */
+ bool is_kvm; /* false = qemu, true = kvm (from capabilities)*/
+ unsigned long qemu_version; /* qemu version (from libvirt) */
+ struct secret *secrets; /* list of secrets */
size_t nr_secrets;
- char *uefi_code; /* UEFI (firmware) code and variables. */
+ char *uefi_code; /* UEFI (firmware) code and variables. */
char *uefi_vars;
char guestfsd_path[UNIX_PATH_MAX]; /* paths to sockets */
char console_path[UNIX_PATH_MAX];
@@ -130,26 +134,39 @@ struct backend_libvirt_data {
/* Parameters passed to construct_libvirt_xml and subfunctions. We
* keep them all in a structure for convenience!
*/
-struct libvirt_xml_params {
+struct libvirt_xml_params
+{
struct backend_libvirt_data *data;
- char *kernel; /* paths to kernel and initrd */
+ char *kernel; /* paths to kernel and initrd */
char *initrd;
- char *appliance_overlay; /* path to qcow2 overlay backed by appliance */
- char appliance_dev[64]; /* appliance device name */
- size_t appliance_index; /* index of appliance */
- bool enable_svirt; /* false if we decided to disable sVirt */
- bool current_proc_is_root; /* true = euid is root */
+ char *appliance_overlay; /* path to qcow2 overlay backed by appliance */
+ char appliance_dev[64]; /* appliance device name */
+ size_t appliance_index; /* index of appliance */
+ bool enable_svirt; /* false if we decided to disable sVirt */
+ bool current_proc_is_root; /* true = euid is root */
};
-static int parse_capabilities (guestfs_h *g, const char *capabilities_xml, struct
backend_libvirt_data *data);
-static int add_secret (guestfs_h *g, virConnectPtr conn, struct backend_libvirt_data
*data, const struct drive *drv);
-static int find_secret (guestfs_h *g, const struct backend_libvirt_data *data, const
struct drive *drv, const char **type, const char **uuid);
-static int have_secret (guestfs_h *g, const struct backend_libvirt_data *data, const
struct drive *drv);
-static xmlChar *construct_libvirt_xml (guestfs_h *g, const struct libvirt_xml_params
*params);
+static int parse_capabilities (guestfs_h *g, const char *capabilities_xml,
+ struct backend_libvirt_data *data);
+static int add_secret (guestfs_h *g, virConnectPtr conn,
+ struct backend_libvirt_data *data,
+ const struct drive *drv);
+static int find_secret (guestfs_h *g,
+ const struct backend_libvirt_data *data,
+ const struct drive *drv, const char **type,
+ const char **uuid);
+static int have_secret (guestfs_h *g,
+ const struct backend_libvirt_data *data,
+ const struct drive *drv);
+static xmlChar *
+construct_libvirt_xml (guestfs_h *g,
+ const struct libvirt_xml_params *params);
static void debug_appliance_permissions (guestfs_h *g);
static void debug_socket_permissions (guestfs_h *g);
-static void libvirt_error (guestfs_h *g, const char *fs, ...) __attribute__((format
(printf,2,3)));
-static void libvirt_debug (guestfs_h *g, const char *fs, ...) __attribute__((format
(printf,2,3)));
+static void libvirt_error (guestfs_h *g, const char *fs, ...)
+ __attribute__ ((format (printf, 2, 3)));
+static void libvirt_debug (guestfs_h *g, const char *fs, ...)
+ __attribute__ ((format (printf, 2, 3)));
static int is_custom_hv (guestfs_h *g);
static int is_blk (const char *path);
static void ignore_errors (void *ignore, virErrorPtr ignore2);
@@ -158,7 +175,8 @@ static void clear_socket_create_context (guestfs_h *g);
static int check_bridge_exists (guestfs_h *g, const char *brname);
#if HAVE_LIBSELINUX
-static void selinux_warning (guestfs_h *g, const char *func, const char *selinux_op,
const char *data);
+static void selinux_warning (guestfs_h *g, const char *func,
+ const char *selinux_op, const char *data);
#endif
static char *
@@ -212,14 +230,14 @@ create_cow_overlay_libvirt (guestfs_h *g, void *datav, struct drive
*drv)
guestfs_push_error_handler (g, NULL, NULL);
free (data->selinux_imagelabel);
data->selinux_imagelabel =
- guestfs_get_backend_setting (g, "internal_libvirt_imagelabel");
+ guestfs_get_backend_setting (g, "internal_libvirt_imagelabel");
guestfs_pop_error_handler (g);
if (data->selinux_imagelabel) {
- debug (g, "setting SELinux label on %s to %s",
- overlay, data->selinux_imagelabel);
+ debug (g, "setting SELinux label on %s to %s", overlay,
+ data->selinux_imagelabel);
if (setfilecon (overlay,
- (security_context_t) data->selinux_imagelabel) == -1)
+ (security_context_t)data->selinux_imagelabel) == -1)
selinux_warning (g, __func__, "setfilecon", overlay);
}
#endif
@@ -240,10 +258,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
virDomainPtr dom = NULL;
CLEANUP_FREE char *capabilities_xml = NULL;
struct libvirt_xml_params params = {
- .data = data,
- .kernel = NULL,
- .initrd = NULL,
- .appliance_overlay = NULL,
+ .data = data, .kernel = NULL, .initrd = NULL, .appliance_overlay = NULL,
};
CLEANUP_FREE xmlChar *xml = NULL;
CLEANUP_FREE char *appliance = NULL;
@@ -258,13 +273,13 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
/* XXX: It should be possible to make this work. */
if (g->direct_mode) {
- error (g, _("direct mode flag is not supported yet for libvirt backend"));
+ error (g,
+ _("direct mode flag is not supported yet for libvirt backend"));
return -1;
}
virGetVersion (&version, NULL, NULL);
- debug (g, "libvirt version = %lu (%lu.%lu.%lu)",
- version,
+ debug (g, "libvirt version = %lu (%lu.%lu.%lu)", version,
version / 1000000UL, version / 1000UL % 1000UL, version % 1000UL);
if (version < MIN_LIBVIRT_VERSION) {
error (g, _("you must have libvirt >= %d.%d.%d "
@@ -279,7 +294,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
/* Create a random name for the guest. */
memcpy (data->name, "guestfs-", 8);
const size_t random_name_len =
- DOMAIN_NAME_LEN - 8 /* "guestfs-" */ - 1 /* \0 */;
+ DOMAIN_NAME_LEN - 8 /* "guestfs-" */ - 1 /* \0 */;
if (guestfs_int_random_string (&data->name[8], random_name_len) == -1) {
perrorf (g, "guestfs_int_random_string");
return -1;
@@ -289,7 +304,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
debug (g, "connect to libvirt");
/* Decode the URI string. */
- if (!libvirt_uri) { /* "libvirt" */
+ if (!libvirt_uri) { /* "libvirt" */
if (!params.current_proc_is_root)
libvirt_uri = "qemu:///session";
else
@@ -302,7 +317,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
conn = guestfs_int_open_libvirt_connection (g, libvirt_uri, 0);
if (!conn) {
libvirt_error (g, _("could not connect to libvirt (URI = %s)"),
- libvirt_uri ? : "NULL");
+ libvirt_uri ?: "NULL");
goto cleanup;
}
@@ -315,12 +330,10 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
/* Get hypervisor (hopefully qemu) version. */
if (virConnectGetVersion (conn, &data->qemu_version) == 0) {
debug (g, "qemu version (reported by libvirt) = %lu (%lu.%lu.%lu)",
- data->qemu_version,
- data->qemu_version / 1000000UL,
+ data->qemu_version, data->qemu_version / 1000000UL,
data->qemu_version / 1000UL % 1000UL,
data->qemu_version % 1000UL);
- }
- else {
+ } else {
libvirt_debug (g, "unable to read qemu version from libvirt");
data->qemu_version = 0;
}
@@ -350,21 +363,22 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
guestfs_push_error_handler (g, NULL, NULL);
free (data->selinux_label);
data->selinux_label =
- guestfs_get_backend_setting (g, "internal_libvirt_label");
+ guestfs_get_backend_setting (g, "internal_libvirt_label");
free (data->selinux_imagelabel);
data->selinux_imagelabel =
- guestfs_get_backend_setting (g, "internal_libvirt_imagelabel");
- data->selinux_norelabel_disks =
- guestfs_int_get_backend_setting_bool (g,
"internal_libvirt_norelabel_disks");
+ guestfs_get_backend_setting (g, "internal_libvirt_imagelabel");
+ data->selinux_norelabel_disks = guestfs_int_get_backend_setting_bool (
+ g, "internal_libvirt_norelabel_disks");
if (g->enable_network) {
data->network_bridge =
- guestfs_get_backend_setting (g, "network_bridge");
+ guestfs_get_backend_setting (g, "network_bridge");
if (!data->network_bridge)
data->network_bridge = safe_strdup (g, "virbr0");
}
guestfs_pop_error_handler (g);
- if (g->enable_network && check_bridge_exists (g, data->network_bridge) ==
-1)
+ if (g->enable_network &&
+ check_bridge_exists (g, data->network_bridge) == -1)
goto cleanup;
/* Locate and/or build the appliance. */
@@ -397,7 +411,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
set_socket_create_context (g);
- daemon_accept_sock = socket (AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0);
+ daemon_accept_sock = socket (AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (daemon_accept_sock == -1) {
perrorf (g, "socket");
goto cleanup;
@@ -406,8 +420,8 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
addr.sun_family = AF_UNIX;
memcpy (addr.sun_path, data->guestfsd_path, UNIX_PATH_MAX);
- if (bind (daemon_accept_sock, (struct sockaddr *) &addr,
- sizeof addr) == -1) {
+ if (bind (daemon_accept_sock, (struct sockaddr *)&addr, sizeof addr) ==
+ -1) {
perrorf (g, "bind");
goto cleanup;
}
@@ -422,7 +436,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
&data->console_path) == -1)
goto cleanup;
- console_sock = socket (AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0);
+ console_sock = socket (AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (console_sock == -1) {
perrorf (g, "socket");
goto cleanup;
@@ -431,7 +445,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
addr.sun_family = AF_UNIX;
memcpy (addr.sun_path, data->console_path, UNIX_PATH_MAX);
- if (bind (console_sock, (struct sockaddr *) &addr, sizeof addr) == -1) {
+ if (bind (console_sock, (struct sockaddr *)&addr, sizeof addr) == -1) {
perrorf (g, "bind");
goto cleanup;
}
@@ -493,7 +507,8 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
/* Store any secrets in libvirtd, keeping a mapping from the secret
* to its UUID.
*/
- ITER_DRIVES (g, i, drv) {
+ ITER_DRIVES (g, i, drv)
+ {
if (add_secret (g, conn, data, drv) == -1)
goto cleanup;
}
@@ -504,7 +519,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
params.appliance_index = g->nr_drives;
strcpy (params.appliance_dev, "/dev/sd");
guestfs_int_drive_name (params.appliance_index, ¶ms.appliance_dev[7]);
- params.enable_svirt = ! is_custom_hv (g);
+ params.enable_svirt = !is_custom_hv (g);
xml = construct_libvirt_xml (g, ¶ms);
if (!xml)
@@ -519,22 +534,23 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
/* Launch the libvirt guest. */
debug (g, "launch libvirt guest");
- dom = virDomainCreateXML (conn, (char *) xml, VIR_DOMAIN_START_AUTODESTROY);
+ dom =
+ virDomainCreateXML (conn, (char *)xml, VIR_DOMAIN_START_AUTODESTROY);
if (!dom) {
- libvirt_error (g, _(
- "could not create appliance through libvirt.\n"
- "\n"
- "Try running qemu directly without libvirt using this environment
variable:\n"
- "export LIBGUESTFS_BACKEND=direct\n"
- "\n"
- "Original error from libvirt"));
+ libvirt_error (g, _("could not create appliance through libvirt.\n"
+ "\n"
+ "Try running qemu directly without libvirt using "
+ "this environment variable:\n"
+ "export LIBGUESTFS_BACKEND=direct\n"
+ "\n"
+ "Original error from libvirt"));
goto cleanup;
}
g->state = LAUNCHING;
/* Wait for console socket to be opened (by qemu). */
- r = accept4 (console_sock, NULL, NULL, SOCK_NONBLOCK|SOCK_CLOEXEC);
+ r = accept4 (console_sock, NULL, NULL, SOCK_NONBLOCK | SOCK_CLOEXEC);
if (r == -1) {
perrorf (g, "accept");
goto cleanup;
@@ -545,13 +561,13 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
close (r);
goto cleanup;
}
- console_sock = r; /* This is the accepted console socket. */
+ console_sock = r; /* This is the accepted console socket. */
/* Wait for libvirt domain to start and to connect back to us via
* virtio-serial and send the GUESTFS_LAUNCH_FLAG message.
*/
- g->conn =
- guestfs_int_new_conn_socket_listening (g, daemon_accept_sock, console_sock);
+ g->conn = guestfs_int_new_conn_socket_listening (g, daemon_accept_sock,
+ console_sock);
if (!g->conn)
goto cleanup;
@@ -613,7 +629,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
return 0;
- cleanup:
+cleanup:
clear_socket_create_context (g);
if (console_sock >= 0)
@@ -654,8 +670,8 @@ parse_capabilities (guestfs_h *g, const char *capabilities_xml,
size_t seen_qemu, seen_kvm;
int force_tcg;
- doc = xmlReadMemory (capabilities_xml, strlen (capabilities_xml),
- NULL, NULL, XML_PARSE_NONET);
+ doc = xmlReadMemory (capabilities_xml, strlen (capabilities_xml), NULL,
+ NULL, XML_PARSE_NONET);
if (doc == NULL) {
error (g, _("unable to parse capabilities XML returned by libvirt"));
return -1;
@@ -667,9 +683,9 @@ parse_capabilities (guestfs_h *g, const char *capabilities_xml,
return -1;
}
- /* This gives us a set of all the supported domain types.
- * XXX It ignores architecture, but let's not worry about that.
- */
+/* This gives us a set of all the supported domain types.
+ * XXX It ignores architecture, but let's not worry about that.
+ */
#define XPATH_EXPR "/capabilities/guest/arch/domain/@type"
xpathObj = xmlXPathEvalExpression (BAD_CAST XPATH_EXPR, xpathCtx);
if (xpathObj == NULL) {
@@ -682,7 +698,7 @@ parse_capabilities (guestfs_h *g, const char *capabilities_xml,
seen_qemu = seen_kvm = 0;
if (nodes != NULL) {
- for (i = 0; i < (size_t) nodes->nodeNr; ++i) {
+ for (i = 0; i < (size_t)nodes->nodeNr; ++i) {
CLEANUP_FREE char *type = NULL;
if (seen_qemu && seen_kvm)
@@ -690,8 +706,8 @@ parse_capabilities (guestfs_h *g, const char *capabilities_xml,
assert (nodes->nodeTab[i]);
assert (nodes->nodeTab[i]->type == XML_ATTRIBUTE_NODE);
- attr = (xmlAttrPtr) nodes->nodeTab[i];
- type = (char *) xmlNodeListGetString (doc, attr->children, 1);
+ attr = (xmlAttrPtr)nodes->nodeTab[i];
+ type = (char *)xmlNodeListGetString (doc, attr->children, 1);
if (STREQ (type, "qemu"))
seen_qemu++;
@@ -707,18 +723,21 @@ parse_capabilities (guestfs_h *g, const char *capabilities_xml,
if (!seen_qemu && !seen_kvm) {
CLEANUP_FREE char *backend = guestfs_get_backend (g);
- error (g,
- _("libvirt hypervisor doesn't support qemu or KVM,\n"
- "so we cannot create the libguestfs appliance.\n"
- "The current backend is '%s'.\n"
- "Check that the PATH environment variable is set and contains\n"
- "the path to the qemu ('qemu-system-*') or KVM
('qemu-kvm', 'kvm' etc).\n"
- "Or: try setting:\n"
- " export LIBGUESTFS_BACKEND=libvirt:qemu:///session\n"
- "Or: if you want to have libguestfs run qemu directly, try:\n"
- " export LIBGUESTFS_BACKEND=direct\n"
- "For further help, read the guestfs(3) man page and libguestfs
FAQ."),
- backend);
+ error (
+ g,
+ _("libvirt hypervisor doesn't support qemu or KVM,\n"
+ "so we cannot create the libguestfs appliance.\n"
+ "The current backend is '%s'.\n"
+ "Check that the PATH environment variable is set and contains\n"
+ "the path to the qemu ('qemu-system-*') or KVM
('qemu-kvm', "
+ "'kvm' etc).\n"
+ "Or: try setting:\n"
+ " export LIBGUESTFS_BACKEND=libvirt:qemu:///session\n"
+ "Or: if you want to have libguestfs run qemu directly, try:\n"
+ " export LIBGUESTFS_BACKEND=direct\n"
+ "For further help, read the guestfs(3) man page and libguestfs "
+ "FAQ."),
+ backend);
return -1;
}
@@ -783,9 +802,9 @@ set_socket_create_context (guestfs_h *g)
goto out2;
}
- out2:
+out2:
context_free (con);
- out1:
+out1:
freecon (scon);
}
@@ -813,7 +832,8 @@ clear_socket_create_context (guestfs_h *g)
#endif /* !HAVE_LIBSELINUX */
static void
-debug_permissions_cb (guestfs_h *g, void *data, const char *line, size_t len)
+debug_permissions_cb (guestfs_h *g, void *data, const char *line,
+ size_t len)
{
debug (g, "%s", line);
}
@@ -825,8 +845,8 @@ debug_appliance_permissions (guestfs_h *g)
CLEANUP_FREE char *cachedir = guestfs_get_cachedir (g);
CLEANUP_FREE char *appliance = NULL;
- appliance = safe_asprintf (g, "%s/.guestfs-%ju",
- cachedir, (uintmax_t) geteuid ());
+ appliance =
+ safe_asprintf (g, "%s/.guestfs-%ju", cachedir, (uintmax_t)geteuid ());
guestfs_int_cmd_add_arg (cmd, "ls");
guestfs_int_cmd_add_arg (cmd, "-a");
@@ -849,26 +869,67 @@ debug_socket_permissions (guestfs_h *g)
guestfs_int_cmd_add_arg (cmd, "-l");
guestfs_int_cmd_add_arg (cmd, "-Z");
guestfs_int_cmd_add_arg (cmd, g->sockdir);
- guestfs_int_cmd_set_stdout_callback (cmd, debug_permissions_cb, NULL, 0);
+ guestfs_int_cmd_set_stdout_callback (cmd, debug_permissions_cb, NULL,
+ 0);
guestfs_int_cmd_run (cmd);
}
}
-static int construct_libvirt_xml_domain (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
-static int construct_libvirt_xml_name (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
-static int construct_libvirt_xml_cpu (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
-static int construct_libvirt_xml_boot (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
-static int construct_libvirt_xml_seclabel (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
-static int construct_libvirt_xml_lifecycle (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
-static int construct_libvirt_xml_devices (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
-static int construct_libvirt_xml_qemu_cmdline (guestfs_h *g, const struct
libvirt_xml_params *params, xmlTextWriterPtr xo);
-static int construct_libvirt_xml_disk (guestfs_h *g, const struct backend_libvirt_data
*data, xmlTextWriterPtr xo, struct drive *drv, size_t drv_index);
-static int construct_libvirt_xml_disk_target (guestfs_h *g, xmlTextWriterPtr xo, size_t
drv_index);
-static int construct_libvirt_xml_disk_driver_qemu (guestfs_h *g, const struct
backend_libvirt_data *data, struct drive *drv, xmlTextWriterPtr xo, const char *format,
const char *cachemode, enum discard discard, bool copyonread);
-static int construct_libvirt_xml_disk_address (guestfs_h *g, xmlTextWriterPtr xo, size_t
drv_index);
-static int construct_libvirt_xml_disk_source_hosts (guestfs_h *g, xmlTextWriterPtr xo,
const struct drive_source *src);
-static int construct_libvirt_xml_disk_source_seclabel (guestfs_h *g, const struct
backend_libvirt_data *data, xmlTextWriterPtr xo);
-static int construct_libvirt_xml_appliance (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
+static int
+construct_libvirt_xml_domain (guestfs_h *g,
+ const struct libvirt_xml_params *params,
+ xmlTextWriterPtr xo);
+static int
+construct_libvirt_xml_name (guestfs_h *g,
+ const struct libvirt_xml_params *params,
+ xmlTextWriterPtr xo);
+static int
+construct_libvirt_xml_cpu (guestfs_h *g,
+ const struct libvirt_xml_params *params,
+ xmlTextWriterPtr xo);
+static int
+construct_libvirt_xml_boot (guestfs_h *g,
+ const struct libvirt_xml_params *params,
+ xmlTextWriterPtr xo);
+static int
+construct_libvirt_xml_seclabel (guestfs_h *g,
+ const struct libvirt_xml_params *params,
+ xmlTextWriterPtr xo);
+static int
+construct_libvirt_xml_lifecycle (guestfs_h *g,
+ const struct libvirt_xml_params *params,
+ xmlTextWriterPtr xo);
+static int
+construct_libvirt_xml_devices (guestfs_h *g,
+ const struct libvirt_xml_params *params,
+ xmlTextWriterPtr xo);
+static int
+construct_libvirt_xml_qemu_cmdline (guestfs_h *g,
+ const struct libvirt_xml_params *params,
+ xmlTextWriterPtr xo);
+static int construct_libvirt_xml_disk (
+ guestfs_h *g, const struct backend_libvirt_data *data,
+ xmlTextWriterPtr xo, struct drive *drv, size_t drv_index);
+static int construct_libvirt_xml_disk_target (guestfs_h *g,
+ xmlTextWriterPtr xo,
+ size_t drv_index);
+static int construct_libvirt_xml_disk_driver_qemu (
+ guestfs_h *g, const struct backend_libvirt_data *data,
+ struct drive *drv, xmlTextWriterPtr xo, const char *format,
+ const char *cachemode, enum discard discard, bool copyonread);
+static int construct_libvirt_xml_disk_address (guestfs_h *g,
+ xmlTextWriterPtr xo,
+ size_t drv_index);
+static int
+construct_libvirt_xml_disk_source_hosts (guestfs_h *g, xmlTextWriterPtr xo,
+ const struct drive_source *src);
+static int construct_libvirt_xml_disk_source_seclabel (
+ guestfs_h *g, const struct backend_libvirt_data *data,
+ xmlTextWriterPtr xo);
+static int
+construct_libvirt_xml_appliance (guestfs_h *g,
+ const struct libvirt_xml_params *params,
+ xmlTextWriterPtr xo);
/* These macros make it easier to write XML, but they also make a lot
* of assumptions:
@@ -884,71 +945,78 @@ static int construct_libvirt_xml_appliance (guestfs_h *g, const
struct libvirt_x
*/
/* <element */
-#define start_element(element) \
- if (xmlTextWriterStartElement (xo, BAD_CAST (element)) == -1) { \
- xml_error ("xmlTextWriterStartElement"); \
- return -1; \
- } \
+#define start_element(element) \
+ if (xmlTextWriterStartElement (xo, BAD_CAST (element)) == -1) { \
+ xml_error ("xmlTextWriterStartElement"); \
+ return -1; \
+ } \
do
/* finish current </element> */
-#define end_element() \
- while (0); \
- do { \
- if (xmlTextWriterEndElement (xo) == -1) { \
- xml_error ("xmlTextWriterEndElement"); \
- return -1; \
- } \
+#define end_element() \
+ while (0) \
+ ; \
+ do { \
+ if (xmlTextWriterEndElement (xo) == -1) { \
+ xml_error ("xmlTextWriterEndElement"); \
+ return -1; \
+ } \
} while (0)
/* <element/> */
-#define empty_element(element) \
- do { start_element(element) {} end_element (); } while (0)
+#define empty_element(element) \
+ do { \
+ start_element (element) {} \
+ end_element (); \
+ } while (0)
/* key=value attribute of the current element. */
-#define attribute(key,value) \
- if (xmlTextWriterWriteAttribute (xo, BAD_CAST (key), BAD_CAST (value)) == -1){ \
- xml_error ("xmlTextWriterWriteAttribute"); \
- return -1; \
+#define attribute(key, value) \
+ if (xmlTextWriterWriteAttribute (xo, BAD_CAST (key), \
+ BAD_CAST (value)) == -1) { \
+ xml_error ("xmlTextWriterWriteAttribute"); \
+ return -1; \
}
/* key=value, but value is a printf-style format string. */
-#define attribute_format(key,fs,...) \
- if (xmlTextWriterWriteFormatAttribute (xo, BAD_CAST (key), \
- fs, ##__VA_ARGS__) == -1) { \
- xml_error ("xmlTextWriterWriteFormatAttribute"); \
- return -1; \
+#define attribute_format(key, fs, ...) \
+ if (xmlTextWriterWriteFormatAttribute (xo, BAD_CAST (key), fs, \
+ ##__VA_ARGS__) == -1) { \
+ xml_error ("xmlTextWriterWriteFormatAttribute"); \
+ return -1; \
}
/* attribute with namespace. */
-#define attribute_ns(prefix,key,namespace_uri,value) \
- if (xmlTextWriterWriteAttributeNS (xo, BAD_CAST (prefix), \
- BAD_CAST (key), BAD_CAST (namespace_uri), \
- BAD_CAST (value)) == -1) { \
- xml_error ("xmlTextWriterWriteAttribute"); \
- return -1; \
+#define attribute_ns(prefix, key, namespace_uri, value) \
+ if (xmlTextWriterWriteAttributeNS ( \
+ xo, BAD_CAST (prefix), BAD_CAST (key), BAD_CAST (namespace_uri), \
+ BAD_CAST (value)) == -1) { \
+ xml_error ("xmlTextWriterWriteAttribute"); \
+ return -1; \
}
/* A string, eg. within an element. */
-#define string(str) \
- if (xmlTextWriterWriteString (xo, BAD_CAST (str)) == -1) { \
- xml_error ("xmlTextWriterWriteString"); \
- return -1; \
+#define string(str) \
+ if (xmlTextWriterWriteString (xo, BAD_CAST (str)) == -1) { \
+ xml_error ("xmlTextWriterWriteString"); \
+ return -1; \
}
/* A string, using printf-style formatting. */
-#define string_format(fs,...) \
- if (xmlTextWriterWriteFormatString (xo, fs, ##__VA_ARGS__) == -1) { \
- xml_error ("xmlTextWriterWriteFormatString"); \
- return -1; \
+#define string_format(fs, ...) \
+ if (xmlTextWriterWriteFormatString (xo, fs, ##__VA_ARGS__) == -1) { \
+ xml_error ("xmlTextWriterWriteFormatString"); \
+ return -1; \
}
-#define xml_error(fn) \
- perrorf (g, _("%s:%d: error constructing libvirt XML near call to
\"%s\""), \
- __FILE__, __LINE__, (fn));
+#define xml_error(fn) \
+ perrorf ( \
+ g, _("%s:%d: error constructing libvirt XML near call to
\"%s\""), \
+ __FILE__, __LINE__, (fn));
static xmlChar *
-construct_libvirt_xml (guestfs_h *g, const struct libvirt_xml_params *params)
+construct_libvirt_xml (guestfs_h *g,
+ const struct libvirt_xml_params *params)
{
xmlChar *ret = NULL;
CLEANUP_XMLBUFFERFREE xmlBufferPtr xb = NULL;
@@ -1004,7 +1072,8 @@ construct_libvirt_xml_domain (guestfs_h *g,
const struct libvirt_xml_params *params,
xmlTextWriterPtr xo)
{
- start_element ("domain") {
+ start_element ("domain")
+ {
attribute ("type", params->data->is_kvm ? "kvm" :
"qemu");
attribute_ns ("xmlns", "qemu", NULL,
"http://libvirt.org/schemas/domain/qemu/1.0");
@@ -1023,8 +1092,8 @@ construct_libvirt_xml_domain (guestfs_h *g,
return -1;
if (construct_libvirt_xml_qemu_cmdline (g, params, xo) == -1)
return -1;
-
- } end_element ();
+ }
+ end_element ();
return 0;
}
@@ -1034,9 +1103,8 @@ construct_libvirt_xml_name (guestfs_h *g,
const struct libvirt_xml_params *params,
xmlTextWriterPtr xo)
{
- start_element ("name") {
- string (params->data->name);
- } end_element ();
+ start_element ("name") { string (params->data->name); }
+ end_element ();
return 0;
}
@@ -1049,69 +1117,79 @@ construct_libvirt_xml_cpu (guestfs_h *g,
{
const char *cpu_model;
- start_element ("memory") {
+ start_element ("memory")
+ {
attribute ("unit", "MiB");
string_format ("%d", g->memsize);
- } end_element ();
+ }
+ end_element ();
- start_element ("currentMemory") {
+ start_element ("currentMemory")
+ {
attribute ("unit", "MiB");
string_format ("%d", g->memsize);
- } end_element ();
+ }
+ end_element ();
cpu_model = guestfs_int_get_cpu_model (params->data->is_kvm);
if (cpu_model) {
- start_element ("cpu") {
+ start_element ("cpu")
+ {
if (STREQ (cpu_model, "host")) {
attribute ("mode", "host-passthrough");
- start_element ("model") {
- attribute ("fallback", "allow");
- } end_element ();
- }
- else {
- /* XXX This does not work on aarch64, see:
- *
https://www.redhat.com/archives/libvirt-users/2014-August/msg00043.html
- *
https://bugzilla.redhat.com/show_bug.cgi?id=1184411
- * Instead we hack around it using <qemu:commandline> below.
- */
+ start_element ("model") { attribute ("fallback",
"allow"); }
+ end_element ();
+ } else {
+/* XXX This does not work on aarch64, see:
+ *
https://www.redhat.com/archives/libvirt-users/2014-August/msg00043.html
+ *
https://bugzilla.redhat.com/show_bug.cgi?id=1184411
+ * Instead we hack around it using <qemu:commandline> below.
+ */
#ifndef __aarch64__
- start_element ("model") {
- string (cpu_model);
- } end_element ();
+ start_element ("model") { string (cpu_model); }
+ end_element ();
#endif
}
- } end_element ();
+ }
+ end_element ();
}
- start_element ("vcpu") {
- string_format ("%d", g->smp);
- } end_element ();
+ start_element ("vcpu") { string_format ("%d", g->smp); }
+ end_element ();
- start_element ("clock") {
+ start_element ("clock")
+ {
attribute ("offset", "utc");
/* These are recommended settings, see RHBZ#1053847. */
- start_element ("timer") {
+ start_element ("timer")
+ {
attribute ("name", "rtc");
attribute ("tickpolicy", "catchup");
- } end_element ();
- start_element ("timer") {
+ }
+ end_element ();
+ start_element ("timer")
+ {
attribute ("name", "pit");
attribute ("tickpolicy", "delay");
- } end_element ();
+ }
+ end_element ();
- /* libvirt has a bug (RHBZ#1066145) where it adds the -no-hpet
- * flag on ARM & ppc64 (and possibly any architecture).
- * Since hpet is specific to x86 & x86_64 anyway, just add it only
- * for those architectures.
- */
+/* libvirt has a bug (RHBZ#1066145) where it adds the -no-hpet
+ * flag on ARM & ppc64 (and possibly any architecture).
+ * Since hpet is specific to x86 & x86_64 anyway, just add it only
+ * for those architectures.
+ */
#if defined(__i386__) || defined(__x86_64__)
- start_element ("timer") {
+ start_element ("timer")
+ {
attribute ("name", "hpet");
attribute ("present", "no");
- } end_element ();
+ }
+ end_element ();
#endif
- } end_element ();
+ }
+ end_element ();
return 0;
}
@@ -1129,51 +1207,52 @@ construct_libvirt_xml_boot (guestfs_h *g,
flags = 0;
if (!params->data->is_kvm)
flags |= APPLIANCE_COMMAND_LINE_IS_TCG;
- cmdline = guestfs_int_appliance_command_line (g, params->appliance_dev, flags);
+ cmdline =
+ guestfs_int_appliance_command_line (g, params->appliance_dev, flags);
- start_element ("os") {
- start_element ("type") {
+ start_element ("os")
+ {
+ start_element ("type")
+ {
#ifdef MACHINE_TYPE
attribute ("machine", MACHINE_TYPE);
#endif
string ("hvm");
- } end_element ();
+ }
+ end_element ();
if (params->data->uefi_code) {
- start_element ("loader") {
- attribute ("readonly", "yes");
- attribute ("type", "pflash");
- string (params->data->uefi_code);
- } end_element ();
+ start_element ("loader")
+ {
+ attribute ("readonly", "yes");
+ attribute ("type", "pflash");
+ string (params->data->uefi_code);
+ }
+ end_element ();
if (params->data->uefi_vars) {
- start_element ("nvram") {
- string (params->data->uefi_vars);
- } end_element ();
+ start_element ("nvram") { string (params->data->uefi_vars); }
+ end_element ();
}
}
- start_element ("kernel") {
- string (params->kernel);
- } end_element ();
+ start_element ("kernel") { string (params->kernel); }
+ end_element ();
- start_element ("initrd") {
- string (params->initrd);
- } end_element ();
+ start_element ("initrd") { string (params->initrd); }
+ end_element ();
- start_element ("cmdline") {
- string (cmdline);
- } end_element ();
+ start_element ("cmdline") { string (cmdline); }
+ end_element ();
#if defined(__i386__) || defined(__x86_64__)
if (g->verbose) {
- start_element ("bios") {
- attribute ("useserial", "yes");
- } end_element ();
+ start_element ("bios") { attribute ("useserial",
"yes"); }
+ end_element ();
}
#endif
-
- } end_element ();
+ }
+ end_element ();
return 0;
}
@@ -1185,26 +1264,28 @@ construct_libvirt_xml_seclabel (guestfs_h *g,
{
if (!params->enable_svirt) {
/* This disables SELinux/sVirt confinement. */
- start_element ("seclabel") {
- attribute ("type", "none");
- } end_element ();
- }
- else if (params->data->selinux_label &&
params->data->selinux_imagelabel) {
+ start_element ("seclabel") { attribute ("type",
"none"); }
+ end_element ();
+ } else if (params->data->selinux_label &&
+ params->data->selinux_imagelabel) {
/* Enable sVirt and pass a custom <seclabel/> inherited from the
* original libvirt domain (when guestfs_add_domain was called).
*
https://bugzilla.redhat.com/show_bug.cgi?id=912499#c7
*/
- start_element ("seclabel") {
+ start_element ("seclabel")
+ {
attribute ("type", "static");
attribute ("model", "selinux");
attribute ("relabel", "yes");
- start_element ("label") {
- string (params->data->selinux_label);
- } end_element ();
- start_element ("imagelabel") {
+ start_element ("label") { string (params->data->selinux_label); }
+ end_element ();
+ start_element ("imagelabel")
+ {
string (params->data->selinux_imagelabel);
- } end_element ();
- } end_element ();
+ }
+ end_element ();
+ }
+ end_element ();
}
return 0;
@@ -1216,9 +1297,8 @@ construct_libvirt_xml_lifecycle (guestfs_h *g,
const struct libvirt_xml_params *params,
xmlTextWriterPtr xo)
{
- start_element ("on_reboot") {
- string ("destroy");
- } end_element ();
+ start_element ("on_reboot") { string ("destroy"); }
+ end_element ();
return 0;
}
@@ -1232,50 +1312,56 @@ construct_libvirt_xml_devices (guestfs_h *g,
struct drive *drv;
size_t i;
- start_element ("devices") {
+ start_element ("devices")
+ {
/* Path to hypervisor. Only write this if the user has changed the
* default, otherwise allow libvirt to choose the best one.
*/
if (is_custom_hv (g)) {
- start_element ("emulator") {
- string (g->hv);
- } end_element ();
+ start_element ("emulator") { string (g->hv); }
+ end_element ();
}
#if defined(__arm__)
/* Hopefully temporary hack to make ARM work (otherwise libvirt
* chooses to run /usr/bin/qemu-kvm).
*/
else {
- start_element ("emulator") {
- string (QEMU);
- } end_element ();
+ start_element ("emulator") { string (QEMU); }
+ end_element ();
}
#endif
/* Add a random number generator (backend for virtio-rng). */
- start_element ("rng") {
+ start_element ("rng")
+ {
attribute ("model", "virtio");
- start_element ("backend") {
+ start_element ("backend")
+ {
attribute ("model", "random");
/* It'd be nice to do this, but libvirt says:
* file '/dev/urandom' is not a supported random source
* Let libvirt pick /dev/random automatically instead.
* See also:
https://bugzilla.redhat.com/show_bug.cgi?id=1074464
*/
- //string ("/dev/urandom");
- } end_element ();
- } end_element ();
+ // string ("/dev/urandom");
+ }
+ end_element ();
+ }
+ end_element ();
/* virtio-scsi controller. */
- start_element ("controller") {
+ start_element ("controller")
+ {
attribute ("type", "scsi");
attribute ("index", "0");
attribute ("model", "virtio-scsi");
- } end_element ();
+ }
+ end_element ();
/* Disks. */
- ITER_DRIVES (g, i, drv) {
+ ITER_DRIVES (g, i, drv)
+ {
if (construct_libvirt_xml_disk (g, params->data, xo, drv, i) == -1)
return -1;
}
@@ -1287,44 +1373,56 @@ construct_libvirt_xml_devices (guestfs_h *g,
}
/* Console. */
- start_element ("serial") {
+ start_element ("serial")
+ {
attribute ("type", "unix");
- start_element ("source") {
+ start_element ("source")
+ {
attribute ("mode", "connect");
attribute ("path", params->data->console_path);
- } end_element ();
- start_element ("target") {
- attribute ("port", "0");
- } end_element ();
- } end_element ();
+ }
+ end_element ();
+ start_element ("target") { attribute ("port", "0");
}
+ end_element ();
+ }
+ end_element ();
/* Virtio-serial for guestfsd communication. */
- start_element ("channel") {
+ start_element ("channel")
+ {
attribute ("type", "unix");
- start_element ("source") {
+ start_element ("source")
+ {
attribute ("mode", "connect");
attribute ("path", params->data->guestfsd_path);
- } end_element ();
- start_element ("target") {
+ }
+ end_element ();
+ start_element ("target")
+ {
attribute ("type", "virtio");
attribute ("name", "org.libguestfs.channel.0");
- } end_element ();
- } end_element ();
+ }
+ end_element ();
+ }
+ end_element ();
/* Connect to libvirt bridge (see: RHBZ#1148012). */
if (g->enable_network) {
- start_element ("interface") {
+ start_element ("interface")
+ {
attribute ("type", "bridge");
- start_element ("source") {
+ start_element ("source")
+ {
attribute ("bridge", params->data->network_bridge);
- } end_element ();
- start_element ("model") {
- attribute ("type", "virtio");
- } end_element ();
- } end_element ();
+ }
+ end_element ();
+ start_element ("model") { attribute ("type",
"virtio"); }
+ end_element ();
+ }
+ end_element ();
}
-
- } end_element (); /* </devices> */
+ }
+ end_element (); /* </devices> */
return 0;
}
@@ -1332,8 +1430,8 @@ construct_libvirt_xml_devices (guestfs_h *g,
static int
construct_libvirt_xml_disk (guestfs_h *g,
const struct backend_libvirt_data *data,
- xmlTextWriterPtr xo,
- struct drive *drv, size_t drv_index)
+ xmlTextWriterPtr xo, struct drive *drv,
+ size_t drv_index)
{
const char *protocol_str;
CLEANUP_FREE char *path = NULL;
@@ -1344,11 +1442,13 @@ construct_libvirt_xml_disk (guestfs_h *g,
/* XXX We probably could support this if we thought about it some more. */
if (drv->iface) {
- error (g, _("'iface' parameter is not supported by the libvirt
backend"));
+ error (g,
+ _("'iface' parameter is not supported by the libvirt
backend"));
return -1;
}
- start_element ("disk") {
+ start_element ("disk")
+ {
attribute ("device", "disk");
if (drv->overlay) {
@@ -1357,22 +1457,22 @@ construct_libvirt_xml_disk (guestfs_h *g,
*/
attribute ("type", "file");
- start_element ("source") {
+ start_element ("source")
+ {
attribute ("file", drv->overlay);
if (construct_libvirt_xml_disk_source_seclabel (g, data, xo) == -1)
return -1;
- } end_element ();
+ }
+ end_element ();
if (construct_libvirt_xml_disk_target (g, xo, drv_index) == -1)
return -1;
- if (construct_libvirt_xml_disk_driver_qemu (g, data, drv,
- xo, "qcow2",
"unsafe",
- discard_disable, false)
- == -1)
+ if (construct_libvirt_xml_disk_driver_qemu (g, data, drv, xo, "qcow2",
+ "unsafe", discard_disable,
+ false) == -1)
return -1;
- }
- else {
+ } else {
/* Not an overlay, a writable disk. */
switch (drv->src.protocol) {
@@ -1390,90 +1490,110 @@ construct_libvirt_xml_disk (guestfs_h *g,
if (!is_host_device) {
path = realpath (drv->src.u.path, NULL);
if (path == NULL) {
- perrorf (g, _("realpath: could not convert '%s' to absolute
path"),
- drv->src.u.path);
+ perrorf (
+ g, _("realpath: could not convert '%s' to absolute
path"),
+ drv->src.u.path);
return -1;
}
attribute ("type", "file");
- start_element ("source") {
+ start_element ("source")
+ {
attribute ("file", path);
- if (construct_libvirt_xml_disk_source_seclabel (g, data, xo) == -1)
+ if (construct_libvirt_xml_disk_source_seclabel (g, data, xo) ==
+ -1)
return -1;
- } end_element ();
- }
- else {
+ }
+ end_element ();
+ } else {
attribute ("type", "block");
- start_element ("source") {
+ start_element ("source")
+ {
attribute ("dev", drv->src.u.path);
- if (construct_libvirt_xml_disk_source_seclabel (g, data, xo) == -1)
+ if (construct_libvirt_xml_disk_source_seclabel (g, data, xo) ==
+ -1)
return -1;
- } end_element ();
+ }
+ end_element ();
}
break;
- /* For network protocols:
- * <disk type=network device=disk>
- * <source protocol=[protocol] [name=exportname]>
- * and then zero or more of:
- * <host name='example.com' port='10809'/>
- * or:
- * <host transport='unix' socket='/path/to/socket'/>
- */
+ /* For network protocols:
+ * <disk type=network device=disk>
+ * <source protocol=[protocol] [name=exportname]>
+ * and then zero or more of:
+ * <host name='example.com' port='10809'/>
+ * or:
+ * <host transport='unix' socket='/path/to/socket'/>
+ */
case drive_protocol_gluster:
- protocol_str = "gluster"; goto network_protocols;
+ protocol_str = "gluster";
+ goto network_protocols;
case drive_protocol_iscsi:
- protocol_str = "iscsi"; goto network_protocols;
+ protocol_str = "iscsi";
+ goto network_protocols;
case drive_protocol_nbd:
- protocol_str = "nbd"; goto network_protocols;
+ protocol_str = "nbd";
+ goto network_protocols;
case drive_protocol_rbd:
- protocol_str = "rbd"; goto network_protocols;
+ protocol_str = "rbd";
+ goto network_protocols;
case drive_protocol_sheepdog:
- protocol_str = "sheepdog"; goto network_protocols;
+ protocol_str = "sheepdog";
+ goto network_protocols;
case drive_protocol_ssh:
protocol_str = "ssh";
- /*FALLTHROUGH*/
+ /*FALLTHROUGH*/
network_protocols:
attribute ("type", "network");
- start_element ("source") {
+ start_element ("source")
+ {
attribute ("protocol", protocol_str);
if (STRNEQ (drv->src.u.exportname, ""))
attribute ("name", drv->src.u.exportname);
- if (construct_libvirt_xml_disk_source_hosts (g, xo,
- &drv->src) == -1)
+ if (construct_libvirt_xml_disk_source_hosts (g, xo, &drv->src) ==
+ -1)
return -1;
- if (construct_libvirt_xml_disk_source_seclabel (g, data, xo) == -1)
+ if (construct_libvirt_xml_disk_source_seclabel (g, data, xo) ==
+ -1)
return -1;
- } end_element ();
+ }
+ end_element ();
if (drv->src.username != NULL) {
- start_element ("auth") {
+ start_element ("auth")
+ {
attribute ("username", drv->src.username);
r = find_secret (g, data, drv, &type, &uuid);
if (r == -1)
return -1;
if (r == 1) {
- start_element ("secret") {
+ start_element ("secret")
+ {
attribute ("type", type);
attribute ("uuid", uuid);
- } end_element ();
+ }
+ end_element ();
}
- } end_element ();
+ }
+ end_element ();
}
break;
- /* libvirt doesn't support the qemu curl driver yet. Give a
- * reasonable error message instead of trying and failing.
- */
+ /* libvirt doesn't support the qemu curl driver yet. Give a
+ * reasonable error message instead of trying and failing.
+ */
case drive_protocol_ftp:
case drive_protocol_ftps:
case drive_protocol_http:
case drive_protocol_https:
case drive_protocol_tftp:
- error (g, _("libvirt does not support the qemu curl driver protocols (ftp,
http, etc.); try setting LIBGUESTFS_BACKEND=direct"));
+ error (g, _("libvirt does not support the qemu curl driver "
+ "protocols (ftp, http, etc.); try setting "
+ "LIBGUESTFS_BACKEND=direct"));
return -1;
}
@@ -1485,12 +1605,15 @@ construct_libvirt_xml_disk (guestfs_h *g,
else if (drv->src.protocol == drive_protocol_file) {
/* libvirt has disabled the feature of detecting the disk format,
* unless the administrator sets allow_disk_format_probing=1 in
- * qemu.conf. There is no way to detect if this option is set, so we
+ * qemu.conf. There is no way to detect if this option is set, so
+ * we
* have to do format detection here using qemu-img and pass that to
* libvirt.
*
- * This is still a security issue, so in most cases it is recommended
- * the users pass the format to libguestfs which will faithfully pass
+ * This is still a security issue, so in most cases it is
+ * recommended
+ * the users pass the format to libguestfs which will faithfully
+ * pass
* that to libvirt and this function won't be used.
*/
format = guestfs_disk_format (g, drv->src.u.path);
@@ -1499,35 +1622,37 @@ construct_libvirt_xml_disk (guestfs_h *g,
if (STREQ (format, "unknown")) {
error (g, _("could not auto-detect the format.\n"
- "If the format is known, pass the format to libguestfs, eg.
using the\n"
- "'--format' option, or via the optional
'format' argument to 'add-drive'."));
+ "If the format is known, pass the format to "
+ "libguestfs, eg. using the\n"
+ "'--format' option, or via the optional
'format' "
+ "argument to 'add-drive'."));
return -1;
}
- }
- else {
- error (g, _("could not auto-detect the format when using a non-file
protocol.\n"
- "If the format is known, pass the format to libguestfs, eg.
using the\n"
- "'--format' option, or via the optional 'format'
argument to 'add-drive'."));
+ } else {
+ error (g, _("could not auto-detect the format when using a "
+ "non-file protocol.\n"
+ "If the format is known, pass the format to "
+ "libguestfs, eg. using the\n"
+ "'--format' option, or via the optional 'format'
"
+ "argument to 'add-drive'."));
return -1;
}
- if (construct_libvirt_xml_disk_driver_qemu (g, data, drv, xo, format,
- drv->cachemode ? :
"writeback",
- drv->discard, false)
- == -1)
+ if (construct_libvirt_xml_disk_driver_qemu (
+ g, data, drv, xo, format, drv->cachemode ?: "writeback",
+ drv->discard, false) == -1)
return -1;
}
if (drv->disk_label) {
- start_element ("serial") {
- string (drv->disk_label);
- } end_element ();
+ start_element ("serial") { string (drv->disk_label); }
+ end_element ();
}
if (construct_libvirt_xml_disk_address (g, xo, drv_index) == -1)
return -1;
-
- } end_element (); /* </disk> */
+ }
+ end_element (); /* </disk> */
return 0;
}
@@ -1540,23 +1665,21 @@ construct_libvirt_xml_disk_target (guestfs_h *g, xmlTextWriterPtr
xo,
guestfs_int_drive_name (drv_index, &drive_name[2]);
- start_element ("target") {
+ start_element ("target")
+ {
attribute ("dev", drive_name);
attribute ("bus", "scsi");
- } end_element ();
+ }
+ end_element ();
return 0;
}
static int
-construct_libvirt_xml_disk_driver_qemu (guestfs_h *g,
- const struct backend_libvirt_data *data,
- struct drive *drv,
- xmlTextWriterPtr xo,
- const char *format,
- const char *cachemode,
- enum discard discard,
- bool copyonread)
+construct_libvirt_xml_disk_driver_qemu (
+ guestfs_h *g, const struct backend_libvirt_data *data,
+ struct drive *drv, xmlTextWriterPtr xo, const char *format,
+ const char *cachemode, enum discard discard, bool copyonread)
{
bool discard_unmap = false;
@@ -1574,7 +1697,7 @@ construct_libvirt_xml_disk_driver_qemu (guestfs_h *g,
case discard_enable:
if (!guestfs_int_discard_possible (g, drv, data->qemu_version))
return -1;
- /*FALLTHROUGH*/
+ /*FALLTHROUGH*/
case discard_besteffort:
/* I believe from reading the code that this is always safe as
* long as qemu >= 1.5.
@@ -1584,7 +1707,8 @@ construct_libvirt_xml_disk_driver_qemu (guestfs_h *g,
break;
}
- start_element ("driver") {
+ start_element ("driver")
+ {
attribute ("name", "qemu");
attribute ("type", format);
attribute ("cache", cachemode);
@@ -1592,7 +1716,8 @@ construct_libvirt_xml_disk_driver_qemu (guestfs_h *g,
attribute ("discard", "unmap");
if (copyonread)
attribute ("copy_on_read", "on");
- } end_element ();
+ }
+ end_element ();
return 0;
}
@@ -1601,26 +1726,28 @@ static int
construct_libvirt_xml_disk_address (guestfs_h *g, xmlTextWriterPtr xo,
size_t drv_index)
{
- start_element ("address") {
+ start_element ("address")
+ {
attribute ("type", "drive");
attribute ("controller", "0");
attribute ("bus", "0");
attribute_format ("target", "%zu", drv_index);
attribute ("unit", "0");
- } end_element ();
+ }
+ end_element ();
return 0;
}
static int
-construct_libvirt_xml_disk_source_hosts (guestfs_h *g,
- xmlTextWriterPtr xo,
+construct_libvirt_xml_disk_source_hosts (guestfs_h *g, xmlTextWriterPtr xo,
const struct drive_source *src)
{
size_t i;
for (i = 0; i < src->nr_servers; ++i) {
- start_element ("host") {
+ start_element ("host")
+ {
switch (src->servers[i].transport) {
case drive_transport_none:
case drive_transport_tcp: {
@@ -1636,23 +1763,25 @@ construct_libvirt_xml_disk_source_hosts (guestfs_h *g,
break;
}
}
-
- } end_element ();
+ }
+ end_element ();
}
return 0;
}
static int
-construct_libvirt_xml_disk_source_seclabel (guestfs_h *g,
- const struct backend_libvirt_data *data,
- xmlTextWriterPtr xo)
+construct_libvirt_xml_disk_source_seclabel (
+ guestfs_h *g, const struct backend_libvirt_data *data,
+ xmlTextWriterPtr xo)
{
if (data->selinux_norelabel_disks) {
- start_element ("seclabel") {
+ start_element ("seclabel")
+ {
attribute ("model", "selinux");
attribute ("relabel", "no");
- } end_element ();
+ }
+ end_element ();
}
return 0;
@@ -1663,31 +1792,36 @@ construct_libvirt_xml_appliance (guestfs_h *g,
const struct libvirt_xml_params *params,
xmlTextWriterPtr xo)
{
- start_element ("disk") {
+ start_element ("disk")
+ {
attribute ("type", "file");
attribute ("device", "disk");
- start_element ("source") {
+ start_element ("source")
+ {
attribute ("file", params->appliance_overlay);
- } end_element ();
+ }
+ end_element ();
- start_element ("target") {
+ start_element ("target")
+ {
attribute ("dev", ¶ms->appliance_dev[5]);
attribute ("bus", "scsi");
- } end_element ();
+ }
+ end_element ();
- if (construct_libvirt_xml_disk_driver_qemu (g, params->data, NULL, xo,
- "qcow2", "unsafe",
- discard_disable, false) == -1)
+ if (construct_libvirt_xml_disk_driver_qemu (
+ g, params->data, NULL, xo, "qcow2", "unsafe",
discard_disable,
+ false) == -1)
return -1;
- if (construct_libvirt_xml_disk_address (g, xo, params->appliance_index)
- == -1)
+ if (construct_libvirt_xml_disk_address (g, xo,
+ params->appliance_index) == -1)
return -1;
empty_element ("shareable");
-
- } end_element ();
+ }
+ end_element ();
return 0;
}
@@ -1700,7 +1834,8 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g,
struct hv_param *hp;
CLEANUP_FREE char *tmpdir = NULL;
- start_element ("qemu:commandline") {
+ start_element ("qemu:commandline")
+ {
/* We need to ensure the snapshots are created in the persistent
* temporary directory (RHBZ#856619). We must set one, because
@@ -1708,21 +1843,21 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g,
*/
tmpdir = guestfs_get_cachedir (g);
- start_element ("qemu:env") {
+ start_element ("qemu:env")
+ {
attribute ("name", "TMPDIR");
attribute ("value", tmpdir);
- } end_element ();
+ }
+ end_element ();
/* The qemu command line arguments requested by the caller. */
for (hp = g->hv_params; hp; hp = hp->next) {
- start_element ("qemu:arg") {
- attribute ("value", hp->hv_param);
- } end_element ();
+ start_element ("qemu:arg") { attribute ("value",
hp->hv_param); }
+ end_element ();
if (hp->hv_value) {
- start_element ("qemu:arg") {
- attribute ("value", hp->hv_value);
- } end_element ();
+ start_element ("qemu:arg") { attribute ("value",
hp->hv_value); }
+ end_element ();
}
}
@@ -1730,18 +1865,17 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g,
/* This is a temporary hack until RHBZ#1184411 is resolved.
* See comments above about cpu model and aarch64.
*/
- const char *cpu_model = guestfs_int_get_cpu_model (params->data->is_kvm);
+ const char *cpu_model =
+ guestfs_int_get_cpu_model (params->data->is_kvm);
if (STRNEQ (cpu_model, "host")) {
- start_element ("qemu:arg") {
- attribute ("value", "-cpu");
- } end_element ();
- start_element ("qemu:arg") {
- attribute ("value", cpu_model);
- } end_element ();
+ start_element ("qemu:arg") { attribute ("value",
"-cpu"); }
+ end_element ();
+ start_element ("qemu:arg") { attribute ("value", cpu_model); }
+ end_element ();
}
#endif
-
- } end_element (); /* </qemu:commandline> */
+ }
+ end_element (); /* </qemu:commandline> */
return 0;
}
@@ -1749,17 +1883,20 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g,
static int
construct_libvirt_xml_secret (guestfs_h *g,
const struct backend_libvirt_data *data,
- const struct drive *drv,
- xmlTextWriterPtr xo)
+ const struct drive *drv, xmlTextWriterPtr xo)
{
- start_element ("secret") {
+ start_element ("secret")
+ {
attribute ("ephemeral", "yes");
attribute ("private", "yes");
- start_element ("description") {
- string_format ("guestfs secret associated with %s %s",
- data->name, drv->src.u.path);
- } end_element ();
- } end_element ();
+ start_element ("description")
+ {
+ string_format ("guestfs secret associated with %s %s", data->name,
+ drv->src.u.path);
+ }
+ end_element ();
+ }
+ end_element ();
return 0;
}
@@ -1833,7 +1970,7 @@ add_secret (guestfs_h *g, virConnectPtr conn,
debug (g, "libvirt secret XML:\n%s", xml);
/* Pass the XML to libvirt. */
- secret_obj = virSecretDefineXML (conn, (const char *) xml, 0);
+ secret_obj = virSecretDefineXML (conn, (const char *)xml, 0);
if (secret_obj == NULL) {
libvirt_error (g, _("could not define libvirt secret"));
return -1;
@@ -1844,8 +1981,8 @@ add_secret (guestfs_h *g, virConnectPtr conn,
*/
switch (drv->src.protocol) {
case drive_protocol_rbd:
- if (!base64_decode_alloc (secret, strlen (secret),
- (char **) &secret_raw, &secret_raw_len)) {
+ if (!base64_decode_alloc (secret, strlen (secret), (char **)&secret_raw,
+ &secret_raw_len)) {
error (g, _("rbd protocol secret must be base64 encoded"));
return -1;
}
@@ -1865,7 +2002,7 @@ add_secret (guestfs_h *g, virConnectPtr conn,
case drive_protocol_sheepdog:
case drive_protocol_ssh:
case drive_protocol_tftp:
- secret_raw = (unsigned char *) safe_strdup (g, secret);
+ secret_raw = (unsigned char *)safe_strdup (g, secret);
secret_raw_len = strlen (secret);
}
@@ -1878,8 +2015,8 @@ add_secret (guestfs_h *g, virConnectPtr conn,
/* Get back the UUID and save it in the private data. */
i = data->nr_secrets;
data->nr_secrets++;
- data->secrets =
- safe_realloc (g, data->secrets, sizeof (struct secret) * data->nr_secrets);
+ data->secrets = safe_realloc (g, data->secrets,
+ sizeof (struct secret) * data->nr_secrets);
data->secrets[i].secret = safe_strdup (g, secret);
@@ -1892,8 +2029,8 @@ add_secret (guestfs_h *g, virConnectPtr conn,
}
static int
-have_secret (guestfs_h *g,
- const struct backend_libvirt_data *data, const struct drive *drv)
+have_secret (guestfs_h *g, const struct backend_libvirt_data *data,
+ const struct drive *drv)
{
size_t i;
@@ -1914,9 +2051,8 @@ have_secret (guestfs_h *g,
* secret was found and returned.
*/
static int
-find_secret (guestfs_h *g,
- const struct backend_libvirt_data *data, const struct drive *drv,
- const char **type, const char **uuid)
+find_secret (guestfs_h *g, const struct backend_libvirt_data *data,
+ const struct drive *drv, const char **type, const char **uuid)
{
size_t i;
@@ -1946,7 +2082,7 @@ find_secret (guestfs_h *g,
case drive_protocol_sheepdog:
case drive_protocol_ssh:
case drive_protocol_tftp:
- /* set to a default value above */ ;
+ /* set to a default value above */;
}
return 1;
@@ -1993,19 +2129,21 @@ check_bridge_exists (guestfs_h *g, const char *brname)
if (is_dir (path))
return 0;
- error (g,
- _("bridge '%s' not found. Try running:\n"
- "\n"
- " brctl show\n"
- "\n"
- "to get a list of bridges on the host, and then selecting the\n"
- "bridge you wish the appliance network to connect to using:\n"
- "\n"
- " export LIBGUESTFS_BACKEND_SETTINGS=network_bridge=<bridge
name>\n"
- "\n"
- "You may also need to allow the bridge in /etc/qemu/bridge.conf.\n"
- "For further information see guestfs(3)."),
- brname);
+ error (
+ g,
+ _("bridge '%s' not found. Try running:\n"
+ "\n"
+ " brctl show\n"
+ "\n"
+ "to get a list of bridges on the host, and then selecting the\n"
+ "bridge you wish the appliance network to connect to using:\n"
+ "\n"
+ " export LIBGUESTFS_BACKEND_SETTINGS=network_bridge=<bridge "
+ "name>\n"
+ "\n"
+ "You may also need to allow the bridge in /etc/qemu/bridge.conf.\n"
+ "For further information see guestfs(3)."),
+ brname);
return -1;
}
@@ -2015,7 +2153,8 @@ ignore_errors (void *ignore, virErrorPtr ignore2)
/* empty */
}
-static int destroy_domain (guestfs_h *g, virDomainPtr dom, int check_for_errors);
+static int destroy_domain (guestfs_h *g, virDomainPtr dom,
+ int check_for_errors);
static int
shutdown_libvirt (guestfs_h *g, void *datav, int check_for_errors)
@@ -2078,7 +2217,7 @@ destroy_domain (guestfs_h *g, virDomainPtr dom, int
check_for_errors)
const int flags = check_for_errors ? VIR_DOMAIN_DESTROY_GRACEFUL : 0;
virErrorPtr err;
- again:
+again:
debug (g, "calling virDomainDestroy flags=%s",
check_for_errors ? "VIR_DOMAIN_DESTROY_GRACEFUL" : "0");
if (virDomainDestroyFlags (dom, flags) == 0)
@@ -2117,15 +2256,14 @@ libvirt_error (guestfs_h *g, const char *fs, ...)
va_end (args);
if (len < 0)
- msg = safe_asprintf (g,
- _("%s: internal error forming error message"),
+ msg = safe_asprintf (g, _("%s: internal error forming error message"),
__func__);
/* In all recent libvirt, this retrieves the thread-local error. */
err = virGetLastError ();
if (err)
- error (g, "%s: %s [code=%d int1=%d]",
- msg, err->message, err->code, err->int1);
+ error (g, "%s: %s [code=%d int1=%d]", msg, err->message, err->code,
+ err->int1);
else
error (g, "%s", msg);
@@ -2150,15 +2288,14 @@ libvirt_debug (guestfs_h *g, const char *fs, ...)
va_end (args);
if (len < 0)
- msg = safe_asprintf (g,
- _("%s: internal error forming error message"),
+ msg = safe_asprintf (g, _("%s: internal error forming error message"),
__func__);
/* In all recent libvirt, this retrieves the thread-local error. */
err = virGetLastError ();
if (err)
- debug (g, "%s: %s [code=%d int1=%d]",
- msg, err->message, err->code, err->int1);
+ debug (g, "%s: %s [code=%d int1=%d]", msg, err->message, err->code,
+ err->int1);
else
debug (g, "%s", msg);
@@ -2168,12 +2305,14 @@ libvirt_debug (guestfs_h *g, const char *fs, ...)
#if HAVE_LIBSELINUX
static void
-selinux_warning (guestfs_h *g, const char *func,
- const char *selinux_op, const char *data)
+selinux_warning (guestfs_h *g, const char *func, const char *selinux_op,
+ const char *data)
{
- debug (g, "%s: %s failed: %s: %m"
- " [you can ignore this message if you are not using SELinux +
sVirt]",
- func, selinux_op, data ? data : "(none)");
+ debug (
+ g,
+ "%s: %s failed: %s: %m"
+ " [you can ignore this message if you are not using SELinux + sVirt]",
+ func, selinux_op, data ? data : "(none)");
}
#endif
@@ -2184,12 +2323,15 @@ max_disks_libvirt (guestfs_h *g, void *datav)
return 255;
}
-static xmlChar *construct_libvirt_xml_hot_add_disk (guestfs_h *g, const struct
backend_libvirt_data *data, struct drive *drv, size_t drv_index);
+static xmlChar *
+construct_libvirt_xml_hot_add_disk (guestfs_h *g,
+ const struct backend_libvirt_data *data,
+ struct drive *drv, size_t drv_index);
/* Hot-add a drive. Note the appliance is up when this is called. */
static int
-hot_add_drive_libvirt (guestfs_h *g, void *datav,
- struct drive *drv, size_t drv_index)
+hot_add_drive_libvirt (guestfs_h *g, void *datav, struct drive *drv,
+ size_t drv_index)
{
struct backend_libvirt_data *data = datav;
virConnectPtr conn = data->conn;
@@ -2212,7 +2354,7 @@ hot_add_drive_libvirt (guestfs_h *g, void *datav,
return -1;
/* Attach it. */
- if (virDomainAttachDeviceFlags (dom, (char *) xml,
+ if (virDomainAttachDeviceFlags (dom, (char *)xml,
VIR_DOMAIN_DEVICE_MODIFY_LIVE) == -1) {
libvirt_error (g, _("could not attach disk to libvirt domain"));
return -1;
@@ -2223,8 +2365,8 @@ hot_add_drive_libvirt (guestfs_h *g, void *datav,
/* Hot-remove a drive. Note the appliance is up when this is called. */
static int
-hot_remove_drive_libvirt (guestfs_h *g, void *datav,
- struct drive *drv, size_t drv_index)
+hot_remove_drive_libvirt (guestfs_h *g, void *datav, struct drive *drv,
+ size_t drv_index)
{
struct backend_libvirt_data *data = datav;
virConnectPtr conn = data->conn;
@@ -2243,7 +2385,7 @@ hot_remove_drive_libvirt (guestfs_h *g, void *datav,
return -1;
/* Detach it. */
- if (virDomainDetachDeviceFlags (dom, (char *) xml,
+ if (virDomainDetachDeviceFlags (dom, (char *)xml,
VIR_DOMAIN_DEVICE_MODIFY_LIVE) == -1) {
libvirt_error (g, _("could not detach disk from libvirt domain"));
return -1;
@@ -2255,8 +2397,7 @@ hot_remove_drive_libvirt (guestfs_h *g, void *datav,
static xmlChar *
construct_libvirt_xml_hot_add_disk (guestfs_h *g,
const struct backend_libvirt_data *data,
- struct drive *drv,
- size_t drv_index)
+ struct drive *drv, size_t drv_index)
{
xmlChar *ret = NULL;
CLEANUP_XMLBUFFERFREE xmlBufferPtr xb = NULL;
diff --git a/src/launch-uml.c b/src/launch-uml.c
index 318081c..80af3c1 100644
--- a/src/launch-uml.c
+++ b/src/launch-uml.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -37,12 +38,13 @@
#include "guestfs_protocol.h"
/* Per-handle data. */
-struct backend_uml_data {
- pid_t pid; /* vmlinux PID. */
- pid_t recoverypid; /* Recovery process PID. */
+struct backend_uml_data
+{
+ pid_t pid; /* vmlinux PID. */
+ pid_t recoverypid; /* Recovery process PID. */
#define UML_UMID_LEN 16
- char umid[UML_UMID_LEN+1]; /* umid=<...> unique ID. */
+ char umid[UML_UMID_LEN + 1]; /* umid=<...> unique ID. */
};
static void print_vmlinux_command_line (guestfs_h *g, char **argv);
@@ -101,7 +103,8 @@ uml_supported (guestfs_h *g)
return false;
}
- ITER_DRIVES (g, i, drv) {
+ ITER_DRIVES (g, i, drv)
+ {
if (drv->src.protocol != drive_protocol_file) {
error (g, _("uml backend does not support remote drives"));
return false;
@@ -111,19 +114,21 @@ uml_supported (guestfs_h *g)
return false;
}
if (drv->iface) {
- error (g,
- _("uml backend does not support drives with 'iface'
parameter"));
+ error (
+ g,
+ _("uml backend does not support drives with 'iface'
parameter"));
return false;
}
if (drv->disk_label) {
- error (g,
- _("uml backend does not support drives with 'label'
parameter"));
+ error (
+ g,
+ _("uml backend does not support drives with 'label'
parameter"));
return false;
}
/* Note that discard == "besteffort" is fine. */
if (drv->discard == discard_enable) {
- error (g,
- _("uml backend does not support drives with 'discard' parameter
set to 'enable'"));
+ error (g, _("uml backend does not support drives with 'discard'
"
+ "parameter set to 'enable'"));
return false;
}
}
@@ -180,14 +185,14 @@ launch_uml (guestfs_h *g, void *datav, const char *arg)
/* The socket that the daemon will talk to us on.
*/
- if (socketpair (AF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC, 0, dsv) == -1) {
+ if (socketpair (AF_LOCAL, SOCK_STREAM | SOCK_CLOEXEC, 0, dsv) == -1) {
perrorf (g, "socketpair");
goto cleanup0;
}
/* The console socket. */
if (!g->direct_mode) {
- if (socketpair (AF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC, 0, csv) == -1) {
+ if (socketpair (AF_LOCAL, SOCK_STREAM | SOCK_CLOEXEC, 0, csv) == -1) {
perrorf (g, "socketpair");
close (dsv[0]);
close (dsv[1]);
@@ -195,13 +200,12 @@ launch_uml (guestfs_h *g, void *datav, const char *arg)
}
}
- /* Construct the vmlinux command line. We have to do this before
- * forking, because after fork we are not allowed to use
- * non-signal-safe functions such as malloc.
- */
-#define ADD_CMDLINE(str) \
- guestfs_int_add_string (g, &cmdline, (str))
-#define ADD_CMDLINE_PRINTF(fs,...) \
+/* Construct the vmlinux command line. We have to do this before
+ * forking, because after fork we are not allowed to use
+ * non-signal-safe functions such as malloc.
+ */
+#define ADD_CMDLINE(str) guestfs_int_add_string (g, &cmdline, (str))
+#define ADD_CMDLINE_PRINTF(fs, ...) \
guestfs_int_add_sprintf (g, &cmdline, (fs), ##__VA_ARGS__)
ADD_CMDLINE (g->hv);
@@ -244,7 +248,8 @@ launch_uml (guestfs_h *g, void *datav, const char *arg)
ADD_CMDLINE (g->append);
/* Add the drives. */
- ITER_DRIVES (g, i, drv) {
+ ITER_DRIVES (g, i, drv)
+ {
if (!drv->overlay)
ADD_CMDLINE_PRINTF ("ubd%zu=%s", i, drv->src.u.path);
else
@@ -286,7 +291,7 @@ launch_uml (guestfs_h *g, void *datav, const char *arg)
goto cleanup0;
}
- if (r == 0) { /* Child (vmlinux). */
+ if (r == 0) { /* Child (vmlinux). */
/* Set up the daemon socket for the child. */
close (dsv[0]);
set_cloexec_flag (dsv[1], 0); /* so it doesn't close across exec */
@@ -410,7 +415,7 @@ launch_uml (guestfs_h *g, void *datav, const char *arg)
/* Close the other end of the console socketpair. */
close (csv[1]);
- console_sock = csv[0]; /* stdin of child */
+ console_sock = csv[0]; /* stdin of child */
csv[0] = -1;
}
@@ -424,7 +429,7 @@ launch_uml (guestfs_h *g, void *datav, const char *arg)
* virtio-serial and send the GUESTFS_LAUNCH_FLAG message.
*/
g->conn =
- guestfs_int_new_conn_socket_connected (g, daemon_sock, console_sock);
+ guestfs_int_new_conn_socket_connected (g, daemon_sock, console_sock);
if (!g->conn)
goto cleanup1;
@@ -454,7 +459,8 @@ launch_uml (guestfs_h *g, void *datav, const char *arg)
* send commands after this function returns.
*/
if (g->state != READY) {
- error (g, _("vmlinux launched and contacted daemon, but state != READY"));
+ error (g,
+ _("vmlinux launched and contacted daemon, but state != READY"));
goto cleanup1;
}
@@ -463,20 +469,24 @@ launch_uml (guestfs_h *g, void *datav, const char *arg)
return 0;
- cleanup1:
+cleanup1:
if (!g->direct_mode && csv[0] >= 0)
close (csv[0]);
if (dsv[0] >= 0)
close (dsv[0]);
- if (data->pid > 0) kill (data->pid, SIGKILL);
- if (data->recoverypid > 0) kill (data->recoverypid, SIGKILL);
- if (data->pid > 0) waitpid (data->pid, NULL, 0);
- if (data->recoverypid > 0) waitpid (data->recoverypid, NULL, 0);
+ if (data->pid > 0)
+ kill (data->pid, SIGKILL);
+ if (data->recoverypid > 0)
+ kill (data->recoverypid, SIGKILL);
+ if (data->pid > 0)
+ waitpid (data->pid, NULL, 0);
+ if (data->recoverypid > 0)
+ waitpid (data->recoverypid, NULL, 0);
data->pid = 0;
data->recoverypid = 0;
memset (&g->launch_t, 0, sizeof g->launch_t);
- cleanup0:
+cleanup0:
if (daemon_sock >= 0)
close (daemon_sock);
if (console_sock >= 0)
@@ -505,14 +515,17 @@ print_vmlinux_command_line (guestfs_h *g, char **argv)
guestfs_int_timeval_diff (&g->launch_t, &tv));
while (argv[i]) {
- if (i > 0) fputc (' ', stderr);
+ if (i > 0)
+ fputc (' ', stderr);
/* Does it need shell quoting? This only deals with simple cases. */
needs_quote = strcspn (argv[i], " ") != strlen (argv[i]);
- if (needs_quote) fputc ('\'', stderr);
+ if (needs_quote)
+ fputc ('\'', stderr);
fprintf (stderr, "%s", argv[i]);
- if (needs_quote) fputc ('\'', stderr);
+ if (needs_quote)
+ fputc ('\'', stderr);
i++;
}
@@ -531,7 +544,8 @@ shutdown_uml (guestfs_h *g, void *datav, int check_for_errors)
debug (g, "sending SIGTERM to process %d", data->pid);
kill (data->pid, SIGTERM);
}
- if (data->recoverypid > 0) kill (data->recoverypid, 9);
+ if (data->recoverypid > 0)
+ kill (data->recoverypid, 9);
/* Wait for subprocess(es) to exit. */
if (data->pid > 0) {
@@ -552,7 +566,8 @@ shutdown_uml (guestfs_h *g, void *datav, int check_for_errors)
ret = -1;
}
}
- if (data->recoverypid > 0) waitpid (data->recoverypid, NULL, 0);
+ if (data->recoverypid > 0)
+ waitpid (data->recoverypid, NULL, 0);
data->pid = data->recoverypid = 0;
diff --git a/src/launch-unix.c b/src/launch-unix.c
index 212de69..acccb7b 100644
--- a/src/launch-unix.c
+++ b/src/launch-unix.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -22,7 +23,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
-#include <sys/un.h> /* sockaddr_un */
+#include <sys/un.h> /* sockaddr_un */
#include <string.h>
#include <libintl.h>
@@ -47,15 +48,15 @@ launch_unix (guestfs_h *g, void *datav, const char *sockpath)
return -1;
}
- if (strlen (sockpath) > UNIX_PATH_MAX-1) {
+ if (strlen (sockpath) > UNIX_PATH_MAX - 1) {
error (g, _("socket filename too long (more than %d characters): %s"),
- UNIX_PATH_MAX-1, sockpath);
+ UNIX_PATH_MAX - 1, sockpath);
return -1;
}
debug (g, "connecting to %s", sockpath);
- daemon_sock = socket (AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0);
+ daemon_sock = socket (AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (daemon_sock == -1) {
perrorf (g, "socket");
return -1;
@@ -63,11 +64,11 @@ launch_unix (guestfs_h *g, void *datav, const char *sockpath)
addr.sun_family = AF_UNIX;
strncpy (addr.sun_path, sockpath, UNIX_PATH_MAX);
- addr.sun_path[UNIX_PATH_MAX-1] = '\0';
+ addr.sun_path[UNIX_PATH_MAX - 1] = '\0';
g->state = LAUNCHING;
- if (connect (daemon_sock, (struct sockaddr *) &addr, sizeof addr) == -1) {
+ if (connect (daemon_sock, (struct sockaddr *)&addr, sizeof addr) == -1) {
perrorf (g, "bind");
goto cleanup;
}
@@ -82,10 +83,12 @@ launch_unix (guestfs_h *g, void *datav, const char *sockpath)
r = guestfs_int_recv_from_daemon (g, &size, &buf);
free (buf);
- if (r == -1) goto cleanup;
+ if (r == -1)
+ goto cleanup;
if (size != GUESTFS_LAUNCH_FLAG) {
- error (g, _("guestfs_launch failed, unexpected initial message from
guestfsd"));
+ error (g, _("guestfs_launch failed, unexpected initial message from "
+ "guestfsd"));
goto cleanup;
}
@@ -98,7 +101,7 @@ launch_unix (guestfs_h *g, void *datav, const char *sockpath)
return 0;
- cleanup:
+cleanup:
if (daemon_sock >= 0)
close (daemon_sock);
if (g->conn) {
@@ -118,9 +121,7 @@ shutdown_unix (guestfs_h *g, void *datav, int check_for_errors)
}
static struct backend_ops backend_unix_ops = {
- .data_size = 0,
- .launch = launch_unix,
- .shutdown = shutdown_unix,
+ .data_size = 0, .launch = launch_unix, .shutdown = shutdown_unix,
};
void
diff --git a/src/launch.c b/src/launch.c
index 7bc9cf9..16685ec 100644
--- a/src/launch.c
+++ b/src/launch.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -35,7 +36,8 @@
#include "guestfs-internal-actions.h"
#include "guestfs_protocol.h"
-static struct backend {
+static struct backend
+{
struct backend *next;
const char *name;
const struct backend_ops *ops;
@@ -62,15 +64,14 @@ guestfs_impl_launch (guestfs_h *g)
/* Some common debugging information. */
if (g->verbose) {
- CLEANUP_FREE_VERSION struct guestfs_version *v =
- guestfs_version (g);
+ CLEANUP_FREE_VERSION struct guestfs_version *v = guestfs_version (g);
struct backend *b;
CLEANUP_FREE char *backend = guestfs_get_backend (g);
debug (g, "launch: program=%s", g->program);
if (STRNEQ (g->identifier, ""))
debug (g, "launch: identifier=%s", g->identifier);
- debug (g, "launch:
version=%"PRIi64".%"PRIi64".%"PRIi64"%s",
+ debug (g, "launch: version=%" PRIi64 ".%" PRIi64 ".%"
PRIi64 "%s",
v->major, v->minor, v->release, v->extra);
for (b = backends; b != NULL; b = b->next)
@@ -79,7 +80,7 @@ guestfs_impl_launch (guestfs_h *g)
debug (g, "launch: tmpdir=%s", g->tmpdir);
debug (g, "launch: umask=0%03o", get_umask (g));
- debug (g, "launch: euid=%ju", (uintmax_t) geteuid ());
+ debug (g, "launch: euid=%ju", (uintmax_t)geteuid ());
}
/* Launch the appliance. */
@@ -112,8 +113,9 @@ guestfs_int_launch_send_progress (guestfs_h *g, int perdozen)
gettimeofday (&tv, NULL);
if (guestfs_int_timeval_diff (&g->launch_t, &tv) >= 5000) {
- guestfs_progress progress_message =
- { .proc = 0, .serial = 0, .position = perdozen, .total = 12 };
+ guestfs_progress progress_message = {
+ .proc = 0, .serial = 0, .position = perdozen, .total = 12
+ };
guestfs_int_progress_message_callback (g, &progress_message);
}
@@ -153,8 +155,9 @@ int
guestfs_impl_max_disks (guestfs_h *g)
{
if (g->backend_ops->max_disks == NULL)
- NOT_SUPPORTED (g, -1,
- _("the current backend does not allow max disks to be
queried"));
+ NOT_SUPPORTED (
+ g, -1,
+ _("the current backend does not allow max disks to be queried"));
return g->backend_ops->max_disks (g, g->backend_data);
}
@@ -165,7 +168,7 @@ guestfs_impl_max_disks (guestfs_h *g)
int
guestfs_impl_wait_ready (guestfs_h *g)
{
- if (g->state != READY) {
+ if (g->state != READY) {
error (g, _("qemu has not been launched yet"));
return -1;
}
@@ -213,8 +216,8 @@ guestfs_impl_get_state (guestfs_h *g)
/* Add arbitrary qemu parameters. Useful for testing. */
int
-guestfs_impl_config (guestfs_h *g,
- const char *hv_param, const char *hv_value)
+guestfs_impl_config (guestfs_h *g, const char *hv_param,
+ const char *hv_value)
{
struct hv_param *hp;
@@ -229,14 +232,10 @@ guestfs_impl_config (guestfs_h *g,
/* A bit fascist, but the user will probably break the extra
* parameters that we add if they try to set any of these.
*/
- if (STREQ (hv_param, "-kernel") ||
- STREQ (hv_param, "-initrd") ||
- STREQ (hv_param, "-nographic") ||
- STREQ (hv_param, "-display") ||
- STREQ (hv_param, "-serial") ||
- STREQ (hv_param, "-full-screen") ||
- STREQ (hv_param, "-std-vga") ||
- STREQ (hv_param, "-vnc")) {
+ if (STREQ (hv_param, "-kernel") || STREQ (hv_param, "-initrd") ||
+ STREQ (hv_param, "-nographic") || STREQ (hv_param, "-display")
||
+ STREQ (hv_param, "-serial") || STREQ (hv_param, "-full-screen")
||
+ STREQ (hv_param, "-std-vga") || STREQ (hv_param, "-vnc")) {
error (g, _("parameter '%s' isn't allowed"), hv_param);
return -1;
}
@@ -286,7 +285,7 @@ guestfs_impl_config (guestfs_h *g,
char *
guestfs_int_appliance_command_line (guestfs_h *g, const char *appliance_dev,
- int flags)
+ int flags)
{
char root[64] = "";
char *term = getenv ("TERM");
@@ -303,53 +302,49 @@ guestfs_int_appliance_command_line (guestfs_h *g, const char
*appliance_dev,
snprintf (lpj_s, sizeof lpj_s, " lpj=%d", lpj);
}
- ret = safe_asprintf
- (g,
- "panic=1" /* force kernel to panic if daemon exits */
+ ret = safe_asprintf (
+ g,
+ "panic=1" /* force kernel to panic if daemon exits */
#ifdef __arm__
- " mem=%dM"
+ " mem=%dM"
#endif
#ifdef __i386__
- " noapic" /* workaround for RHBZ#857026 */
+ " noapic" /* workaround for RHBZ#857026 */
#endif
- " " SERIAL_CONSOLE /* serial console */
- EARLYPRINTK /* get messages from early boot */
+ " " SERIAL_CONSOLE /* serial console */
+ EARLYPRINTK /* get messages from early boot */
#ifdef __aarch64__
- " ignore_loglevel"
- /* This option turns off the EFI RTC device. QEMU VMs don't
- * currently provide EFI, and if the device is compiled in it
- * will try to call the EFI function GetTime unconditionally
- * (causing a call to NULL). However this option requires a
- * non-upstream patch.
- */
- " efi-rtc=noprobe"
+ " ignore_loglevel"
+ /* This option turns off the EFI RTC device. QEMU VMs don't
+ * currently provide EFI, and if the device is compiled in it
+ * will try to call the EFI function GetTime unconditionally
+ * (causing a call to NULL). However this option requires a
+ * non-upstream patch.
+ */
+ " efi-rtc=noprobe"
#endif
- " udevtimeout=6000"/* for slow systems (RHBZ#480319, RHBZ#1096579) */
- " udev.event-timeout=6000" /* for newer udevd */
- " no_timer_check" /* fix for RHBZ#502058 */
- "%s" /* lpj */
- " acpi=off" /* ACPI is slow - 150-200ms extra on my laptop */
- " printk.time=1" /* display timestamp before kernel messages */
- " cgroup_disable=memory" /* saves us about 5 MB of RAM */
- "%s" /* root=appliance_dev */
- " %s" /* selinux */
- " %s" /* quiet/verbose */
- "%s" /* network */
- " TERM=%s" /* TERM environment variable */
- "%s%s" /* handle identifier */
- "%s%s", /* append */
+ " udevtimeout=6000" /* for slow systems (RHBZ#480319, RHBZ#1096579) */
+ " udev.event-timeout=6000" /* for newer udevd */
+ " no_timer_check" /* fix for RHBZ#502058 */
+ "%s" /* lpj */
+ " acpi=off" /* ACPI is slow - 150-200ms extra on my laptop */
+ " printk.time=1" /* display timestamp before kernel messages */
+ " cgroup_disable=memory" /* saves us about 5 MB of RAM */
+ "%s" /* root=appliance_dev */
+ " %s" /* selinux */
+ " %s" /* quiet/verbose */
+ "%s" /* network */
+ " TERM=%s" /* TERM environment variable */
+ "%s%s" /* handle identifier */
+ "%s%s", /* append */
#ifdef __arm__
- g->memsize,
+ g->memsize,
#endif
- lpj_s,
- root,
- g->selinux ? "selinux=1 enforcing=0" : "selinux=0",
- g->verbose ? "guestfs_verbose=1" : "quiet",
- g->enable_network ? " guestfs_network=1" : "",
- term ? term : "linux",
- STRNEQ (g->identifier, "") ? " guestfs_identifier=" :
"",
- g->identifier,
- g->append ? " " : "", g->append ? g->append :
"");
+ lpj_s, root, g->selinux ? "selinux=1 enforcing=0" :
"selinux=0",
+ g->verbose ? "guestfs_verbose=1" : "quiet",
+ g->enable_network ? " guestfs_network=1" : "", term ? term :
"linux",
+ STRNEQ (g->identifier, "") ? " guestfs_identifier=" :
"",
+ g->identifier, g->append ? " " : "", g->append ?
g->append : "");
return ret;
}
@@ -403,7 +398,7 @@ guestfs_int_create_socketname (guestfs_h *g, const char *filename,
if (guestfs_int_lazy_make_sockdir (g) == -1)
return -1;
- if (strlen (g->sockdir) + 1 + strlen (filename) > UNIX_PATH_MAX-1) {
+ if (strlen (g->sockdir) + 1 + strlen (filename) > UNIX_PATH_MAX - 1) {
error (g, _("socket path too long: %s/%s"), g->sockdir, filename);
return -1;
}
@@ -424,9 +419,11 @@ get_umask (guestfs_h *g)
mode_t ret;
int fd;
struct stat statbuf;
- CLEANUP_FREE char *filename = safe_asprintf (g, "%s/umask-check",
g->tmpdir);
+ CLEANUP_FREE char *filename =
+ safe_asprintf (g, "%s/umask-check", g->tmpdir);
- fd = open (filename, O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY|O_CLOEXEC, 0777);
+ fd = open (filename, O_WRONLY | O_CREAT | O_TRUNC | O_NOCTTY | O_CLOEXEC,
+ 0777);
if (fd == -1)
return -1;
@@ -446,12 +443,14 @@ get_umask (guestfs_h *g)
/* Register backends in a global list when the library is loaded. */
void
-guestfs_int_register_backend (const char *name, const struct backend_ops *ops)
+guestfs_int_register_backend (const char *name,
+ const struct backend_ops *ops)
{
struct backend *b;
b = malloc (sizeof *b);
- if (!b) abort ();
+ if (!b)
+ abort ();
b->name = name;
b->ops = ops;
@@ -482,13 +481,13 @@ guestfs_int_set_backend (guestfs_h *g, const char *method)
break;
len = strlen (b->name);
if (STRPREFIX (method, b->name) && method[len] == ':') {
- arg_offs = len+1;
+ arg_offs = len + 1;
break;
}
}
if (b == NULL)
- return -1; /* Not found. */
+ return -1; /* Not found. */
/* At this point, we know it's a valid method. */
free (g->backend);
@@ -512,12 +511,10 @@ guestfs_int_set_backend (guestfs_h *g, const char *method)
/* This hack is only required to make static linking work. See:
*
https://stackoverflow.com/questions/1202494/why-doesnt-attribute-construc...
*/
-void *
-guestfs_int_force_load_backends[] = {
+void *guestfs_int_force_load_backends[] = {
guestfs_int_init_direct_backend,
#ifdef HAVE_LIBVIRT_BACKEND
guestfs_int_init_libvirt_backend,
#endif
- guestfs_int_init_uml_backend,
- guestfs_int_init_unix_backend,
+ guestfs_int_init_uml_backend, guestfs_int_init_unix_backend,
};
diff --git a/src/libvirt-auth.c b/src/libvirt-auth.c
index cbc2461..92caa74 100644
--- a/src/libvirt-auth.c
+++ b/src/libvirt-auth.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -28,26 +29,26 @@
#include <libvirt/virterror.h>
#endif
-
#include "guestfs.h"
#include "guestfs-internal.h"
#include "guestfs-internal-actions.h"
#if defined(HAVE_LIBVIRT)
-static struct {
+static struct
+{
int credtype;
const char *credname;
} libvirt_credential_types[NR_CREDENTIAL_TYPES] = {
- { VIR_CRED_USERNAME, "username" },
- { VIR_CRED_AUTHNAME, "authname" },
- { VIR_CRED_LANGUAGE, "language" },
- { VIR_CRED_CNONCE, "cnonce" },
- { VIR_CRED_PASSPHRASE, "passphrase" },
- { VIR_CRED_ECHOPROMPT, "echoprompt" },
+ { VIR_CRED_USERNAME, "username" },
+ { VIR_CRED_AUTHNAME, "authname" },
+ { VIR_CRED_LANGUAGE, "language" },
+ { VIR_CRED_CNONCE, "cnonce" },
+ { VIR_CRED_PASSPHRASE, "passphrase" },
+ { VIR_CRED_ECHOPROMPT, "echoprompt" },
{ VIR_CRED_NOECHOPROMPT, "noechoprompt" },
- { VIR_CRED_REALM, "realm" },
- { VIR_CRED_EXTERNAL, "external" },
+ { VIR_CRED_REALM, "realm" },
+ { VIR_CRED_EXTERNAL, "external" },
};
static int
@@ -79,7 +80,8 @@ get_string_of_credtype (int credtype)
* an error or not, so don't depend on the current behaviour.
*/
int
-guestfs_impl_set_libvirt_supported_credentials (guestfs_h *g, char *const *creds)
+guestfs_impl_set_libvirt_supported_credentials (guestfs_h *g,
+ char *const *creds)
{
size_t i;
int credtype;
@@ -106,7 +108,8 @@ guestfs_impl_set_libvirt_supported_credentials (guestfs_h *g, char
*const *creds
}
g->nr_supported_credentials = ncredtypes;
- memcpy (g->supported_credentials, credtypes, sizeof g->supported_credentials);
+ memcpy (g->supported_credentials, credtypes,
+ sizeof g->supported_credentials);
return 0;
}
@@ -115,8 +118,7 @@ guestfs_impl_set_libvirt_supported_credentials (guestfs_h *g, char
*const *creds
* libguestfs event to collect the desired credentials.
*/
static int
-libvirt_auth_callback (virConnectCredentialPtr cred,
- unsigned int ncred,
+libvirt_auth_callback (virConnectCredentialPtr cred, unsigned int ncred,
void *gv)
{
guestfs_h *g = gv;
@@ -135,8 +137,8 @@ libvirt_auth_callback (virConnectCredentialPtr cred,
g->nr_requested_credentials = ncred;
guestfs_int_call_callbacks_message (g, GUESTFS_EVENT_LIBVIRT_AUTH,
- g->saved_libvirt_uri,
- strlen (g->saved_libvirt_uri));
+ g->saved_libvirt_uri,
+ strlen (g->saved_libvirt_uri));
/* Clarified with Dan that it is not an error for some fields to be
* left as NULL.
@@ -157,14 +159,14 @@ libvirt_auth_callback (virConnectCredentialPtr cred,
*/
static int
libvirt_auth_default_wrapper (virConnectCredentialPtr cred,
- unsigned int ncred,
- void *gv)
+ unsigned int ncred, void *gv)
{
guestfs_h *g = gv;
if (!g->wrapper_warning_done) {
printf (_("libvirt needs authentication to connect to libvirt URI %s\n"
- "(see also:
http://libvirt.org/auth.html
http://libvirt.org/uri.html)\n"),
+ "(see also:
http://libvirt.org/auth.html "
+ "http://libvirt.org/uri.html)\n"),
g->saved_libvirt_uri ? g->saved_libvirt_uri : "NULL");
g->wrapper_warning_done = true;
}
@@ -188,7 +190,7 @@ exists_libvirt_auth_event (guestfs_h *g)
/* Open a libvirt connection (called from other parts of the library). */
virConnectPtr
guestfs_int_open_libvirt_connection (guestfs_h *g, const char *uri,
- unsigned int flags)
+ unsigned int flags)
{
virConnectAuth authdata;
virConnectPtr conn;
@@ -207,8 +209,7 @@ guestfs_int_open_libvirt_connection (guestfs_h *g, const char *uri,
authdata.ncredtype = g->nr_supported_credentials;
authdata.cb = libvirt_auth_callback;
authdata.cbdata = g;
- }
- else {
+ } else {
/* Wrapper around libvirt's virConnectAuthPtrDefault, see comment
* above.
*/
@@ -237,11 +238,12 @@ guestfs_int_open_libvirt_connection (guestfs_h *g, const char *uri,
/* The calls below are meant to be called recursively from
* the GUESTFS_EVENT_LIBVIRT_AUTH event.
*/
-#define CHECK_IN_EVENT_HANDLER(r) \
- if (g->nr_requested_credentials == 0) { \
- error (g, _("%s should only be called from within the GUESTFS_EVENT_LIBVIRT_AUTH
event handler"), \
- __func__); \
- return r; \
+#define CHECK_IN_EVENT_HANDLER(r) \
+ if (g->nr_requested_credentials == 0) { \
+ error (g, _("%s should only be called from within the " \
+ "GUESTFS_EVENT_LIBVIRT_AUTH event handler"), \
+ __func__); \
+ return r; \
}
char **
@@ -254,22 +256,23 @@ guestfs_impl_get_libvirt_requested_credentials (guestfs_h *g)
/* Convert the requested_credentials types to a list of strings. */
for (i = 0; i < g->nr_requested_credentials; ++i)
- guestfs_int_add_string (g, &ret,
- get_string_of_credtype (g->requested_credentials[i].type));
+ guestfs_int_add_string (
+ g, &ret, get_string_of_credtype (g->requested_credentials[i].type));
guestfs_int_end_stringsbuf (g, &ret);
- return ret.argv; /* caller frees */
+ return ret.argv; /* caller frees */
}
char *
-guestfs_impl_get_libvirt_requested_credential_prompt (guestfs_h *g, int index)
+guestfs_impl_get_libvirt_requested_credential_prompt (guestfs_h *g,
+ int index)
{
size_t i;
CHECK_IN_EVENT_HANDLER (NULL);
- if (index >= 0 && (unsigned int) index < g->nr_requested_credentials)
- i = (size_t) index;
+ if (index >= 0 && (unsigned int)index < g->nr_requested_credentials)
+ i = (size_t)index;
else {
error (g, _("credential index out of range"));
return NULL;
@@ -282,14 +285,15 @@ guestfs_impl_get_libvirt_requested_credential_prompt (guestfs_h *g,
int index)
}
char *
-guestfs_impl_get_libvirt_requested_credential_challenge (guestfs_h *g, int index)
+guestfs_impl_get_libvirt_requested_credential_challenge (guestfs_h *g,
+ int index)
{
size_t i;
CHECK_IN_EVENT_HANDLER (NULL);
- if (index >= 0 && (unsigned int) index < g->nr_requested_credentials)
- i = (size_t) index;
+ if (index >= 0 && (unsigned int)index < g->nr_requested_credentials)
+ i = (size_t)index;
else {
error (g, _("credential index out of range"));
return NULL;
@@ -302,14 +306,15 @@ guestfs_impl_get_libvirt_requested_credential_challenge (guestfs_h
*g, int index
}
char *
-guestfs_impl_get_libvirt_requested_credential_defresult (guestfs_h *g, int index)
+guestfs_impl_get_libvirt_requested_credential_defresult (guestfs_h *g,
+ int index)
{
size_t i;
CHECK_IN_EVENT_HANDLER (NULL);
- if (index >= 0 && (unsigned int) index < g->nr_requested_credentials)
- i = (size_t) index;
+ if (index >= 0 && (unsigned int)index < g->nr_requested_credentials)
+ i = (size_t)index;
else {
error (g, _("credential index out of range"));
return NULL;
@@ -323,21 +328,23 @@ guestfs_impl_get_libvirt_requested_credential_defresult (guestfs_h
*g, int index
int
guestfs_impl_set_libvirt_requested_credential (guestfs_h *g, int index,
- const char *cred, size_t cred_size)
+ const char *cred,
+ size_t cred_size)
{
size_t i;
CHECK_IN_EVENT_HANDLER (-1);
- if (index >= 0 && (unsigned int) index < g->nr_requested_credentials)
- i = (size_t) index;
+ if (index >= 0 && (unsigned int)index < g->nr_requested_credentials)
+ i = (size_t)index;
else {
error (g, _("credential index out of range"));
return -1;
}
/* All the evidence is that libvirt will free this. */
- g->requested_credentials[i].result = safe_malloc (g, cred_size+1 /* sic */);
+ g->requested_credentials[i].result =
+ safe_malloc (g, cred_size + 1 /* sic */);
memcpy (g->requested_credentials[i].result, cred, cred_size);
/* Some libvirt drivers are buggy (eg. libssh2), and they expect
* that the cred field will be \0 terminated. To avoid surprises,
@@ -351,44 +358,51 @@ guestfs_impl_set_libvirt_requested_credential (guestfs_h *g, int
index,
#else /* no libvirt at compile time */
-#define NOT_IMPL(r) \
- error (g, _("libvirt authentication APIs not available since this version of
libguestfs was compiled without libvirt")); \
+#define NOT_IMPL(r) \
+ error (g, _("libvirt authentication APIs not available since this " \
+ "version of libguestfs was compiled without libvirt")); \
return r
int
-guestfs_impl_set_libvirt_supported_credentials (guestfs_h *g, char *const *creds)
+guestfs_impl_set_libvirt_supported_credentials (guestfs_h *g,
+ char *const *creds)
{
- NOT_IMPL(-1);
+ NOT_IMPL (-1);
}
char **
guestfs_impl_get_libvirt_requested_credentials (guestfs_h *g)
{
- NOT_IMPL(NULL);
+ NOT_IMPL (NULL);
}
char *
-guestfs_impl_get_libvirt_requested_credential_prompt (guestfs_h *g, int index)
+guestfs_impl_get_libvirt_requested_credential_prompt (guestfs_h *g,
+ int index)
{
- NOT_IMPL(NULL);
+ NOT_IMPL (NULL);
}
char *
-guestfs_impl_get_libvirt_requested_credential_challenge (guestfs_h *g, int index)
+guestfs_impl_get_libvirt_requested_credential_challenge (guestfs_h *g,
+ int index)
{
- NOT_IMPL(NULL);
+ NOT_IMPL (NULL);
}
char *
-guestfs_impl_get_libvirt_requested_credential_defresult (guestfs_h *g, int index)
+guestfs_impl_get_libvirt_requested_credential_defresult (guestfs_h *g,
+ int index)
{
- NOT_IMPL(NULL);
+ NOT_IMPL (NULL);
}
int
-guestfs_impl_set_libvirt_requested_credential (guestfs_h *g, int index, const char *cred,
size_t cred_size)
+guestfs_impl_set_libvirt_requested_credential (guestfs_h *g, int index,
+ const char *cred,
+ size_t cred_size)
{
- NOT_IMPL(-1);
+ NOT_IMPL (-1);
}
#endif /* no libvirt at compile time */
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index b096fb3..a0b8d78 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -40,8 +41,15 @@
#if defined(HAVE_LIBVIRT)
static xmlDocPtr get_domain_xml (guestfs_h *g, virDomainPtr dom);
-static ssize_t for_each_disk (guestfs_h *g, xmlDocPtr doc, int (*f) (guestfs_h *g, const
char *filename, const char *format, int readonly, const char *protocol, char *const
*server, const char *username, void *data), void *data);
-static int libvirt_selinux_label (guestfs_h *g, xmlDocPtr doc, char **label_rtn, char
**imagelabel_rtn);
+static ssize_t for_each_disk (guestfs_h *g, xmlDocPtr doc,
+ int (*f) (guestfs_h *g, const char *filename,
+ const char *format, int readonly,
+ const char *protocol,
+ char *const *server,
+ const char *username, void *data),
+ void *data);
+static int libvirt_selinux_label (guestfs_h *g, xmlDocPtr doc,
+ char **label_rtn, char **imagelabel_rtn);
static void
ignore_errors (void *ignore, virErrorPtr ignore2)
@@ -51,7 +59,7 @@ ignore_errors (void *ignore, virErrorPtr ignore2)
int
guestfs_impl_add_domain (guestfs_h *g, const char *domain_name,
- const struct guestfs_add_domain_argv *optargs)
+ const struct guestfs_add_domain_argv *optargs)
{
virErrorPtr err;
virConnectPtr conn = NULL;
@@ -66,26 +74,34 @@ guestfs_impl_add_domain (guestfs_h *g, const char *domain_name,
const char *cachemode;
const char *discard;
bool copyonread;
- struct guestfs_add_libvirt_dom_argv optargs2 = { .bitmask = 0 };
+ struct guestfs_add_libvirt_dom_argv optargs2 = {.bitmask = 0 };
libvirturi = optargs->bitmask & GUESTFS_ADD_DOMAIN_LIBVIRTURI_BITMASK
- ? optargs->libvirturi : NULL;
+ ? optargs->libvirturi
+ : NULL;
readonly = optargs->bitmask & GUESTFS_ADD_DOMAIN_READONLY_BITMASK
- ? optargs->readonly : 0;
+ ? optargs->readonly
+ : 0;
iface = optargs->bitmask & GUESTFS_ADD_DOMAIN_IFACE_BITMASK
- ? optargs->iface : NULL;
- live = optargs->bitmask & GUESTFS_ADD_DOMAIN_LIVE_BITMASK
- ? optargs->live : 0;
+ ? optargs->iface
+ : NULL;
+ live = optargs->bitmask & GUESTFS_ADD_DOMAIN_LIVE_BITMASK ? optargs->live
+ : 0;
allowuuid = optargs->bitmask & GUESTFS_ADD_DOMAIN_ALLOWUUID_BITMASK
- ? optargs->allowuuid : 0;
+ ? optargs->allowuuid
+ : 0;
readonlydisk = optargs->bitmask & GUESTFS_ADD_DOMAIN_READONLYDISK_BITMASK
- ? optargs->readonlydisk : NULL;
+ ? optargs->readonlydisk
+ : NULL;
cachemode = optargs->bitmask & GUESTFS_ADD_DOMAIN_CACHEMODE_BITMASK
- ? optargs->cachemode : NULL;
+ ? optargs->cachemode
+ : NULL;
discard = optargs->bitmask & GUESTFS_ADD_DOMAIN_DISCARD_BITMASK
- ? optargs->discard : NULL;
+ ? optargs->discard
+ : NULL;
copyonread = optargs->bitmask & GUESTFS_ADD_DOMAIN_COPYONREAD_BITMASK
- ? optargs->copyonread : false;
+ ? optargs->copyonread
+ : false;
if (live && readonly) {
error (g, _("you cannot set both live and readonly flags"));
@@ -93,7 +109,8 @@ guestfs_impl_add_domain (guestfs_h *g, const char *domain_name,
}
/* Connect to libvirt, find the domain. */
- conn = guestfs_int_open_libvirt_connection (g, libvirturi, VIR_CONNECT_RO);
+ conn =
+ guestfs_int_open_libvirt_connection (g, libvirturi, VIR_CONNECT_RO);
if (!conn) {
err = virGetLastError ();
error (g, _("could not connect to libvirt (code %d, domain %d): %s"),
@@ -117,8 +134,8 @@ guestfs_impl_add_domain (guestfs_h *g, const char *domain_name,
if (!dom) {
err = virGetLastError ();
- error (g, _("no libvirt domain called '%s': %s"),
- domain_name, err->message);
+ error (g, _("no libvirt domain called '%s': %s"), domain_name,
+ err->message);
goto cleanup;
}
@@ -153,14 +170,18 @@ guestfs_impl_add_domain (guestfs_h *g, const char *domain_name,
r = guestfs_add_libvirt_dom_argv (g, dom, &optargs2);
- cleanup:
- if (dom) virDomainFree (dom);
- if (conn) virConnectClose (conn);
+cleanup:
+ if (dom)
+ virDomainFree (dom);
+ if (conn)
+ virConnectClose (conn);
return r;
}
-static int add_disk (guestfs_h *g, const char *filename, const char *format, int
readonly, const char *protocol, char *const *server, const char *username, void *data);
+static int add_disk (guestfs_h *g, const char *filename, const char *format,
+ int readonly, const char *protocol,
+ char *const *server, const char *username, void *data);
static int connect_live (guestfs_h *g, virDomainPtr dom);
enum readonlydisk {
@@ -170,7 +191,8 @@ enum readonlydisk {
readonlydisk_ignore,
};
-struct add_disk_data {
+struct add_disk_data
+{
int readonly;
enum readonlydisk readonlydisk;
/* Other args to pass through to add_drive_opts. */
@@ -178,8 +200,9 @@ struct add_disk_data {
};
int
-guestfs_impl_add_libvirt_dom (guestfs_h *g, void *domvp,
- const struct guestfs_add_libvirt_dom_argv *optargs)
+guestfs_impl_add_libvirt_dom (
+ guestfs_h *g, void *domvp,
+ const struct guestfs_add_libvirt_dom_argv *optargs)
{
virDomainPtr dom = domvp;
ssize_t r;
@@ -196,15 +219,15 @@ guestfs_impl_add_libvirt_dom (guestfs_h *g, void *domvp,
CLEANUP_XMLFREEDOC xmlDocPtr doc = NULL;
CLEANUP_FREE char *label = NULL, *imagelabel = NULL;
- readonly =
- optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_READONLY_BITMASK
- ? optargs->readonly : 0;
- iface =
- optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_IFACE_BITMASK
- ? optargs->iface : NULL;
- live =
- optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_LIVE_BITMASK
- ? optargs->live : 0;
+ readonly = optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_READONLY_BITMASK
+ ? optargs->readonly
+ : 0;
+ iface = optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_IFACE_BITMASK
+ ? optargs->iface
+ : NULL;
+ live = optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_LIVE_BITMASK
+ ? optargs->live
+ : 0;
if ((optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_READONLYDISK_BITMASK)) {
if (STREQ (optargs->readonlydisk, "error"))
@@ -221,17 +244,17 @@ guestfs_impl_add_libvirt_dom (guestfs_h *g, void *domvp,
}
}
- cachemode =
- optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_CACHEMODE_BITMASK
- ? optargs->cachemode : NULL;
+ cachemode = optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_CACHEMODE_BITMASK
+ ? optargs->cachemode
+ : NULL;
- discard =
- optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_DISCARD_BITMASK
- ? optargs->discard : NULL;
+ discard = optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_DISCARD_BITMASK
+ ? optargs->discard
+ : NULL;
- copyonread =
- optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_COPYONREAD_BITMASK
- ? optargs->copyonread : false;
+ copyonread = optargs->bitmask & GUESTFS_ADD_LIBVIRT_DOM_COPYONREAD_BITMASK
+ ? optargs->copyonread
+ : false;
if (live && readonly) {
error (g, _("you cannot set both live and readonly flags"));
@@ -260,10 +283,14 @@ guestfs_impl_add_libvirt_dom (guestfs_h *g, void *domvp,
/* Dangerous to modify the disks of a running VM. */
error (g, _("error: domain is a live virtual machine.\n"
- "Writing to the disks of a running virtual machine can cause disk
corruption.\n"
- "Either use read-only access, or if the guest is running the
guestfsd daemon\n"
- "specify live access. In most libguestfs tools these options are
--ro or\n"
- "--live respectively. Consult the documentation for further
information."));
+ "Writing to the disks of a running virtual machine can "
+ "cause disk corruption.\n"
+ "Either use read-only access, or if the guest is "
+ "running the guestfsd daemon\n"
+ "specify live access. In most libguestfs tools these "
+ "options are --ro or\n"
+ "--live respectively. Consult the documentation for "
+ "further information."));
return -1;
}
}
@@ -280,10 +307,11 @@ guestfs_impl_add_libvirt_dom (guestfs_h *g, void *domvp,
return -1;
if (label && imagelabel) {
guestfs_set_backend_setting (g, "internal_libvirt_label", label);
- guestfs_set_backend_setting (g, "internal_libvirt_imagelabel",
imagelabel);
- guestfs_set_backend_setting (g, "internal_libvirt_norelabel_disks",
"1");
- }
- else
+ guestfs_set_backend_setting (g, "internal_libvirt_imagelabel",
+ imagelabel);
+ guestfs_set_backend_setting (g, "internal_libvirt_norelabel_disks",
+ "1");
+ } else
guestfs_clear_backend_setting (g, "internal_libvirt_norelabel_disks");
/* Add the disks. */
@@ -319,40 +347,56 @@ guestfs_impl_add_libvirt_dom (guestfs_h *g, void *domvp,
}
static int
-add_disk (guestfs_h *g,
- const char *filename, const char *format, int readonly_in_xml,
- const char *protocol, char *const *server, const char *username,
- void *datavp)
+add_disk (guestfs_h *g, const char *filename, const char *format,
+ int readonly_in_xml, const char *protocol, char *const *server,
+ const char *username, void *datavp)
{
struct add_disk_data *data = datavp;
/* Copy whole struct so we can make local changes: */
struct guestfs_add_drive_opts_argv optargs = data->optargs;
int readonly = -1, error = 0, skip = 0;
- if (readonly_in_xml) { /* <readonly/> appears in the XML */
- if (data->readonly) { /* asked to add disk read-only */
+ if (readonly_in_xml) { /* <readonly/> appears in the XML */
+ if (data->readonly) { /* asked to add disk read-only */
switch (data->readonlydisk) {
- case readonlydisk_error: readonly = 1; break;
- case readonlydisk_read: readonly = 1; break;
- case readonlydisk_write: readonly = 1; break;
- case readonlydisk_ignore: skip = 1; break;
+ case readonlydisk_error:
+ readonly = 1;
+ break;
+ case readonlydisk_read:
+ readonly = 1;
+ break;
+ case readonlydisk_write:
+ readonly = 1;
+ break;
+ case readonlydisk_ignore:
+ skip = 1;
+ break;
}
- } else { /* asked to add disk for read/write */
+ } else { /* asked to add disk for read/write */
switch (data->readonlydisk) {
- case readonlydisk_error: error = 1; break;
- case readonlydisk_read: readonly = 1; break;
- case readonlydisk_write: readonly = 0; break;
- case readonlydisk_ignore: skip = 1; break;
+ case readonlydisk_error:
+ error = 1;
+ break;
+ case readonlydisk_read:
+ readonly = 1;
+ break;
+ case readonlydisk_write:
+ readonly = 0;
+ break;
+ case readonlydisk_ignore:
+ skip = 1;
+ break;
}
}
- } else /* no <readonly/> in XML */
+ } else /* no <readonly/> in XML */
readonly = data->readonly;
if (skip)
return 0;
if (error) {
- error (g, _("%s: disk is marked <readonly/> in libvirt XML, and
readonlydisk was set to \"error\""),
+ error (g, _("%s: disk is marked <readonly/> in libvirt XML, and "
+ "readonlydisk was set to \"error\""),
filename);
return -1;
}
@@ -390,8 +434,8 @@ add_disk (guestfs_h *g,
*
https://bugzilla.redhat.com/show_bug.cgi?id=912499#c7
*/
static int
-libvirt_selinux_label (guestfs_h *g, xmlDocPtr doc,
- char **label_rtn, char **imagelabel_rtn)
+libvirt_selinux_label (guestfs_h *g, xmlDocPtr doc, char **label_rtn,
+ char **imagelabel_rtn)
{
CLEANUP_XMLXPATHFREECONTEXT xmlXPathContextPtr xpathCtx = NULL;
CLEANUP_XMLXPATHFREEOBJECT xmlXPathObjectPtr xpathObj = NULL;
@@ -445,14 +489,14 @@ libvirt_selinux_label (guestfs_h *g, xmlDocPtr doc,
/* Find the <label/> and <imagelabel/> child nodes. */
for (child = node->children; child != NULL; child = child->next) {
- if (!gotlabel && STREQ ((char *) child->name, "label")) {
+ if (!gotlabel && STREQ ((char *)child->name, "label")) {
/* Get the label content. */
- *label_rtn = (char *) xmlNodeGetContent (child);
+ *label_rtn = (char *)xmlNodeGetContent (child);
gotlabel = 1;
}
- if (!gotimagelabel && STREQ ((char *) child->name,
"imagelabel")) {
+ if (!gotimagelabel && STREQ ((char *)child->name, "imagelabel"))
{
/* Get the imagelabel content. */
- *imagelabel_rtn = (char *) xmlNodeGetContent (child);
+ *imagelabel_rtn = (char *)xmlNodeGetContent (child);
gotimagelabel = 1;
}
}
@@ -465,14 +509,11 @@ libvirt_selinux_label (guestfs_h *g, xmlDocPtr doc,
* Returns number of disks, or -1 if there was an error.
*/
static ssize_t
-for_each_disk (guestfs_h *g,
- xmlDocPtr doc,
- int (*f) (guestfs_h *g,
- const char *filename, const char *format,
- int readonly,
+for_each_disk (guestfs_h *g, xmlDocPtr doc,
+ int (*f) (guestfs_h *g, const char *filename,
+ const char *format, int readonly,
const char *protocol, char *const *server,
- const char *username,
- void *data),
+ const char *username, void *data),
void *data)
{
size_t i, nr_added = 0, nr_nodes;
@@ -500,7 +541,8 @@ for_each_disk (guestfs_h *g,
if (nodes != NULL) {
nr_nodes = nodes->nodeNr;
for (i = 0; i < nr_nodes; ++i) {
- CLEANUP_FREE char *type = NULL, *filename = NULL, *format = NULL, *protocol = NULL,
*username = NULL;
+ CLEANUP_FREE char *type = NULL, *filename = NULL, *format = NULL,
+ *protocol = NULL, *username = NULL;
CLEANUP_FREE_STRING_LIST char **server = NULL;
CLEANUP_XMLXPATHFREEOBJECT xmlXPathObjectPtr xptype = NULL;
CLEANUP_XMLXPATHFREEOBJECT xmlXPathObjectPtr xpformat = NULL;
@@ -523,33 +565,34 @@ for_each_disk (guestfs_h *g,
* Check the <disk type=..> attribute first to find out which one.
*/
xptype = xmlXPathEvalExpression (BAD_CAST "./@type", xpathCtx);
- if (xptype == NULL ||
- xptype->nodesetval == NULL ||
+ if (xptype == NULL || xptype->nodesetval == NULL ||
xptype->nodesetval->nodeNr == 0) {
- continue; /* no type attribute, skip it */
+ continue; /* no type attribute, skip it */
}
assert (xptype->nodesetval->nodeTab[0]);
assert (xptype->nodesetval->nodeTab[0]->type == XML_ATTRIBUTE_NODE);
- attr = (xmlAttrPtr) xptype->nodesetval->nodeTab[0];
- type = (char *) xmlNodeListGetString (doc, attr->children, 1);
+ attr = (xmlAttrPtr)xptype->nodesetval->nodeTab[0];
+ type = (char *)xmlNodeListGetString (doc, attr->children, 1);
- if (STREQ (type, "file")) { /* type = "file" so look at
source/@file */
+ if (STREQ (type,
+ "file")) { /* type = "file" so look at source/@file
*/
xpathCtx->node = nodes->nodeTab[i];
- xpfilename = xmlXPathEvalExpression (BAD_CAST "./source/@file",
- xpathCtx);
- if (xpfilename == NULL ||
- xpfilename->nodesetval == NULL ||
+ xpfilename =
+ xmlXPathEvalExpression (BAD_CAST "./source/@file", xpathCtx);
+ if (xpfilename == NULL || xpfilename->nodesetval == NULL ||
xpfilename->nodesetval->nodeNr == 0)
- continue; /* disk filename not found, skip this */
- } else if (STREQ (type, "block")) { /* type = "block", use
source/@dev */
+ continue; /* disk filename not found, skip this */
+ } else if (STREQ (type,
+ "block")) { /* type = "block", use
source/@dev */
xpathCtx->node = nodes->nodeTab[i];
- xpfilename = xmlXPathEvalExpression (BAD_CAST "./source/@dev",
- xpathCtx);
- if (xpfilename == NULL ||
- xpfilename->nodesetval == NULL ||
+ xpfilename =
+ xmlXPathEvalExpression (BAD_CAST "./source/@dev", xpathCtx);
+ if (xpfilename == NULL || xpfilename->nodesetval == NULL ||
xpfilename->nodesetval->nodeNr == 0)
- continue; /* disk filename not found, skip this */
- } else if (STREQ (type, "network")) { /* type = "network", use
source/@name */
+ continue; /* disk filename not found, skip this */
+ } else if (STREQ (
+ type,
+ "network")) { /* type = "network", use
source/@name */
int hi;
debug (g, _("disk[%zu]: network device"), i);
@@ -558,41 +601,38 @@ for_each_disk (guestfs_h *g,
/* Get the protocol (e.g. "rbd"). Required. */
xpprotocol = xmlXPathEvalExpression (BAD_CAST "./source/@protocol",
xpathCtx);
- if (xpprotocol == NULL ||
- xpprotocol->nodesetval == NULL ||
+ if (xpprotocol == NULL || xpprotocol->nodesetval == NULL ||
xpprotocol->nodesetval->nodeNr == 0)
continue;
assert (xpprotocol->nodesetval->nodeTab[0]);
assert (xpprotocol->nodesetval->nodeTab[0]->type ==
XML_ATTRIBUTE_NODE);
- attr = (xmlAttrPtr) xpprotocol->nodesetval->nodeTab[0];
- protocol = (char *) xmlNodeListGetString (doc, attr->children, 1);
+ attr = (xmlAttrPtr)xpprotocol->nodesetval->nodeTab[0];
+ protocol = (char *)xmlNodeListGetString (doc, attr->children, 1);
debug (g, _("disk[%zu]: protocol: %s"), i, protocol);
/* <source name="..."> is the path/exportname. Optional. */
- xpfilename = xmlXPathEvalExpression (BAD_CAST "./source/@name",
- xpathCtx);
- if (xpfilename == NULL ||
- xpfilename->nodesetval == NULL)
+ xpfilename =
+ xmlXPathEvalExpression (BAD_CAST "./source/@name", xpathCtx);
+ if (xpfilename == NULL || xpfilename->nodesetval == NULL)
continue;
/* <auth username="...">. Optional. */
- xpusername = xmlXPathEvalExpression (BAD_CAST "./auth/@username",
- xpathCtx);
- if (xpusername != NULL &&
- xpusername->nodesetval != NULL &&
+ xpusername =
+ xmlXPathEvalExpression (BAD_CAST "./auth/@username", xpathCtx);
+ if (xpusername != NULL && xpusername->nodesetval != NULL &&
xpusername->nodesetval->nodeNr != 0) {
assert (xpusername->nodesetval->nodeTab[0]);
- assert (xpusername->nodesetval->nodeTab[0]->type ==
XML_ATTRIBUTE_NODE);
- attr = (xmlAttrPtr) xpusername->nodesetval->nodeTab[0];
- username = (char *) xmlNodeListGetString (doc, attr->children, 1);
+ assert (xpusername->nodesetval->nodeTab[0]->type ==
+ XML_ATTRIBUTE_NODE);
+ attr = (xmlAttrPtr)xpusername->nodesetval->nodeTab[0];
+ username = (char *)xmlNodeListGetString (doc, attr->children, 1);
debug (g, _("disk[%zu]: username: %s"), i, username);
}
- xphost = xmlXPathEvalExpression (BAD_CAST "./source/host",
- xpathCtx);
- if (xphost == NULL ||
- xphost->nodesetval == NULL)
+ xphost =
+ xmlXPathEvalExpression (BAD_CAST "./source/host", xpathCtx);
+ if (xphost == NULL || xphost->nodesetval == NULL)
continue;
/* This gives us a list of <host> elements, which each have a
@@ -600,19 +640,19 @@ for_each_disk (guestfs_h *g,
* string, joined by a ':'.
*/
server = safe_malloc (g, sizeof (char *) *
- (xphost->nodesetval->nodeNr + 1));
- for (hi = 0; hi < xphost->nodesetval->nodeNr ; hi++) {
+ (xphost->nodesetval->nodeNr + 1));
+ for (hi = 0; hi < xphost->nodesetval->nodeNr; hi++) {
xmlChar *name, *port;
xmlNodePtr h = xphost->nodesetval->nodeTab[hi];
assert (h);
assert (h->type == XML_ELEMENT_NODE);
- name = xmlGetProp(h, BAD_CAST "name");
- assert(name);
- port = xmlGetProp(h, BAD_CAST "port");
+ name = xmlGetProp (h, BAD_CAST "name");
+ assert (name);
+ port = xmlGetProp (h, BAD_CAST "port");
assert (port);
debug (g, _("disk[%zu]: host: %s:%s"), i, name, port);
- if (asprintf(&server[hi], "%s:%s", name, port) == -1) {
+ if (asprintf (&server[hi], "%s:%s", name, port) == -1) {
perrorf (g, "asprintf");
return -1;
}
@@ -632,37 +672,37 @@ for_each_disk (guestfs_h *g,
assert (xpfilename->nodesetval->nodeTab[0]);
assert (xpfilename->nodesetval->nodeTab[0]->type ==
XML_ATTRIBUTE_NODE);
- attr = (xmlAttrPtr) xpfilename->nodesetval->nodeTab[0];
- filename = (char *) xmlNodeListGetString (doc, attr->children, 1);
+ attr = (xmlAttrPtr)xpfilename->nodesetval->nodeTab[0];
+ filename = (char *)xmlNodeListGetString (doc, attr->children, 1);
debug (g, _("disk[%zu]: filename: %s"), i, filename);
- }
- else
+ } else
/* For network protocols (eg. nbd), name may be omitted. */
filename = safe_strdup (g, "");
/* Get the disk format (may not be set). */
xpathCtx->node = nodes->nodeTab[i];
- xpformat = xmlXPathEvalExpression (BAD_CAST "./driver/@type", xpathCtx);
- if (xpformat != NULL &&
- xpformat->nodesetval &&
+ xpformat =
+ xmlXPathEvalExpression (BAD_CAST "./driver/@type", xpathCtx);
+ if (xpformat != NULL && xpformat->nodesetval &&
xpformat->nodesetval->nodeNr > 0) {
assert (xpformat->nodesetval->nodeTab[0]);
- assert (xpformat->nodesetval->nodeTab[0]->type == XML_ATTRIBUTE_NODE);
- attr = (xmlAttrPtr) xpformat->nodesetval->nodeTab[0];
- format = (char *) xmlNodeListGetString (doc, attr->children, 1);
+ assert (xpformat->nodesetval->nodeTab[0]->type ==
+ XML_ATTRIBUTE_NODE);
+ attr = (xmlAttrPtr)xpformat->nodesetval->nodeTab[0];
+ format = (char *)xmlNodeListGetString (doc, attr->children, 1);
}
/* Get the <readonly/> flag. */
xpathCtx->node = nodes->nodeTab[i];
xpreadonly = xmlXPathEvalExpression (BAD_CAST "./readonly", xpathCtx);
readonly = 0;
- if (xpreadonly != NULL &&
- xpreadonly->nodesetval &&
+ if (xpreadonly != NULL && xpreadonly->nodesetval &&
xpreadonly->nodesetval->nodeNr > 0)
readonly = 1;
if (f)
- t = f (g, filename, format, readonly, protocol, server, username, data);
+ t = f (g, filename, format, readonly, protocol, server, username,
+ data);
else
t = 0;
@@ -705,13 +745,13 @@ connect_live (guestfs_h *g, virDomainPtr dom)
/* This gives us a set of all the <channel> nodes related to the
* guestfsd virtio-serial channel.
*/
- xpathObj = xmlXPathEvalExpression (BAD_CAST
- "//devices/channel[@type=\"unix\" and "
- "./source/@mode=\"bind\" and "
- "./source/@path and "
- "./target/@type=\"virtio\" and "
- "./target/(a)name=\"org.libguestfs.channel.0\"]",
- xpathCtx);
+ xpathObj = xmlXPathEvalExpression (
+ BAD_CAST "//devices/channel[@type=\"unix\" and "
+ "./source/@mode=\"bind\" and "
+ "./source/@path and "
+ "./target/@type=\"virtio\" and "
+ "./target/(a)name=\"org.libguestfs.channel.0\"]",
+ xpathCtx);
if (xpathObj == NULL) {
error (g, _("unable to evaluate XPath expression"));
return -1;
@@ -728,23 +768,25 @@ connect_live (guestfs_h *g, virDomainPtr dom)
/* The path is in <source path=..> attribute. */
xppath = xmlXPathEvalExpression (BAD_CAST "./source/@path", xpathCtx);
- if (xppath == NULL ||
- xppath->nodesetval == NULL ||
+ if (xppath == NULL || xppath->nodesetval == NULL ||
xppath->nodesetval->nodeNr == 0) {
xmlXPathFreeObject (xppath);
- continue; /* no type attribute, skip it */
+ continue; /* no type attribute, skip it */
}
assert (xppath->nodesetval->nodeTab[0]);
assert (xppath->nodesetval->nodeTab[0]->type == XML_ATTRIBUTE_NODE);
- attr = (xmlAttrPtr) xppath->nodesetval->nodeTab[0];
- path = (char *) xmlNodeListGetString (doc, attr->children, 1);
+ attr = (xmlAttrPtr)xppath->nodesetval->nodeTab[0];
+ path = (char *)xmlNodeListGetString (doc, attr->children, 1);
break;
}
}
if (path == NULL) {
- error (g, _("this guest has no libvirt <channel> definition for
guestfsd\n"
- "See ATTACHING TO RUNNING DAEMONS in guestfs(3) for further
information."));
+ error (
+ g,
+ _("this guest has no libvirt <channel> definition for
guestfsd\n"
+ "See ATTACHING TO RUNNING DAEMONS in guestfs(3) for further "
+ "information."));
return -1;
}
@@ -762,15 +804,15 @@ get_domain_xml (guestfs_h *g, virDomainPtr dom)
CLEANUP_FREE char *xml = virDomainGetXMLDesc (dom, 0);
if (!xml) {
err = virGetLastError ();
- error (g, _("error reading libvirt XML information: %s"),
err->message);
+ error (g, _("error reading libvirt XML information: %s"),
+ err->message);
return NULL;
}
debug (g, "original domain XML:\n%s", xml);
/* Parse the domain XML into an XML document. */
- doc = xmlReadMemory (xml, strlen (xml),
- NULL, NULL, XML_PARSE_NONET);
+ doc = xmlReadMemory (xml, strlen (xml), NULL, NULL, XML_PARSE_NONET);
if (doc == NULL) {
error (g, _("unable to parse XML information returned by libvirt"));
return NULL;
@@ -781,22 +823,24 @@ get_domain_xml (guestfs_h *g, virDomainPtr dom)
#else /* no libvirt at compile time */
-#define NOT_IMPL(r) \
- error (g, _("add-domain API not available since this version of libguestfs was
compiled without libvirt")); \
+#define NOT_IMPL(r) \
+ error (g, _("add-domain API not available since this version of " \
+ "libguestfs was compiled without libvirt")); \
return r
int
guestfs_impl_add_domain (guestfs_h *g, const char *dom,
- const struct guestfs_add_domain_argv *optargs)
+ const struct guestfs_add_domain_argv *optargs)
{
- NOT_IMPL(-1);
+ NOT_IMPL (-1);
}
int
-guestfs_impl_add_libvirt_dom (guestfs_h *g, void *domvp,
- const struct guestfs_add_libvirt_dom_argv *optargs)
+guestfs_impl_add_libvirt_dom (
+ guestfs_h *g, void *domvp,
+ const struct guestfs_add_libvirt_dom_argv *optargs)
{
- NOT_IMPL(-1);
+ NOT_IMPL (-1);
}
#endif /* no libvirt at compile time */
diff --git a/src/libvirt-is-version.c b/src/libvirt-is-version.c
index e350c4d..90542cb 100644
--- a/src/libvirt-is-version.c
+++ b/src/libvirt-is-version.c
@@ -44,10 +44,10 @@ main (int argc, char *argv[])
switch (argc) {
case 4:
release = argtoint (argv[0], argv[3]);
- /*FALLTHROUGH*/
+ /*FALLTHROUGH*/
case 3:
minor = argtoint (argv[0], argv[2]);
- /*FALLTHROUGH*/
+ /*FALLTHROUGH*/
case 2:
major = argtoint (argv[0], argv[1]);
break;
@@ -60,8 +60,8 @@ main (int argc, char *argv[])
if (virGetVersion (&ver, NULL, NULL) == -1)
exit (EXIT_FAILURE);
- return ver >= (major * 1000000 + minor * 1000 + release)
- ? EXIT_SUCCESS : EXIT_FAILURE;
+ return ver >= (major * 1000000 + minor * 1000 + release) ? EXIT_SUCCESS
+ : EXIT_FAILURE;
}
static unsigned int
@@ -75,5 +75,5 @@ argtoint (const char *prog, const char *arg)
if (errno || *endptr)
error (EXIT_FAILURE, 0, "cannot parse integer argument '%s'",
arg);
- return (unsigned int) res;
+ return (unsigned int)res;
}
diff --git a/src/listfs.c b/src/listfs.c
index de3b6f5..3e0c9ef 100644
--- a/src/listfs.c
+++ b/src/listfs.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -34,7 +35,8 @@
*/
static void remove_from_list (char **list, const char *item);
-static int check_with_vfs_type (guestfs_h *g, const char *dev, struct stringsbuf *sb);
+static int check_with_vfs_type (guestfs_h *g, const char *dev,
+ struct stringsbuf *sb);
static int is_mbr_partition_type_42 (guestfs_h *g, const char *partition);
char **
@@ -44,9 +46,9 @@ guestfs_impl_list_filesystems (guestfs_h *g)
DECLARE_STRINGSBUF (ret);
const char *lvm2[] = { "lvm2", NULL };
- int has_lvm2 = guestfs_feature_available (g, (char **) lvm2);
+ int has_lvm2 = guestfs_feature_available (g, (char **)lvm2);
const char *ldm[] = { "ldm", NULL };
- int has_ldm = guestfs_feature_available (g, (char **) ldm);
+ int has_ldm = guestfs_feature_available (g, (char **)ldm);
CLEANUP_FREE_STRING_LIST char **devices = NULL;
CLEANUP_FREE_STRING_LIST char **partitions = NULL;
@@ -62,11 +64,14 @@ guestfs_impl_list_filesystems (guestfs_h *g)
* by using part-to-dev.
*/
devices = guestfs_list_devices (g);
- if (devices == NULL) goto error;
+ if (devices == NULL)
+ goto error;
partitions = guestfs_list_partitions (g);
- if (partitions == NULL) goto error;
+ if (partitions == NULL)
+ goto error;
mds = guestfs_list_md_devices (g);
- if (mds == NULL) goto error;
+ if (mds == NULL)
+ goto error;
for (i = 0; partitions[i] != NULL; ++i) {
CLEANUP_FREE char *dev = guestfs_part_to_dev (g, partitions[i]);
@@ -81,7 +86,7 @@ guestfs_impl_list_filesystems (guestfs_h *g)
/* Use vfs-type to check for filesystems on partitions. */
for (i = 0; partitions[i] != NULL; ++i) {
- if (has_ldm == 0 || ! is_mbr_partition_type_42 (g, partitions[i])) {
+ if (has_ldm == 0 || !is_mbr_partition_type_42 (g, partitions[i])) {
if (check_with_vfs_type (g, partitions[i], &ret) == -1)
goto error;
}
@@ -95,7 +100,8 @@ guestfs_impl_list_filesystems (guestfs_h *g)
if (has_lvm2 > 0) {
/* Use vfs-type to check for filesystems on LVs. */
lvs = guestfs_lvs (g);
- if (lvs == NULL) goto error;
+ if (lvs == NULL)
+ goto error;
for (i = 0; lvs[i] != NULL; ++i)
if (check_with_vfs_type (g, lvs[i], &ret) == -1)
@@ -105,14 +111,16 @@ guestfs_impl_list_filesystems (guestfs_h *g)
if (has_ldm > 0) {
/* Use vfs-type to check for filesystems on Windows dynamic disks. */
ldmvols = guestfs_list_ldm_volumes (g);
- if (ldmvols == NULL) goto error;
+ if (ldmvols == NULL)
+ goto error;
for (i = 0; ldmvols[i] != NULL; ++i)
if (check_with_vfs_type (g, ldmvols[i], &ret) == -1)
goto error;
ldmparts = guestfs_list_ldm_partitions (g);
- if (ldmparts == NULL) goto error;
+ if (ldmparts == NULL)
+ goto error;
for (i = 0; ldmparts[i] != NULL; ++i)
if (check_with_vfs_type (g, ldmparts[i], &ret) == -1)
@@ -123,7 +131,7 @@ guestfs_impl_list_filesystems (guestfs_h *g)
guestfs_int_end_stringsbuf (g, &ret);
return ret.argv;
- error:
+error:
guestfs_int_free_stringsbuf (&ret);
return NULL;
}
@@ -137,8 +145,8 @@ remove_from_list (char **list, const char *item)
for (i = 0; list[i] != NULL; ++i)
if (STREQ (list[i], item)) {
free (list[i]);
- for (; list[i+1] != NULL; ++i)
- list[i] = list[i+1];
+ for (; list[i + 1] != NULL; ++i)
+ list[i] = list[i + 1];
list[i] = NULL;
return;
}
@@ -149,7 +157,8 @@ remove_from_list (char **list, const char *item)
* 'ret' string list.
*/
static int
-check_with_vfs_type (guestfs_h *g, const char *device, struct stringsbuf *sb)
+check_with_vfs_type (guestfs_h *g, const char *device,
+ struct stringsbuf *sb)
{
const char *v;
CLEANUP_FREE char *vfs_type = NULL;
@@ -163,13 +172,14 @@ check_with_vfs_type (guestfs_h *g, const char *device, struct
stringsbuf *sb)
else if (STREQ (vfs_type, ""))
v = "unknown";
else if (STREQ (vfs_type, "btrfs")) {
- CLEANUP_FREE_BTRFSSUBVOLUME_LIST struct guestfs_btrfssubvolume_list *vols =
- guestfs_btrfs_subvolume_list (g, device);
+ CLEANUP_FREE_BTRFSSUBVOLUME_LIST struct guestfs_btrfssubvolume_list
+ *vols = guestfs_btrfs_subvolume_list (g, device);
if (vols == NULL)
return -1;
- int64_t default_volume = guestfs_btrfs_subvolume_get_default (g, device);
+ int64_t default_volume =
+ guestfs_btrfs_subvolume_get_default (g, device);
for (size_t i = 0; i < vols->len; i++) {
struct guestfs_btrfssubvolume *this = &vols->val[i];
@@ -177,24 +187,22 @@ check_with_vfs_type (guestfs_h *g, const char *device, struct
stringsbuf *sb)
/* Ignore the default subvolume. We get it by simply mounting
* the whole device of this btrfs filesystem.
*/
- if (this->btrfssubvolume_id == (uint64_t) default_volume)
+ if (this->btrfssubvolume_id == (uint64_t)default_volume)
continue;
- guestfs_int_add_sprintf (g, sb,
- "btrfsvol:%s/%s",
- device, this->btrfssubvolume_path);
+ guestfs_int_add_sprintf (g, sb, "btrfsvol:%s/%s", device,
+ this->btrfssubvolume_path);
guestfs_int_add_string (g, sb, "btrfs");
}
v = vfs_type;
- }
- else {
+ } else {
/* Ignore all "*_member" strings. In libblkid these are returned
* for things which are members of some RAID or LVM set, most
* importantly "LVM2_member" which is a PV.
*/
size_t n = strlen (vfs_type);
- if (n >= 7 && STREQ (&vfs_type[n-7], "_member"))
+ if (n >= 7 && STREQ (&vfs_type[n - 7], "_member"))
return 0;
/* Ignore LUKS-encrypted partitions. These are also containers. */
@@ -237,7 +245,7 @@ is_mbr_partition_type_42 (guestfs_h *g, const char *partition)
ret = mbr_id == 0x42;
- out:
+out:
guestfs_pop_error_handler (g);
return ret;
diff --git a/src/lpj.c b/src/lpj.c
index 37dfe2f..6122f13 100644
--- a/src/lpj.c
+++ b/src/lpj.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -54,7 +55,8 @@ gl_lock_define_initialized (static, lpj_lock);
static int lpj = 0;
static int read_lpj_from_dmesg (guestfs_h *g);
static int read_lpj_from_files (guestfs_h *g);
-static int read_lpj_common (guestfs_h *g, const char *func, struct command *cmd);
+static int read_lpj_common (guestfs_h *g, const char *func,
+ struct command *cmd);
int
guestfs_int_get_lpj (guestfs_h *g)
@@ -79,7 +81,7 @@ guestfs_int_get_lpj (guestfs_h *g)
}
lpj = read_lpj_from_files (g);
- out:
+out:
gl_lock_unlock (lpj_lock);
return lpj;
}
@@ -143,7 +145,7 @@ read_lpj_common (guestfs_h *g, const char *func, struct command *cmd)
CLEANUP_FREE char *buf = NULL;
guestfs_int_cmd_set_stdout_callback (cmd, read_all, &buf,
- CMD_STDOUT_FLAG_WHOLE_BUFFER);
+ CMD_STDOUT_FLAG_WHOLE_BUFFER);
r = guestfs_int_cmd_run (cmd);
if (r == -1)
return -1;
@@ -151,9 +153,8 @@ read_lpj_common (guestfs_h *g, const char *func, struct command *cmd)
char status_string[80];
debug (g, "%s: %s", func,
- guestfs_int_exit_status_to_string (r, "external command",
- status_string,
- sizeof status_string));
+ guestfs_int_exit_status_to_string (
+ r, "external command", status_string, sizeof status_string));
return -1;
}
diff --git a/src/match.c b/src/match.c
index 41cc5f9..4f1a6d4 100644
--- a/src/match.c
+++ b/src/match.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -57,13 +58,13 @@ guestfs_int_match1 (guestfs_h *g, const char *str, const pcre *re)
if (r == PCRE_ERROR_NOMATCH)
return NULL;
- return r == 2 ? safe_strndup (g, &str[vec[2]], vec[3]-vec[2]) : NULL;
+ return r == 2 ? safe_strndup (g, &str[vec[2]], vec[3] - vec[2]) : NULL;
}
/* Match a regular expression which contains exactly two captures. */
int
guestfs_int_match2 (guestfs_h *g, const char *str, const pcre *re,
- char **ret1, char **ret2)
+ char **ret1, char **ret2)
{
size_t len = strlen (str);
int vec[30], r;
@@ -75,8 +76,10 @@ guestfs_int_match2 (guestfs_h *g, const char *str, const pcre *re,
*ret1 = NULL;
*ret2 = NULL;
- if (r > 1) *ret1 = safe_strndup (g, &str[vec[2]], vec[3]-vec[2]);
- if (r > 2) *ret2 = safe_strndup (g, &str[vec[4]], vec[5]-vec[4]);
+ if (r > 1)
+ *ret1 = safe_strndup (g, &str[vec[2]], vec[3] - vec[2]);
+ if (r > 2)
+ *ret2 = safe_strndup (g, &str[vec[4]], vec[5] - vec[4]);
return 1;
}
@@ -84,7 +87,7 @@ guestfs_int_match2 (guestfs_h *g, const char *str, const pcre *re,
/* Match a regular expression which contains exactly three captures. */
int
guestfs_int_match3 (guestfs_h *g, const char *str, const pcre *re,
- char **ret1, char **ret2, char **ret3)
+ char **ret1, char **ret2, char **ret3)
{
size_t len = strlen (str);
int vec[30], r;
@@ -97,9 +100,12 @@ guestfs_int_match3 (guestfs_h *g, const char *str, const pcre *re,
*ret2 = NULL;
*ret3 = NULL;
- if (r > 1) *ret1 = safe_strndup (g, &str[vec[2]], vec[3]-vec[2]);
- if (r > 2) *ret2 = safe_strndup (g, &str[vec[4]], vec[5]-vec[4]);
- if (r > 3) *ret3 = safe_strndup (g, &str[vec[6]], vec[7]-vec[6]);
+ if (r > 1)
+ *ret1 = safe_strndup (g, &str[vec[2]], vec[3] - vec[2]);
+ if (r > 2)
+ *ret2 = safe_strndup (g, &str[vec[4]], vec[5] - vec[4]);
+ if (r > 3)
+ *ret3 = safe_strndup (g, &str[vec[6]], vec[7] - vec[6]);
return 1;
}
@@ -107,7 +113,7 @@ guestfs_int_match3 (guestfs_h *g, const char *str, const pcre *re,
/* Match a regular expression which contains exactly four captures. */
int
guestfs_int_match4 (guestfs_h *g, const char *str, const pcre *re,
- char **ret1, char **ret2, char **ret3, char **ret4)
+ char **ret1, char **ret2, char **ret3, char **ret4)
{
size_t len = strlen (str);
int vec[30], r;
@@ -121,10 +127,14 @@ guestfs_int_match4 (guestfs_h *g, const char *str, const pcre *re,
*ret3 = NULL;
*ret4 = NULL;
- if (r > 1) *ret1 = safe_strndup (g, &str[vec[2]], vec[3]-vec[2]);
- if (r > 2) *ret2 = safe_strndup (g, &str[vec[4]], vec[5]-vec[4]);
- if (r > 3) *ret3 = safe_strndup (g, &str[vec[6]], vec[7]-vec[6]);
- if (r > 4) *ret4 = safe_strndup (g, &str[vec[8]], vec[9]-vec[8]);
+ if (r > 1)
+ *ret1 = safe_strndup (g, &str[vec[2]], vec[3] - vec[2]);
+ if (r > 2)
+ *ret2 = safe_strndup (g, &str[vec[4]], vec[5] - vec[4]);
+ if (r > 3)
+ *ret3 = safe_strndup (g, &str[vec[6]], vec[7] - vec[6]);
+ if (r > 4)
+ *ret4 = safe_strndup (g, &str[vec[8]], vec[9] - vec[8]);
return 1;
}
@@ -132,8 +142,8 @@ guestfs_int_match4 (guestfs_h *g, const char *str, const pcre *re,
/* Match a regular expression which contains exactly six captures. */
int
guestfs_int_match6 (guestfs_h *g, const char *str, const pcre *re,
- char **ret1, char **ret2, char **ret3, char **ret4,
- char **ret5, char **ret6)
+ char **ret1, char **ret2, char **ret3, char **ret4,
+ char **ret5, char **ret6)
{
size_t len = strlen (str);
int vec[30], r;
@@ -149,12 +159,18 @@ guestfs_int_match6 (guestfs_h *g, const char *str, const pcre *re,
*ret5 = NULL;
*ret6 = NULL;
- if (r > 1) *ret1 = safe_strndup (g, &str[vec[2]], vec[3]-vec[2]);
- if (r > 2) *ret2 = safe_strndup (g, &str[vec[4]], vec[5]-vec[4]);
- if (r > 3) *ret3 = safe_strndup (g, &str[vec[6]], vec[7]-vec[6]);
- if (r > 4) *ret4 = safe_strndup (g, &str[vec[8]], vec[9]-vec[8]);
- if (r > 5) *ret5 = safe_strndup (g, &str[vec[10]], vec[11]-vec[10]);
- if (r > 6) *ret6 = safe_strndup (g, &str[vec[12]], vec[13]-vec[12]);
+ if (r > 1)
+ *ret1 = safe_strndup (g, &str[vec[2]], vec[3] - vec[2]);
+ if (r > 2)
+ *ret2 = safe_strndup (g, &str[vec[4]], vec[5] - vec[4]);
+ if (r > 3)
+ *ret3 = safe_strndup (g, &str[vec[6]], vec[7] - vec[6]);
+ if (r > 4)
+ *ret4 = safe_strndup (g, &str[vec[8]], vec[9] - vec[8]);
+ if (r > 5)
+ *ret5 = safe_strndup (g, &str[vec[10]], vec[11] - vec[10]);
+ if (r > 6)
+ *ret6 = safe_strndup (g, &str[vec[12]], vec[13] - vec[12]);
return 1;
}
diff --git a/src/mountable.c b/src/mountable.c
index 9f7b451..b585a36 100644
--- a/src/mountable.c
+++ b/src/mountable.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -24,11 +25,11 @@
#include "guestfs-internal.h"
#include "guestfs-internal-actions.h"
-
char *
guestfs_impl_mountable_device (guestfs_h *g, const char *mountable)
{
- CLEANUP_FREE_INTERNAL_MOUNTABLE struct guestfs_internal_mountable *mnt = NULL;
+ CLEANUP_FREE_INTERNAL_MOUNTABLE struct guestfs_internal_mountable *mnt =
+ NULL;
mnt = guestfs_internal_parse_mountable (g, mountable);
if (mnt == NULL)
@@ -40,7 +41,8 @@ guestfs_impl_mountable_device (guestfs_h *g, const char *mountable)
char *
guestfs_impl_mountable_subvolume (guestfs_h *g, const char *mountable)
{
- CLEANUP_FREE_INTERNAL_MOUNTABLE struct guestfs_internal_mountable *mnt = NULL;
+ CLEANUP_FREE_INTERNAL_MOUNTABLE struct guestfs_internal_mountable *mnt =
+ NULL;
mnt = guestfs_internal_parse_mountable (g, mountable);
if (mnt == NULL || STREQ (mnt->im_volume, "")) {
diff --git a/src/osinfo.c b/src/osinfo.c
index 4a4cbfc..b82502d 100644
--- a/src/osinfo.c
+++ b/src/osinfo.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
/* Read libosinfo XML files to parse out just the
@@ -68,7 +69,8 @@
COMPILE_REGEXP (re_major_minor, "(\\d+)\\.(\\d+)", 0)
gl_lock_define_initialized (static, osinfo_db_lock);
-static ssize_t osinfo_db_size = 0; /* 0 = unread, -1 = error, >= 1 = #records */
+static ssize_t osinfo_db_size =
+ 0; /* 0 = unread, -1 = error, >= 1 = #records */
static struct osinfo *osinfo_db = NULL;
static int read_osinfo_db (guestfs_h *g);
@@ -79,17 +81,19 @@ static void free_osinfo_db_entry (struct osinfo *);
* the operating system.
*
* This returns:
- * -1 => a fatal error ('error' has been called, caller must not ignore it)
+ * -1 => a fatal error ('error' has been called, caller must not ignore
+ * it)
* 0 => could not locate the OS
* 1 => matching OS found, the osinfo_ret pointer has been filled in
*/
int
guestfs_int_osinfo_map (guestfs_h *g, const struct guestfs_isoinfo *isoinfo,
- const struct osinfo **osinfo_ret)
+ const struct osinfo **osinfo_ret)
{
size_t i;
- /* We only need to lock the database when reading it for the first time. */
+ /* We only need to lock the database when reading it for the first time.
+ */
gl_lock_lock (osinfo_db_lock);
if (osinfo_db_size == 0) {
if (read_osinfo_db (g) == -1) {
@@ -103,7 +107,7 @@ guestfs_int_osinfo_map (guestfs_h *g, const struct guestfs_isoinfo
*isoinfo,
return 0;
/* Look in the database to see if we can find a match. */
- for (i = 0; i < (size_t) osinfo_db_size; ++i) {
+ for (i = 0; i < (size_t)osinfo_db_size; ++i) {
if (osinfo_db[i].re_system_id) {
if (!isoinfo->iso_system_id ||
!match (g, isoinfo->iso_system_id, osinfo_db[i].re_system_id))
@@ -118,13 +122,15 @@ guestfs_int_osinfo_map (guestfs_h *g, const struct guestfs_isoinfo
*isoinfo,
if (osinfo_db[i].re_publisher_id) {
if (!isoinfo->iso_publisher_id ||
- !match (g, isoinfo->iso_publisher_id, osinfo_db[i].re_publisher_id))
+ !match (g, isoinfo->iso_publisher_id,
+ osinfo_db[i].re_publisher_id))
continue;
}
if (osinfo_db[i].re_application_id) {
if (!isoinfo->iso_application_id ||
- !match (g, isoinfo->iso_application_id, osinfo_db[i].re_application_id))
+ !match (g, isoinfo->iso_application_id,
+ osinfo_db[i].re_application_id))
continue;
}
@@ -176,7 +182,8 @@ read_osinfo_db (guestfs_h *g)
for (;;) {
errno = 0;
d = readdir (dir);
- if (!d) break;
+ if (!d)
+ break;
if (STRSUFFIX (d->d_name, ".xml")) {
r = read_osinfo_db_xml (g, d->d_name);
@@ -201,7 +208,7 @@ read_osinfo_db (guestfs_h *g)
return 0;
- error:
+error:
if (dir)
closedir (dir);
@@ -209,7 +216,7 @@ read_osinfo_db (guestfs_h *g)
* mark the database as having a permanent error.
*/
if (osinfo_db_size > 0) {
- for (i = 0; i < (size_t) osinfo_db_size; ++i)
+ for (i = 0; i < (size_t)osinfo_db_size; ++i)
free_osinfo_db_entry (&osinfo_db[i]);
}
free (osinfo_db);
@@ -219,9 +226,12 @@ read_osinfo_db (guestfs_h *g)
return -1;
}
-static int read_iso_node (guestfs_h *g, xmlNodePtr iso_node, struct osinfo *osinfo);
-static int read_media_node (guestfs_h *g, xmlXPathContextPtr xpathCtx, xmlNodePtr
media_node, struct osinfo *osinfo);
-static int read_os_node (guestfs_h *g, xmlXPathContextPtr xpathCtx, xmlNodePtr os_node,
struct osinfo *osinfo);
+static int read_iso_node (guestfs_h *g, xmlNodePtr iso_node,
+ struct osinfo *osinfo);
+static int read_media_node (guestfs_h *g, xmlXPathContextPtr xpathCtx,
+ xmlNodePtr media_node, struct osinfo *osinfo);
+static int read_os_node (guestfs_h *g, xmlXPathContextPtr xpathCtx,
+ xmlNodePtr os_node, struct osinfo *osinfo);
/* Read a single XML file from LIBOSINFO_DB_OS_PATH/filename. Only
* memory allocation failures are fatal errors here.
@@ -255,8 +265,8 @@ read_osinfo_db_xml (guestfs_h *g, const char *filename)
/* Get all <iso> nodes at any depth, then use the parent pointers in
* order to work back up the tree.
*/
- xpathObj = xmlXPathEvalExpression (BAD_CAST "/libosinfo/os/media/iso",
- xpathCtx);
+ xpathObj =
+ xmlXPathEvalExpression (BAD_CAST "/libosinfo/os/media/iso", xpathCtx);
if (xpathObj == NULL) {
error (g, _("osinfo: %s: unable to evaluate XPath expression"),
pathname);
@@ -266,27 +276,27 @@ read_osinfo_db_xml (guestfs_h *g, const char *filename)
nodes = xpathObj->nodesetval;
if (nodes != NULL) {
- for (i = 0; i < (size_t) nodes->nodeNr; ++i) {
+ for (i = 0; i < (size_t)nodes->nodeNr; ++i) {
iso_node = nodes->nodeTab[i];
assert (iso_node != NULL);
- assert (STREQ ((const char *) iso_node->name, "iso"));
+ assert (STREQ ((const char *)iso_node->name, "iso"));
assert (iso_node->type == XML_ELEMENT_NODE);
media_node = iso_node->parent;
assert (media_node != NULL);
- assert (STREQ ((const char *) media_node->name, "media"));
+ assert (STREQ ((const char *)media_node->name, "media"));
assert (media_node->type == XML_ELEMENT_NODE);
os_node = media_node->parent;
assert (os_node != NULL);
- assert (STREQ ((const char *) os_node->name, "os"));
+ assert (STREQ ((const char *)os_node->name, "os"));
assert (os_node->type == XML_ELEMENT_NODE);
/* Allocate an osinfo record. */
osinfo_db_size++;
osinfo_db = safe_realloc (g, osinfo_db,
sizeof (struct osinfo) * osinfo_db_size);
- osinfo = &osinfo_db[osinfo_db_size-1];
+ osinfo = &osinfo_db[osinfo_db_size - 1];
memset (osinfo, 0, sizeof *osinfo);
/* Read XML fields into the new osinfo record. */
@@ -329,19 +339,16 @@ read_iso_node (guestfs_h *g, xmlNodePtr iso_node, struct osinfo
*osinfo)
xmlNodePtr child;
for (child = iso_node->children; child; child = child->next) {
- if (STREQ ((const char *) child->name, "system-id")) {
+ if (STREQ ((const char *)child->name, "system-id")) {
if (compile_re (g, child, &osinfo->re_system_id) == -1)
return -1;
- }
- else if (STREQ ((const char *) child->name, "volume-id")) {
+ } else if (STREQ ((const char *)child->name, "volume-id")) {
if (compile_re (g, child, &osinfo->re_volume_id) == -1)
return -1;
- }
- else if (STREQ ((const char *) child->name, "publisher-id")) {
+ } else if (STREQ ((const char *)child->name, "publisher-id")) {
if (compile_re (g, child, &osinfo->re_publisher_id) == -1)
return -1;
- }
- else if (STREQ ((const char *) child->name, "application-id")) {
+ } else if (STREQ ((const char *)child->name, "application-id")) {
if (compile_re (g, child, &osinfo->re_application_id) == -1)
return -1;
}
@@ -355,13 +362,15 @@ compile_re (guestfs_h *g, xmlNodePtr node, pcre **re)
{
const char *err;
int offset;
- CLEANUP_FREE char *content = (char *) xmlNodeGetContent (node);
+ CLEANUP_FREE char *content = (char *)xmlNodeGetContent (node);
if (content) {
*re = pcre_compile (content, 0, &err, &offset, NULL);
if (*re == NULL)
- debug (g, "osinfo: could not parse regular expression '%s': %s
(ignored)",
- content, err);
+ debug (
+ g,
+ "osinfo: could not parse regular expression '%s': %s
(ignored)",
+ content, err);
}
return 0;
@@ -381,7 +390,7 @@ read_media_node (guestfs_h *g, xmlXPathContextPtr xpathCtx,
attr = xp->nodesetval->nodeTab[0];
assert (attr);
assert (attr->type == XML_ATTRIBUTE_NODE);
- osinfo->arch = (char *) xmlNodeGetContent (attr);
+ osinfo->arch = (char *)xmlNodeGetContent (attr);
}
osinfo->is_live_disk = 0; /* If no 'live' attr, defaults to false. */
@@ -394,36 +403,37 @@ read_media_node (guestfs_h *g, xmlXPathContextPtr xpathCtx,
attr = xp2->nodesetval->nodeTab[0];
assert (attr);
assert (attr->type == XML_ATTRIBUTE_NODE);
- content = (char *) xmlNodeGetContent (attr);
+ content = (char *)xmlNodeGetContent (attr);
osinfo->is_live_disk = STREQ (content, "true");
}
return 0;
}
-static int parse_version (guestfs_h *g, xmlNodePtr node, struct osinfo *osinfo);
-static int parse_family (guestfs_h *g, xmlNodePtr node, struct osinfo *osinfo);
-static int parse_distro (guestfs_h *g, xmlNodePtr node, struct osinfo *osinfo);
+static int parse_version (guestfs_h *g, xmlNodePtr node,
+ struct osinfo *osinfo);
+static int parse_family (guestfs_h *g, xmlNodePtr node,
+ struct osinfo *osinfo);
+static int parse_distro (guestfs_h *g, xmlNodePtr node,
+ struct osinfo *osinfo);
/* Read some fields under the <os/> node. */
static int
-read_os_node (guestfs_h *g, xmlXPathContextPtr xpathCtx,
- xmlNodePtr os_node, struct osinfo *osinfo)
+read_os_node (guestfs_h *g, xmlXPathContextPtr xpathCtx, xmlNodePtr os_node,
+ struct osinfo *osinfo)
{
xmlNodePtr child;
for (child = os_node->children; child; child = child->next) {
- if (STREQ ((const char *) child->name, "name"))
- osinfo->product_name = (char *) xmlNodeGetContent (child);
- else if (STREQ ((const char *) child->name, "version")) {
+ if (STREQ ((const char *)child->name, "name"))
+ osinfo->product_name = (char *)xmlNodeGetContent (child);
+ else if (STREQ ((const char *)child->name, "version")) {
if (parse_version (g, child, osinfo) == -1)
return -1;
- }
- else if (STREQ ((const char *) child->name, "family")) {
+ } else if (STREQ ((const char *)child->name, "family")) {
if (parse_family (g, child, osinfo) == -1)
return -1;
- }
- else if (STREQ ((const char *) child->name, "distro")) {
+ } else if (STREQ ((const char *)child->name, "distro")) {
if (parse_distro (g, child, osinfo) == -1)
return -1;
}
@@ -438,7 +448,7 @@ parse_version (guestfs_h *g, xmlNodePtr node, struct osinfo *osinfo)
CLEANUP_FREE char *content = NULL;
CLEANUP_FREE char *major = NULL, *minor = NULL;
- content = (char *) xmlNodeGetContent (node);
+ content = (char *)xmlNodeGetContent (node);
if (content) {
if (match2 (g, content, re_major_minor, &major, &minor)) {
osinfo->major_version = guestfs_int_parse_unsigned_int (g, major);
@@ -460,7 +470,7 @@ parse_family (guestfs_h *g, xmlNodePtr node, struct osinfo *osinfo)
osinfo->type = OS_TYPE_UNKNOWN;
- content = (char *) xmlNodeGetContent (node);
+ content = (char *)xmlNodeGetContent (node);
if (content) {
if (STREQ (content, "linux"))
osinfo->type = OS_TYPE_LINUX;
@@ -488,7 +498,7 @@ parse_distro (guestfs_h *g, xmlNodePtr node, struct osinfo *osinfo)
osinfo->distro = OS_DISTRO_UNKNOWN;
- content = (char *) xmlNodeGetContent (node);
+ content = (char *)xmlNodeGetContent (node);
if (content) {
if (STREQ (content, "altlinux"))
osinfo->distro = OS_DISTRO_ALTLINUX;
diff --git a/src/private-data.c b/src/private-data.c
index 3f6e6f1..c44e36b 100644
--- a/src/private-data.c
+++ b/src/private-data.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -33,9 +34,10 @@
* majority of callers will never use it. This means g->pda is
* likely to be NULL.
*/
-struct pda_entry {
- char *key; /* key */
- void *data; /* opaque user data pointer */
+struct pda_entry
+{
+ char *key; /* key */
+ void *data; /* opaque user data pointer */
};
static size_t
@@ -91,9 +93,9 @@ void *
guestfs_get_private (guestfs_h *g, const char *key)
{
if (g->pda == NULL)
- return NULL; /* no keys have been set */
+ return NULL; /* no keys have been set */
- const struct pda_entry k = { .key = (char *) key };
+ const struct pda_entry k = {.key = (char *)key };
struct pda_entry *entry = hash_lookup (g->pda, &k);
if (entry)
return entry->data;
diff --git a/src/proto.c b/src/proto.c
index df7be89..eae4f1b 100644
--- a/src/proto.c
+++ b/src/proto.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -102,7 +103,7 @@ child_cleanup (guestfs_h *g)
/* Convenient wrapper to generate a progress message callback. */
void
guestfs_int_progress_message_callback (guestfs_h *g,
- const guestfs_progress *message)
+ const guestfs_progress *message)
{
uint64_t array[4];
@@ -111,8 +112,8 @@ guestfs_int_progress_message_callback (guestfs_h *g,
array[2] = message->position;
array[3] = message->total;
- guestfs_int_call_callbacks_array (g, GUESTFS_EVENT_PROGRESS,
- array, sizeof array / sizeof array[0]);
+ guestfs_int_call_callbacks_array (g, GUESTFS_EVENT_PROGRESS, array,
+ sizeof array / sizeof array[0]);
}
/* Connection modules call us back here when they get a log message. */
@@ -163,8 +164,8 @@ check_daemon_socket (guestfs_h *g)
assert (g->conn); /* callers must check this */
- again:
- if (! g->conn->ops->can_read_data (g, g->conn))
+again:
+ if (!g->conn->ops->can_read_data (g, g->conn))
return 1;
n = g->conn->ops->read_data (g, g->conn, buf, 4);
@@ -194,7 +195,8 @@ check_daemon_socket (guestfs_h *g)
}
if (flag != GUESTFS_CANCEL_FLAG) {
- error (g, _("check_daemon_socket: read 0x%x from daemon, expected 0x%x. Lost
protocol synchronization (bad!)\n"),
+ error (g, _("check_daemon_socket: read 0x%x from daemon, expected "
+ "0x%x. Lost protocol synchronization (bad!)\n"),
flag, GUESTFS_CANCEL_FLAG);
return -1;
}
@@ -203,9 +205,8 @@ check_daemon_socket (guestfs_h *g)
}
int
-guestfs_int_send (guestfs_h *g, int proc_nr,
- uint64_t progress_hint, uint64_t optargs_bitmask,
- xdrproc_t xdrp, char *args)
+guestfs_int_send (guestfs_h *g, int proc_nr, uint64_t progress_hint,
+ uint64_t optargs_bitmask, xdrproc_t xdrp, char *args)
{
struct guestfs_message_header hdr;
XDR xdr;
@@ -305,7 +306,8 @@ fadvise_sequential (int fd)
#endif
}
-static int send_file_chunk (guestfs_h *g, int cancel, const char *buf, size_t len);
+static int send_file_chunk (guestfs_h *g, int cancel, const char *buf,
+ size_t len);
static int send_file_data (guestfs_h *g, const char *buf, size_t len);
static int send_file_cancellation (guestfs_h *g);
static int send_file_complete (guestfs_h *g);
@@ -324,7 +326,7 @@ guestfs_int_send_file (guestfs_h *g, const char *filename)
g->user_cancel = 0;
- fd = open (filename, O_RDONLY|O_CLOEXEC);
+ fd = open (filename, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
perrorf (g, "open: %s", filename);
send_file_cancellation (g);
@@ -338,10 +340,11 @@ guestfs_int_send_file (guestfs_h *g, const char *filename)
r = read (fd, buf, GUESTFS_MAX_CHUNK_SIZE);
if (r == -1 && (errno == EINTR || errno == EAGAIN))
continue;
- if (r <= 0) break;
+ if (r <= 0)
+ break;
err = send_file_data (g, buf, r);
if (err < 0) {
- if (err == -2) /* daemon sent cancellation */
+ if (err == -2) /* daemon sent cancellation */
send_file_cancellation (g);
close (fd);
return err;
@@ -373,7 +376,7 @@ guestfs_int_send_file (guestfs_h *g, const char *filename)
err = send_file_complete (g);
if (err < 0) {
- if (err == -2) /* daemon sent cancellation */
+ if (err == -2) /* daemon sent cancellation */
send_file_cancellation (g);
return err;
}
@@ -417,16 +420,17 @@ send_file_chunk (guestfs_h *g, int cancel, const char *buf, size_t
buflen)
* excessive stack usage and unnecessary copies.
*/
msg_out = safe_malloc (g, GUESTFS_MAX_CHUNK_SIZE + 4 + 48);
- xdrmem_create (&xdr, msg_out + 4, GUESTFS_MAX_CHUNK_SIZE + 48, XDR_ENCODE);
+ xdrmem_create (&xdr, msg_out + 4, GUESTFS_MAX_CHUNK_SIZE + 48,
+ XDR_ENCODE);
/* Serialize the chunk. */
chunk.cancel = cancel;
chunk.data.data_len = buflen;
- chunk.data.data_val = (char *) buf;
+ chunk.data.data_val = (char *)buf;
if (!xdr_guestfs_chunk (&xdr, &chunk)) {
- error (g, _("xdr_guestfs_chunk failed (buf = %p, buflen = %zu)"),
- buf, buflen);
+ error (g, _("xdr_guestfs_chunk failed (buf = %p, buflen = %zu)"), buf,
+ buflen);
xdr_destroy (&xdr);
return -1;
}
@@ -522,33 +526,32 @@ recv_from_daemon (guestfs_h *g, uint32_t *size_rtn, void **buf_rtn)
if (*size_rtn == GUESTFS_LAUNCH_FLAG) {
if (g->state != LAUNCHING)
- error (g, _("received magic signature from guestfsd, but in state %d"),
- (int) g->state);
+ error (g,
+ _("received magic signature from guestfsd, but in state %d"),
+ (int)g->state);
else {
g->state = READY;
guestfs_int_call_callbacks_void (g, GUESTFS_EVENT_LAUNCH_DONE);
}
debug (g, "recv_from_daemon: received GUESTFS_LAUNCH_FLAG");
return 0;
- }
- else if (*size_rtn == GUESTFS_CANCEL_FLAG) {
+ } else if (*size_rtn == GUESTFS_CANCEL_FLAG) {
debug (g, "recv_from_daemon: received GUESTFS_CANCEL_FLAG");
return 0;
- }
- else if (*size_rtn == GUESTFS_PROGRESS_FLAG)
+ } else if (*size_rtn == GUESTFS_PROGRESS_FLAG)
/*FALLTHROUGH*/;
else if (*size_rtn > GUESTFS_MESSAGE_MAX) {
/* If this happens, it's pretty bad and we've probably lost
* synchronization.
*/
error (g, _("message length (%u) > maximum possible size (%d)"),
- (unsigned) *size_rtn, GUESTFS_MESSAGE_MAX);
+ (unsigned)*size_rtn, GUESTFS_MESSAGE_MAX);
return -1;
}
/* Calculate the message size. */
- message_size =
- *size_rtn != GUESTFS_PROGRESS_FLAG ? *size_rtn : PROGRESS_MESSAGE_SIZE;
+ message_size = *size_rtn != GUESTFS_PROGRESS_FLAG ? *size_rtn
+ : PROGRESS_MESSAGE_SIZE;
/* Allocate the complete buffer, size now known. */
*buf_rtn = safe_malloc (g, message_size);
@@ -568,26 +571,26 @@ recv_from_daemon (guestfs_h *g, uint32_t *size_rtn, void **buf_rtn)
return -1;
}
- /* ... it's a normal message (not progress/launch/cancel) so display
- * it if we're debugging.
- */
+/* ... it's a normal message (not progress/launch/cancel) so display
+ * it if we're debugging.
+ */
#ifdef ENABLE_PACKET_DUMP
if (g->verbose) {
ssize_t i, j;
for (i = 0; i < n; i += 16) {
printf ("%04zx: ", i);
- for (j = i; j < MIN (i+16, n); ++j)
+ for (j = i; j < MIN (i + 16, n); ++j)
printf ("%02x ", (*(unsigned char **)buf_rtn)[j]);
- for (; j < i+16; ++j)
+ for (; j < i + 16; ++j)
printf (" ");
printf ("|");
- for (j = i; j < MIN (i+16, n); ++j)
+ for (j = i; j < MIN (i + 16, n); ++j)
if (c_isprint ((*(char **)buf_rtn)[j]))
printf ("%c", (*(char **)buf_rtn)[j]);
else
printf (".");
- for (; j < i+16; ++j)
+ for (; j < i + 16; ++j)
printf (" ");
printf ("|\n");
}
@@ -598,11 +601,12 @@ recv_from_daemon (guestfs_h *g, uint32_t *size_rtn, void **buf_rtn)
}
int
-guestfs_int_recv_from_daemon (guestfs_h *g, uint32_t *size_rtn, void **buf_rtn)
+guestfs_int_recv_from_daemon (guestfs_h *g, uint32_t *size_rtn,
+ void **buf_rtn)
{
int r;
- again:
+again:
r = recv_from_daemon (g, size_rtn, buf_rtn);
if (r == -1)
return -1;
@@ -635,17 +639,15 @@ guestfs_int_recv_from_daemon (guestfs_h *g, uint32_t *size_rtn, void
**buf_rtn)
/* Receive a reply. */
int
-guestfs_int_recv (guestfs_h *g, const char *fn,
- guestfs_message_header *hdr,
- guestfs_message_error *err,
- xdrproc_t xdrp, char *ret)
+guestfs_int_recv (guestfs_h *g, const char *fn, guestfs_message_header *hdr,
+ guestfs_message_error *err, xdrproc_t xdrp, char *ret)
{
XDR xdr;
CLEANUP_FREE void *buf = NULL;
uint32_t size;
int r;
- again:
+again:
r = guestfs_int_recv_from_daemon (g, &size, &buf);
if (r == -1)
return -1;
@@ -658,7 +660,9 @@ guestfs_int_recv (guestfs_h *g, const char *fn,
goto again;
if (size == GUESTFS_LAUNCH_FLAG) {
- error (g, "%s: received unexpected launch flag from daemon when expecting
reply", fn);
+ error (g, "%s: received unexpected launch flag from daemon when "
+ "expecting reply",
+ fn);
return -1;
}
@@ -700,7 +704,7 @@ guestfs_int_recv_discard (guestfs_h *g, const char *fn)
uint32_t size;
int r;
- again:
+again:
r = guestfs_int_recv_from_daemon (g, &size, &buf);
if (r == -1)
return -1;
@@ -713,7 +717,9 @@ guestfs_int_recv_discard (guestfs_h *g, const char *fn)
goto again;
if (size == GUESTFS_LAUNCH_FLAG) {
- error (g, "%s: received unexpected launch flag from daemon when expecting
reply", fn);
+ error (g, "%s: received unexpected launch flag from daemon when "
+ "expecting reply",
+ fn);
return -1;
}
@@ -760,7 +766,8 @@ guestfs_int_recv_file (guestfs_h *g, const char *filename)
else if (STREQ (filename, "/dev/stderr"))
fd = dup (2);
else
- fd = open (filename, O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY|O_CLOEXEC, 0666);
+ fd = open (filename,
+ O_WRONLY | O_CREAT | O_TRUNC | O_NOCTTY | O_CLOEXEC, 0666);
if (fd == -1) {
perrorf (g, "%s", filename);
goto cancel;
@@ -796,7 +803,7 @@ guestfs_int_recv_file (guestfs_h *g, const char *filename)
return 0;
- cancel: ;
+cancel:;
/* Send cancellation message to daemon, then wait until it
* cancels (just throwing away data).
*/
@@ -804,8 +811,7 @@ guestfs_int_recv_file (guestfs_h *g, const char *filename)
char fbuf[4];
uint32_t flag = GUESTFS_CANCEL_FLAG;
- debug (g, "%s: waiting for daemon to acknowledge cancellation",
- __func__);
+ debug (g, "%s: waiting for daemon to acknowledge cancellation", __func__);
xdrmem_create (&xdr, fbuf, sizeof fbuf, XDR_ENCODE);
xdr_uint32_t (&xdr, &flag);
@@ -817,7 +823,7 @@ guestfs_int_recv_file (guestfs_h *g, const char *filename)
}
while (receive_file_data (g, NULL) > 0)
- ; /* just discard it */
+ ; /* just discard it */
return -1;
}
@@ -838,7 +844,8 @@ receive_file_data (guestfs_h *g, void **buf_r)
return -1;
if (len == GUESTFS_LAUNCH_FLAG || len == GUESTFS_CANCEL_FLAG) {
- error (g, _("receive_file_data: unexpected flag received when reading file
chunks"));
+ error (g, _("receive_file_data: unexpected flag received when reading "
+ "file chunks"));
return -1;
}
@@ -865,8 +872,10 @@ receive_file_data (guestfs_h *g, void **buf_r)
return 0;
}
- if (buf_r) *buf_r = chunk.data.data_val;
- else free (chunk.data.data_val); /* else caller frees */
+ if (buf_r)
+ *buf_r = chunk.data.data_val;
+ else
+ free (chunk.data.data_val); /* else caller frees */
return chunk.data.data_len;
}
diff --git a/src/stringsbuf.c b/src/stringsbuf.c
index 1486998..5d7392f 100644
--- a/src/stringsbuf.c
+++ b/src/stringsbuf.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
/* Note: Don't confuse this with stringsbuf in the daemon. */
@@ -28,7 +29,8 @@
#include "guestfs-internal.h"
void
-guestfs_int_add_string_nodup (guestfs_h *g, struct stringsbuf *sb, char *str)
+guestfs_int_add_string_nodup (guestfs_h *g, struct stringsbuf *sb,
+ char *str)
{
if (sb->size >= sb->alloc) {
sb->alloc += 64;
@@ -40,14 +42,15 @@ guestfs_int_add_string_nodup (guestfs_h *g, struct stringsbuf *sb,
char *str)
}
void
-guestfs_int_add_string (guestfs_h *g, struct stringsbuf *sb, const char *str)
+guestfs_int_add_string (guestfs_h *g, struct stringsbuf *sb,
+ const char *str)
{
guestfs_int_add_string_nodup (g, sb, safe_strdup (g, str));
}
void
guestfs_int_add_sprintf (guestfs_h *g, struct stringsbuf *sb,
- const char *fs, ...)
+ const char *fs, ...)
{
va_list args;
char *str;
diff --git a/src/test-utils.c b/src/test-utils.c
index 0516db5..797abc8 100644
--- a/src/test-utils.c
+++ b/src/test-utils.c
@@ -97,23 +97,23 @@ test_concat (void)
const char *test4[] = { "a", "", NULL };
const char *test5[] = { "a", "b", NULL };
- ret = guestfs_int_concat_strings ((char **) test1);
+ ret = guestfs_int_concat_strings ((char **)test1);
assert (STREQ (ret, ""));
free (ret);
- ret = guestfs_int_concat_strings ((char **) test2);
+ ret = guestfs_int_concat_strings ((char **)test2);
assert (STREQ (ret, ""));
free (ret);
- ret = guestfs_int_concat_strings ((char **) test3);
+ ret = guestfs_int_concat_strings ((char **)test3);
assert (STREQ (ret, "a"));
free (ret);
- ret = guestfs_int_concat_strings ((char **) test4);
+ ret = guestfs_int_concat_strings ((char **)test4);
assert (STREQ (ret, "a"));
free (ret);
- ret = guestfs_int_concat_strings ((char **) test5);
+ ret = guestfs_int_concat_strings ((char **)test5);
assert (STREQ (ret, "ab"));
free (ret);
}
@@ -129,23 +129,23 @@ test_join (void)
const char *test4[] = { "a", "", NULL };
const char *test5[] = { "a", "b", NULL };
- ret = guestfs_int_join_strings (":!", (char **) test1);
+ ret = guestfs_int_join_strings (":!", (char **)test1);
assert (STREQ (ret, ""));
free (ret);
- ret = guestfs_int_join_strings (":!", (char **) test2);
+ ret = guestfs_int_join_strings (":!", (char **)test2);
assert (STREQ (ret, ""));
free (ret);
- ret = guestfs_int_join_strings (":!", (char **) test3);
+ ret = guestfs_int_join_strings (":!", (char **)test3);
assert (STREQ (ret, "a"));
free (ret);
- ret = guestfs_int_join_strings (":!", (char **) test4);
+ ret = guestfs_int_join_strings (":!", (char **)test4);
assert (STREQ (ret, "a:!"));
free (ret);
- ret = guestfs_int_join_strings (":!", (char **) test5);
+ ret = guestfs_int_join_strings (":!", (char **)test5);
assert (STREQ (ret, "a:!b"));
free (ret);
}
@@ -156,10 +156,13 @@ test_validate_guid (void)
{
assert (guestfs_int_validate_guid ("") == 0);
assert (guestfs_int_validate_guid ("1") == 0);
- assert (guestfs_int_validate_guid ("21EC20203AEA1069A2DD08002B30309D") ==
0);
+ assert (guestfs_int_validate_guid ("21EC20203AEA1069A2DD08002B30309D") ==
+ 0);
- assert (guestfs_int_validate_guid ("{21EC2020-3AEA-1069-A2DD-08002B30309D}")
== 1);
- assert (guestfs_int_validate_guid ("21EC2020-3AEA-1069-A2DD-08002B30309D") ==
1);
+ assert (guestfs_int_validate_guid (
+ "{21EC2020-3AEA-1069-A2DD-08002B30309D}") == 1);
+ assert (guestfs_int_validate_guid (
+ "21EC2020-3AEA-1069-A2DD-08002B30309D") == 1);
}
/* Test guestfs_int_drive_name. */
diff --git a/src/tmpdirs.c b/src/tmpdirs.c
index afa3dd4..da47c40 100644
--- a/src/tmpdirs.c
+++ b/src/tmpdirs.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
diff --git a/src/utils.c b/src/utils.c
index f099a22..e17700a 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -68,7 +69,7 @@ guestfs_int_copy_string_list (char *const *argv)
size_t i, j;
char **ret;
- ret = malloc ((n+1) * sizeof (char *));
+ ret = malloc ((n + 1) * sizeof (char *));
if (ret == NULL)
return NULL;
ret[n] = NULL;
@@ -162,10 +163,10 @@ guestfs_int_split_string (char sep, const char *str)
/* We always return a list of length 1 + (# separator characters).
* We also have to add a trailing NULL.
*/
- ret = malloc ((n+2) * sizeof (char *));
+ ret = malloc ((n + 2) * sizeof (char *));
if (!ret)
return NULL;
- ret[n+1] = NULL;
+ ret[n + 1] = NULL;
for (n = i = 0; i <= len; ++i, ++n) {
c = strcspn (&str[i], reject);
@@ -187,27 +188,24 @@ guestfs_int_split_string (char sep, const char *str)
/* Translate a wait/system exit status into a printable string. */
char *
guestfs_int_exit_status_to_string (int status, const char *cmd_name,
- char *buffer, size_t buflen)
+ char *buffer, size_t buflen)
{
if (WIFEXITED (status)) {
if (WEXITSTATUS (status) == 0)
- snprintf (buffer, buflen, _("%s exited successfully"),
- cmd_name);
+ snprintf (buffer, buflen, _("%s exited successfully"), cmd_name);
else
snprintf (buffer, buflen, _("%s exited with error status %d"),
cmd_name, WEXITSTATUS (status));
- }
- else if (WIFSIGNALED (status)) {
- snprintf (buffer, buflen, _("%s killed by signal %d (%s)"),
- cmd_name, WTERMSIG (status), strsignal (WTERMSIG (status)));
- }
- else if (WIFSTOPPED (status)) {
- snprintf (buffer, buflen, _("%s stopped by signal %d (%s)"),
- cmd_name, WSTOPSIG (status), strsignal (WSTOPSIG (status)));
- }
- else {
- snprintf (buffer, buflen, _("%s exited for an unknown reason (status
%d)"),
- cmd_name, status);
+ } else if (WIFSIGNALED (status)) {
+ snprintf (buffer, buflen, _("%s killed by signal %d (%s)"), cmd_name,
+ WTERMSIG (status), strsignal (WTERMSIG (status)));
+ } else if (WIFSTOPPED (status)) {
+ snprintf (buffer, buflen, _("%s stopped by signal %d (%s)"), cmd_name,
+ WSTOPSIG (status), strsignal (WSTOPSIG (status)));
+ } else {
+ snprintf (buffer, buflen,
+ _("%s exited for an unknown reason (status %d)"), cmd_name,
+ status);
}
return buffer;
@@ -229,7 +227,7 @@ guestfs_int_random_string (char *ret, size_t len)
unsigned char c;
int saved_errno;
- fd = open ("/dev/urandom", O_RDONLY|O_CLOEXEC);
+ fd = open ("/dev/urandom", O_RDONLY | O_CLOEXEC);
if (fd == -1)
return -1;
@@ -262,7 +260,7 @@ char *
guestfs_int_drive_name (size_t index, char *ret)
{
if (index >= 26)
- ret = guestfs_int_drive_name (index/26 - 1, ret);
+ ret = guestfs_int_drive_name (index / 26 - 1, ret);
index %= 26;
*ret++ = 'a' + index;
*ret = '\0';
@@ -281,49 +279,41 @@ guestfs_int_drive_index (const char *name)
while (*name) {
if (*name >= 'a' && *name <= 'z')
- r = 26*r + (*name - 'a' + 1);
+ r = 26 * r + (*name - 'a' + 1);
else
return -1;
name++;
}
- return r-1;
+ return r - 1;
}
/* Similar to Tcl_GetBoolean. */
int
guestfs_int_is_true (const char *str)
{
- if (STREQ (str, "1") ||
- STRCASEEQ (str, "true") ||
- STRCASEEQ (str, "t") ||
- STRCASEEQ (str, "yes") ||
- STRCASEEQ (str, "y") ||
+ if (STREQ (str, "1") || STRCASEEQ (str, "true") || STRCASEEQ (str,
"t") ||
+ STRCASEEQ (str, "yes") || STRCASEEQ (str, "y") ||
STRCASEEQ (str, "on"))
return 1;
- if (STREQ (str, "0") ||
- STRCASEEQ (str, "false") ||
- STRCASEEQ (str, "f") ||
- STRCASEEQ (str, "no") ||
- STRCASEEQ (str, "n") ||
- STRCASEEQ (str, "off"))
+ if (STREQ (str, "0") || STRCASEEQ (str, "false") ||
+ STRCASEEQ (str, "f") || STRCASEEQ (str, "no") ||
+ STRCASEEQ (str, "n") || STRCASEEQ (str, "off"))
return 0;
return -1;
}
/* See src/appliance.c:guestfs_int_get_uefi. */
-const char *
-guestfs_int_ovmf_i386_firmware[] = {
+const char *guestfs_int_ovmf_i386_firmware[] = {
"/usr/share/edk2.git/ovmf-ia32/OVMF_CODE-pure-efi.fd",
"/usr/share/edk2.git/ovmf-ia32/OVMF_VARS-pure-efi.fd",
NULL
};
-const char *
-guestfs_int_ovmf_x86_64_firmware[] = {
+const char *guestfs_int_ovmf_x86_64_firmware[] = {
"/usr/share/OVMF/OVMF_CODE.fd",
"/usr/share/OVMF/OVMF_VARS.fd",
@@ -336,10 +326,8 @@ guestfs_int_ovmf_x86_64_firmware[] = {
NULL
};
-const char *
-guestfs_int_aavmf_firmware[] = {
- "/usr/share/AAVMF/AAVMF_CODE.fd",
- "/usr/share/AAVMF/AAVMF_VARS.fd",
+const char *guestfs_int_aavmf_firmware[] = {
+ "/usr/share/AAVMF/AAVMF_CODE.fd",
"/usr/share/AAVMF/AAVMF_VARS.fd",
"/usr/share/edk2.git/aarch64/QEMU_EFI-pflash.raw",
"/usr/share/edk2.git/aarch64/vars-template-pflash.raw",
diff --git a/src/whole-file.c b/src/whole-file.c
index ae376b3..540de43 100644
--- a/src/whole-file.c
+++ b/src/whole-file.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
*/
#include <config.h>
@@ -42,7 +43,7 @@ guestfs_int_read_whole_file (guestfs_h *g, const char *filename,
ssize_t r;
struct stat statbuf;
- fd = open (filename, O_RDONLY|O_CLOEXEC);
+ fd = open (filename, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
perrorf (g, "open: %s", filename);
return -1;
diff --git a/test-tool/test-tool.c b/test-tool/test-tool.c
index c632440..28b8b46 100644
--- a/test-tool/test-tool.c
+++ b/test-tool/test-tool.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
@@ -64,8 +65,7 @@ usage (void)
" --timeout n\n"
" -t n Set launch timeout (default: %d seconds)\n"
" --version\n"
- " -V Display libguestfs version and exit\n"
- ),
+ " -V Display libguestfs version and exit\n"),
DEFAULT_TIMEOUT);
}
@@ -80,12 +80,9 @@ main (int argc, char *argv[])
static const char *options = "t:V?";
static const struct option long_options[] = {
- { "help", 0, 0, '?' },
- { "qemu", 1, 0, 0 },
- { "qemudir", 1, 0, 0 },
- { "timeout", 1, 0, 't' },
- { "version", 0, 0, 'V' },
- { 0, 0, 0, 0 }
+ { "help", 0, 0, '?' }, { "qemu", 1, 0, 0 },
+ { "qemudir", 1, 0, 0 }, { "timeout", 1, 0, 't' },
+ { "version", 0, 0, 'V' }, { 0, 0, 0, 0 }
};
int c;
int option_index;
@@ -99,21 +96,19 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* options which are long only */
+ case 0: /* options which are long only */
if (STREQ (long_options[option_index].name, "qemu")) {
qemu = optarg;
qemu_use_wrapper = 0;
- }
- else if (STREQ (long_options[option_index].name, "qemudir")) {
+ } else if (STREQ (long_options[option_index].name, "qemudir")) {
qemu = optarg;
qemu_use_wrapper = 1;
- }
- else
- error (EXIT_FAILURE, 0,
- _("unknown long option: %s (%d)"),
+ } else
+ error (EXIT_FAILURE, 0, _("unknown long option: %s (%d)"),
long_options[option_index].name, option_index);
break;
@@ -129,9 +124,9 @@ main (int argc, char *argv[])
vers = guestfs_version (g);
if (vers == NULL)
exit (EXIT_FAILURE);
- printf ("%s
%"PRIi64".%"PRIi64".%"PRIi64"%s\n",
- "libguestfs-test-tool",
- vers->major, vers->minor, vers->release, vers->extra);
+ printf ("%s %" PRIi64 ".%" PRIi64 ".%" PRIi64
"%s\n",
+ "libguestfs-test-tool", vers->major, vers->minor,
+ vers->release, vers->extra);
guestfs_free_version (vers);
guestfs_close (g);
exit (EXIT_SUCCESS);
@@ -149,14 +144,15 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, 0, _("extra arguments on the command line"));
/* Everyone ignores the documentation, so ... */
- printf ("
************************************************************\n"
- " * IMPORTANT NOTICE\n"
- " *\n"
- " * When reporting bugs, include the COMPLETE, UNEDITED\n"
- " * output below in your bug report.\n"
- " *\n"
- "
************************************************************\n"
- );
+ printf (
+ " ************************************************************\n"
+ " * IMPORTANT NOTICE\n"
+ " *\n"
+ " * When reporting bugs, include the COMPLETE, UNEDITED\n"
+ " * output below in your bug report.\n"
+ " *\n"
+ " "
+ "************************************************************\n");
sleep (3);
/* Create the handle. */
@@ -164,9 +160,9 @@ main (int argc, char *argv[])
if (g == NULL)
error (EXIT_FAILURE, errno, "guestfs_create_flags");
if (guestfs_parse_environment (g) == -1)
- error (EXIT_FAILURE, 0,
- _("failed parsing environment variables.\n"
- "Check earlier messages, and the output of the 'printenv'
command."));
+ error (EXIT_FAILURE, 0, _("failed parsing environment variables.\n"
+ "Check earlier messages, and the output of "
+ "the 'printenv' command."));
guestfs_set_verbose (g, 1);
if (qemu)
@@ -203,13 +199,13 @@ main (int argc, char *argv[])
ignore_value (system ("getenforce"));
/* Configure the handle. */
- if (guestfs_add_drive_scratch (g, 100*1024*1024, -1) == -1)
+ if (guestfs_add_drive_scratch (g, 100 * 1024 * 1024, -1) == -1)
exit (EXIT_FAILURE);
- printf ("guestfs_get_append: %s\n", guestfs_get_append (g) ? :
"(null)");
+ printf ("guestfs_get_append: %s\n", guestfs_get_append (g) ?:
"(null)");
printf ("guestfs_get_autosync: %d\n", guestfs_get_autosync (g));
p = guestfs_get_backend (g);
- printf ("guestfs_get_backend: %s\n", p ? : "(null)");
+ printf ("guestfs_get_backend: %s\n", p ?: "(null)");
free (p);
pp = guestfs_get_backend_settings (g);
printf ("guestfs_get_backend_settings: [");
@@ -222,7 +218,7 @@ main (int argc, char *argv[])
printf ("]\n");
free (pp);
p = guestfs_get_cachedir (g);
- printf ("guestfs_get_cachedir: %s\n", p ? : "(null)");
+ printf ("guestfs_get_cachedir: %s\n", p ?: "(null)");
free (p);
printf ("guestfs_get_direct: %d\n", guestfs_get_direct (g));
p = guestfs_get_hv (g);
@@ -230,17 +226,17 @@ main (int argc, char *argv[])
free (p);
printf ("guestfs_get_memsize: %d\n", guestfs_get_memsize (g));
printf ("guestfs_get_network: %d\n", guestfs_get_network (g));
- printf ("guestfs_get_path: %s\n", guestfs_get_path (g) ? :
"(null)");
+ printf ("guestfs_get_path: %s\n", guestfs_get_path (g) ?:
"(null)");
printf ("guestfs_get_pgroup: %d\n", guestfs_get_pgroup (g));
printf ("guestfs_get_program: %s\n", guestfs_get_program (g));
printf ("guestfs_get_recovery_proc: %d\n", guestfs_get_recovery_proc (g));
printf ("guestfs_get_selinux: %d\n", guestfs_get_selinux (g));
printf ("guestfs_get_smp: %d\n", guestfs_get_smp (g));
p = guestfs_get_sockdir (g);
- printf ("guestfs_get_sockdir: %s\n", p ? : "(null)");
+ printf ("guestfs_get_sockdir: %s\n", p ?: "(null)");
free (p);
p = guestfs_get_tmpdir (g);
- printf ("guestfs_get_tmpdir: %s\n", p ? : "(null)");
+ printf ("guestfs_get_tmpdir: %s\n", p ?: "(null)");
free (p);
printf ("guestfs_get_trace: %d\n", guestfs_get_trace (g));
printf ("guestfs_get_verbose: %d\n", guestfs_get_verbose (g));
@@ -308,9 +304,9 @@ set_qemu (guestfs_h *g, const char *path, int use_wrapper)
if (getenv ("LIBGUESTFS_QEMU") != NULL ||
getenv ("LIBGUESTFS_HV") != NULL)
- error (EXIT_FAILURE, 0,
- _("LIBGUESTFS_HV/LIBGUESTFS_QEMU environment variable is already set,
so\n"
- "--qemu/--qemudir options cannot be used."));
+ error (EXIT_FAILURE, 0, _("LIBGUESTFS_HV/LIBGUESTFS_QEMU environment "
+ "variable is already set, so\n"
+ "--qemu/--qemudir options cannot be used."));
if (!use_wrapper) {
if (access (path, X_OK) == -1)
@@ -324,8 +320,7 @@ set_qemu (guestfs_h *g, const char *path, int use_wrapper)
/* This should be a source directory, so check it. */
if (asprintf (&buffer, "%s/pc-bios", path) == -1)
error (EXIT_FAILURE, errno, "asprintf");
- if (stat (buffer, &statbuf) == -1 ||
- !S_ISDIR (statbuf.st_mode))
+ if (stat (buffer, &statbuf) == -1 || !S_ISDIR (statbuf.st_mode))
error (EXIT_FAILURE, errno,
_("path does not look like a qemu source directory: %s"), path);
@@ -337,24 +332,26 @@ set_qemu (guestfs_h *g, const char *path, int use_wrapper)
fchmod (fd, 0700);
fp = fdopen (fd, "w");
- fprintf (fp,
- "#!/bin/sh -\n"
- "host_cpu=%s\n"
- "qemudir='%s'\n"
- "case $host_cpu in\n"
- " amd64*)\n"
- "
qemu=\"$qemudir/$host_cpu-softmmu/qemu-system-x86_64\"\n"
- " ;;\n"
- " arm*)
qemu=\"$qemudir/$host_cpu-softmmu/qemu-system-arm\"\n"
- " ;;\n"
- " powerpc64|ppc64le|powerpc64le)\n"
- "
qemu=\"$qemudir/$host_cpu-softmmu/qemu-system-ppc64\"\n"
- " ;;\n"
- " *)
qemu=\"$qemudir/$host_cpu-softmmu/qemu-system-$host_cpu\"\n"
- " ;;\n"
- "esac\n"
- "exec \"$qemu\" -L \"$qemudir/pc-bios\"
\"$@\"\n",
- host_cpu, path);
+ fprintf (
+ fp,
+ "#!/bin/sh -\n"
+ "host_cpu=%s\n"
+ "qemudir='%s'\n"
+ "case $host_cpu in\n"
+ " amd64*)\n"
+ "
qemu=\"$qemudir/$host_cpu-softmmu/qemu-system-x86_64\"\n"
+ " ;;\n"
+ " arm*)
qemu=\"$qemudir/$host_cpu-softmmu/qemu-system-arm\"\n"
+ " ;;\n"
+ " powerpc64|ppc64le|powerpc64le)\n"
+ "
qemu=\"$qemudir/$host_cpu-softmmu/qemu-system-ppc64\"\n"
+ " ;;\n"
+ " *) "
+ "qemu=\"$qemudir/$host_cpu-softmmu/qemu-system-$host_cpu\"\n"
+ " ;;\n"
+ "esac\n"
+ "exec \"$qemu\" -L \"$qemudir/pc-bios\"
\"$@\"\n",
+ host_cpu, path);
fclose (fp);
guestfs_set_hv (g, qemuwrapper);
diff --git a/tests/c-api/test-add-drive-opts.c b/tests/c-api/test-add-drive-opts.c
index 4f39e26..ed3133b 100644
--- a/tests/c-api/test-add-drive-opts.c
+++ b/tests/c-api/test-add-drive-opts.c
@@ -42,14 +42,12 @@ main (int argc, char *argv[])
if (r == -1)
exit (EXIT_FAILURE);
r = guestfs_add_drive_opts (g, "/dev/null",
- GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
- -1);
+ GUESTFS_ADD_DRIVE_OPTS_READONLY, 1, -1);
if (r == -1)
exit (EXIT_FAILURE);
r = guestfs_add_drive_opts (g, "/dev/null",
GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
- -1);
+ GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -1);
if (r == -1)
exit (EXIT_FAILURE);
diff --git a/tests/c-api/test-add-libvirt-dom.c b/tests/c-api/test-add-libvirt-dom.c
index 612b86e..a728d4f 100644
--- a/tests/c-api/test-add-libvirt-dom.c
+++ b/tests/c-api/test-add-libvirt-dom.c
@@ -36,34 +36,33 @@
static void
make_test_xml (FILE *fp, const char *cwd)
{
- fprintf (fp,
- "<?xml version=\"1.0\"?>\n"
- "<node>\n"
- " <domain type='test'>\n"
- " <name>guest</name>\n"
- " <os>\n"
- " <type>hvm</type>\n"
- " <boot dev='hd'/>\n"
- " </os>\n"
- " <memory>524288</memory>\n"
- " <devices>\n"
- " <disk type='file'>\n"
- " <source
file='%s/test-add-libvirt-dom-1.img'/>\n"
- " <target dev='hda'/>\n"
- " </disk>\n"
- " <disk type='file'>\n"
- " <driver name='qemu' type='raw'/>\n"
- " <source
file='%s/test-add-libvirt-dom-2.img'/>\n"
- " <target dev='hdb'/>\n"
- " </disk>\n"
- " <disk type='file'>\n"
- " <driver name='qemu'
type='qcow2'/>\n"
- " <source
file='%s/test-add-libvirt-dom-3.img'/>\n"
- " <target dev='hdc'/>\n"
- " </disk>\n"
- " </devices>\n"
- " </domain>\n"
- "</node>",
+ fprintf (fp, "<?xml version=\"1.0\"?>\n"
+ "<node>\n"
+ " <domain type='test'>\n"
+ " <name>guest</name>\n"
+ " <os>\n"
+ " <type>hvm</type>\n"
+ " <boot dev='hd'/>\n"
+ " </os>\n"
+ " <memory>524288</memory>\n"
+ " <devices>\n"
+ " <disk type='file'>\n"
+ " <source
file='%s/test-add-libvirt-dom-1.img'/>\n"
+ " <target dev='hda'/>\n"
+ " </disk>\n"
+ " <disk type='file'>\n"
+ " <driver name='qemu'
type='raw'/>\n"
+ " <source
file='%s/test-add-libvirt-dom-2.img'/>\n"
+ " <target dev='hdb'/>\n"
+ " </disk>\n"
+ " <disk type='file'>\n"
+ " <driver name='qemu'
type='qcow2'/>\n"
+ " <source
file='%s/test-add-libvirt-dom-3.img'/>\n"
+ " <target dev='hdc'/>\n"
+ " </disk>\n"
+ " </devices>\n"
+ " </domain>\n"
+ "</node>",
cwd, cwd, cwd);
}
@@ -90,7 +89,8 @@ main (int argc, char *argv[])
backend = guestfs_get_backend (g);
if (STREQ (backend, "uml")) {
free (backend);
- error (77, 0, "test skipped because UML backend does not support qcow2");
+ error (77, 0,
+ "test skipped because UML backend does not support qcow2");
}
free (backend);
@@ -104,15 +104,15 @@ main (int argc, char *argv[])
fclose (fp);
if (guestfs_disk_create (g, "test-add-libvirt-dom-1.img", "raw",
- 1024*1024, -1) == -1)
+ 1024 * 1024, -1) == -1)
exit (EXIT_FAILURE);
if (guestfs_disk_create (g, "test-add-libvirt-dom-2.img", "raw",
- 1024*1024, -1) == -1)
+ 1024 * 1024, -1) == -1)
exit (EXIT_FAILURE);
if (guestfs_disk_create (g, "test-add-libvirt-dom-3.img", "qcow2",
- 1024*1024, -1) == -1)
+ 1024 * 1024, -1) == -1)
exit (EXIT_FAILURE);
/* Create the libvirt connection. */
@@ -129,12 +129,11 @@ main (int argc, char *argv[])
dom = virDomainLookupByName (conn, "guest");
if (!dom) {
err = virGetLastError ();
- error (EXIT_FAILURE, 0,
- "no libvirt domain called '%s': %s", "guest",
err->message);
+ error (EXIT_FAILURE, 0, "no libvirt domain called '%s': %s",
"guest",
+ err->message);
}
- r = guestfs_add_libvirt_dom (g, dom,
- GUESTFS_ADD_LIBVIRT_DOM_READONLY, 1,
+ r = guestfs_add_libvirt_dom (g, dom, GUESTFS_ADD_LIBVIRT_DOM_READONLY, 1,
-1);
if (r == -1)
exit (EXIT_FAILURE);
diff --git a/tests/c-api/test-backend-settings.c b/tests/c-api/test-backend-settings.c
index 371a247..5d0b98e 100644
--- a/tests/c-api/test-backend-settings.c
+++ b/tests/c-api/test-backend-settings.c
@@ -68,13 +68,11 @@ main (int argc, char *argv[])
*/
for (pass = 0; pass <= 1; ++pass) {
if (pass == 0) {
- const char *initial_settings[] = {
- "foo", "foo=1", "foo=bar", "bar",
"baz=value", NULL
- };
- r = guestfs_set_backend_settings (g, (char **) initial_settings);
+ const char *initial_settings[] = { "foo", "foo=1",
"foo=bar",
+ "bar", "baz=value", NULL };
+ r = guestfs_set_backend_settings (g, (char **)initial_settings);
assert (r == 0);
- }
- else /* pass == 1 */ {
+ } else /* pass == 1 */ {
const char *initial_settings = "foo:foo=1:foo=bar:bar:baz=value";
guestfs_close (g);
diff --git a/tests/c-api/test-command.c b/tests/c-api/test-command.c
index b14f0f1..c08a5b1 100644
--- a/tests/c-api/test-command.c
+++ b/tests/c-api/test-command.c
@@ -27,7 +27,7 @@
#include <unistd.h>
#include <error.h>
-#define STREQ(a,b) (strcmp((a),(b)) == 0)
+#define STREQ(a, b) (strcmp ((a), (b)) == 0)
int
main (int argc, char *argv[])
diff --git a/tests/c-api/test-debug-to-file.c b/tests/c-api/test-debug-to-file.c
index 10e36c6..3031d11 100644
--- a/tests/c-api/test-debug-to-file.c
+++ b/tests/c-api/test-debug-to-file.c
@@ -35,12 +35,8 @@
#include "ignore-value.h"
static void
-debug_to_file (guestfs_h *g,
- void *opaque,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
+debug_to_file (guestfs_h *g, void *opaque, uint64_t event, int event_handle,
+ int flags, const char *buf, size_t buf_len,
const uint64_t *array, size_t array_len)
{
FILE *fp = opaque;
@@ -63,11 +59,11 @@ main (int argc, char *argv[])
if (g == NULL)
error (EXIT_FAILURE, errno, "guestfs_create");
- if (guestfs_set_event_callback
- (g, debug_to_file,
- GUESTFS_EVENT_LIBRARY | GUESTFS_EVENT_APPLIANCE |
- GUESTFS_EVENT_WARNING | GUESTFS_EVENT_TRACE,
- 0, debugfp) == -1)
+ if (guestfs_set_event_callback (
+ g, debug_to_file,
+ GUESTFS_EVENT_LIBRARY | GUESTFS_EVENT_APPLIANCE |
+ GUESTFS_EVENT_WARNING | GUESTFS_EVENT_TRACE,
+ 0, debugfp) == -1)
exit (EXIT_FAILURE);
if (guestfs_set_verbose (g, 1) == -1)
@@ -76,9 +72,8 @@ main (int argc, char *argv[])
if (guestfs_set_trace (g, 1) == -1)
exit (EXIT_FAILURE);
- if (guestfs_add_drive_opts (g, "/dev/null",
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
- GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
+ if (guestfs_add_drive_opts (g, "/dev/null", GUESTFS_ADD_DRIVE_OPTS_FORMAT,
+ "raw", GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
-1) == -1)
exit (EXIT_FAILURE);
diff --git a/tests/c-api/test-dlopen.c b/tests/c-api/test-dlopen.c
index 8a4174c..345a51a 100644
--- a/tests/c-api/test-dlopen.c
+++ b/tests/c-api/test-dlopen.c
@@ -31,7 +31,7 @@
typedef struct guestfs_h guestfs_h;
typedef guestfs_h *(*guestfs_create_t) (void);
-typedef const char * (*guestfs_get_program_t) (guestfs_h *);
+typedef const char *(*guestfs_get_program_t) (guestfs_h *);
typedef void (*guestfs_close_t) (guestfs_h *);
#ifndef LIBRARY
@@ -47,8 +47,7 @@ read_symbol (void *lib, const char *symbol)
dlerror (); /* Clear error indicator. */
symval = dlsym (lib, symbol);
if ((err = dlerror ()) != NULL)
- error (EXIT_FAILURE, 0,
- "could not read symbol: %s: %s", symbol, err);
+ error (EXIT_FAILURE, 0, "could not read symbol: %s: %s", symbol, err);
return symval;
}
@@ -62,7 +61,8 @@ main (int argc, char *argv[])
guestfs_h *g;
if (access (LIBRARY, X_OK) == -1)
- error (77, errno, "test skipped because %s cannot be accessed", LIBRARY);
+ error (77, errno, "test skipped because %s cannot be accessed",
+ LIBRARY);
lib = dlopen (LIBRARY, RTLD_LAZY);
if (lib == NULL)
diff --git a/tests/c-api/test-environment.c b/tests/c-api/test-environment.c
index d5a03d4..362d818 100644
--- a/tests/c-api/test-environment.c
+++ b/tests/c-api/test-environment.c
@@ -41,22 +41,27 @@ main (int argc, char *argv[])
/* What's the default memsize? */
g = guestfs_create ();
- if (!g) error (EXIT_FAILURE, errno, "guestfs_create");
+ if (!g)
+ error (EXIT_FAILURE, errno, "guestfs_create");
default_memsize = guestfs_get_memsize (g);
- if (default_memsize == -1) exit (EXIT_FAILURE);
+ if (default_memsize == -1)
+ exit (EXIT_FAILURE);
guestfs_close (g);
/* Check that guestfs_create parses the environment. */
setenv ("LIBGUESTFS_MEMSIZE", "799", 1);
g = guestfs_create ();
- if (!g) error (EXIT_FAILURE, errno, "guestfs_create");
+ if (!g)
+ error (EXIT_FAILURE, errno, "guestfs_create");
assert (guestfs_get_memsize (g) == 799);
guestfs_close (g);
- /* Check that guestfs_create_flags with no flags parses the environment. */
+ /* Check that guestfs_create_flags with no flags parses the environment.
+ */
setenv ("LIBGUESTFS_MEMSIZE", "798", 1);
g = guestfs_create_flags (0);
- if (!g) error (EXIT_FAILURE, errno, "guestfs_create_flags");
+ if (!g)
+ error (EXIT_FAILURE, errno, "guestfs_create_flags");
assert (guestfs_get_memsize (g) == 798);
guestfs_close (g);
@@ -64,10 +69,12 @@ main (int argc, char *argv[])
setenv ("LIBGUESTFS_MEMSIZE", "797", 1);
g = guestfs_create_flags (GUESTFS_CREATE_NO_ENVIRONMENT);
assert (guestfs_get_memsize (g) == default_memsize);
- if (!g) error (EXIT_FAILURE, errno, "guestfs_create_flags");
+ if (!g)
+ error (EXIT_FAILURE, errno, "guestfs_create_flags");
setenv ("LIBGUESTFS_MEMSIZE", "796", 1);
r = guestfs_parse_environment (g);
- if (r == -1) exit (EXIT_FAILURE);
+ if (r == -1)
+ exit (EXIT_FAILURE);
assert (guestfs_get_memsize (g) == 796);
guestfs_close (g);
@@ -75,7 +82,8 @@ main (int argc, char *argv[])
setenv ("LIBGUESTFS_MEMSIZE", "795", 1);
g = guestfs_create_flags (GUESTFS_CREATE_NO_ENVIRONMENT);
assert (guestfs_get_memsize (g) == default_memsize);
- if (!g) error (EXIT_FAILURE, errno, "guestfs_create_flags");
+ if (!g)
+ error (EXIT_FAILURE, errno, "guestfs_create_flags");
setenv ("LIBGUESTFS_MEMSIZE", "794", 1);
const char *local_environment[] = {
"LIBGUESTFS_MEMSIZE=793",
@@ -85,8 +93,9 @@ main (int argc, char *argv[])
"BLAH",
NULL
};
- r = guestfs_parse_environment_list (g, (char **) local_environment);
- if (r == -1) exit (EXIT_FAILURE);
+ r = guestfs_parse_environment_list (g, (char **)local_environment);
+ if (r == -1)
+ exit (EXIT_FAILURE);
assert (guestfs_get_memsize (g) == 793);
guestfs_close (g);
diff --git a/tests/c-api/test-event-string.c b/tests/c-api/test-event-string.c
index e94000d..6007b63 100644
--- a/tests/c-api/test-event-string.c
+++ b/tests/c-api/test-event-string.c
@@ -53,7 +53,8 @@ main (int argc, char *argv[])
assert (STREQ (str, "close,progress"));
free (str);
- events = GUESTFS_EVENT_CLOSE | GUESTFS_EVENT_SUBPROCESS_QUIT | GUESTFS_EVENT_ENTER;
+ events = GUESTFS_EVENT_CLOSE | GUESTFS_EVENT_SUBPROCESS_QUIT |
+ GUESTFS_EVENT_ENTER;
str = guestfs_event_to_string (events);
assert (str != NULL);
assert (STREQ (str, "close,enter,subprocess_quit"));
diff --git a/tests/c-api/test-private-data.c b/tests/c-api/test-private-data.c
index 9ebe7a8..42e7f39 100644
--- a/tests/c-api/test-private-data.c
+++ b/tests/c-api/test-private-data.c
@@ -37,20 +37,16 @@ static size_t close_callback_called = 0;
/* This callback deletes all test keys in the handle. */
static void
-close_callback (guestfs_h *g,
- void *opaque,
- uint64_t event,
- int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+close_callback (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array, size_t array_len)
{
const char *key;
void *data;
close_callback_called++;
- again:
+again:
data = guestfs_first_private (g, &key);
while (data != NULL) {
if (strncmp (key, PREFIX, strlen (PREFIX)) == 0) {
@@ -73,19 +69,19 @@ main (int argc, char *argv[])
if (g == NULL)
error (EXIT_FAILURE, errno, "guestfs_create");
- if (guestfs_set_event_callback (g, close_callback, GUESTFS_EVENT_CLOSE,
- 0, NULL) == -1)
+ if (guestfs_set_event_callback (g, close_callback, GUESTFS_EVENT_CLOSE, 0,
+ NULL) == -1)
exit (EXIT_FAILURE);
- guestfs_set_private (g, PREFIX "a", (void *) 1);
- guestfs_set_private (g, PREFIX "b", (void *) 2);
- guestfs_set_private (g, PREFIX "c", (void *) 3);
- guestfs_set_private (g, PREFIX "a", (void *) 4); /* overwrites previous */
+ guestfs_set_private (g, PREFIX "a", (void *)1);
+ guestfs_set_private (g, PREFIX "b", (void *)2);
+ guestfs_set_private (g, PREFIX "c", (void *)3);
+ guestfs_set_private (g, PREFIX "a", (void *)4); /* overwrites previous */
/* Check we can fetch keys. */
- assert (guestfs_get_private (g, PREFIX "a") == (void *) 4);
- assert (guestfs_get_private (g, PREFIX "b") == (void *) 2);
- assert (guestfs_get_private (g, PREFIX "c") == (void *) 3);
+ assert (guestfs_get_private (g, PREFIX "a") == (void *)4);
+ assert (guestfs_get_private (g, PREFIX "b") == (void *)2);
+ assert (guestfs_get_private (g, PREFIX "c") == (void *)3);
assert (guestfs_get_private (g, PREFIX "d") == NULL);
/* Check we can count keys by iterating. */
diff --git a/tests/c-api/test-pwd.c b/tests/c-api/test-pwd.c
index 61b88ec..b1dd532 100644
--- a/tests/c-api/test-pwd.c
+++ b/tests/c-api/test-pwd.c
@@ -28,8 +28,8 @@
int
main (int argc, char *argv[])
{
- char *cwd = getcwd(NULL, 0);
- printf("%s", cwd);
+ char *cwd = getcwd (NULL, 0);
+ printf ("%s", cwd);
exit (EXIT_SUCCESS);
}
diff --git a/tests/c-api/test-user-cancel.c b/tests/c-api/test-user-cancel.c
index 3823682..25bc86e 100644
--- a/tests/c-api/test-user-cancel.c
+++ b/tests/c-api/test-user-cancel.c
@@ -48,19 +48,20 @@
#include "guestfs.h"
#include "guestfs-internal-frontend.h"
-static const off_t filesize = 1024*1024*1024;
+static const off_t filesize = 1024 * 1024 * 1024;
-static void *start_test_thread (void *) __attribute__((noreturn));
+static void *start_test_thread (void *) __attribute__ ((noreturn));
static off_t random_cancel_posn (void);
-struct test_thread_data {
- guestfs_h *g; /* handle */
- int direction; /* direction of transfer */
-#define DIRECTION_UP 1 /* upload (test thread is writing) */
-#define DIRECTION_DOWN 2 /* download (test thread is reading) */
- int fd; /* pipe to read/write */
- off_t cancel_posn; /* position at which to cancel */
- off_t transfer_size; /* how much data thread wrote/read */
+struct test_thread_data
+{
+ guestfs_h *g; /* handle */
+ int direction; /* direction of transfer */
+#define DIRECTION_UP 1 /* upload (test thread is writing) */
+#define DIRECTION_DOWN 2 /* download (test thread is reading) */
+ int fd; /* pipe to read/write */
+ off_t cancel_posn; /* position at which to cancel */
+ off_t transfer_size; /* how much data thread wrote/read */
};
int
@@ -134,11 +135,12 @@ main (int argc, char *argv[])
/* We expect to get an error, with errno == EINTR. */
if (op_error == -1 && op_errno == EINTR)
printf ("test-user-cancel: upload cancellation test passed (%ld/%ld)\n",
- (long) data.cancel_posn, (long) data.transfer_size);
+ (long)data.cancel_posn, (long)data.transfer_size);
else {
fprintf (stderr, "test-user-cancel: upload cancellation test FAILED\n");
- fprintf (stderr, "cancel_posn %ld, upload returned %d, errno = %d (%s)\n",
- (long) data.cancel_posn, op_error, op_errno, strerror (op_errno));
+ fprintf (
+ stderr, "cancel_posn %ld, upload returned %d, errno = %d (%s)\n",
+ (long)data.cancel_posn, op_error, op_errno, strerror (op_errno));
errors++;
}
@@ -150,7 +152,7 @@ main (int argc, char *argv[])
if (guestfs_touch (g, "/download") == -1)
exit (EXIT_FAILURE);
- if (guestfs_truncate_size (g, "/download", filesize/4) == -1)
+ if (guestfs_truncate_size (g, "/download", filesize / 4) == -1)
exit (EXIT_FAILURE);
data.g = g;
@@ -191,12 +193,15 @@ main (int argc, char *argv[])
/* We expect to get an error, with errno == EINTR. */
if (op_error == -1 && op_errno == EINTR)
- printf ("test-user-cancel: download cancellation test passed (%ld/%ld)\n",
- (long) data.cancel_posn, (long) data.transfer_size);
+ printf (
+ "test-user-cancel: download cancellation test passed (%ld/%ld)\n",
+ (long)data.cancel_posn, (long)data.transfer_size);
else {
- fprintf (stderr, "test-user-cancel: download cancellation test FAILED\n");
- fprintf (stderr, "cancel_posn %ld, upload returned %d, errno = %d (%s)\n",
- (long) data.cancel_posn, op_error, op_errno, strerror (op_errno));
+ fprintf (stderr,
+ "test-user-cancel: download cancellation test FAILED\n");
+ fprintf (
+ stderr, "cancel_posn %ld, upload returned %d, errno = %d (%s)\n",
+ (long)data.cancel_posn, op_error, op_errno, strerror (op_errno));
errors++;
}
@@ -242,7 +247,7 @@ start_test_thread (void *datav)
"test thread: write to pipe after user cancel");
data->transfer_size += r;
}
- } else { /* thread is reading */
+ } else { /* thread is reading */
/* Sink data, up to the cancellation point. */
while (data->transfer_size < data->cancel_posn) {
n = MIN (sizeof buffer,
@@ -292,7 +297,7 @@ random_cancel_posn (void)
r = random_gauss (mu, sd);
} while (r <= 0);
- return (off_t) r;
+ return (off_t)r;
}
/* Generate a random Gaussian distributed number using the Box-Muller
@@ -311,6 +316,6 @@ random_gauss (double mu, double sd)
w = sqrt ((-2. * log (w)) / w);
y1 = x1 * w;
- //y2 = x2 * w;
+ // y2 = x2 * w;
return mu + y1 * sd;
}
diff --git a/tests/c-api/tests-main.c b/tests/c-api/tests-main.c
index e3af651..b8dc27e 100644
--- a/tests/c-api/tests-main.c
+++ b/tests/c-api/tests-main.c
@@ -119,7 +119,7 @@ init_basic_fs_on_lvm (guestfs_h *g)
if (guestfs_pvcreate (g, "/dev/sda1") == -1)
return -1;
- if (guestfs_vgcreate (g, "VG", (char **) pvs) == -1)
+ if (guestfs_vgcreate (g, "VG", (char **)pvs) == -1)
return -1;
if (guestfs_lvcreate (g, "LV", "VG", 8) == -1)
@@ -167,13 +167,15 @@ print_strings (char *const *argv)
printf ("\t%s\n", argv[argc]);
}
-static int compare_lists (char **, char **, int (*) (const char *, const char *));
+static int compare_lists (char **, char **,
+ int (*) (const char *, const char *));
/* Compare 'ret' to the string list that follows. */
int
is_string_list (char **ret, size_t n, ...)
{
- CLEANUP_FREE /* sic */ char **expected = malloc ((n+1) * sizeof (char *));
+ CLEANUP_FREE /* sic */ char **expected =
+ malloc ((n + 1) * sizeof (char *));
size_t i;
va_list args;
@@ -189,7 +191,8 @@ is_string_list (char **ret, size_t n, ...)
int
is_device_list (char **ret, size_t n, ...)
{
- CLEANUP_FREE /* sic */ char **expected = malloc ((n+1) * sizeof (char *));
+ CLEANUP_FREE /* sic */ char **expected =
+ malloc ((n + 1) * sizeof (char *));
size_t i;
va_list args;
@@ -224,7 +227,7 @@ compare_lists (char **ret, char **expected,
return 1; /* test expecting true for OK */
- fail:
+fail:
fprintf (stderr, "returned list was:\n");
print_strings (ret);
fprintf (stderr, "expected list was:\n");
@@ -290,7 +293,8 @@ check_file_md5 (const char *ret, const char *filename)
md5sum (filename, expected);
if (STRNEQ (ret, expected)) {
- fprintf (stderr, "test failed: MD5 returned (%s) does not match MD5 of file %s
(%s)\n",
+ fprintf (stderr, "test failed: MD5 returned (%s) does not match MD5 of "
+ "file %s (%s)\n",
ret, filename, expected);
return -1;
}
@@ -308,7 +312,7 @@ get_key (char **hash, const char *key)
for (i = 0; hash[i] != NULL; i += 2) {
if (STREQ (hash[i], key))
- return hash[i+1];
+ return hash[i + 1];
}
return NULL; /* key not found */
@@ -326,8 +330,10 @@ check_hash (char **ret, const char *key, const char *expected)
}
if (STRNEQ (value, expected)) {
- fprintf (stderr, "test failed: hash key %s = \"%s\" is not expected
value \"%s\"\n",
- key, value, expected);
+ fprintf (
+ stderr,
+ "test failed: hash key %s = \"%s\" is not expected value
\"%s\"\n",
+ key, value, expected);
return -1;
}
@@ -346,8 +352,8 @@ match_re (const char *str, const char *pattern)
re = pcre_compile (pattern, 0, &err, &offset, NULL);
if (re == NULL)
- error (EXIT_FAILURE, 0,
- "cannot compile regular expression '%s': %s", pattern,
err);
+ error (EXIT_FAILURE, 0, "cannot compile regular expression '%s':
%s",
+ pattern, err);
r = pcre_exec (re, NULL, str, len, 0, 0, vec, sizeof vec / sizeof vec[0]);
pcre_free (re);
@@ -369,16 +375,16 @@ substitute_srcdir (const char *path)
srcdir = getenv ("srcdir");
if (!srcdir)
- error (EXIT_FAILURE, 0,
- "environment variable $srcdir is not defined.\n"
- "Normally it is defined by automake. If you are running the\n"
- "tests directly, set $srcdir to point to the source
tests/c-api\n"
- "directory.");
+ error (
+ EXIT_FAILURE, 0,
+ "environment variable $srcdir is not defined.\n"
+ "Normally it is defined by automake. If you are running the\n"
+ "tests directly, set $srcdir to point to the source tests/c-api\n"
+ "directory.");
if (asprintf (&ret, "%s%s", srcdir, path + 7) == -1)
error (EXIT_FAILURE, errno, "asprintf");
- }
- else {
+ } else {
ret = strdup (path);
if (!ret)
error (EXIT_FAILURE, errno, "strdup");
@@ -397,7 +403,8 @@ static void
next_test (guestfs_h *g, size_t test_num, const char *test_name)
{
if (guestfs_get_verbose (g))
- printf
("-------------------------------------------------------------------------------\n");
+ printf ("--------------------------------------------------------------"
+ "-----------------\n");
printf ("%3zu/%3zu %s\n", test_num, nr_tests, test_name);
}
@@ -413,8 +420,7 @@ skipped (const char *test_name, const char *fs, ...)
va_end (args);
assert (len >= 0);
- printf (" %s skipped (reason: %s)\n",
- test_name, reason);
+ printf (" %s skipped (reason: %s)\n", test_name, reason);
}
/* Create the handle, with attached disks. */
@@ -429,17 +435,19 @@ create_handle (void)
exit (EXIT_FAILURE);
}
- if (guestfs_add_drive_scratch (g, INT64_C(2)*1024*1024*1024, -1) == -1) {
+ if (guestfs_add_drive_scratch (g, INT64_C (2) * 1024 * 1024 * 1024, -1) ==
+ -1) {
printf ("FAIL: guestfs_add_drive_scratch\n");
exit (EXIT_FAILURE);
}
- if (guestfs_add_drive_scratch (g, INT64_C(2)*1024*1024*1024, -1) == -1) {
+ if (guestfs_add_drive_scratch (g, INT64_C (2) * 1024 * 1024 * 1024, -1) ==
+ -1) {
printf ("FAIL: guestfs_add_drive_scratch\n");
exit (EXIT_FAILURE);
}
- if (guestfs_add_drive_scratch (g, INT64_C(10)*1024*1024, -1) == -1) {
+ if (guestfs_add_drive_scratch (g, INT64_C (10) * 1024 * 1024, -1) == -1) {
printf ("FAIL: guestfs_add_drive_scratch\n");
exit (EXIT_FAILURE);
}
diff --git a/tests/c-api/tests.h b/tests/c-api/tests.h
index d8d5881..34a8c01 100644
--- a/tests/c-api/tests.h
+++ b/tests/c-api/tests.h
@@ -19,7 +19,8 @@
#ifndef TESTS_H_
#define TESTS_H_
-struct test {
+struct test
+{
int (*test_fn) (guestfs_h *g);
const char *name;
};
@@ -38,13 +39,15 @@ extern void no_test_warnings (void);
extern int is_string_list (char **ret, size_t n, ...);
extern int is_device_list (char **ret, size_t n, ...);
extern int compare_devices (const char *dev1, const char *dev2);
-extern int compare_buffers (const char *b1, size_t s1, const char *b2, size_t s2);
+extern int compare_buffers (const char *b1, size_t s1, const char *b2,
+ size_t s2);
extern int check_file_md5 (const char *ret, const char *filename);
extern const char *get_key (char **hash, const char *key);
extern int check_hash (char **ret, const char *key, const char *expected);
extern int match_re (const char *str, const char *pattern);
extern int using_cross_appliance (void);
extern char *substitute_srcdir (const char *path);
-extern void skipped (const char *test_name, const char *fs, ...) __attribute__((format
(printf,2,3)));
+extern void skipped (const char *test_name, const char *fs, ...)
+ __attribute__ ((format (printf, 2, 3)));
#endif /* TESTS_H_ */
diff --git a/tests/charsets/test-charset-fidelity.c
b/tests/charsets/test-charset-fidelity.c
index 9a477ce..a113ee3 100644
--- a/tests/charsets/test-charset-fidelity.c
+++ b/tests/charsets/test-charset-fidelity.c
@@ -35,10 +35,11 @@
static const char ourenvvar[] = "SKIP_TEST_CHARSET_FIDELITY";
-struct filesystem {
- const char *fs_name; /* Name of filesystem. */
- int fs_case_insensitive; /* True if filesystem is case insensitive. */
- int fs_8bit_only; /* True if fs only supports 8 bit chars. */
+struct filesystem
+{
+ const char *fs_name; /* Name of filesystem. */
+ int fs_case_insensitive; /* True if filesystem is case insensitive. */
+ int fs_8bit_only; /* True if fs only supports 8 bit chars. */
const char *fs_mount_options; /* Mount options, if required. */
const char *fs_feature; /* Feature test, if required. */
@@ -46,19 +47,19 @@ struct filesystem {
* in libguestfs). The filesystems should be able to pass these
* tests if they are working correctly.
*/
- int fs_skip_latin1; /* Skip latin1 test. */
- int fs_skip_latin2; /* Skip latin2 test. */
+ int fs_skip_latin1; /* Skip latin1 test. */
+ int fs_skip_latin2; /* Skip latin2 test. */
};
static struct filesystem filesystems[] = {
- { "ext2", 0, 0, NULL, NULL, 0, 0 },
- { "ext3", 0, 0, NULL, NULL, 0, 0 },
- { "ext4", 0, 0, NULL, NULL, 0, 0 },
+ { "ext2", 0, 0, NULL, NULL, 0, 0 },
+ { "ext3", 0, 0, NULL, NULL, 0, 0 },
+ { "ext4", 0, 0, NULL, NULL, 0, 0 },
{ "btrfs", 0, 0, NULL, "btrfs", 0, 0 },
- { "vfat", 1, 0, "iocharset=iso8859-1,utf8", NULL, 1, 1 },
+ { "vfat", 1, 0, "iocharset=iso8859-1,utf8", NULL, 1, 1 },
{ "msdos", 1, 1, "iocharset=iso8859-1", NULL, 0, 0 },
/* In reality NTFS is case insensitive, but the ntfs-3g driver isn't. */
- { "ntfs", 0, 0, NULL, "ntfs3g", 0, 0 },
+ { "ntfs", 0, 0, NULL, "ntfs3g", 0, 0 },
};
static void test_filesystem (guestfs_h *g, const struct filesystem *fs);
@@ -91,7 +92,7 @@ main (int argc, char *argv[])
if (g == NULL)
error (EXIT_FAILURE, 0, "failed to create handle");
- if (guestfs_add_drive_scratch (g, 1024*1024*1024, -1) == -1)
+ if (guestfs_add_drive_scratch (g, 1024 * 1024 * 1024, -1) == -1)
exit (EXIT_FAILURE);
if (guestfs_launch (g) == -1)
@@ -118,7 +119,7 @@ test_filesystem (guestfs_h *g, const struct filesystem *fs)
char envvar[sizeof (ourenvvar) + 20];
char *str;
- if (fs->fs_feature && !guestfs_feature_available (g, (char **) feature)) {
+ if (fs->fs_feature && !guestfs_feature_available (g, (char **)feature)) {
printf ("skipped test of %s because %s feature not available\n",
fs->fs_name, fs->fs_feature);
return;
@@ -148,7 +149,7 @@ test_filesystem (guestfs_h *g, const struct filesystem *fs)
test_latin2 (g, fs);
test_chinese (g, fs);
- out:
+out:
unmount_filesystem (g, fs);
}
@@ -164,7 +165,7 @@ mount_filesystem (guestfs_h *g, const struct filesystem *fs)
{
const char *mount_options;
- mount_options = fs->fs_mount_options ? : "";
+ mount_options = fs->fs_mount_options ?: "";
if (guestfs_mount_options (g, mount_options, "/dev/sda1", "/") ==
-1)
exit (EXIT_FAILURE);
}
@@ -199,26 +200,25 @@ test_ascii (guestfs_h *g, const struct filesystem *fs)
if (fs->fs_case_insensitive) { /* case insensitive */
if (count != 2)
- error (EXIT_FAILURE, 0,
- "error: %s: %s is supposed to be case-insensitive, but %zu files
"
- "(instead of 2) were returned",
- __func__, fs->fs_name, count);
+ error (
+ EXIT_FAILURE, 0,
+ "error: %s: %s is supposed to be case-insensitive, but %zu files "
+ "(instead of 2) were returned",
+ __func__, fs->fs_name, count);
- if (STRCASENEQ (files[0], "abc") ||
- STRCASENEQ (files[1], "def"))
+ if (STRCASENEQ (files[0], "abc") || STRCASENEQ (files[1],
"def"))
error (EXIT_FAILURE, 0,
"error: %s: %s returned unexpected filenames '%s' and
'%s'",
__func__, fs->fs_name, files[0], files[1]);
- }
- else { /* case sensitive */
+ } else { /* case sensitive */
if (count != 3)
- error (EXIT_FAILURE, 0,
- "error: %s: %s is supposed to be case-sensitive, but %zu files "
- "(instead of 3) were returned",
- __func__, fs->fs_name, count);
+ error (
+ EXIT_FAILURE, 0,
+ "error: %s: %s is supposed to be case-sensitive, but %zu files "
+ "(instead of 3) were returned",
+ __func__, fs->fs_name, count);
- if (STRNEQ (files[0], "ABC") ||
- STRNEQ (files[1], "abc") ||
+ if (STRNEQ (files[0], "ABC") || STRNEQ (files[1], "abc") ||
STRNEQ (files[2], "def"))
error (EXIT_FAILURE, 0,
"error: %s: %s returned unexpected filenames '%s',
'%s', '%s'",
@@ -264,23 +264,24 @@ test_latin1 (guestfs_h *g, const struct filesystem *fs)
if (fs->fs_case_insensitive) { /* case insensitive */
if (count != 1)
- error (EXIT_FAILURE, 0,
- "error: %s: %s is supposed to be case-insensitive, but %zu files
"
- "(instead of 1) were returned",
- __func__, fs->fs_name, count);
+ error (
+ EXIT_FAILURE, 0,
+ "error: %s: %s is supposed to be case-insensitive, but %zu files "
+ "(instead of 1) were returned",
+ __func__, fs->fs_name, count);
if (memcmp (files[0], o_tilde, 3) != 0 &&
memcmp (files[0], O_tilde, 3) != 0)
error (EXIT_FAILURE, 0,
- "error: %s: %s returned unexpected filename '%s'",
- __func__, fs->fs_name, files[0]);
- }
- else { /* case sensitive */
+ "error: %s: %s returned unexpected filename '%s'",
__func__,
+ fs->fs_name, files[0]);
+ } else { /* case sensitive */
if (count != 2)
- error (EXIT_FAILURE, 0,
- "error: %s: %s is supposed to be case-sensitive, but %zu files "
- "(instead of 2) were returned",
- __func__, fs->fs_name, count);
+ error (
+ EXIT_FAILURE, 0,
+ "error: %s: %s is supposed to be case-sensitive, but %zu files "
+ "(instead of 2) were returned",
+ __func__, fs->fs_name, count);
if (memcmp (files[0], O_tilde, 3) != 0 ||
memcmp (files[1], o_tilde, 3) != 0)
@@ -326,23 +327,24 @@ test_latin2 (guestfs_h *g, const struct filesystem *fs)
if (fs->fs_case_insensitive) { /* case insensitive */
if (count != 1)
- error (EXIT_FAILURE, 0,
- "error: %s: %s is supposed to be case-insensitive, but %zu files
"
- "(instead of 1) were returned",
- __func__, fs->fs_name, count);
+ error (
+ EXIT_FAILURE, 0,
+ "error: %s: %s is supposed to be case-insensitive, but %zu files "
+ "(instead of 1) were returned",
+ __func__, fs->fs_name, count);
if (memcmp (files[0], o_dacute, 3) != 0 &&
memcmp (files[0], O_dacute, 3) != 0)
error (EXIT_FAILURE, 0,
- "error: %s: %s returned unexpected filename '%s'",
- __func__, fs->fs_name, files[0]);
- }
- else { /* case sensitive */
+ "error: %s: %s returned unexpected filename '%s'",
__func__,
+ fs->fs_name, files[0]);
+ } else { /* case sensitive */
if (count != 2)
- error (EXIT_FAILURE, 0,
- "error: %s: %s is supposed to be case-sensitive, but %zu files "
- "(instead of 2) were returned",
- __func__, fs->fs_name, count);
+ error (
+ EXIT_FAILURE, 0,
+ "error: %s: %s is supposed to be case-sensitive, but %zu files "
+ "(instead of 2) were returned",
+ __func__, fs->fs_name, count);
if (memcmp (files[0], O_dacute, 3) != 0 ||
memcmp (files[1], o_dacute, 3) != 0)
@@ -365,12 +367,9 @@ test_chinese (guestfs_h *g, const struct filesystem *fs)
*
https://secure.wikimedia.org/wikipedia/en/wiki/Chinese_characters#Compari...
*/
char filenames[][5] = {
- { '/', 0xe7, 0x94, 0xb5, 0 },
- { '/', 0xe4, 0xb9, 0xb0, 0 },
- { '/', 0xe5, 0xbc, 0x80, 0 },
- { '/', 0xe4, 0xb8, 0x9c, 0 },
- { '/', 0xe8, 0xbd, 0xa6, 0 },
- { '/', 0xe7, 0xba, 0xa2, 0 },
+ { '/', 0xe7, 0x94, 0xb5, 0 }, { '/', 0xe4, 0xb9, 0xb0, 0 },
+ { '/', 0xe5, 0xbc, 0x80, 0 }, { '/', 0xe4, 0xb8, 0x9c, 0 },
+ { '/', 0xe8, 0xbd, 0xa6, 0 }, { '/', 0xe7, 0xba, 0xa2, 0 },
};
const size_t nr_filenames = sizeof filenames / sizeof filenames[0];
size_t i, j;
@@ -400,8 +399,8 @@ test_chinese (guestfs_h *g, const struct filesystem *fs)
if (memcmp (files[j], &filenames[i][1], 4) == 0)
goto next;
error (EXIT_FAILURE, 0,
- "error: %s: %s returned unexpected filename '%s'",
- __func__, fs->fs_name, files[j]);
+ "error: %s: %s returned unexpected filename '%s'",
__func__,
+ fs->fs_name, files[j]);
next:;
}
diff --git a/tests/events/test-libvirt-auth-callbacks.c
b/tests/events/test-libvirt-auth-callbacks.c
index a18ab24..3fd8709 100644
--- a/tests/events/test-libvirt-auth-callbacks.c
+++ b/tests/events/test-libvirt-auth-callbacks.c
@@ -33,13 +33,18 @@
#define EXPECT_OK 1
#define EXPECT_FAIL -1
-struct auth_data {
+struct auth_data
+{
const char *username;
const char *password;
};
-static void do_test (const char *prog, const char *libvirt_uri, const struct auth_data
*auth_data, int expected);
-static void auth_callback (guestfs_h *g, void *opaque, uint64_t event, int event_handle,
int flags, const char *buf, size_t buf_len, const uint64_t *array, size_t array_len);
+static void do_test (const char *prog, const char *libvirt_uri,
+ const struct auth_data *auth_data, int expected);
+static void auth_callback (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len);
int
main (int argc, char *argv[])
@@ -61,29 +66,31 @@ main (int argc, char *argv[])
/* $srcdir must have been passed (by automake). */
srcdir = getenv ("srcdir");
if (!srcdir)
- error (EXIT_FAILURE, 0,
- "environment variable $srcdir is not defined.\n"
- "Normally it is defined by automake. If you are running the\n"
- "tests directly, set $srcdir to point to the source tests/events\n"
- "directory.");
+ error (
+ EXIT_FAILURE, 0,
+ "environment variable $srcdir is not defined.\n"
+ "Normally it is defined by automake. If you are running the\n"
+ "tests directly, set $srcdir to point to the source tests/events\n"
+ "directory.");
cwd = getcwd (NULL, 0);
if (cwd == NULL)
error (EXIT_FAILURE, errno, "getcwd");
- if (asprintf (&test_uri, "test://%s/%s/libvirt-auth.xml", cwd, srcdir) ==
-1)
+ if (asprintf (&test_uri, "test://%s/%s/libvirt-auth.xml", cwd, srcdir)
==
+ -1)
error (EXIT_FAILURE, errno, "asprintf");
free (cwd);
/* Perform the tests. */
- struct auth_data ad1 = { .username = "rich", .password = "123456"
};
+ struct auth_data ad1 = {.username = "rich", .password = "123456"
};
do_test (argv[0], test_uri, &ad1, EXPECT_OK);
- struct auth_data ad2 = { .username = "rich", .password = "654321"
};
+ struct auth_data ad2 = {.username = "rich", .password = "654321"
};
do_test (argv[0], test_uri, &ad2, EXPECT_FAIL);
- struct auth_data ad3 = { .username = "jane", .password = NULL };
+ struct auth_data ad3 = {.username = "jane", .password = NULL };
do_test (argv[0], test_uri, &ad3, EXPECT_OK);
- struct auth_data ad4 = { .username = "nouser", .password = "123456"
};
+ struct auth_data ad4 = {.username = "nouser", .password = "123456"
};
do_test (argv[0], test_uri, &ad4, EXPECT_FAIL);
free (test_uri);
@@ -92,46 +99,38 @@ main (int argc, char *argv[])
static void
do_test (const char *prog, const char *libvirt_uri,
- const struct auth_data *auth_data,
- int expected)
+ const struct auth_data *auth_data, int expected)
{
guestfs_h *g;
- const char *creds[] =
- { "authname", "passphrase", "noechoprompt", NULL };
+ const char *creds[] = { "authname", "passphrase",
"noechoprompt", NULL };
int r, eh;
g = guestfs_create ();
if (!g)
error (EXIT_FAILURE, errno, "guestfs_create");
- r = guestfs_set_libvirt_supported_credentials (g, (char **) creds);
+ r = guestfs_set_libvirt_supported_credentials (g, (char **)creds);
if (r == -1)
exit (EXIT_FAILURE);
- eh = guestfs_set_event_callback (g, auth_callback,
- GUESTFS_EVENT_LIBVIRT_AUTH, 0,
- (void *) auth_data);
+ eh = guestfs_set_event_callback (
+ g, auth_callback, GUESTFS_EVENT_LIBVIRT_AUTH, 0, (void *)auth_data);
if (eh == -1)
exit (EXIT_FAILURE);
- r = guestfs_add_domain (g, "test",
- GUESTFS_ADD_DOMAIN_LIBVIRTURI, libvirt_uri,
- GUESTFS_ADD_DOMAIN_READONLY, 1,
- -1);
+ r = guestfs_add_domain (g, "test", GUESTFS_ADD_DOMAIN_LIBVIRTURI,
+ libvirt_uri, GUESTFS_ADD_DOMAIN_READONLY, 1, -1);
if (r != expected)
- error (EXIT_FAILURE, 0,
- "test failed: u=%s p=%s: got %d expected %d",
- auth_data->username, auth_data->password ? : "(none)",
- r, expected);
+ error (EXIT_FAILURE, 0, "test failed: u=%s p=%s: got %d expected %d",
+ auth_data->username, auth_data->password ?: "(none)", r,
+ expected);
guestfs_close (g);
}
static void
-auth_callback (guestfs_h *g, void *opaque,
- uint64_t event, int event_handle,
- int flags,
- const char *buf, size_t buf_len,
+auth_callback (guestfs_h *g, void *opaque, uint64_t event, int event_handle,
+ int flags, const char *buf, size_t buf_len,
const uint64_t *array, size_t array_len)
{
CLEANUP_FREE_STRING_LIST char **creds = NULL;
@@ -151,25 +150,24 @@ auth_callback (guestfs_h *g, void *opaque,
if (STREQ (creds[i], "authname")) {
reply = auth_data->username;
len = strlen (reply);
- }
- else if (STREQ (creds[i], "passphrase") ||
- STREQ (creds[i], "noechoprompt")) {
+ } else if (STREQ (creds[i], "passphrase") ||
+ STREQ (creds[i], "noechoprompt")) {
if (!auth_data->password)
- error (EXIT_FAILURE, 0,
- "test failed: libvirt asked for a password, but
auth_data->password == NULL");
+ error (EXIT_FAILURE, 0, "test failed: libvirt asked for a "
+ "password, but auth_data->password == "
+ "NULL");
reply = auth_data->password;
len = strlen (reply);
- }
- else {
- error (EXIT_FAILURE, 0,
- "test failed: libvirt asked for '%s' which is not in creds
list\n(This is probably a libvirt bug)",
+ } else {
+ error (EXIT_FAILURE, 0, "test failed: libvirt asked for '%s' which
"
+ "is not in creds list\n(This is probably a "
+ "libvirt bug)",
creds[i]);
abort (); /* keeps GCC happy since error(3) is not marked noreturn */
}
- r = guestfs_set_libvirt_requested_credential (g, i,
- reply, len);
+ r = guestfs_set_libvirt_requested_credential (g, i, reply, len);
if (r == -1)
exit (EXIT_FAILURE);
}
diff --git a/tests/mount-local/test-parallel-mount-local.c
b/tests/mount-local/test-parallel-mount-local.c
index 873d20a..1ee9c20 100644
--- a/tests/mount-local/test-parallel-mount-local.c
+++ b/tests/mount-local/test-parallel-mount-local.c
@@ -43,24 +43,25 @@
#include "ignore-value.h"
-#define TOTAL_TIME 60 /* Seconds, excluding launch. */
-#define DEBUG 1 /* Print overview debugging messages. */
+#define TOTAL_TIME 60 /* Seconds, excluding launch. */
+#define DEBUG 1 /* Print overview debugging messages. */
#define MAX_THREADS 12
-struct thread_state {
- pthread_t thread; /* Thread handle. */
- char *mp; /* Mount point. */
- int exit_status; /* Thread exit status. */
+struct thread_state
+{
+ pthread_t thread; /* Thread handle. */
+ char *mp; /* Mount point. */
+ int exit_status; /* Thread exit status. */
};
static struct thread_state threads[MAX_THREADS];
static size_t nr_threads;
-static void *start_thread (void *) __attribute__((noreturn));
+static void *start_thread (void *) __attribute__ ((noreturn));
static void test_mountpoint (const char *mp);
static void cleanup_thread_state (void);
static int guestunmount (const char *mp, unsigned flags);
#define GUESTUNMOUNT_SILENT 1
-#define GUESTUNMOUNT_RMDIR 2
+#define GUESTUNMOUNT_RMDIR 2
static volatile sig_atomic_t quit = 0;
@@ -101,7 +102,8 @@ main (int argc, char *argv[])
}
if (access ("/dev/fuse", W_OK) == -1) {
- fprintf (stderr, "%s: test skipped because /dev/fuse is not writable.\n",
+ fprintf (stderr,
+ "%s: test skipped because /dev/fuse is not writable.\n",
guestfs_int_program_name);
exit (77);
}
@@ -179,7 +181,7 @@ start_thread (void *statevp)
guestfs_set_identifier (g, state->mp);
- if (guestfs_add_drive_scratch (g, 512*1024*1024, -1) == -1)
+ if (guestfs_add_drive_scratch (g, 512 * 1024 * 1024, -1) == -1)
goto error;
if (guestfs_launch (g) == -1)
goto error;
@@ -217,10 +219,10 @@ start_thread (void *statevp)
goto error;
}
- if (pid == 0) { /* child */
- setpgid (0, 0); /* so we don't get ^C from parent */
- execlp ("./test-parallel-mount-local",
- "test-parallel-mount-local", "--test", state->mp,
NULL);
+ if (pid == 0) { /* child */
+ setpgid (0, 0); /* so we don't get ^C from parent */
+ execlp ("./test-parallel-mount-local",
"test-parallel-mount-local",
+ "--test", state->mp, NULL);
perror ("execlp");
goto error;
}
@@ -232,7 +234,7 @@ start_thread (void *statevp)
r = guestfs_mount_local_run (g);
guestfs_pop_error_handler (g);
- /* Wait for child process to exit and catch any errors from it. */
+ /* Wait for child process to exit and catch any errors from it. */
again:
if (waitpid (pid, &status, 0) == -1) {
if (errno == EINTR)
@@ -244,9 +246,8 @@ start_thread (void *statevp)
char status_string[80];
fprintf (stderr, "%s: %s\n", state->mp,
- guestfs_int_exit_status_to_string (status, "test",
- status_string,
- sizeof status_string));
+ guestfs_int_exit_status_to_string (
+ status, "test", status_string, sizeof status_string));
goto error;
}
@@ -267,7 +268,7 @@ start_thread (void *statevp)
state->exit_status = 0;
pthread_exit (&state->exit_status);
- error:
+error:
guestfs_close (g);
state->exit_status = 1;
pthread_exit (&state->exit_status);
@@ -283,7 +284,8 @@ test_mountpoint (const char *mp)
FILE *fp;
if (!mp || STREQ (mp, ""))
- error (EXIT_FAILURE, 0, "%s: invalid or empty mountpoint path", __func__);
+ error (EXIT_FAILURE, 0, "%s: invalid or empty mountpoint path",
+ __func__);
if (DEBUG) {
printf ("%-8s | testing filesystem\n", mp);
@@ -339,10 +341,11 @@ test_mountpoint (const char *mp)
}
ret = EXIT_SUCCESS;
- error:
+error:
ignore_value (chdir (".."));
if (guestunmount (mp, 0) == -1)
- error (EXIT_FAILURE, 0, "guestunmount %s: failed, see earlier errors",
mp);
+ error (EXIT_FAILURE, 0, "guestunmount %s: failed, see earlier errors",
+ mp);
if (DEBUG) {
printf ("%-8s > unmounted filesystem\n", mp);
@@ -364,8 +367,7 @@ guestunmount (const char *mp, unsigned flags)
return 0;
}
- snprintf (cmd, sizeof cmd,
- "../../fuse/guestunmount%s %s",
+ snprintf (cmd, sizeof cmd, "../../fuse/guestunmount%s %s",
(flags & GUESTUNMOUNT_SILENT) ? " --quiet" : "",
mp);
status = system (cmd);
@@ -393,7 +395,8 @@ cleanup_thread_state (void)
for (i = 0; i < nr_threads; ++i) {
if (threads[i].mp) {
- guestunmount (threads[i].mp, GUESTUNMOUNT_SILENT|GUESTUNMOUNT_RMDIR);
+ guestunmount (threads[i].mp,
+ GUESTUNMOUNT_SILENT | GUESTUNMOUNT_RMDIR);
free (threads[i].mp);
}
}
diff --git a/tests/mountable/test-internal-parse-mountable.c
b/tests/mountable/test-internal-parse-mountable.c
index ab86ccb..8b79cdd 100644
--- a/tests/mountable/test-internal-parse-mountable.c
+++ b/tests/mountable/test-internal-parse-mountable.c
@@ -49,15 +49,16 @@ main (int argc, char *argv[])
if (g == NULL)
error (EXIT_FAILURE, errno, "guestfs_create");
- if (guestfs_add_drive_scratch (g, 1024*1024*1024, -1) == -1) {
+ if (guestfs_add_drive_scratch (g, 1024 * 1024 * 1024, -1) == -1) {
error:
guestfs_close (g);
exit (EXIT_FAILURE);
}
- if (guestfs_launch (g) == -1) goto error;
+ if (guestfs_launch (g) == -1)
+ goto error;
- if (!guestfs_feature_available (g, (char **) feature)) {
+ if (!guestfs_feature_available (g, (char **)feature)) {
printf ("skipping test because btrfs is not available\n");
guestfs_close (g);
exit (77);
@@ -69,23 +70,31 @@ main (int argc, char *argv[])
exit (77);
}
- if (guestfs_part_disk (g, "/dev/sda", "mbr") == -1) goto error;
+ if (guestfs_part_disk (g, "/dev/sda", "mbr") == -1)
+ goto error;
- if (guestfs_pvcreate (g, "/dev/sda1") == -1) goto error;
+ if (guestfs_pvcreate (g, "/dev/sda1") == -1)
+ goto error;
const char *pvs[] = { "/dev/sda1", NULL };
- if (guestfs_vgcreate (g, "VG", (char **) pvs) == -1) goto error;
+ if (guestfs_vgcreate (g, "VG", (char **)pvs) == -1)
+ goto error;
- if (guestfs_lvcreate (g, "LV", "VG", 900) == -1) goto error;
+ if (guestfs_lvcreate (g, "LV", "VG", 900) == -1)
+ goto error;
- if (guestfs_mkfs_btrfs (g, (char * const *)devices, -1) == -1) goto error;
+ if (guestfs_mkfs_btrfs (g, (char *const *)devices, -1) == -1)
+ goto error;
- if (guestfs_mount (g, "/dev/VG/LV", "/") == -1) goto error;
+ if (guestfs_mount (g, "/dev/VG/LV", "/") == -1)
+ goto error;
- if (guestfs_btrfs_subvolume_create (g, "/sv") == -1) goto error;
+ if (guestfs_btrfs_subvolume_create (g, "/sv") == -1)
+ goto error;
mountable = guestfs_internal_parse_mountable (g, "/dev/VG/LV");
- if (mountable == NULL) goto error;
+ if (mountable == NULL)
+ goto error;
if (mountable->im_type != MOUNTABLE_DEVICE ||
STRNEQ ("/dev/VG/LV", mountable->im_device)) {
@@ -96,16 +105,20 @@ main (int argc, char *argv[])
guestfs_free_internal_mountable (mountable);
- mountable = guestfs_internal_parse_mountable (g, "btrfsvol:/dev/VG/LV/sv");
- if (mountable == NULL) goto error;
+ mountable =
+ guestfs_internal_parse_mountable (g, "btrfsvol:/dev/VG/LV/sv");
+ if (mountable == NULL)
+ goto error;
if (mountable->im_type != MOUNTABLE_BTRFSVOL ||
STRNEQ ("/dev/VG/LV", mountable->im_device) ||
STRNEQ ("sv", mountable->im_volume)) {
- fprintf (stderr, "incorrectly parsed /dev/VG/LV/sv: im_device=%s,
im_volume=%s\n",
- mountable->im_device, mountable->im_volume);
+ fprintf (
+ stderr,
+ "incorrectly parsed /dev/VG/LV/sv: im_device=%s, im_volume=%s\n",
+ mountable->im_device, mountable->im_volume);
goto error;
- }
+ }
guestfs_free_internal_mountable (mountable);
guestfs_close (g);
diff --git a/tests/parallel/test-parallel.c b/tests/parallel/test-parallel.c
index 85182f2..2970469 100644
--- a/tests/parallel/test-parallel.c
+++ b/tests/parallel/test-parallel.c
@@ -39,17 +39,18 @@
#include "ignore-value.h"
-#define TOTAL_TIME 600 /* Seconds, excluding launch. */
+#define TOTAL_TIME 600 /* Seconds, excluding launch. */
#define NR_THREADS 5
-struct thread_state {
- size_t thread_num; /* Thread number. */
- pthread_t thread; /* Thread handle. */
- int exit_status; /* Thread exit status. */
+struct thread_state
+{
+ size_t thread_num; /* Thread number. */
+ pthread_t thread; /* Thread handle. */
+ int exit_status; /* Thread exit status. */
};
static struct thread_state threads[NR_THREADS];
-static void *start_thread (void *) __attribute__((noreturn));
+static void *start_thread (void *) __attribute__ ((noreturn));
static volatile sig_atomic_t quit = 0;
@@ -139,10 +140,9 @@ start_thread (void *statevp)
snprintf (id, sizeof id, "%zu", state->thread_num);
guestfs_set_identifier (g, id);
- if (guestfs_add_drive_opts (g, "/dev/null",
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
- GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
- -1) == -1) {
+ if (guestfs_add_drive_opts (
+ g, "/dev/null", GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
+ GUESTFS_ADD_DRIVE_OPTS_READONLY, 1, -1) == -1) {
error:
guestfs_close (g);
state->exit_status = 1;
diff --git a/tests/protocol/test-error-messages.c b/tests/protocol/test-error-messages.c
index 57a4a21..f26e1ae 100644
--- a/tests/protocol/test-error-messages.c
+++ b/tests/protocol/test-error-messages.c
@@ -37,11 +37,16 @@ main (int argc, char *argv[])
{
guestfs_h *g;
size_t i;
- int lengths[] = { 0, 1, 1024,
- GUESTFS_ERROR_LEN-2, GUESTFS_ERROR_LEN-1,
- GUESTFS_ERROR_LEN, GUESTFS_ERROR_LEN+1,
- GUESTFS_ERROR_LEN+2,
- GUESTFS_ERROR_LEN*2, -1 };
+ int lengths[] = { 0,
+ 1,
+ 1024,
+ GUESTFS_ERROR_LEN - 2,
+ GUESTFS_ERROR_LEN - 1,
+ GUESTFS_ERROR_LEN,
+ GUESTFS_ERROR_LEN + 1,
+ GUESTFS_ERROR_LEN + 2,
+ GUESTFS_ERROR_LEN * 2,
+ -1 };
char len_s[64];
char *args[2];
diff --git a/tests/qemu/boot-analysis-timeline.c b/tests/qemu/boot-analysis-timeline.c
index d35fb49..68d1cc6 100644
--- a/tests/qemu/boot-analysis-timeline.c
+++ b/tests/qemu/boot-analysis-timeline.c
@@ -37,10 +37,9 @@
#include "boot-analysis.h"
-COMPILE_REGEXP(re_initcall_calling_module,
- "calling ([_A-Za-z0-9]+)\\+.*\\[([_A-Za-z0-9]+)]", 0)
-COMPILE_REGEXP(re_initcall_calling,
- "calling ([_A-Za-z0-9]+)\\+", 0)
+COMPILE_REGEXP (re_initcall_calling_module,
+ "calling ([_A-Za-z0-9]+)\\+.*\\[([_A-Za-z0-9]+)]", 0)
+COMPILE_REGEXP (re_initcall_calling, "calling ([_A-Za-z0-9]+)\\+", 0)
static void construct_initcall_timeline (void);
@@ -71,331 +70,339 @@ construct_timeline (void)
for (i = 0; i < NR_TEST_PASSES; ++i) {
data = &pass_data[i];
- /* Find an activity, by matching an event with the condition
- * `begin_cond' through to the second event `end_cond'. Create an
- * activity object in the timeline from the result.
- */
-#define FIND(name, flags, begin_cond, end_cond) \
- do { \
- activity = NULL; \
- for (j = 0; j < data->nr_events; ++j) { \
- if (begin_cond) { \
- for (k = j+1; k < data->nr_events; ++k) { \
- if (end_cond) { \
- if (i == 0) \
- activity = add_activity (name, flags); \
- else \
- activity = find_activity (name); \
- break; \
- } \
- } \
- break; \
- } \
- } \
- if (activity) { \
- activity->start_event[i] = j; \
- activity->end_event[i] = k; \
- } \
- else \
- error (EXIT_FAILURE, 0, "could not find activity '%s' in pass
'%zu'", \
- name, i); \
- } while (0)
+/* Find an activity, by matching an event with the condition
+ * `begin_cond' through to the second event `end_cond'. Create an
+ * activity object in the timeline from the result.
+ */
+#define FIND(name, flags, begin_cond, end_cond) \
+ do { \
+ activity = NULL; \
+ for (j = 0; j < data->nr_events; ++j) { \
+ if (begin_cond) { \
+ for (k = j + 1; k < data->nr_events; ++k) { \
+ if (end_cond) { \
+ if (i == 0) \
+ activity = add_activity (name, flags); \
+ else \
+ activity = find_activity (name); \
+ break; \
+ } \
+ } \
+ break; \
+ } \
+ } \
+ if (activity) { \
+ activity->start_event[i] = j; \
+ activity->end_event[i] = k; \
+ } else \
+ error (EXIT_FAILURE, 0, \
+ "could not find activity '%s' in pass '%zu'",
name, i); \
+ } while (0)
- /* Same as FIND() macro, but if no matching events are found,
- * ignore it.
- */
-#define FIND_OPTIONAL(name, flags, begin_cond, end_cond) \
- do { \
- activity = NULL; \
- for (j = 0; j < data->nr_events; ++j) { \
- if (begin_cond) { \
- for (k = j+1; k < data->nr_events; ++k) { \
- if (end_cond) { \
- if (i == 0) \
- activity = add_activity (name, flags); \
- else \
- activity = find_activity (name); \
- break; \
- } \
- } \
- break; \
- } \
- } \
- if (activity) { \
- activity->start_event[i] = j; \
- activity->end_event[i] = k; \
- } \
- } while (0)
+/* Same as FIND() macro, but if no matching events are found,
+ * ignore it.
+ */
+#define FIND_OPTIONAL(name, flags, begin_cond, end_cond) \
+ do { \
+ activity = NULL; \
+ for (j = 0; j < data->nr_events; ++j) { \
+ if (begin_cond) { \
+ for (k = j + 1; k < data->nr_events; ++k) { \
+ if (end_cond) { \
+ if (i == 0) \
+ activity = add_activity (name, flags); \
+ else \
+ activity = find_activity (name); \
+ break; \
+ } \
+ } \
+ break; \
+ } \
+ } \
+ if (activity) { \
+ activity->start_event[i] = j; \
+ activity->end_event[i] = k; \
+ } \
+ } while (0)
- /* Find multiple entries, where we check for:
- * next_cond
- * next_cond
- * next_cond
- * end_cond
- */
-#define FIND_MULTIPLE(debug_name, flags, next_cond, end_cond, translate_message) \
- do { \
- activity = NULL; \
- for (j = 0; j < data->nr_events; ++j) { \
- if (next_cond) { \
- CLEANUP_FREE char *message = translate_message (data->events[j].message); \
- if (activity) \
- activity->end_event[i] = j; \
- if (i == 0) \
- activity = add_activity (message, flags); \
- else \
- activity = find_activity (message); \
- activity->start_event[i] = j; \
- } \
- else if (end_cond) \
- break; \
- } \
- if (j < data->nr_events && activity) \
- activity->end_event[i] = j; \
- else \
- error (EXIT_FAILURE, 0, "could not find activity '%s' in pass
'%zu'", \
- debug_name, i); \
- } while (0)
+/* Find multiple entries, where we check for:
+ * next_cond
+ * next_cond
+ * next_cond
+ * end_cond
+ */
+#define FIND_MULTIPLE(debug_name, flags, next_cond, end_cond, \
+ translate_message) \
+ do { \
+ activity = NULL; \
+ for (j = 0; j < data->nr_events; ++j) { \
+ if (next_cond) { \
+ CLEANUP_FREE char *message = \
+ translate_message (data->events[j].message); \
+ if (activity) \
+ activity->end_event[i] = j; \
+ if (i == 0) \
+ activity = add_activity (message, flags); \
+ else \
+ activity = find_activity (message); \
+ activity->start_event[i] = j; \
+ } else if (end_cond) \
+ break; \
+ } \
+ if (j < data->nr_events && activity)
\
+ activity->end_event[i] = j; \
+ else \
+ error (EXIT_FAILURE, 0, \
+ "could not find activity '%s' in pass '%zu'",
debug_name, i); \
+ } while (0)
/* Add one activity which is going to cover the whole process
* from launch to close. The launch event is always event 0.
* NB: This activity must be called "run" (see below).
*/
- FIND ("run", LONG_ACTIVITY,
- j == 0, data->events[k].source == GUESTFS_EVENT_CLOSE);
+ FIND ("run", LONG_ACTIVITY, j == 0,
+ data->events[k].source == GUESTFS_EVENT_CLOSE);
/* Find where we invoke supermin --build. This should be a null
* operation, but it still takes time to run the external command.
*/
FIND ("supermin:build", 0,
data->events[j].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[j].message,
- "begin building supermin appliance"),
+ strstr (data->events[j].message,
+ "begin building supermin appliance"),
data->events[k].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[k].message,
- "finished building supermin appliance"));
+ strstr (data->events[k].message,
+ "finished building supermin appliance"));
/* Find where we invoke qemu to test features. */
- FIND_OPTIONAL ("qemu:feature-detect", 0,
- data->events[j].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[j].message,
- "begin testing qemu features"),
- data->events[k].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[k].message,
- "finished testing qemu features"));
+ FIND_OPTIONAL (
+ "qemu:feature-detect", 0,
+ data->events[j].source == GUESTFS_EVENT_LIBRARY &&
+ strstr (data->events[j].message, "begin testing qemu
features"),
+ data->events[k].source == GUESTFS_EVENT_LIBRARY &&
+ strstr (data->events[k].message,
+ "finished testing qemu features"));
/* Find where we run qemu. */
FIND_OPTIONAL ("qemu", LONG_ACTIVITY,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "-nodefconfig"),
+ strstr (data->events[j].message, "-nodefconfig"),
data->events[k].source == GUESTFS_EVENT_CLOSE);
/* For the libvirt backend, connecting to libvirt, getting
* capabilities, parsing capabilities etc.
*/
- FIND_OPTIONAL ("libvirt:connect", 0,
- data->events[j].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[j].message, "connect to libvirt"),
- data->events[k].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[k].message, "successfully opened libvirt
handle"));
- FIND_OPTIONAL ("libvirt:get-libvirt-capabilities", 0,
- data->events[j].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[j].message, "get libvirt
capabilities"),
- data->events[k].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[k].message, "parsing capabilities
XML"));
+ FIND_OPTIONAL (
+ "libvirt:connect", 0,
+ data->events[j].source == GUESTFS_EVENT_LIBRARY &&
+ strstr (data->events[j].message, "connect to libvirt"),
+ data->events[k].source == GUESTFS_EVENT_LIBRARY &&
+ strstr (data->events[k].message,
+ "successfully opened libvirt handle"));
+ FIND_OPTIONAL (
+ "libvirt:get-libvirt-capabilities", 0,
+ data->events[j].source == GUESTFS_EVENT_LIBRARY &&
+ strstr (data->events[j].message, "get libvirt capabilities"),
+ data->events[k].source == GUESTFS_EVENT_LIBRARY &&
+ strstr (data->events[k].message, "parsing capabilities XML"));
- FIND_OPTIONAL ("libguestfs:parse-libvirt-capabilities", 0,
- data->events[j].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[j].message, "parsing capabilities
XML"),
- data->events[k].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[k].message,
"get_backend_setting"));
+ FIND_OPTIONAL (
+ "libguestfs:parse-libvirt-capabilities", 0,
+ data->events[j].source == GUESTFS_EVENT_LIBRARY &&
+ strstr (data->events[j].message, "parsing capabilities XML"),
+ data->events[k].source == GUESTFS_EVENT_LIBRARY &&
+ strstr (data->events[k].message, "get_backend_setting"));
- FIND_OPTIONAL ("libguestfs:create-libvirt-xml", 0,
- data->events[j].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[j].message, "create libvirt XML"),
- data->events[k].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[k].message, "libvirt XML:"));
+ FIND_OPTIONAL (
+ "libguestfs:create-libvirt-xml", 0,
+ data->events[j].source == GUESTFS_EVENT_LIBRARY &&
+ strstr (data->events[j].message, "create libvirt XML"),
+ data->events[k].source == GUESTFS_EVENT_LIBRARY &&
+ strstr (data->events[k].message, "libvirt XML:"));
#define SGABIOS_STRING "\033[1;256r\033[256;256H\033[6n"
/* For the libvirt backend, find the overhead of libvirt. */
- FIND_OPTIONAL ("libvirt:overhead", 0,
- data->events[j].source == GUESTFS_EVENT_LIBRARY &&
- strstr (data->events[j].message, "launch libvirt
guest"),
- data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, SGABIOS_STRING));
+ FIND_OPTIONAL (
+ "libvirt:overhead", 0,
+ data->events[j].source == GUESTFS_EVENT_LIBRARY &&
+ strstr (data->events[j].message, "launch libvirt guest"),
+ data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
+ strstr (data->events[k].message, SGABIOS_STRING));
/* From starting qemu up to entering the BIOS is the qemu overhead. */
FIND_OPTIONAL ("qemu:overhead", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "-nodefconfig"),
+ strstr (data->events[j].message, "-nodefconfig"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, SGABIOS_STRING));
+ strstr (data->events[k].message, SGABIOS_STRING));
- /* From entering the BIOS to starting the kernel is the BIOS overhead. */
+ /* From entering the BIOS to starting the kernel is the BIOS overhead.
+ */
FIND_OPTIONAL ("bios:overhead", 0,
- data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, SGABIOS_STRING),
- data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "Probing EDD"));
+ data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
+ strstr (data->events[j].message, SGABIOS_STRING),
+ data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
+ strstr (data->events[k].message, "Probing EDD"));
/* SGABIOS (option ROM). */
- FIND_OPTIONAL ("sgabios", 0,
- data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, SGABIOS_STRING),
- data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "SeaBIOS (version"));
+ FIND_OPTIONAL (
+ "sgabios", 0, data->events[j].source == GUESTFS_EVENT_APPLIANCE
&&
+ strstr (data->events[j].message, SGABIOS_STRING),
+ data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
+ strstr (data->events[k].message, "SeaBIOS (version"));
/* SeaBIOS. */
FIND ("seabios", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "SeaBIOS (version"),
+ strstr (data->events[j].message, "SeaBIOS (version"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "Probing EDD"));
+ strstr (data->events[k].message, "Probing EDD"));
/* SeaBIOS - only available when using debug messages. */
- FIND_OPTIONAL ("seabios:pci-probe", 0,
- data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "Searching bootorder for:
/pci@"),
- data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "Scan for option roms"));
+ FIND_OPTIONAL (
+ "seabios:pci-probe", 0,
+ data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
+ strstr (data->events[j].message,
+ "Searching bootorder for: /pci@"),
+ data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
+ strstr (data->events[k].message, "Scan for option roms"));
/* Find where we run the guest kernel. */
FIND ("kernel", LONG_ACTIVITY,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "Probing EDD"),
+ strstr (data->events[j].message, "Probing EDD"),
data->events[k].source == GUESTFS_EVENT_CLOSE);
/* Kernel startup to userspace. */
FIND ("kernel:overhead", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "Probing EDD"),
+ strstr (data->events[j].message, "Probing EDD"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "supermin:") &&
- strstr (data->events[k].message, "starting up"));
+ strstr (data->events[k].message, "supermin:") &&
+ strstr (data->events[k].message, "starting up"));
/* The time taken to get into start_kernel function. */
FIND ("kernel:entry", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "Probing EDD"),
+ strstr (data->events[j].message, "Probing EDD"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "Linux version"));
+ strstr (data->events[k].message, "Linux version"));
/* Alternatives patching instructions (XXX not very accurate we
* really need some debug messages inserted into the code).
*/
FIND ("kernel:alternatives", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "Last level dTLB entries"),
+ strstr (data->events[j].message, "Last level dTLB entries"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "Freeing SMP alternatives"));
+ strstr (data->events[k].message, "Freeing SMP
alternatives"));
/* ftrace patching instructions. */
FIND ("kernel:ftrace", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "ftrace: allocating"),
+ strstr (data->events[j].message, "ftrace: allocating"),
1);
/* Find where we run supermin mini-initrd. */
FIND ("supermin:mini-initrd", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "supermin:") &&
- strstr (data->events[j].message, "starting up"),
+ strstr (data->events[j].message, "supermin:") &&
+ strstr (data->events[j].message, "starting up"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "supermin: chroot"));
+ strstr (data->events[k].message, "supermin: chroot"));
/* Loading kernel modules from supermin initrd. */
- FIND_MULTIPLE
- ("supermin insmod", 0,
- data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "supermin: internal insmod"),
- data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "supermin: picked"),
- translate_supermin_insmod_message);
+ FIND_MULTIPLE (
+ "supermin insmod", 0,
+ data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
+ strstr (data->events[j].message, "supermin: internal insmod"),
+ data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
+ strstr (data->events[j].message, "supermin: picked"),
+ translate_supermin_insmod_message);
/* Find where we run the /init script. */
FIND ("/init", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "supermin: chroot"),
+ strstr (data->events[j].message, "supermin: chroot"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "guestfsd --verbose"));
+ strstr (data->events[k].message, "guestfsd --verbose"));
/* Everything from the chroot to the first echo in the /init
* script counts as bash overhead.
*/
FIND ("bash:overhead", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "supermin: chroot"),
+ strstr (data->events[j].message, "supermin: chroot"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "Starting /init script"));
+ strstr (data->events[k].message, "Starting /init script"));
/* /init: Mount special filesystems. */
FIND ("/init:mount-special", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "*guestfs_boot_analysis=1*"),
+ strstr (data->events[j].message,
"*guestfs_boot_analysis=1*"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "kmod static-nodes"));
+ strstr (data->events[k].message, "kmod static-nodes"));
/* /init: Run kmod static-nodes */
FIND ("/init:kmod-static-nodes", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "kmod static-nodes"),
+ strstr (data->events[j].message, "kmod static-nodes"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "systemd-tmpfiles"));
+ strstr (data->events[k].message, "systemd-tmpfiles"));
/* /init: systemd-tmpfiles. */
FIND ("/init:systemd-tmpfiles", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "systemd-tmpfiles"),
+ strstr (data->events[j].message, "systemd-tmpfiles"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "udev"));
+ strstr (data->events[k].message, "udev"));
/* /init: start udevd. */
FIND ("/init:udev-overhead", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "udevd --daemon"),
+ strstr (data->events[j].message, "udevd --daemon"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "nullglob"));
+ strstr (data->events[k].message, "nullglob"));
/* /init: set up network. */
FIND ("/init:network-overhead", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "+ ip addr"),
+ strstr (data->events[j].message, "+ ip addr"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "+ test"));
+ strstr (data->events[k].message, "+ test"));
/* /init: probe MD arrays. */
FIND ("/init:md-probe", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "+ mdadm"),
+ strstr (data->events[j].message, "+ mdadm"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "+ modprobe dm_mod"));
+ strstr (data->events[k].message, "+ modprobe dm_mod"));
/* /init: probe DM/LVM. */
FIND ("/init:lvm-probe", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "+ modprobe dm_mod"),
+ strstr (data->events[j].message, "+ modprobe dm_mod"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "+ ldmtool"));
+ strstr (data->events[k].message, "+ ldmtool"));
/* /init: probe Windows dynamic disks. */
FIND ("/init:windows-dynamic-disks-probe", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "+ ldmtool"),
+ strstr (data->events[j].message, "+ ldmtool"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "+ test"));
+ strstr (data->events[k].message, "+ test"));
/* Find where we run guestfsd. */
FIND ("guestfsd", 0,
data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[j].message, "guestfsd --verbose"),
+ strstr (data->events[j].message, "guestfsd --verbose"),
data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
- strstr (data->events[k].message, "fsync /dev/sda"));
+ strstr (data->events[k].message, "fsync /dev/sda"));
/* Shutdown process. */
- FIND ("shutdown", 0,
- data->events[j].source == GUESTFS_EVENT_TRACE &&
- STREQ (data->events[j].message, "close"),
+ FIND ("shutdown", 0, data->events[j].source == GUESTFS_EVENT_TRACE
&&
+ STREQ (data->events[j].message, "close"),
data->events[k].source == GUESTFS_EVENT_CLOSE);
}
@@ -423,7 +430,8 @@ construct_initcall_timeline (void)
* For initcall functions in modules:
*
* calling virtio_mmio_init+0x0/0x1000 [virtio_mmio] @ 1"
- * initcall virtio_mmio_init+0x0/0x1000 [virtio_mmio] returned 0 after 14
usecs"
+ * initcall virtio_mmio_init+0x0/0x1000 [virtio_mmio] returned 0 after
+ * 14 usecs"
*
* Initcall functions can be nested, and do not have unique names.
*/
@@ -432,18 +440,18 @@ construct_initcall_timeline (void)
const char *message = data->events[j].message;
if (data->events[j].source == GUESTFS_EVENT_APPLIANCE &&
- ((r = pcre_exec (re_initcall_calling_module, NULL,
- message, strlen (message),
- 0, 0, vec, sizeof vec / sizeof vec[0])) >= 1 ||
- (r = pcre_exec (re_initcall_calling, NULL,
- message, strlen (message),
- 0, 0, vec, sizeof vec / sizeof vec[0])) >= 1)) {
+ ((r = pcre_exec (re_initcall_calling_module, NULL, message,
+ strlen (message), 0, 0, vec,
+ sizeof vec / sizeof vec[0])) >= 1 ||
+ (r = pcre_exec (re_initcall_calling, NULL, message,
+ strlen (message), 0, 0, vec,
+ sizeof vec / sizeof vec[0])) >= 1)) {
CLEANUP_FREE char *fn_name = NULL, *module_name = NULL;
if (r >= 2) /* because pcre_exec returns 1 + number of captures */
- fn_name = strndup (message + vec[2], vec[3]-vec[2]);
+ fn_name = strndup (message + vec[2], vec[3] - vec[2]);
if (r >= 3)
- module_name = strndup (message + vec[4], vec[5]-vec[4]);
+ module_name = strndup (message + vec[4], vec[5] - vec[4]);
CLEANUP_FREE char *fullname;
if (asprintf (&fullname, "%s.%s",
@@ -465,16 +473,17 @@ construct_initcall_timeline (void)
int n = 1;
while (activity_exists (activity_name)) {
free (activity_name);
- if (asprintf (&activity_name, "initcall %s:%d", fullname, n) ==
-1)
+ if (asprintf (&activity_name, "initcall %s:%d", fullname, n)
==
+ -1)
error (EXIT_FAILURE, errno, "asprintf");
n++;
}
- }
- else {
+ } else {
int n = 1;
while (!activity_exists_with_no_data (activity_name, i)) {
free (activity_name);
- if (asprintf (&activity_name, "initcall %s:%d", fullname, n) ==
-1)
+ if (asprintf (&activity_name, "initcall %s:%d", fullname, n)
==
+ -1)
error (EXIT_FAILURE, errno, "asprintf");
n++;
}
@@ -483,7 +492,7 @@ construct_initcall_timeline (void)
/* Find the matching end event. It might be some time later,
* since it appears initcalls can be nested.
*/
- for (k = j+1; k < data->nr_events; ++k) {
+ for (k = j + 1; k < data->nr_events; ++k) {
if (data->events[k].source == GUESTFS_EVENT_APPLIANCE &&
strstr (data->events[k].message, initcall_match)) {
if (i == 0)
diff --git a/tests/qemu/boot-analysis-utils.c b/tests/qemu/boot-analysis-utils.c
index bcd470e..c0ba05f 100644
--- a/tests/qemu/boot-analysis-utils.c
+++ b/tests/qemu/boot-analysis-utils.c
@@ -43,7 +43,7 @@ timespec_diff (const struct timespec *x, const struct timespec *y)
{
int64_t nsec;
- nsec = (y->tv_sec - x->tv_sec) * UINT64_C(1000000000);
+ nsec = (y->tv_sec - x->tv_sec) * UINT64_C (1000000000);
nsec += y->tv_nsec - x->tv_nsec;
return nsec;
}
@@ -64,7 +64,8 @@ test_info (guestfs_h *g, int nr_test_passes)
ignore_value (system ("uname -a"));
printf (" host CPU: ");
fflush (stdout);
- ignore_value (system ("perl -n -e 'if (/^model name.*: (.*)/) { print
\"$1\\n\"; exit }' /proc/cpuinfo"));
+ ignore_value (system ("perl -n -e 'if (/^model name.*: (.*)/) { print "
+ "\"$1\\n\"; exit }' /proc/cpuinfo"));
/* Related to qemu. */
printf (" backend: %s\n", guestfs_get_backend (g));
@@ -80,5 +81,5 @@ test_info (guestfs_h *g, int nr_test_passes)
/* Related to the guest kernel. Be nice to get the guest
* kernel version here somehow (XXX).
*/
- printf (" append: %s\n", guestfs_get_append (g) ? : "");
+ printf (" append: %s\n", guestfs_get_append (g) ?: "");
}
diff --git a/tests/qemu/boot-analysis-utils.h b/tests/qemu/boot-analysis-utils.h
index 95e4f06..755bb72 100644
--- a/tests/qemu/boot-analysis-utils.h
+++ b/tests/qemu/boot-analysis-utils.h
@@ -25,7 +25,8 @@
extern void get_time (struct timespec *ts);
/* Computes Y - X, returning nanoseconds. */
-extern int64_t timespec_diff (const struct timespec *x, const struct timespec *y);
+extern int64_t timespec_diff (const struct timespec *x,
+ const struct timespec *y);
/* Display host machine and test parameters (to stdout). 'g' should
* be an open libguestfs handle. It is used for reading hv, memsize
diff --git a/tests/qemu/boot-analysis.c b/tests/qemu/boot-analysis.c
index 37d8b3c..2d107e8 100644
--- a/tests/qemu/boot-analysis.c
+++ b/tests/qemu/boot-analysis.c
@@ -147,33 +147,28 @@ main (int argc, char *argv[])
enum { HELP_OPTION = CHAR_MAX + 1 };
static const char *options = "m:v";
static const struct option long_options[] = {
- { "help", 0, 0, HELP_OPTION },
- { "append", 1, 0, 0 },
- { "color", 0, 0, 0 },
- { "colour", 0, 0, 0 },
- { "memsize", 1, 0, 'm' },
- { "smp", 1, 0, 0 },
- { "verbose", 0, 0, 'v' },
- { 0, 0, 0, 0 }
+ { "help", 0, 0, HELP_OPTION }, { "append", 1, 0, 0 },
+ { "color", 0, 0, 0 }, { "colour", 0, 0, 0 },
+ { "memsize", 1, 0, 'm' }, { "smp", 1, 0, 0 },
+ { "verbose", 0, 0, 'v' }, { 0, 0, 0, 0 }
};
int c, option_index;
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* Options which are long only. */
+ case 0: /* Options which are long only. */
if (STREQ (long_options[option_index].name, "append")) {
append = optarg;
break;
- }
- else if (STREQ (long_options[option_index].name, "color") ||
- STREQ (long_options[option_index].name, "colour")) {
+ } else if (STREQ (long_options[option_index].name, "color") ||
+ STREQ (long_options[option_index].name, "colour")) {
force_colour = 1;
break;
- }
- else if (STREQ (long_options[option_index].name, "smp")) {
+ } else if (STREQ (long_options[option_index].name, "smp")) {
if (sscanf (optarg, "%d", &smp) != 1) {
fprintf (stderr, "%s: could not parse smp parameter: %s\n",
guestfs_int_program_name, optarg);
@@ -182,7 +177,8 @@ main (int argc, char *argv[])
break;
}
fprintf (stderr, "%s: unknown long option: %s (%d)\n",
- guestfs_int_program_name, long_options[option_index].name, option_index);
+ guestfs_int_program_name, long_options[option_index].name,
+ option_index);
exit (EXIT_FAILURE);
case 'm':
@@ -206,7 +202,8 @@ main (int argc, char *argv[])
}
if (STRNEQ (host_cpu, "x86_64"))
- fprintf (stderr, "WARNING: host_cpu != x86_64: This program may not work or give
bogus results.\n");
+ fprintf (stderr, "WARNING: host_cpu != x86_64: This program may not "
+ "work or give bogus results.\n");
run_test ();
}
@@ -235,8 +232,8 @@ run_test (void)
exit (EXIT_FAILURE);
guestfs_close (g);
- printf (" pass %zu: %zu events collected in %" PRIi64 "
ns\n",
- i+1, pass_data[i].nr_events, pass_data[i].elapsed_ns);
+ printf (" pass %zu: %zu events collected in %" PRIi64 " ns\n",
i + 1,
+ pass_data[i].nr_events, pass_data[i].elapsed_ns);
}
if (verbose)
@@ -271,11 +268,11 @@ add_event (struct pass_data *data, uint64_t source)
struct event *ret;
data->nr_events++;
- data->events = realloc (data->events,
- sizeof (struct event) * data->nr_events);
+ data->events =
+ realloc (data->events, sizeof (struct event) * data->nr_events);
if (data->events == NULL)
error (EXIT_FAILURE, errno, "realloc");
- ret = &data->events[data->nr_events-1];
+ ret = &data->events[data->nr_events - 1];
get_time (&ret->t);
ret->source = source;
ret->message = NULL;
@@ -290,7 +287,8 @@ create_handle (void)
CLEANUP_FREE char *full_append = NULL;
g = guestfs_create ();
- if (!g) error (EXIT_FAILURE, errno, "guestfs_create");
+ if (!g)
+ error (EXIT_FAILURE, errno, "guestfs_create");
if (memsize != 0)
if (guestfs_set_memsize (g, memsize) == -1)
@@ -303,10 +301,9 @@ create_handle (void)
/* This changes some details in appliance/init and enables a
* detailed trace of calls to initcall functions in the kernel.
*/
- if (asprintf (&full_append,
- "guestfs_boot_analysis=1 "
- "ignore_loglevel initcall_debug "
- "%s",
+ if (asprintf (&full_append, "guestfs_boot_analysis=1 "
+ "ignore_loglevel initcall_debug "
+ "%s",
append != NULL ? append : "") == -1)
error (EXIT_FAILURE, errno, "asprintf");
@@ -320,9 +317,8 @@ create_handle (void)
static void
add_drive (guestfs_h *g)
{
- if (guestfs_add_drive_opts (g, "/dev/null",
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
- GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
+ if (guestfs_add_drive_opts (g, "/dev/null", GUESTFS_ADD_DRIVE_OPTS_FORMAT,
+ "raw", GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
-1) == -1)
exit (EXIT_FAILURE);
}
@@ -331,9 +327,8 @@ add_drive (guestfs_h *g)
* the pass_data here.
*/
static void
-close_callback (guestfs_h *g, void *datavp, uint64_t source,
- int eh, int flags,
- const char *buf, size_t buf_len,
+close_callback (guestfs_h *g, void *datavp, uint64_t source, int eh,
+ int flags, const char *buf, size_t buf_len,
const uint64_t *array, size_t array_len)
{
struct pass_data *data = datavp;
@@ -356,9 +351,9 @@ close_callback (guestfs_h *g, void *datavp, uint64_t source,
*/
static void
subprocess_quit_callback (guestfs_h *g, void *datavp, uint64_t source,
- int eh, int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+ int eh, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len)
{
struct pass_data *data = datavp;
struct event *event;
@@ -376,9 +371,8 @@ subprocess_quit_callback (guestfs_h *g, void *datavp, uint64_t
source,
* guestfs daemon and talking to each other).
*/
static void
-launch_done_callback (guestfs_h *g, void *datavp, uint64_t source,
- int eh, int flags,
- const char *buf, size_t buf_len,
+launch_done_callback (guestfs_h *g, void *datavp, uint64_t source, int eh,
+ int flags, const char *buf, size_t buf_len,
const uint64_t *array, size_t array_len)
{
struct pass_data *data = datavp;
@@ -399,8 +393,8 @@ trim_r (char *message)
{
size_t len = strlen (message);
- while (len > 0 && message[len-1] == '\r') {
- message[len-1] = '\0';
+ while (len > 0 && message[len - 1] == '\r') {
+ message[len - 1] = '\0';
len--;
}
}
@@ -410,9 +404,8 @@ trim_r (char *message)
* BIOS, kernel, etc).
*/
static void
-appliance_callback (guestfs_h *g, void *datavp, uint64_t source,
- int eh, int flags,
- const char *buf, size_t buf_len,
+appliance_callback (guestfs_h *g, void *datavp, uint64_t source, int eh,
+ int flags, const char *buf, size_t buf_len,
const uint64_t *array, size_t array_len)
{
struct pass_data *data = datavp;
@@ -459,7 +452,7 @@ appliance_callback (guestfs_h *g, void *datavp, uint64_t source,
buf += len;
buf_len -= len;
- if (buf_len == 0) /* still not complete, more to come! */
+ if (buf_len == 0) /* still not complete, more to come! */
return;
/* Skip the \n in the buffer. */
@@ -508,9 +501,8 @@ appliance_callback (guestfs_h *g, void *datavp, uint64_t source,
* are always delivered as complete messages.
*/
static void
-library_callback (guestfs_h *g, void *datavp, uint64_t source,
- int eh, int flags,
- const char *buf, size_t buf_len,
+library_callback (guestfs_h *g, void *datavp, uint64_t source, int eh,
+ int flags, const char *buf, size_t buf_len,
const uint64_t *array, size_t array_len)
{
struct pass_data *data = datavp;
@@ -530,9 +522,8 @@ library_callback (guestfs_h *g, void *datavp, uint64_t source,
* complete messages.
*/
static void
-trace_callback (guestfs_h *g, void *datavp, uint64_t source,
- int eh, int flags,
- const char *buf, size_t buf_len,
+trace_callback (guestfs_h *g, void *datavp, uint64_t source, int eh,
+ int flags, const char *buf, size_t buf_len,
const uint64_t *array, size_t array_len)
{
struct pass_data *data = datavp;
@@ -573,18 +564,18 @@ set_up_event_handlers (guestfs_h *g, size_t pass)
data->incomplete_log_message = -1;
data->seen_launch = 0;
- guestfs_set_event_callback (g, close_callback,
- GUESTFS_EVENT_CLOSE, 0, data);
+ guestfs_set_event_callback (g, close_callback, GUESTFS_EVENT_CLOSE, 0,
+ data);
guestfs_set_event_callback (g, subprocess_quit_callback,
GUESTFS_EVENT_SUBPROCESS_QUIT, 0, data);
guestfs_set_event_callback (g, launch_done_callback,
GUESTFS_EVENT_LAUNCH_DONE, 0, data);
guestfs_set_event_callback (g, appliance_callback,
GUESTFS_EVENT_APPLIANCE, 0, data);
- guestfs_set_event_callback (g, library_callback,
- GUESTFS_EVENT_LIBRARY, 0, data);
- guestfs_set_event_callback (g, trace_callback,
- GUESTFS_EVENT_TRACE, 0, data);
+ guestfs_set_event_callback (g, library_callback, GUESTFS_EVENT_LIBRARY, 0,
+ data);
+ guestfs_set_event_callback (g, trace_callback, GUESTFS_EVENT_TRACE, 0,
+ data);
guestfs_set_verbose (g, 1);
guestfs_set_trace (g, 1);
@@ -607,7 +598,7 @@ check_pass_data (void)
for (j = 0; j < pass_data[i].nr_events; ++j) {
assert (pass_data[i].events[j].t.tv_sec > 0);
if (j > 0) {
- ns = timespec_diff (&pass_data[i].events[j-1].t,
+ ns = timespec_diff (&pass_data[i].events[j - 1].t,
&pass_data[i].events[j].t);
assert (ns >= 0);
}
@@ -617,7 +608,7 @@ check_pass_data (void)
assert (pass_data[i].events[j].source != GUESTFS_EVENT_APPLIANCE ||
strchr (message, '\n') == NULL);
len = strlen (message);
- assert (len == 0 || message[len-1] != '\r');
+ assert (len == 0 || message[len - 1] != '\r');
}
}
}
@@ -629,7 +620,7 @@ print_escaped_string (const char *message)
if (isprint (*message))
putchar (*message);
else
- printf ("\\x%02x", (unsigned int) *message);
+ printf ("\\x%02x", (unsigned int)*message);
message++;
}
}
@@ -679,10 +670,11 @@ add_activity (const char *name, int flags)
assert (!activity_exists (name));
nr_activities++;
- activities = realloc (activities, sizeof (struct activity) * nr_activities);
+ activities =
+ realloc (activities, sizeof (struct activity) * nr_activities);
if (activities == NULL)
error (EXIT_FAILURE, errno, "realloc");
- ret = &activities[nr_activities-1];
+ ret = &activities[nr_activities - 1];
ret->name = strdup (name);
if (ret->name == NULL)
error (EXIT_FAILURE, errno, "strdup");
@@ -702,8 +694,8 @@ find_activity (const char *name)
for (i = 0; i < nr_activities; ++i)
if (STREQ (activities[i].name, name))
return &activities[i];
- error (EXIT_FAILURE, 0,
- "internal error: could not find activity '%s'", name);
+ error (EXIT_FAILURE, 0, "internal error: could not find activity
'%s'",
+ name);
/*NOTREACHED*/
abort ();
}
@@ -745,13 +737,13 @@ analyze_timeline (void)
activity->mean = 0;
for (i = 0; i < NR_TEST_PASSES; ++i) {
delta_ns =
- timespec_diff (&pass_data[i].events[0].t,
- &pass_data[i].events[activity->start_event[i]].t);
+ timespec_diff (&pass_data[i].events[0].t,
+ &pass_data[i].events[activity->start_event[i]].t);
activity->t += delta_ns;
delta_ns =
- timespec_diff (&pass_data[i].events[activity->start_event[i]].t,
- &pass_data[i].events[activity->end_event[i]].t);
+ timespec_diff (&pass_data[i].events[activity->start_event[i]].t,
+ &pass_data[i].events[activity->end_event[i]].t);
activity->mean += delta_ns;
}
@@ -773,8 +765,8 @@ analyze_timeline (void)
activity->variance = 0;
for (i = 0; i < NR_TEST_PASSES; ++i) {
delta_ns =
- timespec_diff (&pass_data[i].events[activity->start_event[i]].t,
- &pass_data[i].events[activity->end_event[i]].t);
+ timespec_diff (&pass_data[i].events[activity->start_event[i]].t,
+ &pass_data[i].events[activity->end_event[i]].t);
activity->variance += pow (delta_ns - activity->mean, 2);
}
activity->variance /= NR_TEST_PASSES;
@@ -787,9 +779,8 @@ analyze_timeline (void)
for (j = 0; j < nr_activities; ++j) {
activities[j].percent = 100.0 * activities[j].mean / activity->mean;
- activities[j].warning =
- !(activities[j].flags & LONG_ACTIVITY) &&
- activities[j].percent >= WARNING_THRESHOLD;
+ activities[j].warning = !(activities[j].flags & LONG_ACTIVITY) &&
+ activities[j].percent >= WARNING_THRESHOLD;
}
/* Sort the activities by start time. */
@@ -806,8 +797,8 @@ dump_timeline (void)
for (i = 0; i < nr_activities; ++i) {
printf ("activity %zu:\n", i);
printf (" name = %s\n", activities[i].name);
- printf (" start - end = %.1f - %.1f\n",
- activities[i].t, activities[i].end_t);
+ printf (" start - end = %.1f - %.1f\n", activities[i].t,
+ activities[i].end_t);
printf (" mean elapsed = %.1f\n", activities[i].mean);
printf (" variance = %.1f\n", activities[i].variance);
printf (" s.d = %.1f\n", activities[i].sd);
@@ -818,12 +809,18 @@ dump_timeline (void)
static void
print_activity (struct activity *activity)
{
- if (activity->warning) ansi_red (); else ansi_green ();
+ if (activity->warning)
+ ansi_red ();
+ else
+ ansi_green ();
print_escaped_string (activity->name);
ansi_restore ();
- printf (" %.1fms ±%.1fms ",
- activity->mean / 1000000, activity->sd / 1000000);
- if (activity->warning) ansi_red (); else ansi_green ();
+ printf (" %.1fms ±%.1fms ", activity->mean / 1000000,
+ activity->sd / 1000000);
+ if (activity->warning)
+ ansi_red ();
+ else
+ ansi_green ();
printf ("(%.1f%%) ", activity->percent);
ansi_restore ();
}
@@ -831,7 +828,7 @@ print_activity (struct activity *activity)
static void
print_analysis (void)
{
- double t = -1; /* Current time. */
+ double t = -1; /* Current time. */
/* Which columns contain activities that we are displaying now?
* -1 == unused column, else index of an activity
*/
@@ -844,7 +841,8 @@ print_analysis (void)
const double MAX_T = 1e20;
columns = malloc (nr_columns * sizeof (ssize_t));
- if (columns == NULL) error (EXIT_FAILURE, errno, "malloc");
+ if (columns == NULL)
+ error (EXIT_FAILURE, errno, "malloc");
for (j = 0; j < nr_columns; ++j)
columns[j] = -1;
@@ -856,11 +854,12 @@ print_analysis (void)
for (i = 0; i < nr_activities; ++i) {
if (t < activities[i].t && activities[i].t < smallest_next_t)
smallest_next_t = activities[i].t;
- else if (t < activities[i].end_t && activities[i].end_t <
smallest_next_t)
+ else if (t < activities[i].end_t &&
+ activities[i].end_t < smallest_next_t)
smallest_next_t = activities[i].end_t;
}
if (smallest_next_t == MAX_T)
- break; /* Finished. */
+ break; /* Finished. */
last_t = t;
t = smallest_next_t;
@@ -886,7 +885,7 @@ print_analysis (void)
for (i = 0; i < nr_activities; ++i) {
if (activities[i].end_t < t) {
for (j = 0; j < nr_columns; ++j)
- if (columns[j] == (ssize_t) i) {
+ if (columns[j] == (ssize_t)i) {
columns[j] = -1;
break;
}
@@ -894,7 +893,7 @@ print_analysis (void)
}
/* May need to adjust last_free_column after previous operation. */
- while (last_free_column > 0 && columns[last_free_column-1] == -1)
+ while (last_free_column > 0 && columns[last_free_column - 1] == -1)
last_free_column--;
/* If there are any activities starting at this time, add them to
@@ -918,8 +917,7 @@ print_analysis (void)
printf ("▼ ");
else
printf ("│ ");
- }
- else
+ } else
printf (" ");
}
ansi_restore ();
@@ -936,8 +934,8 @@ print_analysis (void)
static int
compare_activities_pointers_by_mean (const void *av, const void *bv)
{
- const struct activity * const *a = av;
- const struct activity * const *b = bv;
+ const struct activity *const *a = av;
+ const struct activity *const *b = bv;
return (*b)->mean - (*a)->mean;
}
diff --git a/tests/qemu/boot-analysis.h b/tests/qemu/boot-analysis.h
index 86d403e..b2e30e5 100644
--- a/tests/qemu/boot-analysis.h
+++ b/tests/qemu/boot-analysis.h
@@ -20,10 +20,11 @@
#define GUESTFS_BOOT_ANALYSIS_H_
#define NR_WARMUP_PASSES 3
-#define NR_TEST_PASSES 5
+#define NR_TEST_PASSES 5
/* Per-pass data collected. */
-struct pass_data {
+struct pass_data
+{
size_t pass;
struct timespec start_t;
struct timespec end_t;
@@ -46,7 +47,8 @@ struct pass_data {
int seen_launch;
};
-struct event {
+struct event
+{
struct timespec t;
uint64_t source;
char *message;
@@ -58,10 +60,11 @@ extern struct pass_data pass_data[NR_TEST_PASSES];
* ending. We're interested in when the activities start, and how
* long they take (mean, variance, standard deviation of length).
*/
-struct activity {
- char *name; /* Name of this activity. */
+struct activity
+{
+ char *name; /* Name of this activity. */
int flags;
-#define LONG_ACTIVITY 1 /* Expected to take a long time. */
+#define LONG_ACTIVITY 1 /* Expected to take a long time. */
/* For each pass, record the actual start & end events of this
* activity.
@@ -69,16 +72,16 @@ struct activity {
size_t start_event[NR_TEST_PASSES];
size_t end_event[NR_TEST_PASSES];
- double t; /* Start (ns offset). */
- double end_t; /* t + mean - 1 */
+ double t; /* Start (ns offset). */
+ double end_t; /* t + mean - 1 */
/* Length of this activity. */
- double mean; /* Mean time elapsed (ns). */
- double variance; /* Variance. */
- double sd; /* Standard deviation. */
- double percent; /* Percent of total elapsed time. */
+ double mean; /* Mean time elapsed (ns). */
+ double variance; /* Variance. */
+ double sd; /* Standard deviation. */
+ double percent; /* Percent of total elapsed time. */
- int warning; /* Appears in red. */
+ int warning; /* Appears in red. */
};
extern size_t nr_activities;
diff --git a/tests/qemu/boot-benchmark.c b/tests/qemu/boot-benchmark.c
index 0508ee9..64d9782 100644
--- a/tests/qemu/boot-benchmark.c
+++ b/tests/qemu/boot-benchmark.c
@@ -39,7 +39,7 @@
#include "boot-analysis-utils.h"
#define NR_WARMUP_PASSES 3
-#define NR_TEST_PASSES 10
+#define NR_TEST_PASSES 10
static const char *append = NULL;
static int memsize = 0;
@@ -61,16 +61,16 @@ usage (int exitcode)
guestfs_close (g);
}
- fprintf (stderr,
- "boot-benchmark: Benchmark the time taken to boot the libguestfs
appliance.\n"
- "Usage:\n"
- " boot-benchmark [--options]\n"
- "Options:\n"
- " --help Display this usage text and exit.\n"
- " --append OPTS Append OPTS to kernel command line.\n"
- " -m MB\n"
- " --memsize MB Set memory size in MB (default: %d).\n"
- " --smp N Enable N virtual CPUs (default: 1).\n",
+ fprintf (stderr, "boot-benchmark: Benchmark the time taken to boot the "
+ "libguestfs appliance.\n"
+ "Usage:\n"
+ " boot-benchmark [--options]\n"
+ "Options:\n"
+ " --help Display this usage text and exit.\n"
+ " --append OPTS Append OPTS to kernel command line.\n"
+ " -m MB\n"
+ " --memsize MB Set memory size in MB (default: %d).\n"
+ " --smp N Enable N virtual CPUs (default: 1).\n",
default_memsize);
exit (exitcode);
}
@@ -80,26 +80,25 @@ main (int argc, char *argv[])
{
enum { HELP_OPTION = CHAR_MAX + 1 };
static const char *options = "m:";
- static const struct option long_options[] = {
- { "help", 0, 0, HELP_OPTION },
- { "append", 1, 0, 0 },
- { "memsize", 1, 0, 'm' },
- { "smp", 1, 0, 0 },
- { 0, 0, 0, 0 }
- };
+ static const struct option long_options[] = { { "help", 0, 0,
+ HELP_OPTION },
+ { "append", 1, 0, 0 },
+ { "memsize", 1, 0, 'm'
},
+ { "smp", 1, 0, 0 },
+ { 0, 0, 0, 0 } };
int c, option_index;
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
- case 0: /* Options which are long only. */
+ case 0: /* Options which are long only. */
if (STREQ (long_options[option_index].name, "append")) {
append = optarg;
break;
- }
- else if (STREQ (long_options[option_index].name, "smp")) {
+ } else if (STREQ (long_options[option_index].name, "smp")) {
if (sscanf (optarg, "%d", &smp) != 1) {
fprintf (stderr, "%s: could not parse smp parameter: %s\n",
guestfs_int_program_name, optarg);
@@ -108,7 +107,8 @@ main (int argc, char *argv[])
break;
}
fprintf (stderr, "%s: unknown long option: %s (%d)\n",
- guestfs_int_program_name, long_options[option_index].name, option_index);
+ guestfs_int_program_name, long_options[option_index].name,
+ option_index);
exit (EXIT_FAILURE);
case 'm':
@@ -196,7 +196,8 @@ create_handle (void)
CLEANUP_FREE char *full_append = NULL;
g = guestfs_create ();
- if (!g) error (EXIT_FAILURE, errno, "guestfs_create");
+ if (!g)
+ error (EXIT_FAILURE, errno, "guestfs_create");
if (memsize != 0)
if (guestfs_set_memsize (g, memsize) == -1)
@@ -217,9 +218,8 @@ create_handle (void)
static void
add_drive (guestfs_h *g)
{
- if (guestfs_add_drive_opts (g, "/dev/null",
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
- GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
+ if (guestfs_add_drive_opts (g, "/dev/null", GUESTFS_ADD_DRIVE_OPTS_FORMAT,
+ "raw", GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
-1) == -1)
exit (EXIT_FAILURE);
}
diff --git a/tests/qemu/qemu-boot.c b/tests/qemu/qemu-boot.c
index 61d2ff0..6ba00db 100644
--- a/tests/qemu/qemu-boot.c
+++ b/tests/qemu/qemu-boot.c
@@ -39,7 +39,7 @@
#include "guestfs-internal-frontend.h"
#include "estimate-max-threads.h"
-#define MIN(a,b) ((a)<(b)?(a):(b))
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
/* Maximum number of threads we would ever run. Note this should not
* be > 20, unless libvirt is modified to increase the maximum number
@@ -47,7 +47,7 @@
*/
#define MAX_THREADS 12
-static size_t n; /* Number of qemu processes to run in total. */
+static size_t n; /* Number of qemu processes to run in total. */
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static int ignore_errors = 0;
@@ -58,29 +58,34 @@ static int verbose = 0;
/* Events captured by the --log option. */
static const uint64_t event_bitmask =
- GUESTFS_EVENT_LIBRARY |
- GUESTFS_EVENT_WARNING |
- GUESTFS_EVENT_APPLIANCE |
- GUESTFS_EVENT_TRACE;
+ GUESTFS_EVENT_LIBRARY | GUESTFS_EVENT_WARNING |
+ GUESTFS_EVENT_APPLIANCE | GUESTFS_EVENT_TRACE;
-struct thread_data {
+struct thread_data
+{
int thread_num;
int r;
};
static void run_test (size_t P);
static void *start_thread (void *thread_data_vp);
-static void message_callback (guestfs_h *g, void *opaque, uint64_t event, int
event_handle, int flags, const char *buf, size_t buf_len, const uint64_t *array, size_t
array_len);
+static void message_callback (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array,
+ size_t array_len);
static void
usage (int exitcode)
{
fprintf (stderr,
- "qemu-boot: A program for repeatedly running the libguestfs
appliance.\n"
- "qemu-boot [-i] [--log output.%%] [-P <nr-threads>] -n
<nr-appliances>\n"
+ "qemu-boot: A program for repeatedly running the libguestfs "
+ "appliance.\n"
+ "qemu-boot [-i] [--log output.%%] [-P <nr-threads>] -n "
+ "<nr-appliances>\n"
" -i Ignore errors\n"
" --log <file.%%>\n"
- " Write per-appliance logs to file (%% in name replaced by boot
number)\n"
+ " Write per-appliance logs to file (%% in name replaced "
+ "by boot number)\n"
" -P <n> Set number of parallel threads\n"
" (default is based on the amount of free memory)\n"
" -n <n> Set number of appliances to run before exiting\n"
@@ -109,7 +114,8 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
case 0:
@@ -121,10 +127,8 @@ main (int argc, char *argv[])
if (log_template[i] == '%')
log_file_size += 64;
}
- }
- else
- error (EXIT_FAILURE, 0,
- "unknown long option: %s (%d)",
+ } else
+ error (EXIT_FAILURE, 0, "unknown long option: %s (%d)",
long_options[option_index].name, option_index);
break;
@@ -163,8 +167,7 @@ main (int argc, char *argv[])
"must specify number of processes to run (-n option)");
if (optind != argc)
- error (EXIT_FAILURE, 0,
- "extra arguments found on the command line");
+ error (EXIT_FAILURE, 0, "extra arguments found on the command line");
/* Calculate the number of threads to use. */
if (P > 0)
@@ -245,8 +248,7 @@ start_thread (void *thread_data_vp)
fflush (stdout);
n--;
- }
- else
+ } else
quit = 1;
err = pthread_mutex_unlock (&mutex);
@@ -256,7 +258,7 @@ start_thread (void *thread_data_vp)
goto error;
}
- if (quit) /* Work finished. */
+ if (quit) /* Work finished. */
break;
g = guestfs_create ();
@@ -267,18 +269,19 @@ start_thread (void *thread_data_vp)
goto error;
}
- /* Only if using --log, set up a callback. See examples/debug-logging.c */
+ /* Only if using --log, set up a callback. See examples/debug-logging.c
+ */
if (log_template != NULL) {
size_t j, k;
log_file = malloc (log_file_size + 1);
- if (log_file == NULL) abort ();
+ if (log_file == NULL)
+ abort ();
for (j = 0, k = 0; j < strlen (log_template); ++j) {
if (log_template[j] == '%') {
snprintf (&log_file[k], log_file_size - k, "%zu", i);
k += strlen (&log_file[k]);
- }
- else
+ } else
log_file[k++] = log_template[j];
}
log_file[k] = '\0';
@@ -287,8 +290,8 @@ start_thread (void *thread_data_vp)
perror (log_file);
abort ();
}
- guestfs_set_event_callback (g, message_callback,
- event_bitmask, 0, log_fp);
+ guestfs_set_event_callback (g, message_callback, event_bitmask, 0,
+ log_fp);
}
snprintf (id, sizeof id, "%zu", i);
@@ -327,18 +330,16 @@ start_thread (void *thread_data_vp)
thread_data->r = 0;
return &thread_data->r;
- error:
+error:
thread_data->r = -1;
return &thread_data->r;
}
/* If using --log, this is called to write messages to the log file. */
static void
-message_callback (guestfs_h *g, void *opaque,
- uint64_t event, int event_handle,
- int flags,
- const char *buf, size_t buf_len,
- const uint64_t *array, size_t array_len)
+message_callback (guestfs_h *g, void *opaque, uint64_t event,
+ int event_handle, int flags, const char *buf,
+ size_t buf_len, const uint64_t *array, size_t array_len)
{
FILE *fp = opaque;
diff --git a/tests/qemu/qemu-speed-test.c b/tests/qemu/qemu-speed-test.c
index 375a9a4..50f60eb 100644
--- a/tests/qemu/qemu-speed-test.c
+++ b/tests/qemu/qemu-speed-test.c
@@ -67,24 +67,24 @@ reset_default_tests (int *flag)
static void
usage (int exitcode)
{
- fprintf (stderr,
- "qemu-speed-test: Test the speed of qemu features.\n"
- "\n"
- "To run all tests (recommended), do:\n"
- " qemu-speed-test\n"
- "\n"
- "To run only specific tests, do:\n"
- " qemu-speed-test --option [--option ...]\n"
- "where the test options are:\n"
- " --virtio-serial-upload\n"
- " --virtio-serial-download\n"
- " --block-device-write\n"
- " --block-device-read\n"
- "\n"
- "Other options:\n"
- " --help Display help output and exit\n"
- " -t <SECS> | --time=<SECS> Set max length of test in
seconds\n"
- );
+ fprintf (
+ stderr,
+ "qemu-speed-test: Test the speed of qemu features.\n"
+ "\n"
+ "To run all tests (recommended), do:\n"
+ " qemu-speed-test\n"
+ "\n"
+ "To run only specific tests, do:\n"
+ " qemu-speed-test --option [--option ...]\n"
+ "where the test options are:\n"
+ " --virtio-serial-upload\n"
+ " --virtio-serial-download\n"
+ " --block-device-write\n"
+ " --block-device-read\n"
+ "\n"
+ "Other options:\n"
+ " --help Display help output and exit\n"
+ " -t <SECS> | --time=<SECS> Set max length of test in
seconds\n");
exit (exitcode);
}
@@ -110,7 +110,8 @@ main (int argc, char *argv[])
for (;;) {
c = getopt_long (argc, argv, options, long_options, &option_index);
- if (c == -1) break;
+ if (c == -1)
+ break;
switch (c) {
case 0:
@@ -118,22 +119,22 @@ main (int argc, char *argv[])
if (STREQ (long_options[option_index].name, "virtio-serial-upload")) {
reset_default_tests (&reset_flag);
virtio_serial_upload = 1;
- }
- else if (STREQ (long_options[option_index].name,
"virtio-serial-download")) {
+ } else if (STREQ (long_options[option_index].name,
+ "virtio-serial-download")) {
reset_default_tests (&reset_flag);
virtio_serial_download = 1;
- }
- else if (STREQ (long_options[option_index].name, "block-device-write"))
{
+ } else if (STREQ (long_options[option_index].name,
+ "block-device-write")) {
reset_default_tests (&reset_flag);
block_device_write = 1;
- }
- else if (STREQ (long_options[option_index].name, "block-device-read")) {
+ } else if (STREQ (long_options[option_index].name,
+ "block-device-read")) {
reset_default_tests (&reset_flag);
block_device_read = 1;
- }
- else {
+ } else {
fprintf (stderr, "%s: unknown long option: %s (%d)\n",
- guestfs_int_program_name, long_options[option_index].name,
option_index);
+ guestfs_int_program_name, long_options[option_index].name,
+ option_index);
exit (EXIT_FAILURE);
}
break;
@@ -170,8 +171,8 @@ main (int argc, char *argv[])
static void
print_rate (const char *msg, int64_t rate)
{
- printf ("%-40s %" PRIi64 " bytes/sec (%" PRIi64 "
Mbytes/sec)\n",
- msg, rate, rate / 1024 / 1024);
+ printf ("%-40s %" PRIi64 " bytes/sec (%" PRIi64 "
Mbytes/sec)\n", msg,
+ rate, rate / 1024 / 1024);
fflush (stdout);
}
@@ -181,8 +182,8 @@ print_rate (const char *msg, int64_t rate)
/* The maximum amount of data to copy. You can safely make this very
* large because it's only making sparse files.
*/
-#define TEST_SERIAL_MAX_SIZE \
- (INT64_C(1024) * INT64_C(1024) * INT64_C(1024) * INT64_C(1024))
+#define TEST_SERIAL_MAX_SIZE \
+ (INT64_C (1024) * INT64_C (1024) * INT64_C (1024) * INT64_C (1024))
static guestfs_h *g;
static struct timeval start;
@@ -210,10 +211,9 @@ timeval_diff (const struct timeval *x, const struct timeval *y)
}
static void
-progress_cb (guestfs_h *g, void *vp, uint64_t event,
- int eh, int flags,
- const char *buf, size_t buflen,
- const uint64_t *array, size_t arraylen)
+progress_cb (guestfs_h *g, void *vp, uint64_t event, int eh, int flags,
+ const char *buf, size_t buflen, const uint64_t *array,
+ size_t arraylen)
{
uint64_t transferred;
struct timeval now;
@@ -233,8 +233,7 @@ progress_cb (guestfs_h *g, void *vp, uint64_t event,
if (millis != 0) {
rate = 1000 * transferred / millis;
- printf ("%s: %" PRIi64 " bytes/sec \r",
- operation, rate);
+ printf ("%s: %" PRIi64 " bytes/sec \r", operation,
rate);
fflush (stdout);
}
}
@@ -265,7 +264,7 @@ test_virtio_serial (void)
if (!g)
error (EXIT_FAILURE, errno, "guestfs_create");
- if (guestfs_add_drive_scratch (g, INT64_C (100*1024*1024), -1) == -1)
+ if (guestfs_add_drive_scratch (g, INT64_C (100 * 1024 * 1024), -1) == -1)
exit (EXIT_FAILURE);
if (guestfs_launch (g) == -1)
@@ -295,7 +294,8 @@ test_virtio_serial (void)
gettimeofday (&start, NULL);
rate = -1;
operation = "upload";
- alarm (max_time_override > 0 ? max_time_override : TEST_SERIAL_MAX_TIME);
+ alarm (max_time_override > 0 ? max_time_override
+ : TEST_SERIAL_MAX_TIME);
/* For the upload test, upload the sparse file to /dev/null in the
* appliance. Hopefully this is mostly testing just virtio-serial.
@@ -310,17 +310,16 @@ test_virtio_serial (void)
* or that the upload will be stopped by the alarm.
*/
if (r == -1 && guestfs_last_errno (g) != EINTR) {
- fprintf (stderr,
- "%s: expecting upload command to return EINTR\n%s\n",
+ fprintf (stderr, "%s: expecting upload command to return EINTR\n%s\n",
guestfs_int_program_name, guestfs_last_error (g));
exit (EXIT_FAILURE);
}
if (rate == -1) {
rate_error:
- fprintf (stderr, "%s: internal error: progress callback was not called! (r=%d,
errno=%d)\n",
- guestfs_int_program_name,
- r, guestfs_last_errno (g));
+ fprintf (stderr, "%s: internal error: progress callback was not "
+ "called! (r=%d, errno=%d)\n",
+ guestfs_int_program_name, r, guestfs_last_errno (g));
exit (EXIT_FAILURE);
}
@@ -339,7 +338,8 @@ test_virtio_serial (void)
gettimeofday (&start, NULL);
rate = -1;
operation = "download";
- alarm (max_time_override > 0 ? max_time_override : TEST_SERIAL_MAX_TIME);
+ alarm (max_time_override > 0 ? max_time_override
+ : TEST_SERIAL_MAX_TIME);
guestfs_push_error_handler (g, NULL, NULL);
r = guestfs_download (g, "/sparse", "/dev/null");
alarm (0);
@@ -378,7 +378,8 @@ test_block_device (void)
CLEANUP_FREE char **devices = NULL;
char *r;
const char *argv[4];
- int t = max_time_override > 0 ? max_time_override : TEST_BLOCK_DEVICE_TIME;
+ int t =
+ max_time_override > 0 ? max_time_override : TEST_BLOCK_DEVICE_TIME;
char tbuf[64];
int64_t bytes_written, bytes_read;
@@ -399,8 +400,7 @@ test_block_device (void)
error (EXIT_FAILURE, errno, "mkstemp: %s", tmpfile);
close (fd);
- if (guestfs_disk_create (g, tmpfile, "raw",
- INT64_C (1024*1024*1024),
+ if (guestfs_disk_create (g, tmpfile, "raw", INT64_C (1024 * 1024 * 1024),
GUESTFS_DISK_CREATE_PREALLOCATION, "full",
-1) == -1)
exit (EXIT_FAILURE);
@@ -415,8 +415,10 @@ test_block_device (void)
if (devices == NULL)
exit (EXIT_FAILURE);
if (devices[0] == NULL) {
- fprintf (stderr, "%s: expected guestfs_list_devices to return at least 1
device\n",
- guestfs_int_program_name);
+ fprintf (
+ stderr,
+ "%s: expected guestfs_list_devices to return at least 1 device\n",
+ guestfs_int_program_name);
exit (EXIT_FAILURE);
}
@@ -426,7 +428,7 @@ test_block_device (void)
argv[1] = "w";
argv[2] = tbuf;
argv[3] = NULL;
- r = guestfs_debug (g, "device_speed", (char **) argv);
+ r = guestfs_debug (g, "device_speed", (char **)argv);
if (r == NULL)
exit (EXIT_FAILURE);
@@ -445,7 +447,7 @@ test_block_device (void)
argv[1] = "r";
argv[2] = tbuf;
argv[3] = NULL;
- r = guestfs_debug (g, "device_speed", (char **) argv);
+ r = guestfs_debug (g, "device_speed", (char **)argv);
if (r == NULL)
exit (EXIT_FAILURE);
diff --git a/tests/regressions/rhbz1055452.c b/tests/regressions/rhbz1055452.c
index 79cd540..1318760 100644
--- a/tests/regressions/rhbz1055452.c
+++ b/tests/regressions/rhbz1055452.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* Regression test for RHBZ#1055452. Check parsing of
@@ -39,7 +40,8 @@ int
main (int argc, char *argv[])
{
guestfs_h *g;
- const char *var[] = { "LIBGUESTFS_BACKEND",
"LIBGUESTFS_ATTACH_METHOD", NULL };
+ const char *var[] = { "LIBGUESTFS_BACKEND",
"LIBGUESTFS_ATTACH_METHOD",
+ NULL };
const char *value[] = { "appliance", "direct", NULL };
size_t i, j;
char *r;
@@ -75,7 +77,8 @@ main (int argc, char *argv[])
if (!r)
exit (EXIT_FAILURE);
if (STRNEQ (r, "appliance")) {
- fprintf (stderr, "%s: expecting guestfs_get_attach_method to return
'appliance', but it returned '%s'.\n",
+ fprintf (stderr, "%s: expecting guestfs_get_attach_method to return "
+ "'appliance', but it returned '%s'.\n",
argv[0], r);
exit (EXIT_FAILURE);
}
@@ -87,7 +90,8 @@ main (int argc, char *argv[])
if (!r)
exit (EXIT_FAILURE);
if (STRNEQ (r, "direct")) {
- fprintf (stderr, "%s: expecting guestfs_get_backend to return 'direct',
but it returned '%s'.\n",
+ fprintf (stderr, "%s: expecting guestfs_get_backend to return "
+ "'direct', but it returned '%s'.\n",
argv[0], r);
exit (EXIT_FAILURE);
}
diff --git a/tests/regressions/rhbz501893.c b/tests/regressions/rhbz501893.c
index f6111c9..5c3842d 100644
--- a/tests/regressions/rhbz501893.c
+++ b/tests/regressions/rhbz501893.c
@@ -14,7 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
#include <config.h>
diff --git a/tests/regressions/rhbz790721.c b/tests/regressions/rhbz790721.c
index e2178e5..f650f01 100644
--- a/tests/regressions/rhbz790721.c
+++ b/tests/regressions/rhbz790721.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* Regression test for RHBZ#790721.
@@ -100,7 +101,7 @@ main (int argc, char *argv[])
for (i = 0; i < NR_THREADS; ++i) {
int *ret;
- r = pthread_join (thread[i], (void **) &ret);
+ r = pthread_join (thread[i], (void **)&ret);
if (r != 0)
error (EXIT_FAILURE, r, "pthread_join");
if (*ret == -1)
@@ -124,9 +125,8 @@ start_thread (void *vi)
pthread_exit (vi);
}
- if (guestfs_add_drive_opts (g, "/dev/null",
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
- GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
+ if (guestfs_add_drive_opts (g, "/dev/null", GUESTFS_ADD_DRIVE_OPTS_FORMAT,
+ "raw", GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
-1) == -1) {
*(int *)vi = -1;
pthread_exit (vi);
@@ -141,8 +141,8 @@ start_thread (void *vi)
/* Wait for the other threads to finish starting up. */
r = pthread_barrier_wait (&barrier);
if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD) {
- fprintf (stderr, "pthread_barrier_wait: [thread %d]: %s\n",
- thread_id, strerror (r));
+ fprintf (stderr, "pthread_barrier_wait: [thread %d]: %s\n", thread_id,
+ strerror (r));
*(int *)vi = -1;
pthread_exit (vi);
}
@@ -156,16 +156,18 @@ start_thread (void *vi)
error = guestfs_last_error (g);
if (r == 0) { /* This should NOT happen. */
- fprintf (stderr, "rhbz790721: [thread %d]: "
- "strangeness in test: expected launch to fail, but it
didn't!\n",
- thread_id);
+ fprintf (
+ stderr,
+ "rhbz790721: [thread %d]: "
+ "strangeness in test: expected launch to fail, but it didn't!\n",
+ thread_id);
*(int *)vi = -1;
pthread_exit (vi);
}
if (error == NULL) { /* This also should NOT happen. */
fprintf (stderr, "rhbz790721: [thread %d]: "
- "strangeness in test: no error message!\n",
+ "strangeness in test: no error message!\n",
thread_id);
*(int *)vi = -1;
pthread_exit (vi);
@@ -177,7 +179,8 @@ start_thread (void *vi)
* is designed to spot.
*/
if (strstr (error, "guestfs_launch failed") == NULL) {
- fprintf (stderr, "rhbz790721: [thread %d]: error: %s\n", thread_id,
error);
+ fprintf (stderr, "rhbz790721: [thread %d]: error: %s\n", thread_id,
+ error);
*(int *)vi = -1;
pthread_exit (vi);
}
diff --git a/tests/regressions/rhbz914931.c b/tests/regressions/rhbz914931.c
index 61b81ba..3a697b8 100644
--- a/tests/regressions/rhbz914931.c
+++ b/tests/regressions/rhbz914931.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* Regression test for RHBZ#914931. Simulate an appliance crash
@@ -52,9 +53,8 @@ main (int argc, char *argv[])
if (!g)
error (EXIT_FAILURE, errno, "guestfs_create");
- if (guestfs_add_drive_opts (g, "/dev/null",
- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
- GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
+ if (guestfs_add_drive_opts (g, "/dev/null", GUESTFS_ADD_DRIVE_OPTS_FORMAT,
+ "raw", GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
-1) == -1)
exit (EXIT_FAILURE);
diff --git a/tests/regressions/test-big-heap.c b/tests/regressions/test-big-heap.c
index 1cbf8d2..6908512 100644
--- a/tests/regressions/test-big-heap.c
+++ b/tests/regressions/test-big-heap.c
@@ -13,7 +13,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA.
*/
/* Test that allocating lots of heap in the main program doesn't cause
@@ -61,9 +62,8 @@ main (int argc, char *argv[])
*/
mem = calloc (1100, 1024 * 1024);
if (mem == NULL) {
- fprintf (stderr,
- "%s: test skipped because cannot allocate enough "
- "contiguous heap\n",
+ fprintf (stderr, "%s: test skipped because cannot allocate enough "
+ "contiguous heap\n",
argv[0]);
exit (77);
}
@@ -74,7 +74,8 @@ main (int argc, char *argv[])
fmt = guestfs_disk_format (g, "/dev/null");
if (fmt == NULL) {
/* Test failed. */
- fprintf (stderr, "%s: unexpected failure of test, see earlier messages\n",
+ fprintf (stderr,
+ "%s: unexpected failure of test, see earlier messages\n",
argv[0]);
exit (EXIT_FAILURE);
}
diff --git a/tests/xml/fake-libvirt-xml.c b/tests/xml/fake-libvirt-xml.c
index a34b700..fadf42b 100644
--- a/tests/xml/fake-libvirt-xml.c
+++ b/tests/xml/fake-libvirt-xml.c
@@ -51,8 +51,8 @@ virDomainGetXMLDesc (virDomainPtr dom, unsigned int flags)
_exit (1);
}
- fprintf (stderr,
- "fake_libvirt_xml: returning fake libvirt XML from %s\n", path);
+ fprintf (stderr, "fake_libvirt_xml: returning fake libvirt XML from %s\n",
+ path);
fd = open (path, O_RDONLY | O_CLOEXEC);
if (fd == -1) {
@@ -90,5 +90,5 @@ virDomainGetXMLDesc (virDomainPtr dom, unsigned int flags)
_exit (1);
}
- return buf; /* caller frees */
+ return buf; /* caller frees */
}
diff --git a/v2v/changeuid-c.c b/v2v/changeuid-c.c
index 0de5a30..72840e4 100644
--- a/v2v/changeuid-c.c
+++ b/v2v/changeuid-c.c
@@ -24,7 +24,7 @@
#include <caml/mlvalues.h>
-extern int v2v_exit (value rv) __attribute__((noreturn));
+extern int v2v_exit (value rv) __attribute__ ((noreturn));
int
v2v_exit (value rv)
diff --git a/v2v/domainxml-c.c b/v2v/domainxml-c.c
index 4876f94..b6857e3 100644
--- a/v2v/domainxml-c.c
+++ b/v2v/domainxml-c.c
@@ -81,8 +81,7 @@ get_dom_state (virDomainPtr dom)
/* See src/libvirt-auth.c for why we need this. */
static int
libvirt_auth_default_wrapper (virConnectCredentialPtr cred,
- unsigned int ncred,
- void *passwordvp)
+ unsigned int ncred, void *passwordvp)
{
const char *password = passwordvp;
unsigned int i;
@@ -95,15 +94,13 @@ libvirt_auth_default_wrapper (virConnectCredentialPtr cred,
if (cred[i].type == VIR_CRED_PASSPHRASE) {
cred[i].result = strdup (password);
cred[i].resultlen = strlen (password);
- }
- else {
+ } else {
cred[i].result = NULL;
cred[i].resultlen = 0;
}
}
return 0;
- }
- else {
+ } else {
/* No --password-file so call the default handler. */
return virConnectAuthPtrDefault->cb (cred, ncred,
virConnectAuthPtrDefault->cbdata);
@@ -138,7 +135,8 @@ connect_and_load_pool (value connv, value poolnamev)
snprintf (errmsg, sizeof errmsg,
_("cannot open libvirt connection '%s'"), conn_uri);
else
- snprintf (errmsg, sizeof errmsg, _("cannot open libvirt connection"));
+ snprintf (errmsg, sizeof errmsg,
+ _("cannot open libvirt connection"));
caml_invalid_argument (errmsg);
}
@@ -158,9 +156,13 @@ connect_and_load_pool (value connv, value poolnamev)
if (!pool) {
err = virGetLastError ();
- snprintf (errmsg, sizeof errmsg,
- _("cannot find libvirt pool '%s': %s\n\nUse `virsh pool-list
--all' to list all available pools, and `virsh pool-dumpxml <pool>' to
display details about a particular pool.\n\nTo set the pool which virt-v2v uses, add the
`-os <pool>' option."),
- poolname, err->message);
+ snprintf (
+ errmsg, sizeof errmsg,
+ _("cannot find libvirt pool '%s': %s\n\nUse `virsh pool-list "
+ "--all' to list all available pools, and `virsh pool-dumpxml "
+ "<pool>' to display details about a particular pool.\n\nTo set
"
+ "the pool which virt-v2v uses, add the `-os <pool>'
option."),
+ poolname, err->message);
virConnectClose (conn);
caml_invalid_argument (errmsg);
}
@@ -198,7 +200,7 @@ v2v_dumpxml (value passwordv, value connv, value domnamev)
/* Set up authentication wrapper. */
authdata = *virConnectAuthPtrDefault;
authdata.cb = libvirt_auth_default_wrapper;
- authdata.cbdata = (void *) password;
+ authdata.cbdata = (void *)password;
/* Note this cannot be a read-only connection since we need to use
* the VIR_DOMAIN_XML_SECURE flag below.
@@ -209,7 +211,8 @@ v2v_dumpxml (value passwordv, value connv, value domnamev)
snprintf (errmsg, sizeof errmsg,
_("cannot open libvirt connection '%s'"), conn_uri);
else
- snprintf (errmsg, sizeof errmsg, _("cannot open libvirt connection"));
+ snprintf (errmsg, sizeof errmsg,
+ _("cannot open libvirt connection"));
caml_invalid_argument (errmsg);
}
@@ -230,7 +233,8 @@ v2v_dumpxml (value passwordv, value connv, value domnamev)
if (!dom) {
err = virGetLastError ();
snprintf (errmsg, sizeof errmsg,
- _("cannot find libvirt domain '%s': %s"), domname,
err->message);
+ _("cannot find libvirt domain '%s': %s"), domname,
+ err->message);
virConnectClose (conn);
caml_invalid_argument (errmsg);
}
@@ -241,11 +245,11 @@ v2v_dumpxml (value passwordv, value connv, value domnamev)
if (!is_test_uri) {
int state = get_dom_state (dom);
- if (state == VIR_DOMAIN_RUNNING ||
- state == VIR_DOMAIN_BLOCKED ||
+ if (state == VIR_DOMAIN_RUNNING || state == VIR_DOMAIN_BLOCKED ||
state == VIR_DOMAIN_PAUSED) {
snprintf (errmsg, sizeof errmsg,
- _("libvirt domain '%s' is running or paused. It must be
shut down in order to perform virt-v2v conversion"),
+ _("libvirt domain '%s' is running or paused. It must be
"
+ "shut down in order to perform virt-v2v conversion"),
domname);
virDomainFree (dom);
virConnectClose (conn);
@@ -258,8 +262,8 @@ v2v_dumpxml (value passwordv, value connv, value domnamev)
if (xml == NULL) {
err = virGetLastError ();
snprintf (errmsg, sizeof errmsg,
- _("cannot fetch XML description of guest '%s': %s"),
- domname, err->message);
+ _("cannot fetch XML description of guest '%s': %s"),
domname,
+ err->message);
virDomainFree (dom);
virConnectClose (conn);
caml_invalid_argument (errmsg);
@@ -338,7 +342,8 @@ v2v_vol_dumpxml (value connv, value poolnamev, value volnamev)
if (!vol) {
err = virGetLastError ();
snprintf (errmsg, sizeof errmsg,
- _("cannot find libvirt volume '%s': %s"), volname,
err->message);
+ _("cannot find libvirt volume '%s': %s"), volname,
+ err->message);
virStoragePoolFree (pool);
virConnectClose (conn);
caml_invalid_argument (errmsg);
@@ -393,7 +398,8 @@ v2v_capabilities (value connv, value unitv)
snprintf (errmsg, sizeof errmsg,
_("cannot open libvirt connection '%s'"), conn_uri);
else
- snprintf (errmsg, sizeof errmsg, _("cannot open libvirt connection"));
+ snprintf (errmsg, sizeof errmsg,
+ _("cannot open libvirt connection"));
caml_invalid_argument (errmsg);
}
@@ -450,7 +456,8 @@ v2v_domain_exists (value connv, value domnamev)
snprintf (errmsg, sizeof errmsg,
_("cannot open libvirt connection '%s'"), conn_uri);
else
- snprintf (errmsg, sizeof errmsg, _("cannot open libvirt connection"));
+ snprintf (errmsg, sizeof errmsg,
+ _("cannot open libvirt connection"));
caml_invalid_argument (errmsg);
}
@@ -467,15 +474,14 @@ v2v_domain_exists (value connv, value domnamev)
if (dom) {
domain_exists = 1;
virDomainFree (dom);
- }
- else {
+ } else {
err = virGetLastError ();
if (err->code == VIR_ERR_NO_DOMAIN)
domain_exists = 0;
else {
snprintf (errmsg, sizeof errmsg,
- _("cannot find libvirt domain '%s': %s"),
- domname, err->message);
+ _("cannot find libvirt domain '%s': %s"), domname,
+ err->message);
virConnectClose (conn);
caml_invalid_argument (errmsg);
}
@@ -488,16 +494,18 @@ v2v_domain_exists (value connv, value domnamev)
#else /* !HAVE_LIBVIRT */
-#define NO_LIBVIRT(proto) \
- proto __attribute__((noreturn)); \
- proto \
- { \
- caml_invalid_argument ("virt-v2v was compiled without libvirt support"); \
+#define NO_LIBVIRT(proto) \
+ proto __attribute__ ((noreturn)); \
+ proto \
+ { \
+ caml_invalid_argument ( \
+ "virt-v2v was compiled without libvirt support"); \
}
NO_LIBVIRT (value v2v_dumpxml (value connv, value domv))
NO_LIBVIRT (value v2v_pool_dumpxml (value connv, value poolv))
-NO_LIBVIRT (value v2v_vol_dumpxml (value connv, value poolnamev, value volnamev))
+NO_LIBVIRT (value v2v_vol_dumpxml (value connv, value poolnamev,
+ value volnamev))
NO_LIBVIRT (value v2v_capabilities (value connv, value unitv))
NO_LIBVIRT (value v2v_domain_exists (value connv, value domnamev))
diff --git a/v2v/utils-c.c b/v2v/utils-c.c
index 5098952..f000ce2 100644
--- a/v2v/utils-c.c
+++ b/v2v/utils-c.c
@@ -71,8 +71,8 @@ get_firmware (char **firmware)
len = guestfs_int_count_strings (firmware);
for (i = len; i > 0; i -= 2) {
- v1 = caml_copy_string (firmware[i-2]);
- v2 = caml_copy_string (firmware[i-1]);
+ v1 = caml_copy_string (firmware[i - 2]);
+ v2 = caml_copy_string (firmware[i - 1]);
v = caml_alloc (2, 0);
Store_field (v, 0, v1);
Store_field (v, 1, v2);
@@ -88,17 +88,17 @@ get_firmware (char **firmware)
value
v2v_utils_ovmf_i386_firmware (value unitv)
{
- return get_firmware ((char **) guestfs_int_ovmf_i386_firmware);
+ return get_firmware ((char **)guestfs_int_ovmf_i386_firmware);
}
value
v2v_utils_ovmf_x86_64_firmware (value unitv)
{
- return get_firmware ((char **) guestfs_int_ovmf_x86_64_firmware);
+ return get_firmware ((char **)guestfs_int_ovmf_x86_64_firmware);
}
value
v2v_utils_aavmf_firmware (value unitv)
{
- return get_firmware ((char **) guestfs_int_aavmf_firmware);
+ return get_firmware ((char **)guestfs_int_aavmf_firmware);
}
diff --git a/v2v/xml-c.c b/v2v/xml-c.c
index ecaaedf..1c03cfc 100644
--- a/v2v/xml-c.c
+++ b/v2v/xml-c.c
@@ -38,15 +38,12 @@
#pragma GCC diagnostic ignored "-Wmissing-prototypes"
/* xmlDocPtr type */
-#define Doc_val(v) (*((xmlDocPtr *)Data_custom_val(v)))
+#define Doc_val(v) (*((xmlDocPtr *)Data_custom_val (v)))
static struct custom_operations doc_custom_operations = {
- (char *) "doc_custom_operations",
- custom_finalize_default,
- custom_compare_default,
- custom_hash_default,
- custom_serialize_default,
- custom_deserialize_default
+ (char *)"doc_custom_operations", custom_finalize_default,
+ custom_compare_default, custom_hash_default,
+ custom_serialize_default, custom_deserialize_default
};
value
@@ -60,10 +57,10 @@ v2v_xml_free_doc_ptr (value docv)
}
/* xmlXPathContextPtr type */
-#define Xpathctx_ptr_val(v) (*((xmlXPathContextPtr *)Data_custom_val(v)))
+#define Xpathctx_ptr_val(v) (*((xmlXPathContextPtr *)Data_custom_val (v)))
static struct custom_operations xpathctx_ptr_custom_operations = {
- (char *) "xpathctx_ptr_custom_operations",
+ (char *)"xpathctx_ptr_custom_operations",
custom_finalize_default,
custom_compare_default,
custom_hash_default,
@@ -82,10 +79,10 @@ v2v_xml_free_xpathctx_ptr (value xpathctxv)
}
/* xmlXPathObjectPtr type */
-#define Xpathobj_ptr_val(v) (*((xmlXPathObjectPtr *)Data_custom_val(v)))
+#define Xpathobj_ptr_val(v) (*((xmlXPathObjectPtr *)Data_custom_val (v)))
static struct custom_operations xpathobj_ptr_custom_operations = {
- (char *) "xpathobj_ptr_custom_operations",
+ (char *)"xpathobj_ptr_custom_operations",
custom_finalize_default,
custom_compare_default,
custom_hash_default,
@@ -113,12 +110,14 @@ v2v_xml_parse_memory (value xmlv)
/* For security reasons, call xmlReadMemory (not xmlParseMemory) and
* pass XML_PARSE_NONET. See commit 845daded5fddc70f.
*/
- doc = xmlReadMemory (String_val (xmlv), caml_string_length (xmlv),
- NULL, NULL, XML_PARSE_NONET);
+ doc = xmlReadMemory (String_val (xmlv), caml_string_length (xmlv), NULL,
+ NULL, XML_PARSE_NONET);
if (doc == NULL)
- caml_invalid_argument ("parse_memory: unable to parse XML from libvirt");
+ caml_invalid_argument (
+ "parse_memory: unable to parse XML from libvirt");
- docv = caml_alloc_custom (&doc_custom_operations, sizeof (xmlDocPtr), 0, 1);
+ docv =
+ caml_alloc_custom (&doc_custom_operations, sizeof (xmlDocPtr), 0, 1);
Doc_val (docv) = doc;
CAMLreturn (docv);
@@ -136,7 +135,8 @@ v2v_xml_copy_doc (value docv, value recursivev)
if (copy == NULL)
caml_invalid_argument ("copy_doc: failed to copy");
- copyv = caml_alloc_custom (&doc_custom_operations, sizeof (xmlDocPtr), 0, 1);
+ copyv =
+ caml_alloc_custom (&doc_custom_operations, sizeof (xmlDocPtr), 0, 1);
Doc_val (copyv) = copy;
CAMLreturn (copyv);
@@ -172,7 +172,8 @@ v2v_xml_xpath_new_context_ptr (value docv)
doc = Doc_val (docv);
xpathctx = xmlXPathNewContext (doc);
if (xpathctx == NULL)
- caml_invalid_argument ("xpath_new_context: unable to create
xmlXPathNewContext");
+ caml_invalid_argument (
+ "xpath_new_context: unable to create xmlXPathNewContext");
xpathctxv = caml_alloc_custom (&xpathctx_ptr_custom_operations,
sizeof (xmlXPathContextPtr), 0, 1);
@@ -189,9 +190,11 @@ v2v_xml_xpathctx_ptr_register_ns (value xpathctxv, value prefix,
value uri)
int r;
xpathctx = Xpathctx_ptr_val (xpathctxv);
- r = xmlXPathRegisterNs (xpathctx, BAD_CAST String_val (prefix), BAD_CAST String_val
(uri));
+ r = xmlXPathRegisterNs (xpathctx, BAD_CAST String_val (prefix),
+ BAD_CAST String_val (uri));
if (r == -1)
- caml_invalid_argument ("xpath_register_ns: unable to register namespace");
+ caml_invalid_argument (
+ "xpath_register_ns: unable to register namespace");
CAMLreturn (Val_unit);
}
@@ -207,7 +210,8 @@ v2v_xml_xpathctx_ptr_eval_expression (value xpathctxv, value exprv)
xpathctx = Xpathctx_ptr_val (xpathctxv);
xpathobj = xmlXPathEvalExpression (BAD_CAST String_val (exprv), xpathctx);
if (xpathobj == NULL)
- caml_invalid_argument ("xpath_eval_expression: unable to evaluate XPath
expression");
+ caml_invalid_argument (
+ "xpath_eval_expression: unable to evaluate XPath expression");
xpathobjv = caml_alloc_custom (&xpathobj_ptr_custom_operations,
sizeof (xmlXPathObjectPtr), 0, 1);
@@ -246,7 +250,7 @@ v2v_xml_xpathobj_ptr_get_node_ptr (value xpathobjv, value iv)
* pointer with the doc in the OCaml layer so the GC will not free
* one without freeing the other.
*/
- CAMLreturn ((value) xpathobj->nodesetval->nodeTab[i]);
+ CAMLreturn ((value)xpathobj->nodesetval->nodeTab[i]);
}
value
@@ -254,7 +258,7 @@ v2v_xml_xpathctx_set_node_ptr (value xpathctxv, value nodev)
{
CAMLparam2 (xpathctxv, nodev);
xmlXPathContextPtr xpathctx = Xpathctx_ptr_val (xpathctxv);
- xmlNodePtr node = (xmlNodePtr) nodev;
+ xmlNodePtr node = (xmlNodePtr)nodev;
xpathctx->node = node;
@@ -265,15 +269,16 @@ value
v2v_xml_node_ptr_name (value nodev)
{
CAMLparam1 (nodev);
- xmlNodePtr node = (xmlNodePtr) nodev;
+ xmlNodePtr node = (xmlNodePtr)nodev;
switch (node->type) {
case XML_ATTRIBUTE_NODE:
case XML_ELEMENT_NODE:
- CAMLreturn (caml_copy_string ((char *) node->name));
+ CAMLreturn (caml_copy_string ((char *)node->name));
default:
- caml_invalid_argument ("node_name: don't know how to get the name of this
node");
+ caml_invalid_argument (
+ "node_name: don't know how to get the name of this node");
}
}
@@ -283,7 +288,7 @@ v2v_xml_node_ptr_as_string (value docv, value nodev)
CAMLparam2 (docv, nodev);
CAMLlocal1 (strv);
xmlDocPtr doc = Doc_val (docv);
- xmlNodePtr node = (xmlNodePtr) nodev;
+ xmlNodePtr node = (xmlNodePtr)nodev;
char *str;
switch (node->type) {
@@ -291,21 +296,23 @@ v2v_xml_node_ptr_as_string (value docv, value nodev)
case XML_COMMENT_NODE:
case XML_CDATA_SECTION_NODE:
case XML_PI_NODE:
- CAMLreturn (caml_copy_string ((char *) node->content));
+ CAMLreturn (caml_copy_string ((char *)node->content));
case XML_ATTRIBUTE_NODE:
case XML_ELEMENT_NODE:
- str = (char *) xmlNodeListGetString (doc, node->children, 1);
+ str = (char *)xmlNodeListGetString (doc, node->children, 1);
if (str == NULL)
- caml_invalid_argument ("node_as_string: xmlNodeListGetString cannot convert
node to string");
+ caml_invalid_argument ("node_as_string: xmlNodeListGetString cannot "
+ "convert node to string");
strv = caml_copy_string (str);
free (str);
CAMLreturn (strv);
default:
- caml_invalid_argument ("node_as_string: don't know how to convert this node
to a string");
+ caml_invalid_argument (
+ "node_as_string: don't know how to convert this node to a
string");
}
}
@@ -313,7 +320,7 @@ value
v2v_xml_node_ptr_set_content (value nodev, value contentv)
{
CAMLparam2 (nodev, contentv);
- xmlNodePtr node = (xmlNodePtr) nodev;
+ xmlNodePtr node = (xmlNodePtr)nodev;
xmlNodeSetContent (node, BAD_CAST String_val (contentv));
@@ -324,29 +331,29 @@ value
v2v_xml_node_ptr_new_text_child (value nodev, value namev, value contentv)
{
CAMLparam3 (nodev, namev, contentv);
- xmlNodePtr node = (xmlNodePtr) nodev;
+ xmlNodePtr node = (xmlNodePtr)nodev;
xmlNodePtr new_node;
- new_node = xmlNewTextChild (node, NULL,
- BAD_CAST String_val (namev),
+ new_node = xmlNewTextChild (node, NULL, BAD_CAST String_val (namev),
BAD_CAST String_val (contentv));
if (new_node == NULL)
- caml_invalid_argument ("node_ptr_new_text_child: failed to create new
node");
+ caml_invalid_argument (
+ "node_ptr_new_text_child: failed to create new node");
/* See comment in v2v_xml_xpathobj_ptr_get_node_ptr about returning
* named xmlNodePtr here.
*/
- CAMLreturn ((value) new_node);
+ CAMLreturn ((value)new_node);
}
value
v2v_xml_node_ptr_set_prop (value nodev, value namev, value valv)
{
CAMLparam3 (nodev, namev, valv);
- xmlNodePtr node = (xmlNodePtr) nodev;
+ xmlNodePtr node = (xmlNodePtr)nodev;
- if (xmlSetProp (node, BAD_CAST String_val (namev), BAD_CAST String_val (valv))
- == NULL)
+ if (xmlSetProp (node, BAD_CAST String_val (namev),
+ BAD_CAST String_val (valv)) == NULL)
caml_invalid_argument ("node_ptr_set_prop: failed to set property");
CAMLreturn (Val_unit);
@@ -356,7 +363,7 @@ value
v2v_xml_node_ptr_unset_prop (value nodev, value namev)
{
CAMLparam2 (nodev, namev);
- xmlNodePtr node = (xmlNodePtr) nodev;
+ xmlNodePtr node = (xmlNodePtr)nodev;
int r;
r = xmlUnsetProp (node, BAD_CAST String_val (namev));
@@ -368,7 +375,7 @@ value
v2v_xml_node_ptr_unlink_node (value nodev)
{
CAMLparam1 (nodev);
- xmlNodePtr node = (xmlNodePtr) nodev;
+ xmlNodePtr node = (xmlNodePtr)nodev;
xmlUnlinkNode (node);
xmlFreeNode (node);
@@ -386,11 +393,11 @@ v2v_xml_doc_get_root_element (value docv)
root = xmlDocGetRootElement (doc);
if (root == NULL)
- CAMLreturn (Val_int (0)); /* None */
+ CAMLreturn (Val_int (0)); /* None */
else {
v = caml_alloc (1, 0);
- Store_field (v, 0, (value) root);
- CAMLreturn (v); /* Some node_ptr */
+ Store_field (v, 0, (value)root);
+ CAMLreturn (v); /* Some node_ptr */
}
}
@@ -412,8 +419,8 @@ v2v_xml_parse_uri (value strv)
sv = caml_copy_string (uri->scheme);
ov = caml_alloc (1, 0);
Store_field (ov, 0, sv);
- }
- else ov = Val_int (0);
+ } else
+ ov = Val_int (0);
Store_field (rv, 0, ov);
/* field 1: uri_opaque : string option */
@@ -421,8 +428,8 @@ v2v_xml_parse_uri (value strv)
sv = caml_copy_string (uri->opaque);
ov = caml_alloc (1, 0);
Store_field (ov, 0, sv);
- }
- else ov = Val_int (0);
+ } else
+ ov = Val_int (0);
Store_field (rv, 1, ov);
/* field 2: uri_authority : string option */
@@ -430,8 +437,8 @@ v2v_xml_parse_uri (value strv)
sv = caml_copy_string (uri->authority);
ov = caml_alloc (1, 0);
Store_field (ov, 0, sv);
- }
- else ov = Val_int (0);
+ } else
+ ov = Val_int (0);
Store_field (rv, 2, ov);
/* field 3: uri_server : string option */
@@ -439,8 +446,8 @@ v2v_xml_parse_uri (value strv)
sv = caml_copy_string (uri->server);
ov = caml_alloc (1, 0);
Store_field (ov, 0, sv);
- }
- else ov = Val_int (0);
+ } else
+ ov = Val_int (0);
Store_field (rv, 3, ov);
/* field 4: uri_user : string option */
@@ -448,8 +455,8 @@ v2v_xml_parse_uri (value strv)
sv = caml_copy_string (uri->user);
ov = caml_alloc (1, 0);
Store_field (ov, 0, sv);
- }
- else ov = Val_int (0);
+ } else
+ ov = Val_int (0);
Store_field (rv, 4, ov);
/* field 5: uri_port : int */
@@ -460,8 +467,8 @@ v2v_xml_parse_uri (value strv)
sv = caml_copy_string (uri->path);
ov = caml_alloc (1, 0);
Store_field (ov, 0, sv);
- }
- else ov = Val_int (0);
+ } else
+ ov = Val_int (0);
Store_field (rv, 6, ov);
/* field 7: uri_fragment : string option */
@@ -469,8 +476,8 @@ v2v_xml_parse_uri (value strv)
sv = caml_copy_string (uri->fragment);
ov = caml_alloc (1, 0);
Store_field (ov, 0, sv);
- }
- else ov = Val_int (0);
+ } else
+ ov = Val_int (0);
Store_field (rv, 7, ov);
/* field 8: uri_query_raw : string option */
@@ -478,8 +485,8 @@ v2v_xml_parse_uri (value strv)
sv = caml_copy_string (uri->query_raw);
ov = caml_alloc (1, 0);
Store_field (ov, 0, sv);
- }
- else ov = Val_int (0);
+ } else
+ ov = Val_int (0);
Store_field (rv, 8, ov);
xmlFreeURI (uri);
--
2.7.4