diff options
| author | Richard W.M. Jones <rjones@redhat.com> | 2011-01-27 10:12:34 +0000 |
|---|---|---|
| committer | Richard W.M. Jones <rjones@redhat.com> | 2011-03-08 14:56:19 +0000 |
| commit | dd925973467f3dd7cddbfa7e2b49a43aeb5e2b3f (patch) | |
| tree | 26de71f538d50455f04ffd69a0c798e90a4b7ca5 | |
| parent | 831dbc97f9acd2f94651e0b54fb572d43ea17811 (diff) | |
| download | libguestfs-dd925973467f3dd7cddbfa7e2b49a43aeb5e2b3f.tar.gz libguestfs-dd925973467f3dd7cddbfa7e2b49a43aeb5e2b3f.tar.xz libguestfs-dd925973467f3dd7cddbfa7e2b49a43aeb5e2b3f.zip | |
lib: Move appliance launching to separate function.
This is just code motion.
(cherry picked from commit 99f0d8859fdc8f6c81873d4cdd1c8c780ac25e84)
| -rw-r--r-- | src/launch.c | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/src/launch.c b/src/launch.c index e009aae1..30082d61 100644 --- a/src/launch.c +++ b/src/launch.c @@ -70,6 +70,7 @@ #include "guestfs-internal-actions.h" #include "guestfs_protocol.h" +static int launch_appliance (guestfs_h *g); static int qemu_supports (guestfs_h *g, const char *option); /* Add a string to the current command line. */ @@ -350,32 +351,19 @@ static int is_openable (guestfs_h *g, const char *path, int flags); int guestfs__launch (guestfs_h *g) { - int r; - int wfd[2], rfd[2]; - char unixsock[256]; - struct sockaddr_un addr; - /* Configured? */ - if (!g->cmdline) { - error (g, _("you must call guestfs_add_drive before guestfs_launch")); - return -1; - } - if (g->state != CONFIG) { error (g, _("the libguestfs handle has already been launched")); return -1; } - /* Start the clock ... */ - gettimeofday (&g->launch_t, NULL); - /* Make the temporary directory. */ if (!g->tmpdir) { TMP_TEMPLATE_ON_STACK (dir_template); g->tmpdir = safe_strdup (g, dir_template); if (mkdtemp (g->tmpdir) == NULL) { perrorf (g, _("%s: cannot create temporary directory"), dir_template); - goto cleanup0; + return -1; } } @@ -386,6 +374,28 @@ guestfs__launch (guestfs_h *g) if (chmod (g->tmpdir, 0755) == -1) fprintf (stderr, "chmod: %s: %m (ignored)\n", g->tmpdir); + return launch_appliance (g); +} + +static int +launch_appliance (guestfs_h *g) +{ + int r; + int wfd[2], rfd[2]; + char unixsock[256]; + struct sockaddr_un addr; + + /* At present you must add drives before starting the appliance. In + * future when we enable hotplugging you won't need to do this. + */ + if (!g->cmdline) { + error (g, _("you must call guestfs_add_drive before guestfs_launch")); + return -1; + } + + /* Start the clock ... */ + gettimeofday (&g->launch_t, NULL); + /* Locate and/or build the appliance. */ char *kernel = NULL, *initrd = NULL, *appliance = NULL; if (guestfs___build_appliance (g, &kernel, &initrd, &appliance) == -1) |
