diff options
Diffstat (limited to 'src/guestfs.c')
-rw-r--r-- | src/guestfs.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/guestfs.c b/src/guestfs.c index 5428b28a..4a1ee930 100644 --- a/src/guestfs.c +++ b/src/guestfs.c @@ -195,6 +195,18 @@ parse_environment (guestfs_h *g, if (str != NULL && STREQ (str, "1")) guestfs_set_verbose (g, 1); + str = do_getenv (data, "LIBGUESTFS_TMPDIR"); + if (str) + guestfs_set_tmpdir (g, str); + + str = do_getenv (data, "LIBGUESTFS_CACHEDIR"); + if (str) + guestfs_set_cachedir (g, str); + + free (g->env_tmpdir); + str = do_getenv (data, "TMPDIR"); + g->env_tmpdir = str ? safe_strdup (g, str) : NULL; + str = do_getenv (data, "LIBGUESTFS_PATH"); if (str) guestfs_set_path (g, str); @@ -300,14 +312,13 @@ guestfs_close (guestfs_h *g) /* Run user close callbacks. */ guestfs___call_callbacks_void (g, GUESTFS_EVENT_CLOSE); - /* Remove whole temporary directory. */ - if (g->tmpdir) - guestfs___remove_tmpdir (g, g->tmpdir); - /* Test output file used by bindtests. */ if (g->test_fp != NULL) fclose (g->test_fp); + /* Remove temporary directory. */ + guestfs___remove_tmpdir (g); + /* Mark the handle as dead and then free up all memory. */ g->state = NO_HANDLE; |