diff options
Diffstat (limited to 'src/guestfs-internal.h')
-rw-r--r-- | src/guestfs-internal.h | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h index aed4182c..17903d30 100644 --- a/src/guestfs-internal.h +++ b/src/guestfs-internal.h @@ -71,10 +71,11 @@ #define TRACE4(name, arg1, arg2, arg3, arg4) #endif -#define TMP_TEMPLATE_ON_STACK(var) \ - const char *ttos_tmpdir = guestfs_tmpdir (); \ +#define TMP_TEMPLATE_ON_STACK(g,var) \ + char *ttos_tmpdir = guestfs_get_tmpdir (g); \ char var[strlen (ttos_tmpdir) + 32]; \ - sprintf (var, "%s/libguestfsXXXXXX", ttos_tmpdir) \ + sprintf (var, "%s/libguestfsXXXXXX", ttos_tmpdir); \ + free (ttos_tmpdir) #ifdef __APPLE__ #define UNIX_PATH_MAX 104 @@ -234,11 +235,19 @@ struct guestfs_h const struct attach_ops *attach_ops; /**** Runtime information. ****/ - char *tmpdir; /* Temporary directory containing socket. */ - 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 + * handle, you have to call guestfs___lazy_make_tmpdir. + */ + char *tmpdir; + /* Environment variables that affect tmpdir/cachedir locations. */ + char *env_tmpdir; /* $TMPDIR (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 */ + /* Callbacks. */ guestfs_abort_cb abort_cb; guestfs_error_handler_cb error_cb; @@ -526,13 +535,15 @@ extern void guestfs___call_callbacks_void (guestfs_h *g, uint64_t event); extern void guestfs___call_callbacks_message (guestfs_h *g, uint64_t event, const char *buf, size_t buf_len); extern void guestfs___call_callbacks_array (guestfs_h *g, uint64_t event, const uint64_t *array, size_t array_len); +/* tmpdirs.c */ +extern int guestfs___lazy_make_tmpdir (guestfs_h *g); +extern void guestfs___remove_tmpdir (guestfs_h *g); +extern void guestfs___recursive_remove_dir (guestfs_h *g, const char *dir); + /* appliance.c */ extern int guestfs___build_appliance (guestfs_h *g, char **kernel, char **initrd, char **appliance); /* launch.c */ -extern const char *guestfs___persistent_tmpdir (void); -extern int guestfs___lazy_make_tmpdir (guestfs_h *g); -extern void guestfs___remove_tmpdir (guestfs_h *g, const char *dir); extern int64_t guestfs___timeval_diff (const struct timeval *x, const struct timeval *y); extern void guestfs___print_timestamped_message (guestfs_h *g, const char *fs, ...); extern void guestfs___launch_send_progress (guestfs_h *g, int perdozen); |