git.annexia.org
/
libguestfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add command trace functionality.
[libguestfs.git]
/
src
/
guestfs.c
diff --git
a/src/guestfs.c
b/src/guestfs.c
index
145f0f3
..
98d99b8
100644
(file)
--- a/
src/guestfs.c
+++ b/
src/guestfs.c
@@
-57,6
+57,7
@@
#endif
#include "guestfs.h"
#endif
#include "guestfs.h"
+#include "guestfs-internal-actions.h"
#include "guestfs_protocol.h"
#include "ignore-value.h"
#include "guestfs_protocol.h"
#include "ignore-value.h"
@@
-169,6
+170,7
@@
struct guestfs_h
int cmdline_size;
int verbose;
int cmdline_size;
int verbose;
+ int trace;
int autosync;
char *path; /* Path to kernel, initrd. */
int autosync;
char *path; /* Path to kernel, initrd. */
@@
-237,6
+239,9
@@
guestfs_create (void)
str = getenv ("LIBGUESTFS_DEBUG");
g->verbose = str != NULL && strcmp (str, "1") == 0;
str = getenv ("LIBGUESTFS_DEBUG");
g->verbose = str != NULL && strcmp (str, "1") == 0;
+ str = getenv ("LIBGUESTFS_TRACE");
+ g->trace = str != NULL && strcmp (str, "1") == 0;
+
str = getenv ("LIBGUESTFS_PATH");
g->path = str != NULL ? strdup (str) : strdup (GUESTFS_DEFAULT_PATH);
if (!g->path) goto error;
str = getenv ("LIBGUESTFS_PATH");
g->path = str != NULL ? strdup (str) : strdup (GUESTFS_DEFAULT_PATH);
if (!g->path) goto error;
@@
-608,33
+613,33
@@
guestfs_get_error_handler (guestfs_h *g, void **data_rtn)
}
int
}
int
-guestfs_set_verbose (guestfs_h *g, int v)
+guestfs_
_
set_verbose (guestfs_h *g, int v)
{
g->verbose = !!v;
return 0;
}
int
{
g->verbose = !!v;
return 0;
}
int
-guestfs_get_verbose (guestfs_h *g)
+guestfs_
_
get_verbose (guestfs_h *g)
{
return g->verbose;
}
int
{
return g->verbose;
}
int
-guestfs_set_autosync (guestfs_h *g, int a)
+guestfs_
_
set_autosync (guestfs_h *g, int a)
{
g->autosync = !!a;
return 0;
}
int
{
g->autosync = !!a;
return 0;
}
int
-guestfs_get_autosync (guestfs_h *g)
+guestfs_
_
get_autosync (guestfs_h *g)
{
return g->autosync;
}
int
{
return g->autosync;
}
int
-guestfs_set_path (guestfs_h *g, const char *path)
+guestfs_
_
set_path (guestfs_h *g, const char *path)
{
free (g->path);
g->path = NULL;
{
free (g->path);
g->path = NULL;
@@
-646,13
+651,13
@@
guestfs_set_path (guestfs_h *g, const char *path)
}
const char *
}
const char *
-guestfs_get_path (guestfs_h *g)
+guestfs_
_
get_path (guestfs_h *g)
{
return g->path;
}
int
{
return g->path;
}
int
-guestfs_set_qemu (guestfs_h *g, const char *qemu)
+guestfs_
_
set_qemu (guestfs_h *g, const char *qemu)
{
free (g->qemu);
g->qemu = NULL;
{
free (g->qemu);
g->qemu = NULL;
@@
-662,13
+667,13
@@
guestfs_set_qemu (guestfs_h *g, const char *qemu)
}
const char *
}
const char *
-guestfs_get_qemu (guestfs_h *g)
+guestfs_
_
get_qemu (guestfs_h *g)
{
return g->qemu;
}
int
{
return g->qemu;
}
int
-guestfs_set_append (guestfs_h *g, const char *append)
+guestfs_
_
set_append (guestfs_h *g, const char *append)
{
free (g->append);
g->append = NULL;
{
free (g->append);
g->append = NULL;
@@
-678,39
+683,39
@@
guestfs_set_append (guestfs_h *g, const char *append)
}
const char *
}
const char *
-guestfs_get_append (guestfs_h *g)
+guestfs_
_
get_append (guestfs_h *g)
{
return g->append;
}
int
{
return g->append;
}
int
-guestfs_set_memsize (guestfs_h *g, int memsize)
+guestfs_
_
set_memsize (guestfs_h *g, int memsize)
{
g->memsize = memsize;
return 0;
}
int
{
g->memsize = memsize;
return 0;
}
int
-guestfs_get_memsize (guestfs_h *g)
+guestfs_
_
get_memsize (guestfs_h *g)
{
return g->memsize;
}
int
{
return g->memsize;
}
int
-guestfs_set_selinux (guestfs_h *g, int selinux)
+guestfs_
_
set_selinux (guestfs_h *g, int selinux)
{
g->selinux = selinux;
return 0;
}
int
{
g->selinux = selinux;
return 0;
}
int
-guestfs_get_selinux (guestfs_h *g)
+guestfs_
_
get_selinux (guestfs_h *g)
{
return g->selinux;
}
int
{
return g->selinux;
}
int
-guestfs_get_pid (guestfs_h *g)
+guestfs_
_
get_pid (guestfs_h *g)
{
if (g->pid > 0)
return g->pid;
{
if (g->pid > 0)
return g->pid;
@@
-721,7
+726,7
@@
guestfs_get_pid (guestfs_h *g)
}
struct guestfs_version *
}
struct guestfs_version *
-guestfs_version (guestfs_h *g)
+guestfs_
_
version (guestfs_h *g)
{
struct guestfs_version *r;
{
struct guestfs_version *r;
@@
-733,6
+738,19
@@
guestfs_version (guestfs_h *g)
return r;
}
return r;
}
+int
+guestfs__set_trace (guestfs_h *g, int t)
+{
+ g->trace = !!t;
+ return 0;
+}
+
+int
+guestfs__get_trace (guestfs_h *g)
+{
+ return g->trace;
+}
+
/* Add a string to the current command line. */
static void
incr_cmdline_size (guestfs_h *g)
/* Add a string to the current command line. */
static void
incr_cmdline_size (guestfs_h *g)
@@
-763,8
+781,8
@@
add_cmdline (guestfs_h *g, const char *str)
}
int
}
int
-guestfs_config (guestfs_h *g,
- const char *qemu_param, const char *qemu_value)
+guestfs_
_
config (guestfs_h *g,
+
const char *qemu_param, const char *qemu_value)
{
if (qemu_param[0] != '-') {
error (g, _("guestfs_config: parameter must begin with '-' character"));
{
if (qemu_param[0] != '-') {
error (g, _("guestfs_config: parameter must begin with '-' character"));
@@
-795,7
+813,7
@@
guestfs_config (guestfs_h *g,
}
int
}
int
-guestfs_add_drive (guestfs_h *g, const char *filename)
+guestfs_
_
add_drive (guestfs_h *g, const char *filename)
{
size_t len = strlen (filename) + 64;
char buf[len];
{
size_t len = strlen (filename) + 64;
char buf[len];
@@
-834,7
+852,7
@@
guestfs_add_drive (guestfs_h *g, const char *filename)
}
int
}
int
-guestfs_add_drive_ro (guestfs_h *g, const char *filename)
+guestfs_
_
add_drive_ro (guestfs_h *g, const char *filename)
{
size_t len = strlen (filename) + 64;
char buf[len];
{
size_t len = strlen (filename) + 64;
char buf[len];
@@
-855,7
+873,7
@@
guestfs_add_drive_ro (guestfs_h *g, const char *filename)
}
int
}
int
-guestfs_add_cdrom (guestfs_h *g, const char *filename)
+guestfs_
_
add_cdrom (guestfs_h *g, const char *filename)
{
if (strchr (filename, ',') != NULL) {
error (g, _("filename cannot contain ',' (comma) character"));
{
if (strchr (filename, ',') != NULL) {
error (g, _("filename cannot contain ',' (comma) character"));
@@
-914,7
+932,7
@@
static const char *supermin_hostfiles_name =
"initramfs." REPO "." host_cpu ".supermin.hostfiles";
int
"initramfs." REPO "." host_cpu ".supermin.hostfiles";
int
-guestfs_launch (guestfs_h *g)
+guestfs_
_
launch (guestfs_h *g)
{
const char *tmpdir;
char dir_template[PATH_MAX];
{
const char *tmpdir;
char dir_template[PATH_MAX];
@@
-1506,7
+1524,7
@@
finish_wait_ready (guestfs_h *g, void *vp)
}
int
}
int
-guestfs_wait_ready (guestfs_h *g)
+guestfs_
_
wait_ready (guestfs_h *g)
{
int finished = 0, r;
{
int finished = 0, r;
@@
-1549,7
+1567,7
@@
guestfs_wait_ready (guestfs_h *g)
}
int
}
int
-guestfs_kill_subprocess (guestfs_h *g)
+guestfs_
_
kill_subprocess (guestfs_h *g)
{
if (g->state == CONFIG) {
error (g, _("no subprocess to kill"));
{
if (g->state == CONFIG) {
error (g, _("no subprocess to kill"));
@@
-1567,37
+1585,37
@@
guestfs_kill_subprocess (guestfs_h *g)
/* Access current state. */
int
/* Access current state. */
int
-guestfs_is_config (guestfs_h *g)
+guestfs_
_
is_config (guestfs_h *g)
{
return g->state == CONFIG;
}
int
{
return g->state == CONFIG;
}
int
-guestfs_is_launching (guestfs_h *g)
+guestfs_
_
is_launching (guestfs_h *g)
{
return g->state == LAUNCHING;
}
int
{
return g->state == LAUNCHING;
}
int
-guestfs_is_ready (guestfs_h *g)
+guestfs_
_
is_ready (guestfs_h *g)
{
return g->state == READY;
}
int
{
return g->state == READY;
}
int
-guestfs_is_busy (guestfs_h *g)
+guestfs_
_
is_busy (guestfs_h *g)
{
return g->state == BUSY;
}
int
{
return g->state == BUSY;
}
int
-guestfs_get_state (guestfs_h *g)
+guestfs_
_
get_state (guestfs_h *g)
{
return g->state;
}
int
{
return g->state;
}
int
-guestfs_set_ready (guestfs_h *g)
+guestfs_
_
set_ready (guestfs_h *g)
{
if (g->state != BUSY) {
error (g, _("guestfs_set_ready: called when in state %d != BUSY"),
{
if (g->state != BUSY) {
error (g, _("guestfs_set_ready: called when in state %d != BUSY"),
@@
-1609,7
+1627,7
@@
guestfs_set_ready (guestfs_h *g)
}
int
}
int
-guestfs_set_busy (guestfs_h *g)
+guestfs_
_
set_busy (guestfs_h *g)
{
if (g->state != READY) {
error (g, _("guestfs_set_busy: called when in state %d != READY"),
{
if (g->state != READY) {
error (g, _("guestfs_set_busy: called when in state %d != READY"),
@@
-1621,7
+1639,7
@@
guestfs_set_busy (guestfs_h *g)
}
int
}
int
-guestfs_end_busy (guestfs_h *g)
+guestfs_
_
end_busy (guestfs_h *g)
{
switch (g->state)
{
{
switch (g->state)
{
@@
-2413,7
+2431,7
@@
guestfs__receive_file_sync (guestfs_h *g, const char *filename)
return -1;
}
return -1;
}
- while (
(r = receive_file_data_sync (g, NULL, NULL)
) > 0)
+ while (
receive_file_data_sync (g, NULL, NULL
) > 0)
; /* just discard it */
return -1;
; /* just discard it */
return -1;