Ignore:
Timestamp:
Aug 31, 2006, 5:09:20 PM (18 years ago)
Author:
Bruno Cornec
Message:
  • Massive rewrite continues for memory management.
  • main structure should now have all parameters allocated dynamically
  • new lib libmr.a + dir + build process reviewed to support it.
  • new include subdir to host external definitions of the new lib
  • code now compiles. Still one remaining link issues for mondorestore. This should allow for some tests soon.

(goal is to separate completely reviewed code and functions and provide clean interfaces)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mondo/mondo/mondorestore/mondo-rstr-tools.c

    r764 r783  
    55#include <unistd.h>
    66
    7 #include "../common/my-stuff.h"
     7#include "my-stuff.h"
    88#include "../common/mondostructures.h"
    99#include "../common/libmondo.h"
     
    3939
    4040extern t_bkptype g_backup_media_type;
     41extern char *g_backup_media_string;
    4142
    4243extern int g_partition_table_locked_up;
     
    290291    assert(bkpinfo != NULL);
    291292    g_ISO_restore_mode = TRUE;
     293
     294    paranoid_free(g_isodir_device);
    292295    read_cfg_var(g_mondo_cfg_file, "iso-dev", g_isodir_device);
    293296    if (bkpinfo->disaster_recovery) {
    294297/* Patch Conor Daly 26-june-2004
    295298 * Don't let this clobber an existing bkpinfo->isodir */
    296         if (!bkpinfo->isodir[0]) {
    297             strcpy(bkpinfo->isodir, "/tmp/isodir");
     299        if (!bkpinfo->isodir) {
     300            paranoid_alloc(bkpinfo->isodir, "/tmp/isodir");
    298301        }
    299302/* End patch */
     
    344347    i = what_number_cd_is_this(bkpinfo);    /* has the side-effect of calling mount_cdrom() */
    345348    asprintf(&tmp, "%s #%d has been mounted via loopback mount",
    346             media_descriptor_string(bkpinfo->backup_media_type), i);
     349            bkpinfo->backup_media_string, i);
    347350    log_msg(1, tmp);
    348351    paranoid_free(tmp);
     
    497500{
    498501    char *mount_cmd = NULL;
    499     char *tmp = NULL;
    500502    int i, res;
    501503#ifdef __FreeBSD__
     
    519521        log_msg(2, "Mounting for NFS thingy");
    520522        log_msg(2, "isodir = %s", bkpinfo->isodir);
    521         if ((!bkpinfo->isodir[0] || !strcmp(bkpinfo->isodir, "/"))
     523        if ((!bkpinfo->isodir || !strcmp(bkpinfo->isodir, "/"))
    522524            && am_I_in_disaster_recovery_mode()) {
    523             strcpy(bkpinfo->isodir, "/tmp/isodir");
     525            paranoid_alloc(bkpinfo->isodir, "/tmp/isodir");
    524526            log_msg(1, "isodir is being set to %s", bkpinfo->isodir);
    525527        }
     
    663665        asprintf(&p2, ",user_xattr");
    664666    } else {
    665         asprintf(&p2, "");
     667        asprintf(&p2, "%s", "");
    666668    }
    667669    paranoid_free(tmp);
     
    671673        asprintf(&p3, ",acl");
    672674    } else {
    673         asprintf(&p3, "");
     675        asprintf(&p3, "%s", "");
    674676    }
    675677    paranoid_free(tmp);
     
    789791    char *value = NULL;
    790792    char *tmp = NULL;
     793    char *tmp1 = NULL;
    791794    char *command = NULL;
    792795    char *iso_mnt = NULL;
     
    836839
    837840            if (read_cfg_var(cfg_file, "iso-prefix", value) == 0) {
    838                 paranoid_free(bkpinfo->prefix);
    839                 bkpinfo->prefix = value;
     841                paranoid_alloc(bkpinfo->prefix,value);
    840842            } else {
    841843                paranoid_alloc(bkpinfo->prefix, STD_PREFIX);
     
    845847            paranoid_free(value);
    846848            if (read_cfg_var(cfg_file, "iso-prefix", value) == 0) {
    847                 paranoid_free(bkpinfo->prefix);
    848                 bkpinfo->prefix = value;
     849                paranoid_alloc(bkpinfo->prefix,value);
    849850            } else {
    850851                paranoid_alloc(bkpinfo->prefix, STD_PREFIX);
     
    869870        } else if (bkpinfo->backup_media_type == tape
    870871                   || bkpinfo->backup_media_type == udev) {
     872            paranoid_free(bkpinfo->media_device);
    871873            if (read_cfg_var(cfg_file, "media-dev", bkpinfo->media_device)) {
    872874                fatal_error("Cannot get tape device name from cfg file");
     
    964966                    "...cos it wouldn't make sense to abandon the values that GOT ME to this config file in the first place");
    965967        } else {
     968            paranoid_free(bkpinfo->nfs_mount);
     969            paranoid_free(bkpinfo->nfs_remote_dir);
    966970            read_cfg_var(g_mondo_cfg_file, "nfs-server-mount",
    967971                         bkpinfo->nfs_mount);
     
    976980         * isodir in disaster recovery mode
    977981         */
    978         old_isodir = bkpinfo->isodir;
     982        paranoid_alloc(old_isodir,bkpinfo->isodir);
    979983        read_cfg_var(g_mondo_cfg_file, "iso-mnt", iso_mnt);
    980984        read_cfg_var(g_mondo_cfg_file, "isodir", iso_path);
    981985        if (iso_mnt && iso_path) {
     986            paranoid_free(bkpinfo->isodir);
    982987            asprintf(&bkpinfo->isodir, "%s%s", iso_mnt, iso_path);
    983         } else {
    984             bkpinfo->isodir = old_isodir;
    985988        }
    986989        paranoid_free(iso_mnt);
     
    992995                    ("user nominated isodir differs from archive, keeping user's choice: %s %s\n",
    993996                     old_isodir, bkpinfo->isodir);
    994                 if (bkpinfo->isodir != old_isodir) {
    995                     paranoid_free(old_isodir);
    996                 }
    997             } else {
    998                 paranoid_free(old_isodir);
    999             }
    1000         }
    1001 
     997            }
     998        }
     999        paranoid_free(old_isodir);
     1000
     1001        paranoid_free(g_isodir_device);
    10021002        read_cfg_var(g_mondo_cfg_file, "iso-dev", g_isodir_device);
    10031003        log_msg(2, "isodir=%s; iso-dev=%s", bkpinfo->isodir, g_isodir_device);
     
    10291029                    paranoid_free(iso_mnt);
    10301030                    paranoid_free(iso_path);
    1031                     asprintf(&iso_mnt, "");
    1032                     asprintf(&iso_path, "");
     1031                    asprintf(&iso_mnt, "%s", "");
     1032                    asprintf(&iso_path, "%s", "");
    10331033
    10341034                    if (mount_cdrom(bkpinfo)) {
     
    10691069    }
    10701070    g_backup_media_type = bkpinfo->backup_media_type;
     1071    bkpinfo->backup_media_string = bkptype_to_string(bkpinfo->backup_media_type);
     1072    g_backup_media_string = bkpinfo->backup_media_string;
    10711073    return (0);
    10721074}
     
    18231825    assert(bkpinfo != NULL);
    18241826
    1825     malloc_string(g_tmpfs_mountpt);
    1826 
    18271827    asprintf(&g_biggielist_txt, "%s/%s",bkpinfo->tmpdir , BIGGIELIST_TXT_STUB);
    18281828    asprintf(&g_filelist_full, "%s/%s", bkpinfo->tmpdir, FILELIST_FULL_STUB);
     
    18301830    asprintf(&g_imagedevs_restthese, "%s/tmp/imagedevs.restore-these",
    18311831            bkpinfo->tmpdir);
     1832    paranoid_free(g_mondo_cfg_file);
     1833    paranoid_free(g_mountlist_fname);
    18321834    if (bkpinfo->disaster_recovery) {
    18331835        asprintf(&g_mondo_cfg_file, "/%s", MONDO_CFG_FILE_STUB);
     
    21102112{
    21112113    int retval = 0;
    2112     char *device = NULL;
    21132114    char *command = NULL;
    21142115    char *cfg_file = NULL;
     
    23642365
    23652366    g_backup_media_type = bkpinfo->backup_media_type;
     2367    bkpinfo->backup_media_string = bkptype_to_string(bkpinfo->backup_media_type);
     2368    g_backup_media_string = bkpinfo->backup_media_string;
    23662369    return (retval);
    23672370}
Note: See TracChangeset for help on using the changeset viewer.