Ignore:
Timestamp:
Sep 24, 2007, 2:01:42 PM (17 years ago)
Author:
Bruno Cornec
Message:

reset_bkpinfo called as early as possible by both main program.
It creates a tmpdir cleanly with mkdtemp in setup_tmpdir subfunction, which takes in account TMPIR and TMP env var.
Remains to see what tmpfs does and tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.5/mondo/src/common/libmondo-tools.c

    r1652 r1653  
    182182#include <sys/socket.h>
    183183#include <netdb.h>
     184#include <stdlib.h>
    184185#include <netinet/in.h>
    185186#include <arpa/inet.h>
     
    944945
    945946    unlink(MONDO_TRACEFILE);
    946     asprintf(&tmp,"rm -Rf %s/changed.files*",bkpinfo->tmpdir);
     947    asprintf(&tmp,"rm -Rf %s/changed.files*",MINDI_CACHE);
    947948    run_program_and_log_output(tmp, FALSE);
    948949    paranoid_free(tmp);
     
    962963}
    963964
    964 
     965void setup_tmpdir() {
     966   
     967    char *tmp = NULL;
     968
     969    if (getenv("TMPDIR")) {
     970        asprintf(&tmp, "%s/mondo.tmp.XXXXXX", getenv("TMPDIR"));
     971    } else if (getenv("TMP")) {
     972        asprintf(&tmp, "%s/mondo.tmp.XXXXXX", getenv("TMP"));
     973    } else {
     974        asprintf(&tmp, "/tmp/mondo.tmp.XXXXXX");
     975    }
     976    if ((bkpinfo->tmpdir = mkdtemp(bkpinfo->tmpdir)) == NULL) {
     977        log_it("Failed to create global tmp directory %s for Mondo.",bkpinfo->tmpdir);
     978        finish(-1);
     979    }
     980    //sprintf(bkpinfo->tmpdir, "%s/tmpfs/mondo.tmp.%d", "/tmp", (int) (random() % 32768));  // for mondorestore
     981}
    965982
    966983
     
    976993    assert(bkpinfo != NULL);
    977994    memset((void *) bkpinfo, 0, sizeof(struct s_bkpinfo));
     995
     996    /* special case for tmpdir as used eveywhere after */
     997    setup_tmpdir();
     998
    978999    bkpinfo->manual_cd_tray = FALSE;
    9791000    bkpinfo->internal_tape_block_size = DEFAULT_INTERNAL_TAPE_BLOCK_SIZE;
     
    10041025    bkpinfo->scratchdir[0] = '\0';
    10051026    bkpinfo->make_filelist = TRUE;  // unless -J supplied to mondoarchive
    1006     sprintf(bkpinfo->tmpdir, "%s/tmpfs/mondo.tmp.%d", "/tmp", (int) (random() % 32768));    // for mondorestore
    10071027    bkpinfo->optimal_set_size = 0;
    10081028    bkpinfo->backup_media_type = none;
Note: See TracChangeset for help on using the changeset viewer.