Changeset 2009 in MondoRescue for trunk/mondo/src/mondorestore/mondorestore.c


Ignore:
Timestamp:
Aug 11, 2008, 3:05:15 AM (16 years ago)
Author:
Bruno Cornec
Message:

Commit ald modifs in trunk - just in case

File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/mondo/src/mondorestore/mondorestore.c

    r1176 r2009  
    1515
    1616#include "my-stuff.h"
    17 #include "../common/mondostructures.h"
    18 #include "../common/libmondo.h"
     17#include "mr_mem.h"
     18#include "mr_msg.h"
     19#include "mr_str.h"
     20
     21#include "mondostructures.h"
     22#include "libmondo.h"
    1923#include "mr-externs.h"
    2024#include "mondo-restore.h"
     
    2428#include <pthread.h>
    2529#endif
    26 #include "mr_mem.h"
    2730
    2831extern void twenty_seconds_til_yikes(void);
     
    4144 **************************************************************************/
    4245extern char *g_tmpfs_mountpt;   // declared in libmondo-tools.c
    43 extern struct s_bkpinfo *g_bkpinfo_DONTUSETHIS; // used by finish() to free
    44                                                 // up global bkpinfo struct
    4546extern bool g_text_mode;
    4647extern FILE *g_fprep;
     
    429430                    }
    430431
    431                     fmt_errs =
    432                         format_everything(mountlist, FALSE, raidlist);
     432                    fmt_errs = format_everything(mountlist, FALSE, raidlist);
    433433                    if (!fmt_errs) {
    434434                        log_to_screen
     
    510510            if (filelist) {
    511511              gotos_suck:
    512 // (NB: %s is where your filesystem is mounted now, by default)", MNT_RESTORING);
     512                // (NB: MNT_RESTORING is where your filesystem is mounted now, by default)
    513513                if (popup_and_get_string
    514514                    (_("Restore path"), _("Restore files to where?"), bkpinfo->restore_path)) {
     
    558558    }
    559559
    560 //  run_program_and_log_output("cp -af /etc/lvm " MNT_RESTORING "/etc/", 1);
    561560    protect_against_braindead_sysadmins();
    562561    retval += unmount_all_devices(mountlist);
     
    585584            mvaddstr_and_log_it(g_currentY++, 74, _("Failed."));
    586585        } else {
    587             mvaddstr_and_log_it(g_currentY++, 74, "Done.");
     586            mvaddstr_and_log_it(g_currentY++, 74, _("Done."));
    588587        }
    589588        retval += res;
     
    597596                            ("Warning - errors occurred during the restore phase."));
    598597    }
     598    iamhere("Leaving interactive_mode()");
    599599    return(retval);
    600600}
     
    619619         struct raidlist_itself *raidlist, bool nuke_me_please)
    620620{
    621     char c;
     621    char c = ' ';
    622622    int retval = 0;
    623623
     
    647647        paranoid_system("umount " MNT_CDROM);
    648648    }
    649 //  if (! already_mounted)
    650 //    {
    651649    if (system("umount /tmp/isodir 2> /dev/null")) {
    652650        log_to_screen
     
    654652             ("WARNING - unable to unmount device where the ISO files are stored."));
    655653    }
    656 //    }
    657654    return (retval);
    658655}
     
    661658 *END_ISO_MODE                                                            *
    662659 **************************************************************************/
    663 
    664 
    665660static void call_me_after_the_nuke(int retval) {
    666661
     
    670665    if (retval) {
    671666        log_to_screen(_("Errors occurred during the nuke phase."));
    672         log_to_screen(_("Please visit our website at http://www.mondorescue.org for more information."));
     667        log_to_screen(_("Please visit our website at http://www.mondores
     668cue.org for more information."));
    673669    } else {
    674670#ifdef __FreeBSD__
    675         tmp1 = call_program_and_get_last_line_of_output("cat /tmp/cmdline");
     671    tmp1 = call_program_and_get_last_line_of_output("cat /tmp/cmdline");
    676672#else
    677         tmp1 = call_program_and_get_last_line_of_output("cat /proc/cmdline");
     673    tmp1 = call_program_and_get_last_line_of_output("cat /proc/cmdline");
    678674#endif
    679675        if ((strstr(tmp1,"restore") == NULL) ||
    680             (strstr(tmp1,"RESTORE") == NULL)) {
    681                 /* -H option */
    682                 mr_asprintf(&tmp,
    683                     _
    684                     (" Mondo has restored your system. Please remove the backup media and reboot.\n\nPlease visit our website at http://www.mondorescue.org for more information."));
    685                 popup_and_OK(tmp);
    686                 mr_free(tmp);
     676        (strstr(tmp1,"RESTORE") == NULL)) {
     677            /* -H option */
     678            mr_asprintf(&tmp,
     679                _
     680                (" Mondo has restored your system. Please remove the backup media and reboot.\n\nPlease visit our website at http://www.
     681mondorescue.org for more information."));
     682            popup_and_OK(tmp);
     683            mr_free(tmp);
    687684        }
    688685        mr_free(tmp1);
    689686
    690687        log_to_screen(_
    691              ("Mondo has restored your system. Please remove the backup media and reboot."));
     688            ("Mondo has restored your system. Please remove the backup media and reboot."));
    692689        log_to_screen(_
    693              ("Thank you for using Mondo Rescue."));
     690            ("Thank you for using Mondo Rescue."));
    694691        log_to_screen(_
    695              ("Please visit our website at http://www.mondorescue.org for more information."));
     692            ("Please visit our website at http://www.mondorescue.org for more information."));
    696693    }
    697694    g_I_have_just_nuked = TRUE;
     
    750747            mr_free(tmp);
    751748            retval = interactive_mode(bkpinfo, mountlist, raidlist);
    752             goto after_the_nuke;
     749            call_me_after_the_nuke(retval);
     750            return(retval);
    753751        } else {
    754752            mr_free(tmp);
     
    812810            retval = interactive_mode(bkpinfo, mountlist, raidlist);
    813811            call_me_after_the_nuke(retval);
     812            return(retval);
    814813        } else
    815814            if (!ask_me_yes_or_no
    816815                (_("Would you like to try to proceed anyway?"))) {
    817         }
    818         return(retval);
     816                return(retval);
     817        }
    819818    }
    820819    retval = mount_all_devices(mountlist, TRUE);
     
    834833    }
    835834    protect_against_braindead_sysadmins();
    836 //  run_program_and_log_output("cp -af /etc/lvm " MNT_RESTORING "/etc/", 1);
    837835    retval += unmount_all_devices(mountlist);
    838836    mvaddstr_and_log_it(g_currentY,
     
    855853    retval += res;
    856854
    857   after_the_nuke:
    858     if (retval) {
    859         log_to_screen("Errors occurred during the nuke phase.");
    860     } else if (strstr(call_program_and_get_last_line_of_output("cat /proc/cmdline"), "RESTORE"))    // Bruno's thing
    861     {
    862         log_to_screen
    863             ("PC was restored successfully. Thank you for using Mondo Rescue.");
    864         log_to_screen
    865             ("Please visit our website at http://www.mondorescue.org for more information.");
    866     } else {
    867         strcpy(tmp,"Mondo has restored your system.\n\nPlease wait for the command prompt. Then remove the backup media and reboot.\n\nPlease visit our website at http://www.mondorescue.org for more information.");
    868         if (strstr(call_program_and_get_last_line_of_output("cat /proc/cmdline"), "restore") == NULL) {
    869             popup_and_OK(tmp);
    870         }
    871         log_to_screen
    872           ("Mondo has restored your system. Please wait for the command prompt.");
    873         log_to_screen
    874             ("Then remove the backup media and reboot.");
    875         log_to_screen
    876             ("Please visit our website at http://www.mondorescue.org for more information.");
    877     }
    878     g_I_have_just_nuked = TRUE;
    879 /*
    880   if (!boot_loader_installed && !does_file_exist(DO_MBR_PLEASE))
    881     {
    882       log_to_screen("PLEASE RUN 'mondorestore --mbr' NOW TO INITIALIZE YOUR BOOT SECTOR");
    883       write_one_liner_data_file(DO_MBR_PLEASE, "mondorestore --mbr");
    884     }
    885 */
     855    call_me_after_the_nuke(retval);
    886856    return (retval);
    887857}
     858
    888859/**************************************************************************
    889860 *END_NUKE_MODE                                                           *
     
    996967    FILE *fout = NULL;
    997968    FILE *fbzip2 = NULL;
     969
    998970    char *checksum = NULL;
    999     char *outfile_fname = NULL;
    1000     char *tmp = NULL;
     971    char *outfile_fname = NULL;
     972    char *tmp = NULL;
    1001973    char *tmp0 = NULL;
    1002974    char *tmp1 = NULL;
    1003975    char *tmp2 = NULL;
    1004976    char *tmp3 = NULL;
    1005     char *bzip2_command = NULL;
     977    char *bzip2_command = NULL;
    1006978    char *bigblk = NULL;
    1007979    char *pathname_of_last_file_restored = NULL;
    1008980    int finished = FALSE;
    1009     long sliceno;
     981    long sliceno = 0L;
    1010982    long siz;
    1011983    long siz1;
     
    1018990    int res = 0;
    1019991    int old_loglevel;
    1020     char *sz_msg;
     992    char *sz_msg = NULL;
    1021993    struct s_node *node = NULL;
    1022994
     
    10461018
    10471019    if (!checksum[0]) {
    1048         mr_asprintf(&tmp, "Warning - bigfile %ld does not have a checksum",
     1020        mr_msg(3, "Warning - bigfile %ld does not have a checksum",
    10491021                bigfileno + 1);
    1050         mr_msg(3, tmp);
    1051         mr_free(tmp);
    1052         /* BERLIOS : Useless ???
    1053         p = checksum;
    1054         */
    10551022    }
    10561023    mr_free(checksum);
     
    10901057
    10911058    if (biggiestruct.use_ntfsprog)  // if it's an NTFS device
    1092 //  if (!strncmp ( biggiestruct.filename, "/dev/", 5))
    10931059    {
    10941060        g_loglevel = 4;
     
    11121078                feed_outfrom_ntfsprog(biggiestruct.filename,
    11131079                                      ntfsprog_fifo);
    1114 //          mr_msg(3, "CHILD - fip - exiting");
    11151080            exit(res);
    11161081            break;
     
    11201085                    (long int) (pid));
    11211086        }
    1122         // BERLIOS: Is it the right place ??
    1123         mr_free(ntfsprog_fifo);
    11241087    } else {
    11251088        use_ntfsprog_hack = FALSE;
     
    11311094    }
    11321095
    1133     mr_asprintf(&tmp, "Reassembling big file %ld (%s)", bigfileno + 1,
     1096    mr_msg(2, "Reassembling big file %ld (%s)", bigfileno + 1,
    11341097            outfile_fname);
    1135     mr_msg(2, tmp);
    1136     mr_free(tmp);
    11371098
    11381099    /*
     
    11461107    mr_msg(3, "file_to_openout = %s", file_to_openout);
    11471108    if (!(fout = fopen(file_to_openout, "w"))) {
    1148         log_to_screen(_("Cannot openout outfile_fname - hard disk full?"));
     1109        log_to_screen(_("Cannot openout file_to_openout - hard disk full?"));
    11491110        return (pathname_of_last_file_restored);
    11501111    }
     1112    mr_free(ntfsprog_fifo);
    11511113    mr_msg(3, "Opened out to %s", outfile_fname);   // CD/DVD --> mondorestore --> ntfsclone --> hard disk itself
    11521114
     
    11641126                    g_current_media_number);
    11651127            g_current_media_number++;
    1166             mr_asprintf(&tmp3,
    1167                     "Asking for %s #%d so that I may read slice #%ld\n",
    1168                     bkpinfo->backup_media_string,
     1128            mr_msg(2, "Asking for %s #%d so that I may read slice #%ld\n",
     1129                    media_descriptor_string(bkpinfo->backup_media_type),
    11691130                    g_current_media_number, sliceno);
    1170             mr_msg(2, tmp3);
    1171             mr_free(tmp3);
    1172 
    1173             mr_asprintf(&tmp3, _("Restoring from %s #%d"),
     1131            log_to_screen(_("Restoring from %s #%d"),
    11741132                    bkpinfo->backup_media_string,
    11751133                    g_current_media_number);
    1176             log_to_screen(tmp3);
    1177             mr_free(tmp3);
    1178 
    11791134            insist_on_this_cd_number(bkpinfo, g_current_media_number);
    11801135            log_to_screen(_("Continuing to restore."));
     
    11941149                        mr_asprintf(&bzip2_command, "bzip2 -dc %s 2>> %s",tmp2, MONDO_LOGFILE);
    11951150                } else if (does_file_exist(tmp)) {
    1196                         mr_asprintf(&bzip2_command, "%s", "");
     1151                        mr_asprintf(&bzip2_command, "");
    11971152                } else {
    11981153                    log_to_screen(_("OK, that's pretty fsck0red..."));
     
    12041159                mr_asprintf(&bzip2_command, "cat %s 2>> %s", tmp, MONDO_LOGFILE);
    12051160            }
    1206             mr_asprintf(&tmp3, "Working on %s #%d, file #%ld, slice #%ld ",
     1161            mr_asprintf(&tmp3, "Working on %s #%d, file #%ld, slice #%ld",
    12071162                    bkpinfo->backup_media_string,
    12081163                    g_current_media_number, bigfileno + 1, sliceno);
     
    12161171
    12171172            if (!(fbzip2 = popen(bzip2_command, "r"))) {
     1173                mr_free(bzip2_command);
    12181174                fatal_error("Can't run popen command");
    12191175            }
     
    12241180                if (siz > 0) {
    12251181                    siz1 = fwrite(bigblk, 1, siz, fout);
    1226                     mr_asprintf(&sz_msg, "Read %ld from fbzip2; written %ld to fout", siz, siz1);
    1227                     log_it(sz_msg);
    1228                     mr_free(sz_msg);
    12291182                }
    12301183            }
    12311184            paranoid_pclose(fbzip2);
    1232 
    12331185
    12341186            sliceno++;
     
    12881240                                     int use_ntfsprog)
    12891241{
    1290     FILE *pout;
    1291     FILE *fin;
     1242    FILE *pout = NULL;
     1243    FILE *fin = NULL;
    12921244
    12931245  /** mallocs ********/
     
    13001252    char *pathname_of_last_file_restored = NULL;
    13011253
    1302     struct s_node *node;
    1303 
    1304     int old_loglevel;
     1254    struct s_node *node = NULL;
     1255
     1256    int old_loglevel = 0;
    13051257    long current_slice_number = 0;
    13061258    int retval = 0;
    13071259    int res = 0;
    13081260    int ctrl_chr = '\0';
    1309     long long slice_siz;
     1261    long long slice_siz = 0L;
    13101262    bool dummy_restore = FALSE;
    13111263    bool use_ntfsprog_hack = FALSE;
    13121264    pid_t pid;
    13131265    struct s_filename_and_lstat_info biggiestruct;
    1314     struct utimbuf the_utime_buf, *ubuf;
     1266    struct utimbuf the_utime_buf, *ubuf = NULL;
    13151267    ubuf = &the_utime_buf;
    13161268
     
    13801332                    outfile_fname, ntfsprog_fifo);
    13811333            res = feed_outfrom_ntfsprog(outfile_fname, ntfsprog_fifo);
    1382 //          mr_msg(3, "CHILD - fip - exiting");
    13831334            exit(res);
    13841335            break;
     
    13881339                    (long int) (pid));
    13891340        }
    1390         mr_free(ntfsprog_fifo);
    13911341    } else {
    13921342        if (!strncmp(orig_bf_fname, "/dev/", 5))    // non-NTFS partition
     
    14041354            make_hole_for_file(outfile_fname);
    14051355        }
    1406         mr_asprintf(&tmp1, "Reassembling big file %ld (%s)",
     1356        mr_msg(2, "Reassembling big file %ld (%s)",
    14071357                biggiefile_number + 1, orig_bf_fname);
    1408         mr_msg(2, tmp1);
    1409         mr_free(tmp1);
    14101358    }
    14111359
     
    14211369                file_to_openout, MONDO_LOGFILE);
    14221370    }
    1423     mr_asprintf(&tmp1, "Pipe command = '%s'", command);
    1424     mr_msg(3, tmp1);
    1425     mr_free(tmp1);
     1371    mr_msg(3, "Pipe command = '%s'", command);
     1372    mr_free(outfile_fname);
     1373    mr_free(ntfsprog_fifo);
    14261374
    14271375    /* restore biggiefile, one slice at a time */
     
    14451393            newtRefresh();
    14461394        }
    1447         strip_spaces(tmp1);
     1395        mr_strip_spaces(tmp1);
    14481396        update_progress_form(tmp1);
    14491397        mr_free(tmp1);
     
    15061454    }
    15071455
    1508     mr_free(outfile_fname);
    15091456    g_loglevel = old_loglevel;
    15101457    return (pathname_of_last_file_restored);
     
    15331480{
    15341481    int retval = 0;
    1535     int res;
    1536     char *p;
     1482    int res = 0;
     1483    char *p = NULL;
    15371484
    15381485  /** malloc **/
    1539     char *command;
     1486    char *command = NULL;
    15401487    char *tmp = NULL;
    1541     char *filelist_name;
     1488    char *filelist_name = NULL;
    15421489    char *filelist_subset_fname = NULL;
    15431490    char *executable = NULL;
    15441491    char *temp_log = NULL;
    15451492    long matches = 0;
    1546     bool use_star;
     1493    bool use_star = FALSE;
    15471494    char *xattr_fname = NULL;
    15481495    char *acl_fname = NULL;
     
    15671514        retval = 0;
    15681515        mr_msg(5, "Leaving");
     1516        mr_free(filelist_name);
    15691517        return (retval);
    15701518    }
     
    15731521        mr_msg(3, "length_of_file(%s) = %llu", tarball_fname,
    15741522                length_of_file(tarball_fname));
    1575         mr_asprintf(&tmp, "Unable to restore fileset #%ld (CD I/O error)",
     1523        log_to_screen(_("Unable to restore fileset #%ld (CD I/O error)"),
    15761524                current_tarball_number);
    1577         log_to_screen(tmp);
    1578         mr_free(tmp);
    15791525        retval = 1;
    15801526        mr_msg(5, "Leaving");
     1527        mr_free(filelist_name);
    15811528        return (retval);
    15821529    }
     
    15901537                                             use_star))
    15911538            <= 0) {
    1592             mr_asprintf(&tmp, "Skipping fileset %ld", current_tarball_number);
    1593             mr_msg(1, tmp);
    1594             mr_free(tmp);
     1539            mr_msg(1, "Skipping fileset %ld", current_tarball_number);
    15951540        } else {
    15961541            mr_msg(3, "Saved fileset %ld's subset to %s",
    15971542                    current_tarball_number, filelist_subset_fname);
    15981543        }
    1599         mr_asprintf(&tmp, "Tarball #%ld --- %ld matches",
     1544        log_to_screen("Tarball #%ld --- %ld matches",
    16001545                current_tarball_number, matches);
    1601         log_to_screen(tmp);
    1602         mr_free(tmp);
    1603     } else {
    1604         filelist_subset_fname = NULL;
    16051546    }
    16061547    mr_free(filelist_name);
     
    16161557        }
    16171558        if (strstr(tarball_fname, ".bz2")) {
    1618             mr_asprintf(&executable, "bzip2");
     1559            mr_asprintf(&executable, "-P bzip2 -Z");
    16191560        } else if (strstr(tarball_fname, ".gz")) {
    1620             strcpy(executable, "gzip");
    1621         } else if (strstr(tarball_fname, ".gz")) {
    1622             strcpy(executable, "gzip");
     1561            mr_asprintf(&executable, "-P gzip -Z");
    16231562        } else if (strstr(tarball_fname, ".lzo")) {
    1624             mr_asprintf(&executable, "lzop");
    1625         } else {
    1626             executable = NULL;
     1563            mr_asprintf(&executable, "-P lzop -Z");
    16271564        }
    16281565
     
    16331570                    (_
    16341571                     ("(compare_a_tarball) Compression program not found - oh no!"));
     1572                mr_free(tmp);
     1573                mr_free(executable);
     1574                mr_free(acl_fname);
     1575                mr_free(xattr_fname);
     1576                mr_free(filelist_subset_fname);
    16351577                paranoid_MR_finish(1);
    16361578            }
    1637             mr_free(tmp);
    1638 
    1639             mr_asprintf(&tmp, executable);
    1640             mr_asprintf(&executable, "-P %s -Z", tmp);
    16411579            mr_free(tmp);
    16421580        }
     
    16471585#endif
    16481586
    1649         mr_asprintf(&temp_log, "/tmp/%d.%d", (int) (random() % 32768),
    1650             (int) (random() % 32768));
    1651 
    16521587        if (use_star) {
     1588            mr_sprintf(&command,
     1589                    "star -x -force-remove -U " STAR_ACL_SZ
     1590                    " errctl= file=%s", tarball_fname);
    16531591            if (strstr(tarball_fname, ".bz2")) {
    1654                 mr_asprintf(&tmp, " -bz");
    1655             } else {
    1656                 mr_asprintf(&tmp, "%s", "");
    1657             }
    1658             mr_asprintf(&command,
    1659                     "star -x -force-remove -U " STAR_ACL_SZ
    1660                     " errctl= file=%s %s 2>> %s >> %s", tarball_fname, tmp, temp_log, temp_log);
    1661             mr_free(tmp);
     1592                mr_strcat(command, " -bz");
     1593            }
    16621594        } else {
    16631595            if (filelist_subset_fname != NULL) {
    16641596                mr_asprintf(&command,
    1665                         "afio -i -M 8m -b %ld -c %ld %s -w '%s' %s 2>> %s >> %s",
     1597                        "afio -i -M 8m -b %ld -c %ld %s -w '%s' %s",
    16661598                        TAPE_BLOCK_SIZE,
    16671599                        BUFSIZE, executable, filelist_subset_fname,
    1668 //             files_to_restore_this_time_fname,
    1669                         tarball_fname, temp_log, temp_log);
     1600                        tarball_fname);
    16701601            } else {
    16711602                mr_asprintf(&command,
    1672                         "afio -i -b %ld -c %ld -M 8m %s %s 2>> %s >> %s",
     1603                        "afio -i -b %ld -c %ld -M 8m %s %s",
    16731604                        TAPE_BLOCK_SIZE,
    1674                         BUFSIZE, executable, tarball_fname, temp_log, temp_log);
     1605                        BUFSIZE, executable, tarball_fname);
    16751606            }
    16761607        }
     
    16781609
    16791610#undef BUFSIZE
     1611        mr_asprintf(&temp_log, "/tmp/%d.%d", (int) (random() % 32768),
     1612            (int) (random() % 32768));
     1613
     1614        mr_strcat(command, " 2>> %s >> %s", temp_log, temp_log);
    16801615        mr_msg(1, "command = '%s'", command);
    16811616        unlink(temp_log);
     
    17321667        unlink(xattr_fname);
    17331668        mr_free(xattr_fname);
     1669        unlink(acl_fname);
     1670        mr_free(acl_fname);
     1671        unlink(temp_log);
     1672        mr_free(temp_log);
    17341673    }
    17351674    if (does_file_exist("/PAUSE")) {
     
    17391678    }
    17401679    unlink(filelist_subset_fname);
    1741     unlink(acl_fname);
    1742     unlink(temp_log);
    1743 
    17441680    mr_free(filelist_subset_fname);
    1745     mr_free(acl_fname);
    1746     mr_free(temp_log);
    17471681    mr_msg(5, "Leaving");
    17481682    return (retval);
     
    17891723    long matches = 0;
    17901724    bool restore_this_fileset = FALSE;
    1791     bool use_star;
     1725    bool use_star = FALSE;
    17921726
    17931727    assert(bkpinfo != NULL);
     
    17951729    /* to do it with a file... */
    17961730    use_star = (strstr(tarball_fname, ".star")) ? TRUE : FALSE;
    1797     mr_asprintf(&tmp,
    1798             "Restoring from fileset #%ld (%ld KB) on %s #%d",
     1731    mr_msg(2, "Restoring from fileset #%ld (%ld KB) on %s #%d",
    17991732            current_tarball_number, (long) size >> 10,
    18001733            bkpinfo->backup_media_string,
    18011734            g_current_media_number);
    1802     mr_msg(2, tmp);
    1803     mr_free(tmp);
    18041735    run_program_and_log_output("mkdir -p " MNT_RESTORING "/tmp", FALSE);
    18051736
     
    18371768        if (strstr(tarball_fname, ".star.")) {
    18381769            use_star = TRUE;
    1839             mr_asprintf(&command, "star -t file=%s %s > %s 2>> %s", afio_fname, executable, filelist_fname, MONDO_LOGFILE);
     1770            mr_asprintf(&command, "star -t file=%s %s", afio_fname, executable);
    18401771        } else {
    18411772            use_star = FALSE;
    1842             mr_asprintf(&command, "afio -t -M 8m -b %ld %s %s > %s 2>> %s", TAPE_BLOCK_SIZE,
    1843                     executable, afio_fname, filelist_fname, MONDO_LOGFILE);
    1844         }
     1773            mr_asprintf(&command, "afio -t -M 8m -b %ld %s %s", TAPE_BLOCK_SIZE,
     1774                    executable, afio_fname);
     1775        }
     1776        mr_strcat(command, " > %s 2>> %s", filelist_fname, MONDO_LOGFILE);
    18451777        mr_msg(1, "command = %s", command);
    18461778        if (system(command)) {
     
    18481780        }
    18491781        mr_free(command);
     1782
    18501783        if ((matches =
    18511784             save_filelist_entries_in_common(filelist_fname, filelist,
     
    18571790                        current_tarball_number);
    18581791            }
    1859             mr_asprintf(&tmp, "Skipping fileset %ld", current_tarball_number);
    1860             mr_msg(2, tmp);
    1861             mr_free(tmp);
     1792            mr_msg(2, "Skipping fileset %ld", current_tarball_number);
    18621793            restore_this_fileset = FALSE;
    18631794        } else {
     
    18751806        // star
    18761807        if (filelist) {
    1877             mr_asprintf(&command, "star -x file=%s %s list=%s 2>> %s", afio_fname, executable,
    1878                     filelist_subset_fname,MONDO_LOGFILE);
     1808            mr_asprintf(&command, "star -x file=%s %s list=%s 2>> %s", afio_fname, executable, filelist_subset_fname, MONDO_LOGFILE);
    18791809        } else {
    1880             mr_asprintf(&command,"star -x file=%s %s 2>> %s", afio_fname, executable,MONDO_LOGFILE);
     1810            mr_asprintf(&command, "star -x file=%s %s 2>> %s", afio_fname, executable, MONDO_LOGFILE);
    18811811        }
    18821812    } else {
    18831813        // afio
    18841814        if (filelist) {
    1885             mr_asprintf(&command, "afio -i -M 8m -b %ld %s -w %s %s 2>> %s", TAPE_BLOCK_SIZE, executable, filelist_subset_fname,afio_fname,MONDO_LOGFILE);
     1815            mr_asprintf(&command, "afio -i -M 8m -b %ld %s -w %s %s 2>> %s", TAPE_BLOCK_SIZE, executable, filelist_subset_fname, afio_fname, MONDO_LOGFILE);
    18861816        } else {
    1887             mr_asprintf(&command, "afio -i -M 8m -b %ld %s %s 2>> %s", TAPE_BLOCK_SIZE, executable,afio_fname,MONDO_LOGFILE);
     1817            mr_asprintf(&command, "afio -i -M 8m -b %ld %s %s 2>> %s", TAPE_BLOCK_SIZE, executable, afio_fname, MONDO_LOGFILE);
    18881818        }
    18891819    }
     
    19921922        return (0);
    19931923    }
    1994     mr_asprintf(&tmp, "OK, there are %ld biggiefiles in the archives",
    1995             noof_biggiefiles);
    1996     mr_msg(2, tmp);
    1997     mr_free(tmp);
     1924    mr_msg(2, "OK, there are %ld biggiefiles in the archives", noof_biggiefiles);
    19981925
    19991926    open_progress_form(_("Reassembling large files"),
     
    20231950                insist_on_this_cd_number(bkpinfo,
    20241951                                         ++g_current_media_number);
    2025                 mr_asprintf(&tmp, _("Restoring from %s #%d"),
     1952                log_to_screen(_("Restoring from %s #%d"),
    20261953                        bkpinfo->backup_media_string,
    20271954                        g_current_media_number);
    2028                 log_to_screen(tmp);
    2029                 mr_free(tmp);
    2030 
    20311955                just_changed_cds = TRUE;
    20321956            } else {
     
    20511975            retval += res;
    20521976            bigfileno++;
    2053 
    2054         }
    2055         mr_free(tmp);
     1977        }
    20561978    }
    20571979
     
    20882010    return (retval);
    20892011}
     2012
    20902013/**************************************************************************
    20912014 *END_RESTORE_ALL_BIGGIFILES_FROM_CD                                      *
     
    21082031{
    21092032    int retval = 0;
    2110     int res;
    2111     int attempts;
     2033    int res = 0;
     2034    int attempts = 0;
    21122035    long current_tarball_number = 0;
    2113     long max_val;
     2036    long max_val = 0L;
    21142037  /**malloc ***/
    2115     char *tmp;
    2116     char *tmp1;
    2117     char *tarball_fname;
    2118     char *progress_str;
    2119     char *comment;
     2038    char *tmp = NULL;
     2039    char *tmp1 = NULL;
     2040    char *tarball_fname = NULL;
     2041    char *progress_str = NULL;
     2042    char *comment = NULL;
    21202043
    21212044    assert(bkpinfo != NULL);
     
    21442067        insist_on_this_cd_number(bkpinfo, g_current_media_number);
    21452068        update_progress_form(progress_str);
    2146 
    21472069        mr_asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.afio.bz2",
    21482070                current_tarball_number);
     
    21782100                    (_
    21792101                     ("No tarballs. Strange. Maybe you only backed up freakin' big files?"));
     2102                mr_free(progress_str);
    21802103                return (0);
    21812104            }
     
    21842107                          "/archives/slice* > /dev/null 2> /dev/null") ==
    21852108                0) {
     2109                mr_free(tarball_fname);
     2110                mr_free(progress_str);
    21862111                break;
    21872112            }
    21882113            g_current_media_number++;
    21892114            mr_free(progress_str);
     2115
    21902116            mr_asprintf(&progress_str, _("Restoring from %s #%d"),
    21912117                    bkpinfo->backup_media_string,
     
    21992125                    bkpinfo->backup_media_string,
    22002126                    g_current_media_number);
    2201 //    mr_msg(3, "progress_str = %s", progress_str);
    22022127            for (res = 999, attempts = 0; attempts < 3 && res != 0;
    22032128                 attempts++) {
     
    22072132                                              filelist);
    22082133            }
     2134            mr_asprintf(&tmp, _("%s #%d, fileset #%ld - restore "),
     2135                    media_descriptor_string(bkpinfo->backup_media_type),
     2136                    g_current_media_number, current_tarball_number);
    22092137            if (res) {
    2210                 mr_asprintf(&tmp1, _("reported errors"));
     2138                mr_strcat(tmp, _("reported errors"));
    22112139            } else {
    2212                 mr_asprintf(&tmp1, _("succeeded"));
    2213             }
    2214             mr_asprintf(&tmp, _("%s #%d, fileset #%ld - restore %s"),
    2215                     bkpinfo->backup_media_string,
    2216                     g_current_media_number, current_tarball_number,tmp1);
    2217             mr_free(tmp1);
    2218            
     2140                mr_strcat(tmp, _("succeeded"));
     2141            }
    22192142            if (attempts > 1) {
    2220                 mr_asprintf(&tmp1, _(" (%d attempts) - review logs"), attempts);
    2221             }
    2222             mr_asprintf(&comment, "%s%s", tmp, tmp1);
     2143                mr_strcat(tmp, _(" (%d attempts) - review logs"), attempts);
     2144            }
     2145            if (attempts > 1) {
     2146                log_to_screen(tmp);
     2147            }
    22232148            mr_free(tmp);
    2224             mr_free(tmp1);
    2225             if (attempts > 1) {
    2226                 log_to_screen(comment);
    2227             }
    2228             mr_free(comment);
    22292149
    22302150            retval += res;
     
    22422162        mvaddstr_and_log_it(g_currentY++, 74, _("Done."));
    22432163    }
    2244 
    22452164    return (retval);
    22462165}
     
    22622181                                    struct s_node *filelist)
    22632182{
    2264     long noof_biggiefiles;
    2265     long current_bigfile_number = 0;
    2266     long total_slices;
     2183    long noof_biggiefiles = 0L;
     2184    long current_bigfile_number = 0L;
     2185    long total_slices = 0L;
    22672186
    22682187    int retval = 0;
    22692188    int res = 0;
    2270     int ctrl_chr;
     2189    int ctrl_chr = 0;
    22712190
    22722191  /** malloc add ****/
     
    23022221                biggies_whose_EXATs_we_should_set);
    23032222    }
    2304 // get xattr and acl files if they're there
     2223    // get xattr and acl files if they're there
    23052224    res =
    23062225        read_header_block_from_stream(&biggie_size, biggie_fname,
     
    23132232
    23142233    noof_biggiefiles = atol(biggie_fname);
    2315     mr_asprintf(&tmp, "OK, there are %ld biggiefiles in the archives",
     2234    mr_msg(2, "OK, there are %ld biggiefiles in the archives",
    23162235            noof_biggiefiles);
    2317     mr_msg(2, tmp);
    2318     mr_free(tmp);
    2319 
    23202236    open_progress_form(_("Reassembling large files"),
    23212237                       _("I am now reassembling all the large files."),
     
    23632279    if (current_bigfile_number != noof_biggiefiles
    23642280        && noof_biggiefiles != 0) {
    2365         mr_asprintf(&tmp, "Warning - bigfileno=%ld but noof_biggiefiles=%ld\n",
     2281        mr_msg(1, "Warning - bigfileno=%ld but noof_biggiefiles=%ld\n",
    23662282                current_bigfile_number, noof_biggiefiles);
    23672283    } else {
    2368         mr_asprintf(&tmp,
    2369                 "%ld biggiefiles in biggielist.txt; %ld biggiefiles processed today.",
     2284        mr_msg(1, "%ld biggiefiles in biggielist.txt; %ld biggiefiles processed today.",
    23702285                noof_biggiefiles, current_bigfile_number);
    23712286    }
    2372     mr_msg(1, tmp);
    2373     mr_free(tmp);
    23742287
    23752288    if (fbw) {
     
    24372350{
    24382351    int retval = 0;
    2439     int res;
     2352    int res = 0;
    24402353    long current_afioball_number = 0;
    2441     int ctrl_chr;
    2442     long max_val /*, total_noof_files */ ;
     2354    int ctrl_chr = 0;
     2355    long max_val = 0L /*, total_noof_files */ ;
    24432356
    24442357  /** malloc **/
     
    24492362    char *acl_fname = NULL;
    24502363
    2451     long long tmp_size;
     2364    long long tmp_size = 0L;
    24522365
    24532366    assert(bkpinfo != NULL);
     
    25152428        retval += res;
    25162429        if (res) {
    2517             mr_asprintf(&tmp, _("Fileset %ld - errors occurred"),
     2430            log_to_screen("Fileset %ld - errors occurred",
    25182431                    current_afioball_number);
    2519             log_to_screen(tmp);
    2520             mr_free(tmp);
    25212432        }
    25222433        res =
     
    26092520    mr_free(tmp);
    26102521
    2611     mvaddstr_and_log_it(g_currentY, 0,
    2612                         _("Preparing to read your archives"));
     2522    mvaddstr_and_log_it(g_currentY, 0, _("Preparing to read your archives"));
    26132523    if (IS_THIS_A_STREAMING_BACKUP(bkpinfo->backup_media_type)) {
    26142524        mount_cdrom(bkpinfo);
     
    27852695void welcome_to_mondorestore()
    27862696{
    2787     mr_msg(0, "-------------- Mondo Restore v%s -------------",
    2788             PACKAGE_VERSION);
     2697    mr_msg(0, "-------------- Mondo Restore v%s -------------", PACKAGE_VERSION);
    27892698    mr_msg(0,
    27902699            "DON'T PANIC! Mondorestore logs almost everything, so please ");
     
    28372746    bool run_postnuke = FALSE;
    28382747
    2839   /**************************************************************************
    2840    * hugo-                                                                  *
    2841    * busy stuff here - it needs some comments -stan                           *
    2842    *                                                                        *
    2843    **************************************************************************/
    2844 
    28452748#ifdef ENABLE_NLS
    28462749    setlocale(LC_ALL, "");
     
    28692772    mr_free(tmp);
    28702773
    2871     bkpinfo = g_bkpinfo_DONTUSETHIS = mr_malloc(sizeof(struct s_bkpinfo));
     2774    bkpinfo = mr_malloc(sizeof(struct s_bkpinfo));
    28722775    mountlist = mr_malloc(sizeof(struct mountlist_itself));
    28732776    raidlist = mr_malloc(sizeof(struct raidlist_itself));
     
    29272830    run_program_and_log_output("rm -Rf /tmp/tmpfs/mondo.tmp.*", FALSE);
    29282831
    2929 /* Init GUI */
     2832    /* Init GUI */
    29302833    malloc_libmondo_global_strings();
    29312834    setup_newt_stuff();         /* call newtInit and setup screen log */
     
    29392842    iamhere("what time is it");
    29402843
    2941 /* Process command-line parameters */
     2844    /* Process command-line parameters */
    29422845    if (argc == 2 && strcmp(argv[1], "--edit-mountlist") == 0) {
    29432846#ifdef __FreeBSD__
     
    29982901        // BERLIOS: /usr/lib ???
    29992902        toggle_path_selection(filelist, "/usr/share", TRUE);
    3000 //      show_filelist(filelist);
    30012903        save_filelist(filelist, "/tmp/out.txt");
    3002 //      finish(0);
    3003 //      toggle_path_selection (filelist, "/root/stuff", TRUE);
    30042904        mr_asprintf(&a, argv[3]);
    30052905        mr_asprintf(&b, argv[4]);
     
    30732973                 ("Live mode doesn't support command-line parameters yet."));
    30742974            paranoid_MR_finish(1);
    3075 //    return(1);
    30762975        }
    30772976        mr_msg(1, "I am in normal, live mode.");
     
    32253124            if (!bkpinfo->please_dont_eject) {
    32263125                res = eject_device("/dev/cdrom");
    3227 /*
    3228               if (res)
    3229         {
    3230           log_to_screen( "WARNING - failed to eject CD-ROM disk" );
    3231         }
    3232 */
    32333126            }
    32343127            mvaddstr_and_log_it(g_currentY++,
     
    32393132    }
    32403133
    3241 // g_I_have_just_nuked is set true by nuke_mode() just before it returns
     3134    // g_I_have_just_nuked is set true by nuke_mode() just before it returns
    32423135    if (!system("which post-nuke > /dev/null 2> /dev/null")) {
    32433136      mr_msg(1, "post-nuke found; find out whether we should run it...");
     
    32623155      } else {
    32633156        mr_msg(1, "Re-mounted partitions for post-nuke stuff");
    3264         sprintf(tmp, "post-nuke %s %d", bkpinfo->restore_path,
     3157        mr_asprintf(&tmp, "post-nuke %s %d", bkpinfo->restore_path,
    32653158            retval);
    32663159        mr_msg(2, "Calling '%s'", tmp);
     
    32683161          log_OS_error(tmp);
    32693162        }
     3163        mr_free(tmp);
    32703164        mr_msg(1, "post-nuke returned w/ res=%d", res);
    32713165      }
     
    32743168    }
    32753169
    3276 /* 
    3277   log_to_screen("If you are REALLY in a hurry, hit Ctrl-Alt-Del now.");
    3278   log_to_screen("Otherwise, please wait until the RAID disks are done.");
    3279   wait_until_software_raids_are_prepped("/proc/mdstat", 100);
    3280   log_to_screen("Thank you.");
    3281 */
    32823170    unlink("/tmp/mondo-run-prog.tmp");
    32833171    set_signals(FALSE);
     
    32893177        (_
    32903178         ("Restore log copied to /tmp/mondo-restore.log on your hard disk"));
    3291     mr_asprintf(&tmp,
    3292             _
    3293             ("Mondo-restore is exiting (retval=%d)                                      "),
    3294             retval);
    3295     log_to_screen(tmp);
    3296     mr_free(tmp);
     3179    log_to_screen(_("Mondo-restore is exiting (retval=%d)"), retval);
    32973180
    32983181    mr_asprintf(&tmp, "umount %s", bkpinfo->isodir);
Note: See TracChangeset for help on using the changeset viewer.