Changeset 1663 in MondoRescue for branches/stable/mondo/src/common


Ignore:
Timestamp:
Sep 27, 2007, 12:21:18 PM (17 years ago)
Author:
Bruno Cornec
Message:
  • Fix bug #197 (based on an initial patch of Scott Cummings)
  • Fix a bug where df was using locale to print messages and wasn't filtered correctly
  • mkdtemp checked in configure
  • 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
  • configure.in should also be filtered.
  • Remove g_bkpinfo_DONTUSETHIS
  • remove bkpinfo also from header files
  • Render bkpinfo global (potential issue on thread, but should not be a problem as that structure is indeed static during archive)
  • Apply patch from Andree Leidenfrost, modified a bit to use bkpinfo->tmpdir instead of /tmp or MINDI_CACHE when appropriate. Fix security issues in mondo. Thanks al ot Andree for catching all those issues.
  • /tmp => /var/log for mondorestore.log in mindi
  • Update linux terminfo to fix a color issue (Andree Leidenfrost)
  • Removes useless log file (Andree Leidenfrost)
  • replace vi with find_my_editor during restore (Andree Leidenfrost)
  • sync in bg in mindi (VMWare issue to look at)
  • mindi/mindi-busybox have a different version than mondo for pb
  • PB-SUF also added to spec file
  • Fix a bug for pb build (omission of PB-SUF declaration)

(merge -r1631:1662 $SVN_M/branches/2.2.5)

Location:
branches/stable/mondo/src/common
Files:
30 edited

Legend:

Unmodified
Added
Removed
  • branches/stable/mondo/src/common/libmondo-archive-EXT.h

    r1639 r1663  
    22
    33
    4 extern int archive_this_fileset(struct s_bkpinfo *bkpinfo, char *filelist,
     4extern int archive_this_fileset(char *filelist,
    55                                char *fname, int setno);
    6 extern int backup_data(struct s_bkpinfo *bkpinfo);
    7 extern int call_mindi_to_supply_boot_disks(struct s_bkpinfo *bkpinfo);
    8 extern bool can_we_fit_these_files_on_media(struct s_bkpinfo *bkpinfo,
     6extern int backup_data();
     7extern int call_mindi_to_supply_boot_disks();
     8extern bool can_we_fit_these_files_on_media(
    99                                            char *files_to_add, ...);
    10 extern int do_that_initial_phase(struct s_bkpinfo *bkpinfo);
    11 extern int do_that_final_phase(struct s_bkpinfo *bkpinfo);
     10extern int do_that_initial_phase();
     11extern int do_that_final_phase();
    1212extern int figure_out_kernel_path_interactively_if_necessary(char *kernel);
    13 extern int make_those_slices_phase(struct s_bkpinfo *bkpinfo);
    14 extern int make_those_afios_phase(struct s_bkpinfo *bkpinfo);
    15 extern int make_slices_and_images(struct s_bkpinfo *bkpinfo,
     13extern int make_those_slices_phase();
     14extern int make_those_afios_phase();
     15extern int make_slices_and_images(
    1616                                  char *biggielist_fname);
    17 extern int make_iso_fs(struct s_bkpinfo *bkpinfo, char *destfile);
    18 extern int make_afioballs_and_images(struct s_bkpinfo *bkpinfo);
    19 extern int (*move_files_to_cd) (struct s_bkpinfo *, char *, ...);
    20 extern int _move_files_to_cd(struct s_bkpinfo *bkpinfo, char *, ...);
    21 extern int (*move_files_to_stream) (struct s_bkpinfo *, char *, ...);
    22 extern int _move_files_to_stream(struct s_bkpinfo *bkpinfo,
     17extern int make_iso_fs(char *destfile);
     18extern int make_afioballs_and_images();
     19extern int (*move_files_to_cd) (char *, ...);
     20extern int _move_files_to_cd(char *, ...);
     21extern int (*move_files_to_stream) (char *, ...);
     22extern int _move_files_to_stream(
    2323                                 char *files_to_add, ...);
    2424extern void pause_and_ask_for_cdr(int);
    25 extern int slice_up_file_etc(struct s_bkpinfo *bkpinfo,
     25extern int slice_up_file_etc(
    2626                             char *biggie_filename,
    2727                             char *ntfsprog_fifo,
     
    2929                             long noof_biggie_files,
    3030                             bool use_ntfsprog);
    31 extern int verify_data(struct s_bkpinfo *bkpinfo);
     31extern int verify_data();
    3232extern void wipe_archives(char *d);
    33 extern int write_iso_and_go_on(struct s_bkpinfo *bkpinfo, bool last_cd);
    34 extern int write_final_iso_if_necessary(struct s_bkpinfo *bkpinfo);
    35 extern int call_growisofs(struct s_bkpinfo *bkpinfo, char *destfile);
    36 extern int make_afioballs_and_images_SINGLETHREAD(struct s_bkpinfo
    37                                                   *bkpinfo);
    38 extern int archive_this_fileset_with_star(struct s_bkpinfo *bkpinfo,
     33extern int write_iso_and_go_on(bool last_cd);
     34extern int write_final_iso_if_necessary();
     35extern int call_growisofs(char *destfile);
     36extern int make_afioballs_and_images_SINGLETHREAD();
     37extern int archive_this_fileset_with_star(
    3938                                          char *filelist, char *fname,
    4039                                          int setno);
  • branches/stable/mondo/src/common/libmondo-archive.c

    r1639 r1663  
    7979extern char *MONDO_LOGFILE;
    8080
     81/* Reference to global bkpinfo */
     82extern struct s_bkpinfo *bkpinfo;
     83
    8184
    8285
     
    198201
    199202int
    200 archive_this_fileset_with_star(struct s_bkpinfo *bkpinfo, char *filelist,
    201                                char *fname, int setno)
     203archive_this_fileset_with_star(char *filelist, char *fname, int setno)
    202204{
    203205    int retval = 0;
     
    297299 */
    298300int
    299 archive_this_fileset(struct s_bkpinfo *bkpinfo, char *filelist,
    300                      char *fname, int setno)
     301archive_this_fileset(char *filelist, char *fname, int setno)
    301302{
    302303
     
    319320
    320321    if (bkpinfo->compression_level > 0 && bkpinfo->use_star) {
    321         return (archive_this_fileset_with_star
    322                 (bkpinfo, filelist, fname, setno));
     322        return (archive_this_fileset_with_star(filelist, fname, setno));
    323323    }
    324324
     
    431431 * @ingroup archiveGroup
    432432 */
    433 int backup_data(struct s_bkpinfo *bkpinfo)
     433int backup_data()
    434434{
    435435    int retval = 0, res = 0;
     
    437437
    438438    assert(bkpinfo != NULL);
    439     set_g_cdrom_and_g_dvd_to_bkpinfo_value(bkpinfo);
     439    set_g_cdrom_and_g_dvd_to_bkpinfo_value();
    440440
    441441    if (bkpinfo->backup_media_type == dvd) {
     
    452452    }
    453453
    454     if ((res = prepare_filelist(bkpinfo))) {    /* generate scratchdir/filelist.full */
     454    if ((res = prepare_filelist())) {   /* generate scratchdir/filelist.full */
    455455        fatal_error("Failed to generate filelist catalog");
    456456    }
    457     if (call_filelist_chopper(bkpinfo)) {
     457    if (call_filelist_chopper()) {
    458458        fatal_error("Failed to run filelist chopper");
    459459    }
     
    472472    mr_free(tmp);
    473473
    474     copy_mondo_and_mindi_stuff_to_scratchdir(bkpinfo);  // payload, too, if it exists
     474    copy_mondo_and_mindi_stuff_to_scratchdir(); // payload, too, if it exists
    475475#if __FreeBSD__ == 5
    476476    strcpy(bkpinfo->kernel_path, "/boot/kernel/kernel");
     
    486486#error "I don't know about this system!"
    487487#endif
    488     if ((res = call_mindi_to_supply_boot_disks(bkpinfo))) {
     488    if ((res = call_mindi_to_supply_boot_disks())) {
    489489        fatal_error("Failed to generate boot+data disks");
    490490    }
    491     retval += do_that_initial_phase(bkpinfo);   // prepare
     491    retval += do_that_initial_phase();  // prepare
    492492    mr_asprintf(&tmp, "rm -f %s/images/*.iso", bkpinfo->scratchdir);
    493493    run_program_and_log_output(tmp, 1);
    494494    mr_free(tmp);
    495     retval += make_those_afios_phase(bkpinfo);  // backup regular files
    496     retval += make_those_slices_phase(bkpinfo); // backup BIG files
    497     retval += do_that_final_phase(bkpinfo); // clean up
     495    retval += make_those_afios_phase(); // backup regular files
     496    retval += make_those_slices_phase();    // backup BIG files
     497    retval += do_that_final_phase();    // clean up
    498498    mr_msg(1, "Creation of archives... complete.");
    499499    if (bkpinfo->verify_data) {
     
    529529 * @ingroup MLarchiveGroup
    530530 */
    531 int call_mindi_to_supply_boot_disks(struct s_bkpinfo *bkpinfo)
     531int call_mindi_to_supply_boot_disks()
    532532{
    533533    /*@ buffer ************************************************************ */
     
    10051005    char *curr_acl_list_fname;
    10061006
    1007     struct s_bkpinfo *bkpinfo;
     1007    struct s_bkpinfo *bkpinfo_bis;
    10081008    char *tmp = NULL;
    10091009    int res = 0, retval = 0;
     
    10201020    p_next_set_to_archive = (int *) (inbuf + 8);
    10211021    p_list_of_fileset_flags = (char *) (inbuf + 12);
    1022     bkpinfo = (struct s_bkpinfo *) (inbuf + BKPINFO_LOC_OFFSET);
     1022    bkpinfo_bis = (struct s_bkpinfo *) (inbuf + BKPINFO_LOC_OFFSET);
    10231023
    10241024    sprintf(archiving_filelist_fname, FILELIST_FNAME_RAW_SZ,
     
    10881088        mr_msg(4, "[%d:%d] - archiving %d...", getpid(),
    10891089                this_thread_no, archiving_set_no);
    1090         res = archive_this_fileset(bkpinfo, archiving_filelist_fname,
     1090        res =
     1091            archive_this_fileset(archiving_filelist_fname,
    10911092                                 archiving_afioball_fname,
    10921093                                 archiving_set_no);
     
    11411142 * @ingroup MLarchiveGroup
    11421143 */
    1143 int do_that_final_phase(struct s_bkpinfo *bkpinfo)
     1144int do_that_final_phase()
    11441145{
    11451146
     
    11571158    if (IS_THIS_A_STREAMING_BACKUP(bkpinfo->backup_media_type)) {
    11581159        /* write tape/cdstream */
    1159         closeout_tape(bkpinfo);
     1160        closeout_tape();
    11601161    } else {
    11611162        /* write final ISO/USB */
    1162         res = write_final_iso_if_necessary(bkpinfo);
     1163        res = write_final_iso_if_necessary();
    11631164        retval += res;
    11641165        if (res) {
     
    12001201 * @ingroup MLarchiveGroup
    12011202 */
    1202 int do_that_initial_phase(struct s_bkpinfo *bkpinfo)
     1203int do_that_initial_phase()
    12031204{
    12041205    /*@ int *************************************** */
     
    13091310 * @return The number of errors encountered (0 for success)
    13101311 */
    1311 int make_afioballs_and_images(struct s_bkpinfo *bkpinfo)
     1312int make_afioballs_and_images()
    13121313{
    13131314
     
    13671368                       _("Please wait. This may take a couple of hours."),
    13681369                       _("Working..."),
    1369                        get_last_filelist_number(bkpinfo) + 1);
     1370                       get_last_filelist_number() + 1);
    13701371
    13711372    srand((unsigned int) getpid());
     
    14331434                sleep(5);
    14341435            }
    1435             strcpy(media_usage_comment,
    1436                    percent_media_full_comment(bkpinfo));
     1436            strcpy(media_usage_comment, percent_media_full_comment());
    14371437            /* copy to CD (scratchdir) ... and an actual CD-R if necessary */
    14381438            if (IS_THIS_A_STREAMING_BACKUP(bkpinfo->backup_media_type)) {
     
    14421442                                                       storing_afioball_fname);
    14431443                iamhere("Writing EXAT files");
    1444                 res += write_EXAT_files_to_tape(bkpinfo,
    1445                                                 curr_xattr_list_fname,
     1444                res += write_EXAT_files_to_tape(curr_xattr_list_fname,
    14461445                                                curr_acl_list_fname);
    14471446                // archives themselves
    14481447                res +=
    1449                     move_files_to_stream(bkpinfo, storing_afioball_fname,
     1448                    move_files_to_stream(storing_afioball_fname,
    14501449                                         NULL);
    14511450            } else {
    14521451                if (g_getfacl) {
    14531452                    if (g_getfattr) {
    1454                         res = move_files_to_cd(bkpinfo, storing_filelist_fname,
     1453                        res = move_files_to_cd(storing_filelist_fname,
    14551454                                     curr_xattr_list_fname,
    14561455                                     curr_acl_list_fname,
    14571456                                     storing_afioball_fname, NULL);
    14581457                    } else {
    1459                         res = move_files_to_cd(bkpinfo, storing_filelist_fname,
     1458                        res = move_files_to_cd(storing_filelist_fname,
    14601459                                    curr_acl_list_fname,
    14611460                                    storing_afioball_fname, NULL);
     
    14631462                } else {
    14641463                    if (g_getfattr) {
    1465                             res = move_files_to_cd(bkpinfo, storing_filelist_fname,
     1464                            res = move_files_to_cd(storing_filelist_fname,
    14661465                                    curr_xattr_list_fname,
    14671466                                    storing_afioball_fname, NULL);
    14681467                    } else {
    1469                             res = move_files_to_cd(bkpinfo, storing_filelist_fname,
     1468                            res = move_files_to_cd(storing_filelist_fname,
    14701469                                    storing_afioball_fname, NULL);
    14711470                    }
     
    15451544 * @return The number of errors encountered (0 for success)
    15461545 */
    1547 int make_iso_fs(struct s_bkpinfo *bkpinfo, char *destfile)
     1546int make_iso_fs(char *destfile)
    15481547{
    15491548    /*@ int ********************************************** */
     
    15921591        mr_asprintf(&message_to_screen, "Running pre-ISO call for CD#%d",
    15931592                g_current_media_number);
    1594         res = eval_call_to_make_ISO(bkpinfo, bkpinfo->call_before_iso,
     1593        res = eval_call_to_make_ISO(bkpinfo->call_before_iso,
    15951594                                destfile, g_current_media_number,
    15961595                                MONDO_LOGFILE, message_to_screen);
     
    16181617                ("Serious error(s) occurred already. I shan't try to write to media.");
    16191618        } else {
    1620             res = eval_call_to_make_ISO(bkpinfo, bkpinfo->call_make_iso,
     1619            res = eval_call_to_make_ISO(bkpinfo->call_make_iso,
    16211620                                        destfile, g_current_media_number,
    16221621                                        MONDO_LOGFILE, message_to_screen);
     
    16801679                pause_for_N_seconds(5, "Letting DVD drive settle");
    16811680                res =
    1682                     eval_call_to_make_ISO(bkpinfo, bkpinfo->call_make_iso,
     1681                    eval_call_to_make_ISO(bkpinfo->call_make_iso,
    16831682                                          destfile,
    16841683                                          g_current_media_number,
     
    17241723                 bkpinfo->backup_media_string,
    17251724                 g_current_media_number);
    1726         res = eval_call_to_make_ISO(bkpinfo, bkpinfo->call_after_iso,
     1725        res = eval_call_to_make_ISO(bkpinfo->call_after_iso,
    17271726                                    destfile, g_current_media_number,
    17281727                                    MONDO_LOGFILE, message_to_screen);
     
    17831782 */
    17841783int
    1785 make_slices_and_images(struct s_bkpinfo *bkpinfo, char *biggielist_fname)
     1784make_slices_and_images(char *biggielist_fname)
    17861785{
    17871786
     
    18141813
    18151814    estimated_total_noof_slices =
    1816         size_of_all_biggiefiles_K(bkpinfo) / bkpinfo->optimal_set_size + 1;
     1815        size_of_all_biggiefiles_K() / bkpinfo->optimal_set_size + 1;
    18171816
    18181817    mr_msg(1, "size of all biggiefiles = %ld",
    1819             size_of_all_biggiefiles_K(bkpinfo));
     1818            size_of_all_biggiefiles_K());
    18201819    mr_msg(1, "estimated_total_noof_slices = %ld KB / %ld KB = %ld",
    1821             size_of_all_biggiefiles_K(bkpinfo), bkpinfo->optimal_set_size,
     1820            size_of_all_biggiefiles_K(), bkpinfo->optimal_set_size,
    18221821            estimated_total_noof_slices);
    18231822
     
    19091908            }
    19101909            res =
    1911                 slice_up_file_etc(bkpinfo, bigfile_fname,
     1910                slice_up_file_etc(bigfile_fname,
    19121911                                  ntfsprog_fifo, biggie_file_number,
    19131912                                  noof_biggie_files, use_ntfsprog);
     
    19571956 * @see make_afioballs_and_images
    19581957 */
    1959 int make_afioballs_and_images_OLD(struct s_bkpinfo *bkpinfo)
     1958int make_afioballs_and_images_OLD()
    19601959{
    19611960
     
    19831982                       _("Please wait. This may take a couple of hours."),
    19841983                       _("Working..."),
    1985                        get_last_filelist_number(bkpinfo) + 1);
     1984                       get_last_filelist_number() + 1);
    19861985
    19871986    mr_asprintf(&curr_filelist_fname, FILELIST_FNAME_RAW_SZ, bkpinfo->tmpdir,
     
    20072006
    20082007        mr_msg(1, "Archiving set %ld", curr_set_no);
    2009         res = archive_this_fileset(bkpinfo, curr_filelist_fname,
     2008        res = archive_this_fileset(curr_filelist_fname,
    20102009                                 curr_afioball_fname, curr_set_no);
    20112010        retval += res;
     
    20182017        }
    20192018
    2020         strcpy(media_usage_comment, percent_media_full_comment(bkpinfo));
     2019        strcpy(media_usage_comment, percent_media_full_comment());
    20212020
    20222021        /* copy to CD (scratchdir) ... and an actual CD-R if necessary */
     
    20272026                                                   curr_afioball_fname);
    20282027            iamhere("Writing EXAT files");
    2029             res += write_EXAT_files_to_tape(bkpinfo, curr_xattr_list_fname,
     2028            res += write_EXAT_files_to_tape(curr_xattr_list_fname,
    20302029                                            curr_acl_list_fname);
    20312030            // archives themselves
    2032             res = move_files_to_stream(bkpinfo, curr_afioball_fname, NULL);
     2031            res = move_files_to_stream(curr_afioball_fname, NULL);
    20332032        } else {
    20342033                if (g_getfacl) {
    20352034                    if (g_getfattr) {
    2036                         res = move_files_to_cd(bkpinfo, curr_filelist_fname,
     2035                        res = move_files_to_cd(curr_filelist_fname,
    20372036                                     curr_xattr_list_fname,
    20382037                                     curr_acl_list_fname,
    20392038                                     curr_afioball_fname, NULL);
    20402039                    } else {
    2041                         res = move_files_to_cd(bkpinfo, curr_filelist_fname,
     2040                        res = move_files_to_cd(curr_filelist_fname,
    20422041                                    curr_acl_list_fname,
    20432042                                    curr_afioball_fname, NULL);
     
    20452044                } else {
    20462045                    if (g_getfattr) {
    2047                             res = move_files_to_cd(bkpinfo, curr_filelist_fname,
     2046                            res = move_files_to_cd(curr_filelist_fname,
    20482047                                    curr_xattr_list_fname,
    20492048                                    curr_afioball_fname, NULL);
    20502049                    } else {
    2051                             res = move_files_to_cd(bkpinfo, curr_filelist_fname,
     2050                            res = move_files_to_cd(curr_filelist_fname,
    20522051                                    curr_afioball_fname, NULL);
    20532052                    }
     
    20972096 * @ingroup MLarchiveGroup
    20982097 */
    2099 int make_those_afios_phase(struct s_bkpinfo *bkpinfo)
     2098int make_those_afios_phase()
    21002099{
    21012100    /*@ int ******************************************* */
     
    21142113        mr_msg(1,
    21152114                "Using single-threaded make_afioballs_and_images() to suit b0rken FreeBSD 5.0");
    2116         res = make_afioballs_and_images_OLD(bkpinfo);
     2115        res = make_afioballs_and_images_OLD();
    21172116#else
    2118         res = make_afioballs_and_images_OLD(bkpinfo);
     2117        res = make_afioballs_and_images_OLD();
    21192118#endif
    21202119        write_header_block_to_stream((off_t)0, "stop-afioballs",
    21212120                                     BLK_STOP_AFIOBALLS);
    21222121    } else {
    2123         res = make_afioballs_and_images(bkpinfo);
     2122        res = make_afioballs_and_images();
    21242123    }
    21252124
     
    21432142 * @ingroup MLarchiveGroup
    21442143 */
    2145 int make_those_slices_phase(struct s_bkpinfo *bkpinfo)
     2144int make_those_slices_phase()
    21462145{
    21472146
     
    21952194
    21962195    if (IS_THIS_A_STREAMING_BACKUP(bkpinfo->backup_media_type)) {
    2197         res += write_EXAT_files_to_tape(bkpinfo, xattr_fname, acl_fname);
     2196        res += write_EXAT_files_to_tape(xattr_fname, acl_fname);
    21982197        mr_asprintf(&blah, "%ld", count_lines_in_file(biggielist));
    21992198        write_header_block_to_stream((off_t)0, blah, BLK_START_BIGGIEFILES);
     
    22072206    }
    22082207
    2209     res = make_slices_and_images(bkpinfo, biggielist);
     2208    res = make_slices_and_images(biggielist);
    22102209    mr_free(biggielist);
    22112210
     
    22342233 * transfer files over the network) or leave it as is.
    22352234 */
    2236 int (*move_files_to_cd) (struct s_bkpinfo *, char *, ...) =
     2235int (*move_files_to_cd) (char *, ...) =
    22372236    _move_files_to_cd;
    22382237
     
    22552254 * @return The number of errors encountered (0 for success)
    22562255 */
    2257 int _move_files_to_cd(struct s_bkpinfo *bkpinfo, char *files_to_add, ...)
     2256int _move_files_to_cd(char *files_to_add, ...)
    22582257{
    22592258
     
    22962295    if (would_occupy / 1024 > bkpinfo->media_size) {
    22972296        /* FALSE because this is not the last CD we'll write */
    2298         res = write_iso_and_go_on(bkpinfo, FALSE);
     2297        res = write_iso_and_go_on(FALSE);
    22992298        retval += res;
    23002299        if (res) {
     
    23442343 * transfer files over the network) or leave it as is.
    23452344 */
    2346 int (*move_files_to_stream) (struct s_bkpinfo *, char *, ...) =
     2345int (*move_files_to_stream) (char *, ...) =
    23472346    _move_files_to_stream;
    23482347
     
    23612360 */
    23622361int
    2363 _move_files_to_stream(struct s_bkpinfo *bkpinfo, char *files_to_add, ...)
     2362_move_files_to_stream(char *files_to_add, ...)
    23642363{
    23652364
     
    24052404            type = other;
    24062405        }
    2407         res = write_file_to_stream_from_file(bkpinfo, curr_file);
     2406        res = write_file_to_stream_from_file(curr_file);
    24082407        retval += res;
    24092408        unlink(curr_file);
     
    25172516    }
    25182517    log_to_screen("Scanning CD-ROM drive...");
    2519     sprintf(mtpt, "/tmp/cd.mtpt.%ld.%ld", (long int) random(),
    2520             (long int) random());
     2518    sprintf(mtpt, "%s/cd.mtpt", bkpinfo->tmpdir);
    25212519    make_hole_for_dir(mtpt);
    25222520
     
    26702668 */
    26712669int
    2672 slice_up_file_etc(struct s_bkpinfo *bkpinfo, char *biggie_filename,
     2670slice_up_file_etc(char *biggie_filename,
    26732671                  char *ntfsprog_fifo, long biggie_file_number,
    26742672                  long noof_biggie_files, bool use_ntfsprog)
     
    27972795    if (IS_THIS_A_STREAMING_BACKUP(bkpinfo->backup_media_type)) {
    27982796        res =
    2799             move_files_to_stream(bkpinfo,
    2800                                  slice_fname(biggie_file_number, 0,
     2797            move_files_to_stream(slice_fname(biggie_file_number, 0,
    28012798                                             bkpinfo->tmpdir, ""), NULL);
    28022799    } else {
    28032800        res =
    2804             move_files_to_cd(bkpinfo,
    2805                              slice_fname(biggie_file_number, 0,
     2801            move_files_to_cd(slice_fname(biggie_file_number, 0,
    28062802                                         bkpinfo->tmpdir, ""), NULL);
    28072803    }
     
    28232819                           suffix));
    28242820
    2825         mr_asprintf(&tmp, percent_media_full_comment(bkpinfo));
     2821        mr_asprintf(&tmp, percent_media_full_comment());
    28262822        update_progress_form(tmp);
    28272823        mr_free(tmp);
     
    29172913            maintain_collection_of_recent_archives(bkpinfo->tmpdir,
    29182914                                                   file_to_archive);
    2919             res = move_files_to_stream(bkpinfo, file_to_archive, NULL);
     2915            res = move_files_to_stream(file_to_archive, NULL);
    29202916        } else {
    2921             res = move_files_to_cd(bkpinfo, file_to_archive, NULL);
     2917            res = move_files_to_cd(file_to_archive, NULL);
    29222918        }
    29232919        mr_free(file_to_archive);
     
    30143010 * however, this occurs rarely.
    30153011 */
    3016 int write_final_iso_if_necessary(struct s_bkpinfo *bkpinfo)
     3012int write_final_iso_if_necessary()
    30173013{
    30183014    /*@ int ***************************************************** */
     
    30373033#endif
    30383034    mr_free(tmp);
    3039     res = write_iso_and_go_on(bkpinfo, TRUE);
     3035    res = write_iso_and_go_on(TRUE);
    30403036#ifndef _XWIN
    30413037    if (!g_text_mode) {
     
    30653061 * @see make_iso_fs
    30663062 */
    3067 int write_iso_and_go_on(struct s_bkpinfo *bkpinfo, bool last_cd)
     3063int write_iso_and_go_on(bool last_cd)
    30683064{
    30693065    /*@ pointers **************************************************** */
     
    31473143    for (that_one_was_ok = FALSE; !that_one_was_ok;) {
    31483144        if (bkpinfo->backup_media_type != usb) {
    3149             res = make_iso_fs(bkpinfo, isofile);
     3145            res = make_iso_fs(isofile);
    31503146        } else {
    31513147        }
     
    31683164            chdir("/");
    31693165            iamhere("Before calling verify_cd_image()");
    3170             res += verify_cd_image(bkpinfo);
     3166            res += verify_cd_image();
    31713167            iamhere("After calling verify_cd_image()");
    31723168        }
     
    32273223 * @ingroup verifyGroup
    32283224 */
    3229 int verify_data(struct s_bkpinfo *bkpinfo)
     3225int verify_data()
    32303226{
    32313227    int res = 0, retval = 0, cdno = 0;
     
    32383234        mvaddstr_and_log_it(g_currentY, 0,
    32393235                            "Verifying archives against live filesystem");
    3240         verify_tape_backups(bkpinfo);
     3236        verify_tape_backups();
    32413237        mvaddstr_and_log_it(g_currentY++, 74, "Done.");
    32423238    } else if (bkpinfo->backup_data)
     
    32453241        mr_msg(2,
    32463242                "Not verifying again. Per-CD/ISO verification already carried out.");
    3247         paranoid_system
    3248             ("cat /tmp/changed.files.* > /tmp/changed.files 2> /dev/null");
     3243        sprintf(tmp, "cat %s/changed.files > %s/changed.files 2> /dev/null",bkpinfo->tmpdir, MINDI_CACHE);
     3244        paranoid_system(tmp);
    32493245    } else {
    32503246        g_current_media_number = cdno;
     
    32583254            }
    32593255            if (bkpinfo->backup_media_type != iso) {
    3260                 insist_on_this_cd_number(bkpinfo, cdno);
    3261             }
    3262             res = verify_cd_image(bkpinfo); // sets verify_data to FALSE if it's time to stop verifying
     3256                insist_on_this_cd_number(cdno);
     3257            }
     3258            res = verify_cd_image();    // sets verify_data to FALSE if it's time to stop verifying
    32633259            retval += res;
    32643260            if (res) {
    32653261                mr_asprintf(&tmp,
    3266                          "Warnings/errors were reported while checking %s #%d",
    3267                          bkpinfo->backup_media_string,
    3268                          g_current_media_number);
     3262                        "Warnings/errors were reported while checking %s #%d",
     3263                        media_descriptor_string(bkpinfo->backup_media_type),
     3264                        g_current_media_number);
    32693265                log_to_screen(tmp);
    32703266                mr_free(tmp);
     
    32733269        }
    32743270        mr_asprintf(&tmp,
    3275                  "grep 'afio: ' %s | sed 's/afio: //' | grep -vE '^/dev/.*$' >> /tmp/changed.files",
    3276                  MONDO_LOGFILE);
     3271                "grep 'afio: ' %s | sed 's/afio: //' | grep -vE '^/dev/.*$' >> %s/changed.files",
     3272                MONDO_LOGFILE, MINDI_CACHE);
    32773273        system(tmp);
    32783274        mr_free(tmp);
    32793275
    32803276        mr_asprintf(&tmp,
    3281                  "grep 'star: ' %s | sed 's/star: //' | grep -vE '^/dev/.*$' >> /tmp/changed.files",
    3282                  MONDO_LOGFILE);
     3277                "grep 'star: ' %s | sed 's/star: //' | grep -vE '^/dev/.*$' >> %s/changed.files",
     3278                MONDO_LOGFILE, MINDI_CACHE);
    32833279        system(tmp);
    32843280        mr_free(tmp);
     
    32873283        eject_device(bkpinfo->media_device);
    32883284    }
    3289     diffs = count_lines_in_file("/tmp/changed.files");
     3285    sprintf(tmp, "%s/changed.files", MINDI_CACHE);
     3286    diffs = count_lines_in_file(tmp);
    32903287
    32913288    if (diffs > 0) {
  • branches/stable/mondo/src/common/libmondo-archive.h

    r1639 r1663  
    33 */
    44
    5 int archive_this_fileset(struct s_bkpinfo *bkpinfo, char *filelist,
     5int archive_this_fileset(char *filelist,
    66                         char *fname, int setno);
    7 int backup_data(struct s_bkpinfo *bkpinfo);
    8 int call_mindi_to_supply_boot_disks(struct s_bkpinfo *bkpinfo);
    9 bool can_we_fit_these_files_on_media(struct s_bkpinfo *bkpinfo,
     7int backup_data();
     8int call_mindi_to_supply_boot_disks();
     9bool can_we_fit_these_files_on_media(
    1010                                     char *files_to_add, ...);
    11 int do_that_initial_phase(struct s_bkpinfo *bkpinfo);
    12 int do_that_final_phase(struct s_bkpinfo *bkpinfo);
     11int do_that_initial_phase();
     12int do_that_final_phase();
    1313int figure_out_kernel_path_interactively_if_necessary(char *kernel);
    1414bool get_bit_N_of_array(char *array, int N);
    15 int make_those_slices_phase(struct s_bkpinfo *bkpinfo);
    16 int make_those_afios_phase(struct s_bkpinfo *bkpinfo);
    17 int make_slices_and_images(struct s_bkpinfo *bkpinfo,
     15int make_those_slices_phase();
     16int make_those_afios_phase();
     17int make_slices_and_images(
    1818                           char *biggielist_fname);
    19 int make_iso_fs(struct s_bkpinfo *bkpinfo, char *destfile);
    20 int make_afioballs_and_images(struct s_bkpinfo *bkpinfo);
    21 extern int (*move_files_to_cd) (struct s_bkpinfo *, char *, ...);
    22 int _move_files_to_cd(struct s_bkpinfo *bkpinfo, char *files_to_add, ...);
    23 extern int (*move_files_to_stream) (struct s_bkpinfo *, char *, ...);
    24 int _move_files_to_stream(struct s_bkpinfo *bkpinfo, char *files_to_add,
     19int make_iso_fs(char *destfile);
     20int make_afioballs_and_images();
     21extern int (*move_files_to_cd) (char *, ...);
     22int _move_files_to_cd(char *files_to_add, ...);
     23extern int (*move_files_to_stream) (char *, ...);
     24int _move_files_to_stream(char *files_to_add,
    2525                          ...);
    2626void pause_and_ask_for_cdr(int);
    2727void set_bit_N_of_array(char *array, int N, bool true_or_false);
    28 int slice_up_file_etc(struct s_bkpinfo *bkpinfo, char *biggie_filename,
     28int slice_up_file_etc(char *biggie_filename,
    2929                      char *ntfsprog_fifo,
    3030                      long biggie_file_number, long noof_biggie_files,
    3131                      bool use_ntfsprog);
    32 int verify_data(struct s_bkpinfo *bkpinfo);
     32int verify_data();
    3333void wipe_archives(char *d);
    34 int write_iso_and_go_on(struct s_bkpinfo *bkpinfo, bool last_cd);
    35 int write_final_iso_if_necessary(struct s_bkpinfo *bkpinfo);
    36 int call_growisofs(struct s_bkpinfo *bkpinfo, char *destfile);
    37 int make_afioballs_and_images_SINGLETHREAD(struct s_bkpinfo *bkpinfo);
    38 int archive_this_fileset_with_star(struct s_bkpinfo *bkpinfo,
     34int write_iso_and_go_on(bool last_cd);
     35int write_final_iso_if_necessary();
     36int call_growisofs(char *destfile);
     37int make_afioballs_and_images_SINGLETHREAD();
     38int archive_this_fileset_with_star(
    3939                                   char *filelist, char *fname, int setno);
    4040void setenv_mondo_share(void);
  • branches/stable/mondo/src/common/libmondo-devices-EXT.h

    r1156 r1663  
    77extern int does_partition_exist(const char *drive, int partno);
    88extern bool does_string_exist_in_boot_block(char *dev, char *str);
    9 extern int find_and_mount_actual_cd(struct s_bkpinfo *bkpinfo,
     9extern int find_and_mount_actual_cd(
    1010                                    char *mountpoint);
    1111extern int find_cdrom_device(char *output, bool try_to_mount);
     
    3131
    3232
    33 extern int interactively_obtain_media_parameters_from_user(struct s_bkpinfo
    34                                                            *, bool);
    35 extern void insist_on_this_cd_number(struct s_bkpinfo *bkpinfo,
     33extern int interactively_obtain_media_parameters_from_user(bool);
     34extern void insist_on_this_cd_number(
    3635                                     int cd_number_i_want);
    3736
    3837
    39 extern int what_number_cd_is_this(struct s_bkpinfo *bkpinfo);
     38extern int what_number_cd_is_this();
    4039
    4140
     
    4443extern char *list_of_NFS_mounts_only(void);
    4544
    46 extern void sensibly_set_tmpdir_and_scratchdir(struct s_bkpinfo *bkpinfo);
     45extern void sensibly_set_tmpdir_and_scratchdir();
    4746
    4847
     
    5958                                                            *incoming);
    6059
    61 extern void set_g_cdrom_and_g_dvd_to_bkpinfo_value(struct s_bkpinfo
    62                                                    *bkpinfo);
     60extern void set_g_cdrom_and_g_dvd_to_bkpinfo_value();
    6361
    6462extern bool is_dev_an_NTFS_dev(char *bigfile_fname);
  • branches/stable/mondo/src/common/libmondo-devices.c

    r1638 r1663  
    5050extern struct mr_ar_conf *mr_conf;
    5151
     52extern void setup_tmpdir(char *path);
     53
    5254static char g_cdrw_drive_is_here[MAX_STR_LEN / 4] = "";
    5355static char g_cdrom_drive_is_here[MAX_STR_LEN / 4] = "";
     
    6365extern t_bkptype g_backup_media_type;   // set by main()
    6466
    65 
    66 
    67 
    68 void set_g_cdrom_and_g_dvd_to_bkpinfo_value(struct s_bkpinfo *bkpinfo)
     67/* Reference to global bkpinfo */
     68extern struct s_bkpinfo *bkpinfo;
     69
     70
     71
     72
     73void set_g_cdrom_and_g_dvd_to_bkpinfo_value()
    6974{
    7075    strcpy(g_cdrom_drive_is_here, bkpinfo->media_device);   // just in case
     
    502507 * @see mount_CDROM_here
    503508 */
    504 int find_and_mount_actual_cd(struct s_bkpinfo *bkpinfo, char *mountpoint)
     509int find_and_mount_actual_cd(char *mountpoint)
    505510{
    506511    /*@ buffers ***************************************************** */
     
    690695    }
    691696
    692     sprintf(mountpoint, "/tmp/cd.%d", (int) (random() % 32767));
     697    sprintf(mountpoint, "%s/cd.mnt", bkpinfo->tmpdir);
    693698    make_hole_for_dir(mountpoint);
    694699
     
    13211326 */
    13221327void
    1323 insist_on_this_cd_number(struct s_bkpinfo *bkpinfo, int cd_number_i_want)
     1328insist_on_this_cd_number(int cd_number_i_want)
    13241329{
    13251330
     
    13551360            run_program_and_log_output("umount " MNT_CDROM, 5);
    13561361        }
    1357         system("mkdir -p /tmp/isodir &> /dev/null");
     1362        sprintf(tmp, "mkdir -p %s/isodir &> /dev/null", bkpinfo->tmpdir);
     1363        system(tmp);
    13581364        mr_asprintf(&tmp, "%s/%s/%s-%d.iso", bkpinfo->isodir,
    13591365                bkpinfo->nfs_remote_dir, bkpinfo->prefix,
     
    13611367        if (!does_file_exist(tmp)) {
    13621368            mr_free(tmp);
    1363             mr_asprintf(&tmp, "/tmp/isodir/%s/%s-%d.iso",
     1369            mr_asprintf(&tmp, "%s/isodir/%s/%s-%d.iso", bkpinfo->tmpdir,
    13641370                    bkpinfo->nfs_remote_dir, bkpinfo->prefix,
    13651371                    cd_number_i_want);
    13661372            if (does_file_exist(tmp)) {
    13671373                mr_msg(1,
    1368                         "FIXME - hacking bkpinfo->isodir from '%s' to /tmp/isodir",
    1369                         bkpinfo->isodir);
    1370                 strcpy(bkpinfo->isodir, "/tmp/isodir");
     1374                        "FIXME - hacking bkpinfo->isodir from '%s' to %s/isodir",
     1375                        bkpinfo->isodir, bkpinfo->tmpdir);
     1376                sprintf(bkpinfo->isodir, "%s/isodir", bkpinfo->tmpdir);
    13711377            }
    13721378        }
     
    13771383        mr_free(tmp);
    13781384    }
    1379     if ((res = what_number_cd_is_this(bkpinfo)) != cd_number_i_want) {
     1385    if ((res = what_number_cd_is_this()) != cd_number_i_want) {
    13801386        mr_msg(3, "Currently, we hold %d but we want %d", res,
    13811387                cd_number_i_want);
     
    13891395        mr_free(tmp);
    13901396
    1391         while (what_number_cd_is_this(bkpinfo) != cd_number_i_want) {
     1397        while (what_number_cd_is_this() != cd_number_i_want) {
    13921398            sync();
    13931399            if (is_this_device_mounted(MNT_CDROM)) {
     
    14321438 * @ingroup archiveGroup
    14331439 */
    1434 int interactively_obtain_media_parameters_from_user(struct s_bkpinfo
    1435                                                     *bkpinfo,
    1436                                                     bool
    1437                                                     archiving_to_media)
     1440int interactively_obtain_media_parameters_from_user(bool archiving_to_media)
    14381441// archiving_to_media is TRUE if I'm being called by mondoarchive
    14391442// archiving_to_media is FALSE if I'm being called by mondorestore
     
    14651468            bkptype_to_string(bkpinfo->backup_media_type));
    14661469    if (archiving_to_media) {
    1467         sensibly_set_tmpdir_and_scratchdir(bkpinfo);
     1470        sensibly_set_tmpdir_and_scratchdir();
    14681471    }
    14691472    bkpinfo->compression_level =
     
    15661569            mr_msg(1, "bkpinfo->media_device = %s", bkpinfo->media_device);
    15671570            mr_asprintf(&comment,
    1568                 _("Please specify your %s drive's /dev entry"), bkpinfo->backup_media_string);
     1571                _("Please specify your %s drive's /dev entry"), media_descriptor_string(bkpinfo->backup_media));
    15691572            mr_asprintf(&tmp,"/dev/cdrom");
    15701573            if (!popup_and_get_string
     
    17311734        }
    17321735        if (bkpinfo->disaster_recovery) {
    1733             system("umount /tmp/isodir 2> /dev/null");
     1736            sprintf(command ,"umount %s/isodir 2> /dev/null", bkpinfo->tmpdir);
     1737            system(command);
    17341738            if (!popup_and_get_string
    17351739                ("NFS share", "Which remote NFS share should I mount?",
     
    17401744        }
    17411745        if (!is_this_device_mounted(bkpinfo->nfs_mount)) {
    1742             sprintf(bkpinfo->isodir, "/tmp/isodir.mondo.%d",
    1743                     (int) (random() % 32768));
     1746            sprintf(bkpinfo->isodir, "%s/nfsdir", bkpinfo->tmpdir);
    17441747            mr_asprintf(&command, "mkdir -p %s", bkpinfo->isodir);
    17451748            run_program_and_log_output(command, 5);
     
    20702073 * @ingroup utilityGroup
    20712074 */
    2072 void sensibly_set_tmpdir_and_scratchdir(struct s_bkpinfo *bkpinfo)
     2075void sensibly_set_tmpdir_and_scratchdir()
    20732076{
    20742077    char *tmp = NULL;
     
    20832086    mr_asprintf(&tmp,
    20842087           call_program_and_get_last_line_of_output
    2085            ("df -m -P -t nonfs,msdosfs,ntfs,smbfs,smb,cifs,afs,ocfs,ocfs2,mvfs | tr -s '\t' ' ' | grep -vE \"none|Filesystem\" | awk '{printf \"%s %s\\n\", $4, $6;}' | sort -n | tail -n1 | awk '{print $NF;}'"));
     2088           ("LANGUAGE=C df -m -P -t nonfs,msdosfs,ntfs,smbfs,smb,cifs,afs,ocfs,ocfs2,mvfs | tr -s '\t' ' ' | grep -vE \"none|Filesystem\" | awk '{printf \"%s %s\\n\", $4, $6;}' | sort -n | tail -n1 | awk '{print $NF;}'"));
    20862089#else
    20872090    mr_asprintf(&tmp,
    20882091           call_program_and_get_last_line_of_output
    2089            ("df -m -P -x nfs -x vfat -x ntfs -x smbfs -x smb -x cifs -x afs -x ocfs -x ocfs2 -x mvfs | sed 's/                  /devdev/' | tr -s '\t' ' ' | grep -vE \"none|Filesystem|/dev/shm\" | awk '{printf \"%s %s\\n\", $4, $6;}' | sort -n | tail -n1 | awk '{print $NF;}'"));
     2092           ("LANGUAGE=C df -m -P -x nfs -x vfat -x ntfs -x smbfs -x smb -x cifs -x afs -x ocfs -x ocfs2 -x mvfs | sed 's/                  /devdev/' | tr -s '\t' ' ' | grep -vE \"none|Filesystem|/dev/shm\" | awk '{printf \"%s %s\\n\", $4, $6;}' | sort -n | tail -n1 | awk '{print $NF;}'"));
    20902093#endif
    20912094
     
    20982101        fatal_error("I couldn't figure out the tempdir!");
    20992102    }
    2100     i = (int) (random() % 32768);
    2101     sprintf(bkpinfo->tmpdir, "%s/tmp.mondo.%d", tmp, i);
     2103    setup_tmpdir(tmp);
    21022104    log_it("bkpinfo->tmpdir is being set to %s", bkpinfo->tmpdir);
    21032105
    21042106    sprintf(bkpinfo->scratchdir, "%s/mondo.scratch.%d", tmp, i);
    21052107    log_it("bkpinfo->scratchdir is being set to %s", bkpinfo->scratchdir);
    2106 
    2107     sprintf(g_erase_tmpdir_and_scratchdir, "rm -Rf %s %s", bkpinfo->tmpdir,
    2108             bkpinfo->scratchdir);
    21092108
    21102109    mr_asprintf(&command, "rm -Rf %s/tmp.mondo.* %s/mondo.scratch.*", tmp, tmp);
     
    21652164 * (and remain mounted after this function returns).
    21662165 */
    2167 int what_number_cd_is_this(struct s_bkpinfo *bkpinfo)
     2166int what_number_cd_is_this()
    21682167{
    21692168    int cd_number = -1;
  • branches/stable/mondo/src/common/libmondo-devices.h

    r1156 r1663  
    1010int does_partition_exist(const char *drive, int partno);
    1111bool does_string_exist_in_boot_block(char *dev, char *str);
    12 int find_and_mount_actual_cd(struct s_bkpinfo *bkpinfo, char *mountpoint);
     12int find_and_mount_actual_cd(char *mountpoint);
    1313int find_cdrom_device(char *output, bool try_to_mount);
    1414int find_dvd_device(char *output, bool try_to_mount);
     
    2828int find_cdrw_device(char *cdrw_device);
    2929
    30 int interactively_obtain_media_parameters_from_user(struct s_bkpinfo *,
    31                                                     bool);
     30int interactively_obtain_media_parameters_from_user(bool);
    3231
    33 void insist_on_this_cd_number(struct s_bkpinfo *bkpinfo,
     32void insist_on_this_cd_number(
    3433                              int cd_number_i_want);
    3534
    36 int what_number_cd_is_this(struct s_bkpinfo *bkpinfo);
     35int what_number_cd_is_this();
    3736
    3837int eject_device(char *);
     
    4039char *list_of_NFS_mounts_only(void);
    4140
    42 void sensibly_set_tmpdir_and_scratchdir(struct s_bkpinfo *bkpinfo);
     41void sensibly_set_tmpdir_and_scratchdir();
    4342
    4443
     
    5352bool does_nonMS_partition_exist(void);
    5453char *resolve_softlinks_to_get_to_actual_device_file(char *incoming);
    55 void set_g_cdrom_and_g_dvd_to_bkpinfo_value(struct s_bkpinfo *bkpinfo);
     54void set_g_cdrom_and_g_dvd_to_bkpinfo_value();
    5655
    5756bool is_dev_an_NTFS_dev(char *bigfile_fname);
  • branches/stable/mondo/src/common/libmondo-fifo.c

    r1543 r1663  
    200200/* BERLIOS: useless ?
    201201int
    202 extract_config_file_from_ramdisk( struct s_bkpinfo *bkpinfo,
     202extract_config_file_from_ramdisk(
    203203                  char *ramdisk_fname,
    204204                  char *output_cfg_file,
  • branches/stable/mondo/src/common/libmondo-filelist-EXT.h

    r128 r1663  
    22
    33extern int chop_filelist(char *filelist, char *outdir, long maxsetsizeK);
    4 extern int call_filelist_chopper(struct s_bkpinfo *bkpinfo);
     4extern int call_filelist_chopper();
    55extern void free_filelist(struct s_node *filelist);
    6 extern int get_last_filelist_number(struct s_bkpinfo *bkpinfo);
     6extern int get_last_filelist_number();
    77extern int add_string_at_node(struct s_node *startnode,
    88                              char *string_to_add);
     
    1616                                  bool on_or_off);
    1717extern void toggle_node_selection(struct s_node *filelist, bool on_or_off);
    18 extern int prepare_filelist(struct s_bkpinfo *bkpinfo);
     18extern int prepare_filelist();
    1919
    2020extern long save_filelist_entries_in_common(char *needles_list_fname,
  • branches/stable/mondo/src/common/libmondo-filelist.c

    r1639 r1663  
    4040extern char *MONDO_LOGFILE;
    4141
     42/* Reference to global bkpinfo */
     43extern struct s_bkpinfo *bkpinfo;
     44
    4245int mondo_makefilelist(char *logfile, char *tmpdir, char *scratchdir,
    4346                       char *include_paths, char *excp, bool differential,
     
    8285 * @see chop_filelist
    8386 */
    84 int call_filelist_chopper(struct s_bkpinfo *bkpinfo)
     87int call_filelist_chopper()
    8588{
    8689    /*@ buffers *********************** */
     
    112115    mr_free(filelist);
    113116
    114     estimate_noof_media_required(bkpinfo, noof_sets);   // for cosmetic purposes
     117    estimate_noof_media_required(noof_sets);    // for cosmetic purposes
    115118
    116119    mr_asprintf(&tempfile, "%s/biggielist.txt", bkpinfo->tmpdir);
     
    155158
    156159    mr_msg(5, "Sorting file %s", orig_fname);
    157     mr_asprintf(&tmp_fname, "/tmp/sort.%d.%d.%d", (int) (random() % 32768),
    158              (int) (random() % 32768), (int) (random() % 32768));
     160    mr_asprintf(&tmp_fname, "%s/sortfile", bkpinfo->tmpdir);
    159161
    160162    if (!does_file_exist(orig_fname)) {
     
    547549        return (0);
    548550    }
    549     mr_asprintf(&masklist, "/tmp/%d.%d.mask", (int) (random() % 32768),
    550              (int) (random() % 32768));
    551 
     551    mr_asprintf(&masklist, "%s/masklist", bkpinfo->tmpdir);
    552552    mr_asprintf(&command, "cp -f %s %s", orig_msklist, masklist);
    553553    run_program_and_log_output(command, 1);
     
    693693 * @note This function should only be called at restore-time.
    694694 */
    695 int get_last_filelist_number(struct s_bkpinfo *bkpinfo)
     695int get_last_filelist_number()
    696696{
    697697    /*@ buffers ***************************************************** */
     
    12391239 * @see mondo_makefilelist
    12401240 */
    1241 int prepare_filelist(struct s_bkpinfo *bkpinfo)
     1241int prepare_filelist()
    12421242{
    12431243
  • branches/stable/mondo/src/common/libmondo-filelist.h

    r128 r1663  
    44
    55int chop_filelist(char *filelist, char *outdir, long maxsetsizeK);
    6 int call_filelist_chopper(struct s_bkpinfo *bkpinfo);
     6int call_filelist_chopper();
    77void free_filelist(struct s_node *filelist);
    8 int get_last_filelist_number(struct s_bkpinfo *bkpinfo);
     8int get_last_filelist_number();
    99int add_string_at_node(struct s_node *startnode, char *string_to_add);
    1010struct s_node *load_filelist(char *filelist_fname);
     
    1717                           bool on_or_off);
    1818void toggle_node_selection(struct s_node *filelist, bool on_or_off);
    19 int prepare_filelist(struct s_bkpinfo *bkpinfo);
     19int prepare_filelist();
    2020
    2121long save_filelist_entries_in_common(char *needles_list_fname,
  • branches/stable/mondo/src/common/libmondo-files-EXT.h

    r1113 r1663  
    2929
    3030
    31 extern long size_of_all_biggiefiles_K(struct s_bkpinfo *bkpinfo);
    32 extern void copy_mondo_and_mindi_stuff_to_scratchdir(struct s_bkpinfo
    33                                                      *bkpinfo);
    34 extern void store_nfs_config(struct s_bkpinfo *bkpinfo);
     31extern long size_of_all_biggiefiles_K();
     32extern void copy_mondo_and_mindi_stuff_to_scratchdir();
     33extern void store_nfs_config();
    3534
    3635
    37 extern void estimate_noof_media_required(struct s_bkpinfo *bkpinfo, long);
     36extern void estimate_noof_media_required(long);
    3837
    3938extern bool is_this_file_compressed(char *);
  • branches/stable/mondo/src/common/libmondo-files.c

    r1594 r1663  
    3030
    3131extern int g_currentY;
     32
     33/* Reference to global bkpinfo */
     34extern struct s_bkpinfo *bkpinfo;
    3235
    3336/**
     
    680683 * @return The total size of all biggiefiles in KB.
    681684 */
    682 long size_of_all_biggiefiles_K(struct s_bkpinfo *bkpinfo)
     685long size_of_all_biggiefiles_K()
    683686{
    684687    char *fname = NULL;
     
    940943 * - @c bkpinfo->tmpdir
    941944 */
    942 void copy_mondo_and_mindi_stuff_to_scratchdir(struct s_bkpinfo *bkpinfo)
     945void copy_mondo_and_mindi_stuff_to_scratchdir()
    943946{
    944947    /*@ Char buffers ** */
     
    10261029 * - @c tmpdir
    10271030 */
    1028 void store_nfs_config(struct s_bkpinfo *bkpinfo)
     1031void store_nfs_config()
    10291032{
    10301033
     
    11561159 */
    11571160void
    1158 estimate_noof_media_required(struct s_bkpinfo *bkpinfo, long noof_sets)
     1161estimate_noof_media_required(long noof_sets)
    11591162{
    11601163    /*@ buffers *************** */
     
    11721175    scratchLL =
    11731176        (long long) (noof_sets) * (long long) (bkpinfo->optimal_set_size)
    1174         + (long long) (size_of_all_biggiefiles_K(bkpinfo));
     1177        + (long long) (size_of_all_biggiefiles_K());
    11751178    scratchLL = (scratchLL / 1024) / bkpinfo->media_size;
    11761179    scratchLL++;
  • branches/stable/mondo/src/common/libmondo-files.h

    r1113 r1663  
    2424long noof_lines_that_match_wildcard(char *filelist_fname, char *wildcard);
    2525void register_pid(pid_t pid, char *name_str);
    26 long size_of_all_biggiefiles_K(struct s_bkpinfo *bkpinfo);
     26long size_of_all_biggiefiles_K();
    2727long long space_occupied_by_cd(char *mountpt);
    2828int whine_if_not_found(char *fname);
    2929int write_one_liner_data_file(char *fname, char *contents);
    3030
    31 void copy_mondo_and_mindi_stuff_to_scratchdir(struct s_bkpinfo *bkpinfo);
    32 void store_nfs_config(struct s_bkpinfo *bkpinfo);
    33 void estimate_noof_media_required(struct s_bkpinfo *bkpinfo, long);
     31void copy_mondo_and_mindi_stuff_to_scratchdir();
     32void store_nfs_config();
     33void estimate_noof_media_required(long);
    3434bool is_this_file_compressed(char *);
    3535
  • branches/stable/mondo/src/common/libmondo-fork-EXT.h

    r296 r1663  
    55                                         char *what_i_am_doing);
    66extern int run_program_and_log_output(char *program, int);
    7 extern int eval_call_to_make_ISO(struct s_bkpinfo *bkpinfo,
    8                                  char *basic_call, char *isofile,
     7extern int eval_call_to_make_ISO(char *basic_call, char *isofile,
    98                                 int cd_no, char *logstub,
    109                                 char *what_i_am_doing);
  • branches/stable/mondo/src/common/libmondo-fork.c

    r1626 r1663  
    2323extern bool g_text_mode;
    2424extern char *MONDO_LOGFILE;
     25
     26/* Reference to global bkpinfo */
     27extern struct s_bkpinfo *bkpinfo;
    2528pid_t g_buffer_pid = 0;
    2629extern struct mr_ar_conf *mr_conf;
     
    9194 */
    9295int
    93 eval_call_to_make_ISO(struct s_bkpinfo *bkpinfo,
    94                       char *basic_call, char *isofile,
     96eval_call_to_make_ISO(char *basic_call, char *isofile,
    9597                      int cd_no, char *logstub, char *what_i_am_doing)
    9698{
     
    211213    }
    212214    mr_asprintf(&callstr,
    213             "%s > /tmp/mondo-run-prog-thing.tmp 2> /tmp/mondo-run-prog-thing.err",
    214             program);
     215            "%s > %s/mondo-run-prog-thing.tmp 2> %s/mondo-run-prog-thing.err",
     216             program, bkpinfo->tmpdir, bkpinfo->tmpdir);
    215217    while ((p = strchr(callstr, '\r'))) {
    216218        *p = ' ';
     
    228230    mr_free(callstr);
    229231
    230     if (log_if_failure
    231         &&
    232         system
    233         ("cat /tmp/mondo-run-prog-thing.err >> /tmp/mondo-run-prog-thing.tmp 2> /dev/null"))
    234     {
     232    mr_asprintf(&callstr, "cat %s/mondo-run-prog-thing.err >> %s/mondo-run-prog-thing.tmp 2> /dev/null", bkpinfo->tmpdir, bkpinfo->tmpdir);
     233    if (log_if_failure && system(callstr)) {
    235234        log_OS_error("Command failed");
    236235    }
    237     unlink("/tmp/mondo-run-prog-thing.err");
    238     fin = fopen("/tmp/mondo-run-prog-thing.tmp", "r");
     236    mr_asprintf(&tmp, "%s/mondo-run-prog-thing.err", bkpinfo->tmpdir);
     237    unlink(tmp);
     238    mr_free(tmp);
     239
     240    mr_asprintf(&tmp, "%s/mondo-run-prog-thing.tmp", bkpinfo->tmpdir);
     241    fin = fopen(tmp, "r");
    239242    if (fin) {
    240243        for (mr_getline(&incoming, &n, fin); !feof(fin); mr_getline(&incoming, &n, fin)) {
     
    252255        paranoid_fclose(fin);
    253256    }
    254     unlink("/tmp/mondo-run-prog-thing.tmp");
     257    unlink(tmp);
     258    mr_free(tmp);
     259
    255260    if ((res == 0 && log_if_success) || (res != 0 && log_if_failure)) {
    256261        mr_msg(0,
     
    293298    assert_string_is_neither_NULL_nor_zerolength(basic_call);
    294299
    295     mr_asprintf(&lockfile, "/tmp/mojo-jojo.blah.XXXXXX");
    296     mkstemp(lockfile);
     300    sprintf(lockfile, "%s/mojo-jojo.bla.bla", bkpinfo->tmpdir);
     301
    297302    mr_asprintf(&command,
    298303            "echo hi > %s ; %s >> %s 2>> %s; res=$?; sleep 1; rm -f %s; exit $res",
     
    363368    char *tmp1 = NULL;
    364369    char *buf = NULL;
     370    char filestr[MAX_STR_LEN];
    365371    long int bytes_to_be_read, bytes_read_in, bytes_written_out =
    366372        0, bufcap, subsliceno = 0;
     
    469475            mr_msg(5, "tmpB is %s", tmp);
    470476            if (!strstr(tmp, PIMP_END_SZ)) {
    471                 ftmp = fopen("/tmp/out.leftover", "w");
     477                sprintf(filestr, "%s/out.leftover", bkpinfo->tmpdir);
     478                ftmp = fopen(filestr, "w");
    472479                bytes_read_in = fread(tmp, 1, 64L, fin);
    473480                mr_msg(1, "bytes_read_in = %ld", bytes_read_in);
     
    539546
    540547    strcpy(title, tt);
    541     strcpy(tempfile,
    542            call_program_and_get_last_line_of_output
    543            ("mktemp -q /tmp/mondo.XXXXXXXX"));
     548    sprintf(tempfile, "%s/mondo.binperc", bkpinfo->tmpdir);
    544549    mr_asprintf(&command, "%s >> %s 2>> %s; rm -f %s", cmd, tempfile, tempfile,
    545550            tempfile);
  • branches/stable/mondo/src/common/libmondo-fork.h

    r296 r1663  
    88int run_program_and_log_to_screen(char *basic_call, char *what_i_am_doing);
    99int run_program_and_log_output(char *program, int);
    10 int eval_call_to_make_ISO(struct s_bkpinfo *bkpinfo,
    11                           char *basic_call, char *isofile,
     10int eval_call_to_make_ISO(char *basic_call, char *isofile,
    1211                          int cd_no, char *logstub, char *what_i_am_doing);
    1312
  • branches/stable/mondo/src/common/libmondo-mountlist.c

    r1548 r1663  
    2424/*@unused@*/
    2525//static char cvsid[] = "$Id$";
     26
     27/* Reference to global bkpinfo */
     28extern struct s_bkpinfo *bkpinfo;
    2629
    2730/**
  • branches/stable/mondo/src/common/libmondo-stream-EXT.h

    r684 r1663  
    33
    44
    5 extern int closein_tape(struct s_bkpinfo *bkpinfo);
    6 extern int closeout_tape(struct s_bkpinfo *bkpinfo);
     5extern int closein_tape();
     6extern int closeout_tape();
    77extern int find_tape_device_and_size(char *dev, char *siz);
    88extern void insist_on_this_tape_number(int tapeno);
     
    1010extern int maintain_collection_of_recent_archives(char *td,
    1111                                                  char *latest_fname);
    12 extern int openin_cdstream(struct s_bkpinfo *bkpinfo);
    13 extern int openin_tape(struct s_bkpinfo *bkpinfo);
     12extern int openin_cdstream();
     13extern int openin_tape();
    1414extern int openout_cdstream(char *cddev, int speed);
    1515extern int openout_tape(char *tapedev, long internal_tape_block_size);
    16 extern int read_file_from_stream_to_file(struct s_bkpinfo *bkpinfo,
     16extern int read_file_from_stream_to_file(
    1717                                         char *outfile, long long size);
    18 extern int read_file_from_stream_to_stream(struct s_bkpinfo *bkpinfo,
     18extern int read_file_from_stream_to_stream(
    1919                                           FILE * fout, long long size);
    20 extern int read_file_from_stream_FULL(struct s_bkpinfo *bkpinfo,
     20extern int read_file_from_stream_FULL(
    2121                                      char *outfname, FILE * foutstream,
    2222                                      long long orig_size);
     
    3030extern int skip_incoming_files_until_we_find_this_one(char
    3131                                                      *the_file_I_was_reading);
    32 extern int start_to_read_from_next_tape(struct s_bkpinfo *bkpinfo);
    33 extern int start_to_write_to_next_tape(struct s_bkpinfo *bkpinfo);
    34 extern int write_backcatalog_to_tape(struct s_bkpinfo *bkpinfo);
     32extern int start_to_read_from_next_tape();
     33extern int start_to_write_to_next_tape();
     34extern int write_backcatalog_to_tape();
    3535extern int write_data_disks_to_stream(char *fname);
    36 extern int write_file_to_stream_from_file(struct s_bkpinfo *bkpinfo,
     36extern int write_file_to_stream_from_file(
    3737                                          char *infile);
    3838extern int write_header_block_to_stream(off_t length_of_incoming_file,
    3939                                        char *filename, int control_char);
    4040extern void wrong_marker(int should_be, int it_is);
    41 extern int closein_cdstream(struct s_bkpinfo *bkpinfo);
    42 extern int read_EXAT_files_from_tape(struct s_bkpinfo *bkpinfo,
     41extern int closein_cdstream();
     42extern int read_EXAT_files_from_tape(
    4343                                     long long *ptmp_size, char *tmp_fname,
    4444                                     int *pctrl_chr, char *xattr_fname,
    4545                                     char *acl_fname);
    46 extern int write_EXAT_files_to_tape(struct s_bkpinfo *bkpinfo,
     46extern int write_EXAT_files_to_tape(
    4747                                    char *xattr_fname, char *acl_fname);
  • branches/stable/mondo/src/common/libmondo-stream.c

    r1639 r1663  
    4242extern struct mr_ar_conf *mr_conf;
    4343
     44/* Reference to global bkpinfo */
     45extern struct s_bkpinfo *bkpinfo;
     46
    4447/**
    4548 * @addtogroup globalGroup
     
    127130 * @note This should be called by restore processes only.
    128131 */
    129 int closein_cdstream(struct s_bkpinfo *bkpinfo)
    130 {
    131     return (closein_tape(bkpinfo));
     132int closein_cdstream()
     133{
     134    return (closein_tape());
    132135}
    133136
     
    142145 * @bug @p bkpinfo parameter is unused.
    143146 */
    144 int closein_tape(struct s_bkpinfo *bkpinfo)
     147int closein_tape()
    145148{
    146149    /*@ int's ******************************************************* */
     
    195198 * @note This should be called by backup processes only.
    196199 */
    197 int closeout_tape(struct s_bkpinfo *bkpinfo)
     200int closeout_tape()
    198201{
    199202    /*@ int's ******************************************************* */
     
    224227        if (should_we_write_to_next_tape
    225228            (bkpinfo->media_size, (off_t)256 * 1024)) {
    226             start_to_write_to_next_tape(bkpinfo);
     229            start_to_write_to_next_tape();
    227230        }
    228231    }
     
    354357
    355358
    356 int read_EXAT_files_from_tape(struct s_bkpinfo *bkpinfo,
    357                               long long *ptmp_size, char *tmp_fname,
     359int read_EXAT_files_from_tape(long long *ptmp_size, char *tmp_fname,
    358360                              int *pctrl_chr, char *xattr_fname,
    359361                              char *acl_fname)
     
    372374            fatal_error("Wrong order, sunshine.");
    373375        }
    374         read_file_from_stream_to_file(bkpinfo, xattr_fname, *ptmp_size);
     376        read_file_from_stream_to_file(xattr_fname, *ptmp_size);
    375377        res = read_header_block_from_stream(ptmp_size, tmp_fname, pctrl_chr);
    376378        if (*pctrl_chr != BLK_STOP_EXAT_FILE) {
     
    388390            wrong_marker(BLK_START_EXAT_FILE, *pctrl_chr);
    389391        }
    390         read_file_from_stream_to_file(bkpinfo, acl_fname, *ptmp_size);
     392        read_file_from_stream_to_file(acl_fname, *ptmp_size);
    391393        res = read_header_block_from_stream(ptmp_size, tmp_fname, pctrl_chr);
    392394        if (*pctrl_chr != BLK_STOP_EXAT_FILE) {
     
    406408
    407409
    408 int write_EXAT_files_to_tape(struct s_bkpinfo *bkpinfo, char *xattr_fname,
     410int write_EXAT_files_to_tape(char *xattr_fname,
    409411                             char *acl_fname)
    410412{
     
    416418        write_header_block_to_stream(length_of_file(xattr_fname), xattr_fname,
    417419                             BLK_START_EXAT_FILE);
    418         write_file_to_stream_from_file(bkpinfo, xattr_fname);
     420        write_file_to_stream_from_file(xattr_fname);
    419421        write_header_block_to_stream((off_t)-1, xattr_fname, BLK_STOP_EXAT_FILE);
    420422    }
     
    423425        write_header_block_to_stream(length_of_file(acl_fname), acl_fname,
    424426                             BLK_START_EXAT_FILE);
    425         write_file_to_stream_from_file(bkpinfo, acl_fname);
     427        write_file_to_stream_from_file(acl_fname);
    426428        write_header_block_to_stream((off_t)-1, acl_fname, BLK_STOP_EXAT_FILE);
    427429        write_header_block_to_stream(length_of_file(xattr_fname), xattr_fname,
     
    570572 * @note Equivalent to openin_tape() for now, but don't count on this behavior.
    571573 */
    572 int openin_cdstream(struct s_bkpinfo *bkpinfo)
    573 {
    574     return (openin_tape(bkpinfo));
     574int openin_cdstream()
     575{
     576    return (openin_tape());
    575577}
    576578
     
    603605 * @note This will also work with a cdstream for now, but don't count on this behavior.
    604606 */
    605 int openin_tape(struct s_bkpinfo *bkpinfo)
     607int openin_tape()
    606608{
    607609    /*@ buffer ***************************************************** */
     
    778780 */
    779781int
    780 read_file_from_stream_to_file(struct s_bkpinfo *bkpinfo, char *outfile,
    781                               long long size)
     782read_file_from_stream_to_file(char *outfile, long long size)
    782783{
    783784
     
    787788    /*@ end vars *************************************************** */
    788789
    789     res = read_file_from_stream_FULL(bkpinfo, outfile, NULL, size);
     790    res = read_file_from_stream_FULL(outfile, NULL, size);
    790791
    791792    return (res);
     
    802803 */
    803804int
    804 read_file_from_stream_to_stream(struct s_bkpinfo *bkpinfo, FILE * fout,
    805                                 long long size)
     805read_file_from_stream_to_stream(FILE * fout, long long size)
    806806{
    807807
     
    811811    /*@ end vars *************************************************** */
    812812
    813     res = read_file_from_stream_FULL(bkpinfo, NULL, fout, size);
     813    res = read_file_from_stream_FULL(NULL, fout, size);
    814814    return (res);
    815815}
     
    829829 */
    830830int
    831 read_file_from_stream_FULL(struct s_bkpinfo *bkpinfo, char *outfname,
    832                            FILE * foutstream, long long orig_size)
     831read_file_from_stream_FULL(char *outfname, FILE * foutstream, long long orig_size)
    833832{
    834833    /*@ buffers ***************************************************** */
     
    915914            mr_msg(4, "where_I_was_... = %lld",
    916915                    where_I_was_before_tape_change);
    917             start_to_read_from_next_tape(bkpinfo);
     916            start_to_read_from_next_tape();
    918917            mr_msg(4, "Started reading from next tape.");
    919918            skip_incoming_files_until_we_find_this_one(temp_fname);
     
    12381237 * @return 0 for success, nonzero for failure.
    12391238 */
    1240 int start_to_read_from_next_tape(struct s_bkpinfo *bkpinfo)
     1239int start_to_read_from_next_tape()
    12411240{
    12421241    /*@ int ********************************************************* */
     
    12841283 * @return 0 for success, nonzero for failure.
    12851284 */
    1286 int start_to_write_to_next_tape(struct s_bkpinfo *bkpinfo)
     1285int start_to_write_to_next_tape()
    12871286{
    12881287    int res = 0;
     
    13391338 * @return 0 for success, nonzero for failure.
    13401339 */
    1341 int write_backcatalog_to_tape(struct s_bkpinfo *bkpinfo)
     1340int write_backcatalog_to_tape()
    13421341{
    13431342    int res = 0;
     
    13581357                                         BLK_START_AN_AFIO_OR_SLICE);
    13591358            mr_msg(2, "Writing %s", fname);
    1360             if (write_file_to_stream_from_file(bkpinfo, fname)) {
     1359            if (write_file_to_stream_from_file(fname)) {
    13611360                res++;
    13621361                mr_msg(2, "%s failed", fname);
     
    14431442 * @return 0 for success, nonzero for failure.
    14441443 */
    1445 int write_file_to_stream_from_file(struct s_bkpinfo *bkpinfo, char *infile)
     1444int write_file_to_stream_from_file(char *infile)
    14461445{
    14471446    /*@ buffers **************************************************** */
     
    14891488    if (should_we_write_to_next_tape
    14901489        (bkpinfo->media_size, filesize)) {
    1491         start_to_write_to_next_tape(bkpinfo);
    1492         write_backcatalog_to_tape(bkpinfo);
     1490        start_to_write_to_next_tape();
     1491        write_backcatalog_to_tape();
    14931492    }
    14941493    p = strrchr(infile, '/');
     
    15281527            fclose(fin);
    15291528            g_sigpipe = FALSE;
    1530             start_to_write_to_next_tape(bkpinfo);
    1531             write_backcatalog_to_tape(bkpinfo); // kinda-sorta recursive :)
     1529            start_to_write_to_next_tape();
     1530            write_backcatalog_to_tape();    // kinda-sorta recursive :)
    15321531            return (0);
    15331532        }
  • branches/stable/mondo/src/common/libmondo-stream.h

    r684 r1663  
    55
    66
    7 int closein_tape(struct s_bkpinfo *bkpinfo);
    8 int closeout_tape(struct s_bkpinfo *bkpinfo);
     7int closein_tape();
     8int closeout_tape();
    99int find_tape_device_and_size(char *dev, char *siz);
    1010void insist_on_this_tape_number(int tapeno);
    1111void log_tape_pos(void);
    1212int maintain_collection_of_recent_archives(char *td, char *latest_fname);
    13 int openin_cdstream(struct s_bkpinfo *bkpinfo);
    14 int openin_tape(struct s_bkpinfo *bkpinfo);
     13int openin_cdstream();
     14int openin_tape();
    1515int openout_cdstream(char *cddev, int speed);
    1616int openout_tape(char *tapedev, long internal_tape_block_size);
    17 int read_file_from_stream_to_file(struct s_bkpinfo *bkpinfo, char *outfile,
     17int read_file_from_stream_to_file(char *outfile,
    1818                                  long long size);
    19 int read_file_from_stream_to_stream(struct s_bkpinfo *bkpinfo, FILE * fout,
     19int read_file_from_stream_to_stream(FILE * fout,
    2020                                    long long size);
    21 int read_file_from_stream_FULL(struct s_bkpinfo *bkpinfo, char *outfname,
     21int read_file_from_stream_FULL(char *outfname,
    2222                               FILE * foutstream, long long orig_size);
    2323int read_header_block_from_stream(long long *plen, char *filename,
     
    2929int skip_incoming_files_until_we_find_this_one(char
    3030                                               *the_file_I_was_reading);
    31 int start_to_read_from_next_tape(struct s_bkpinfo *bkpinfo);
    32 int start_to_write_to_next_tape(struct s_bkpinfo *bkpinfo);
    33 int write_backcatalog_to_tape(struct s_bkpinfo *bkpinfo);
     31int start_to_read_from_next_tape();
     32int start_to_write_to_next_tape();
     33int write_backcatalog_to_tape();
    3434int write_data_disks_to_stream(char *fname);
    35 int write_file_to_stream_from_file(struct s_bkpinfo *bkpinfo,
     35int write_file_to_stream_from_file(
    3636                                   char *infile);
    3737int write_header_block_to_stream(off_t length_of_incoming_file,
    3838                                 char *filename, int control_char);
    3939void wrong_marker(int should_be, int it_is);
    40 int closein_cdstream(struct s_bkpinfo *bkpinfo);
    41 int read_EXAT_files_from_tape(struct s_bkpinfo *bkpinfo,
     40int closein_cdstream();
     41int read_EXAT_files_from_tape(
    4242                              long long *ptmp_size, char *tmp_fname,
    4343                              int *pctrl_chr, char *xattr_fname,
    4444                              char *acl_fname);
    45 int write_EXAT_files_to_tape(struct s_bkpinfo *bkpinfo, char *xattr_fname,
     45int write_EXAT_files_to_tape(char *xattr_fname,
    4646                             char *acl_fname);
  • branches/stable/mondo/src/common/libmondo-string-EXT.h

    r1241 r1663  
    3535extern int severity_of_difference(char *filename, char *out_reason);
    3636
    37 extern char *percent_media_full_comment(struct s_bkpinfo *bkpinfo);
     37extern char *percent_media_full_comment();
    3838
    3939
  • branches/stable/mondo/src/common/libmondo-string.c

    r1591 r1663  
    2525extern int g_current_media_number;
    2626extern long long g_tape_posK;
     27
     28/* Reference to global bkpinfo */
     29extern struct s_bkpinfo *bkpinfo;
    2730
    2831/**
     
    865868 * @note The returned string points to static storage that will be overwritten with each call.
    866869 */
    867 char *percent_media_full_comment(struct s_bkpinfo *bkpinfo)
     870char *percent_media_full_comment()
    868871{
    869872    /*@ int *********************************************** */
  • branches/stable/mondo/src/common/libmondo-string.h

    r1241 r1663  
    3030int severity_of_difference(char *filename, char *out_reason);
    3131
    32 char *percent_media_full_comment(struct s_bkpinfo *bkpinfo);
     32char *percent_media_full_comment();
    3333char *media_descriptor_string(t_bkptype);
  • branches/stable/mondo/src/common/libmondo-tools-EXT.h

    r1625 r1663  
    88extern int read_cfg_var(char *config_file, char *label, char *value);
    99extern int write_cfg_var(char *config_file, char *label, char *value);
    10 extern void reset_bkpinfo(struct s_bkpinfo *bkpinfo);
     10extern void reset_bkpinfo();
    1111#ifdef __FreeBSD__
    1212extern void initialize_raidrec(struct vinum_volume *vv);
     
    2323extern void remount_supermounts_if_necessary(void);
    2424
    25 extern int post_param_configuration(struct s_bkpinfo *bkpinfo);
     25extern int post_param_configuration();
    2626
    2727
    28 extern int pre_param_configuration(struct s_bkpinfo *bkpinfo);
     28extern int pre_param_configuration();
    2929
    3030
  • branches/stable/mondo/src/common/libmondo-tools.c

    r1639 r1663  
    2323#include <sys/socket.h>
    2424#include <netdb.h>
     25#include <stdlib.h>
    2526#include <netinet/in.h>
    2627#include <arpa/inet.h>
     
    3940
    4041extern struct mr_ar_conf *mr_conf;
     42
     43/* Reference to global bkpinfo */
     44extern struct s_bkpinfo *bkpinfo;
    4145
    4246/**
     
    347351 * do not exist.
    348352 */
    349 int post_param_configuration(struct s_bkpinfo *bkpinfo)
     353int post_param_configuration()
    350354{
    351355    char *extra_cdrom_params = NULL;
     
    383387    }
    384388    make_hole_for_dir(bkpinfo->scratchdir);
    385     make_hole_for_dir(bkpinfo->tmpdir);
    386389    if (bkpinfo->backup_media_type == iso)
    387390        make_hole_for_dir(bkpinfo->isodir);
     
    620623            }
    621624        }
    622         store_nfs_config(bkpinfo);
     625        store_nfs_config();
    623626        mr_free(hostname);
    624627    }
     
    638641    }
    639642    chmod(bkpinfo->scratchdir, 0700);
    640     chmod(bkpinfo->tmpdir, 0700);
    641643    g_backup_media_type = bkpinfo->backup_media_type;
    642644    g_backup_media_string = bkpinfo->backup_media_string;
     
    652654 * @return number of errors (0 for success)
    653655 */
    654 int pre_param_configuration(struct s_bkpinfo *bkpinfo)
     656int pre_param_configuration()
    655657{
    656658    int res = 0;
     659    char *tmp = NULL;
    657660
    658661    make_hole_for_dir(MNT_CDROM);
     
    660663    srandom((unsigned long) (time(NULL)));
    661664    insmod_crucial_modules();
    662     reset_bkpinfo(bkpinfo);     // also sets defaults ('/'=backup path, 3=compression level)
    663665    if (bkpinfo->disaster_recovery) {
    664666        if (!does_nonMS_partition_exist()) {
     
    668670    }
    669671
    670     run_program_and_log_output("rm -Rf /tmp/changed.files*", FALSE);
     672    asprintf(&tmp,"rm -Rf %s/changed.files*",MINDI_CACHE);
     673    run_program_and_log_output(tmp, FALSE);
     674    paranoid_free(tmp);
    671675    res += some_basic_system_sanity_checks();
    672676    if (res) {
     
    678682}
    679683
    680 
     684void setup_tmpdir(char *path) {
     685   
     686    char *tmp = NULL;
     687    char *p = NULL;
     688
     689    if (bkpinfo->tmpdir != NULL) {
     690        /* purging a potential old tmpdir */
     691        asprintf(&tmp,"rm -Rf %s",bkpinfo->tmpdir);
     692        system(tmp);
     693        paranoid_free(tmp);
     694    }
     695       
     696    if (path != NULL) {
     697        asprintf(&tmp, "%s/mondo.tmp.XXXXXX", path);
     698    } else if (getenv("TMPDIR")) {
     699        asprintf(&tmp, "%s/mondo.tmp.XXXXXX", getenv("TMPDIR"));
     700    } else if (getenv("TMP")) {
     701        asprintf(&tmp, "%s/mondo.tmp.XXXXXX", getenv("TMP"));
     702    } else {
     703        asprintf(&tmp, "/tmp/mondo.tmp.XXXXXX");
     704    }
     705    p = mkdtemp(tmp);
     706    if (p == NULL) {
     707        log_it("Failed to create global tmp directory %s for Mondo.",tmp);
     708        finish(-1);
     709    }
     710    strcpy(bkpinfo->tmpdir,p);
     711    paranoid_free(tmp);
     712
     713    //sprintf(bkpinfo->tmpdir, "%s/tmpfs/mondo.tmp.%d", "/tmp", (int) (random() % 32768));  // for mondorestore
     714}
    681715
    682716
     
    685719 * @param bkpinfo The @c bkpinfo to reset.
    686720 */
    687 void reset_bkpinfo(struct s_bkpinfo *bkpinfo)
     721void reset_bkpinfo()
    688722{
    689723    char *tmp = NULL;
     
    694728    /* BERLIOS : Useless ?? */
    695729    memset((void *) bkpinfo, 0, sizeof(struct s_bkpinfo));
     730
     731    /* special case for tmpdir as used eveywhere after */
     732    setup_tmpdir(NULL);
    696733
    697734    bkpinfo->manual_tray = mr_conf->manual_tray;
     
    726763    bkpinfo->scratchdir[0] = '\0';
    727764    bkpinfo->make_filelist = TRUE;  // unless -J supplied to mondoarchive
    728     sprintf(bkpinfo->tmpdir, "/tmp/tmpfs/mondo.tmp.%d", (int) (random() % 32768));  // for mondorestore
    729765    bkpinfo->optimal_set_size = 0;
    730766    bkpinfo->backup_media_type = none;
     
    952988        fatal_error("Please reinstall Mondo and Mindi.");
    953989    }
    954     if (run_program_and_log_output
    955         ("mindi --makemountlist /tmp/mountlist.txt.test", 5)) {
     990    mr_asprintf(&tmp, "mindi --makemountlist %s/mountlist.txt.test", bkpinfo->tmpdir);
     991    if (run_program_and_log_output(tmp, 5)) {
     992        log_to_screen(tmp);
    956993        log_to_screen
    957             (_("Mindi --makemountlist /tmp/mountlist.txt.test failed for some reason."));
     994            (_("failed for some reason."));
    958995        log_to_screen
    959996            (_("Please run that command by hand and examine /var/log/mindi.log"));
     
    9641001        retval++;
    9651002    }
     1003    mr_free(tmp);
    9661004
    9671005    if (!run_program_and_log_output("parted2fdisk -l | grep -i raid", 1)
     
    11561194        return (1);
    11571195    }
    1158     mr_asprintf(&tempfile,
    1159            call_program_and_get_last_line_of_output
    1160            ("mktemp -q /tmp/mojo-jojo.blah.XXXXXX"));
     1196    mr_asprintf(&tempfile, "%s/mojo-jojo.blah", bkpinfo->tmpdir);
    11611197    if (does_file_exist(config_file)) {
    11621198        mr_asprintf(&command, "grep -vE '^%s .*$' %s > %s",
     
    11851221{
    11861222    if (mal) {
    1187         iamhere("Malloc'ing globals");
    11881223        malloc_string(g_boot_mountpt);
    11891224        malloc_string(g_tmpfs_mountpt);
     
    11921227        malloc_string(g_magicdev_command);
    11931228    } else {
    1194         iamhere("Freeing globals");
    11951229        mr_free(g_boot_mountpt);
    11961230        mr_free(g_tmpfs_mountpt);
  • branches/stable/mondo/src/common/libmondo-tools.h

    r1384 r1663  
    1111int read_cfg_var(char *config_file, char *label, char *value);
    1212int write_cfg_var(char *config_file, char *label, char *value);
    13 void reset_bkpinfo(struct s_bkpinfo *bkpinfo);
     13void reset_bkpinfo();
    1414#ifdef __FreeBSD__
    1515void initialize_raidrec(struct vinum_volume *vv);
     
    2727void remount_supermounts_if_necessary(void);
    2828
    29 int post_param_configuration(struct s_bkpinfo *bkpinfo);
     29int post_param_configuration();
    3030
    3131
    32 int pre_param_configuration(struct s_bkpinfo *bkpinfo);
     32int pre_param_configuration();
    3333
    3434long free_space_on_given_partition(char *partition);
  • branches/stable/mondo/src/common/libmondo-verify-EXT.h

    r128 r1663  
    22
    33
    4 extern int verify_cd_image(struct s_bkpinfo *);
    5 extern int verify_a_tarball(struct s_bkpinfo *, char *);
    6 extern int verify_an_afioball_from_CD(struct s_bkpinfo *, char *);
    7 extern int verify_an_afioball_from_tape(struct s_bkpinfo *, char *,
     4extern int verify_cd_image();
     5extern int verify_a_tarball(char *);
     6extern int verify_an_afioball_from_CD(char *);
     7extern int verify_an_afioball_from_tape(char *,
    88                                        long long);
    9 extern int verify_a_biggiefile_from_tape(struct s_bkpinfo *, char *,
     9extern int verify_a_biggiefile_from_tape(char *,
    1010                                         long long);
    11 int verify_afioballs_from_CD(struct s_bkpinfo *);
    12 extern int verify_afioballs_from_tape(struct s_bkpinfo *);
    13 extern int verify_biggiefiles_from_tape(struct s_bkpinfo *);
    14 extern int verify_tape_backups(struct s_bkpinfo *);
    15 extern char *vfy_tball_fname(struct s_bkpinfo *, char *, int);
     11int verify_afioballs_from_CD();
     12extern int verify_afioballs_from_tape();
     13extern int verify_biggiefiles_from_tape();
     14extern int verify_tape_backups();
     15extern char *vfy_tball_fname(char *, int);
  • branches/stable/mondo/src/common/libmondo-verify.c

    r1609 r1663  
    2525//static char cvsid[] = "$Id$";
    2626
    27 char *vfy_tball_fname(struct s_bkpinfo *, char *, int);
    28 
    29 
    3027/**
    3128 * The number of the most recently verified afioball.
     
    3734extern char *g_getfattr;
    3835extern char *MONDO_LOGFILE;
     36
     37/* Reference to global bkpinfo */
     38extern struct s_bkpinfo *bkpinfo;
     39
     40
     41/**
     42 * Generate the filename of a tarball to verify.
     43 * @param bkpinfo The backup information structure. @c bkpinfo->zip_suffix is the only field used.
     44 * @param mountpoint The directory where the CD/DVD/ISO is mounted.
     45 * @param setno The afioball number to get the location of.
     46 * @return The absolute path to the afioball.
     47 * @note The returned string points to static data that will be overwritten with each call.
     48 * @ingroup stringGroup
     49 */
     50char *vfy_tball_fname(char *mountpoint, int setno)
     51{
     52    /*@ buffers ******************************************************* */
     53    static char output[MAX_STR_LEN];
     54
     55    assert(bkpinfo != NULL);
     56    assert_string_is_neither_NULL_nor_zerolength(mountpoint);
     57    sprintf(output, "%s/archives/%d.star.%s", mountpoint, setno,
     58            bkpinfo->zip_suffix);
     59    if (!does_file_exist(output)) {
     60        sprintf(output, "%s/archives/%d.afio.%s", mountpoint, setno,
     61                bkpinfo->zip_suffix);
     62    }
     63    return (output);
     64}
     65
    3966
    4067/**
     
    116143 * @return The number of sets containing differences (0 for success).
    117144 */
    118 int verify_afioballs_on_CD(struct s_bkpinfo *bkpinfo, char *mountpoint)
     145int verify_afioballs_on_CD(char *mountpoint)
    119146{
    120147
     
    134161         set_number < 9999
    135162         &&
    136          !does_file_exist(vfy_tball_fname
    137                           (bkpinfo, mountpoint, set_number));
     163         !does_file_exist(vfy_tball_fname(mountpoint, set_number));
    138164         set_number++);
    139     if (!does_file_exist(vfy_tball_fname(bkpinfo, mountpoint, set_number))) {
     165    if (!does_file_exist(vfy_tball_fname(mountpoint, set_number))) {
    140166        return (0);
    141167    }
     
    160186
    161187    for (total_sets = set_number;
    162          does_file_exist(vfy_tball_fname(bkpinfo, mountpoint, total_sets));
     188         does_file_exist(vfy_tball_fname(mountpoint, total_sets));
    163189         total_sets++) {
    164190        mr_msg(1, "total_sets = %d", total_sets);
    165191    }
    166192    for (;
    167          does_file_exist(vfy_tball_fname(bkpinfo, mountpoint, set_number));
     193         does_file_exist(vfy_tball_fname(mountpoint, set_number));
    168194         set_number++) {
    169195        percentage =
     
    173199        mr_msg(1, "set = %d", set_number);
    174200        retval +=
    175             verify_an_afioball_from_CD(bkpinfo,
    176                                        vfy_tball_fname(bkpinfo, mountpoint,
    177                                                        set_number));
     201            verify_an_afioball_from_CD(vfy_tball_fname(mountpoint, set_number));
    178202    }
    179203    g_last_afioball_number = set_number - 1;
     
    192216 * @return The number of differences (0 for perfect biggiefiles).
    193217 */
    194 int verify_all_slices_on_CD(struct s_bkpinfo *bkpinfo, char *mtpt)
     218int verify_all_slices_on_CD(char *mtpt)
    195219{
    196220
     
    291315                            bkpinfo->restore_path,
    292316                            biggiestruct.filename);
    293                 mr_asprintf(&tmp, "echo \"%s/%s not found\" >> /tmp/biggies.changed",
     317                mr_asprintf(&tmp, "echo \"%s/%s not found\" >> %s/biggies.changed",
    294318                            bkpinfo->restore_path,
    295                             biggiestruct.filename);
     319                            biggiestruct.filename,
     320                            bkpinfo->tmpdir);
    296321                system(tmp);
    297322                mr_free(tmp);
     
    396421 * @return 0, always.
    397422 */
    398 int verify_a_tarball(struct s_bkpinfo *bkpinfo, char *tarball_fname)
     423int verify_a_tarball(char *tarball_fname)
    399424{
    400425    /*@ buffers ********************************************************* */
     
    522547 */
    523548int
    524 verify_an_afioball_from_CD(struct s_bkpinfo *bkpinfo, char *tarball_fname)
     549verify_an_afioball_from_CD(char *tarball_fname)
    525550{
    526551
     
    528553    int res = 0;
    529554
    530     assert(bkpinfo != NULL);
    531555    assert_string_is_neither_NULL_nor_zerolength(tarball_fname);
    532556
     
    535559        fatal_error("Cannot verify nonexistent afioball");
    536560    }
    537     res = verify_a_tarball(bkpinfo, tarball_fname);
     561    res = verify_a_tarball(tarball_fname);
    538562    return (res);
    539563}
     
    550574 */
    551575int
    552 verify_an_afioball_from_stream(struct s_bkpinfo *bkpinfo, char *orig_fname,
    553                                long long size)
     576verify_an_afioball_from_stream(char *orig_fname, long long size)
    554577{
    555578
     
    579602
    580603    mr_asprintf(&tarball_fname, "%s/tmpfs/temporary-%s", bkpinfo->tmpdir, p);
    581     read_file_from_stream_to_file(bkpinfo, tarball_fname, size);
    582     res = verify_a_tarball(bkpinfo, tarball_fname);
     604    read_file_from_stream_to_file(tarball_fname, size);
     605    res = verify_a_tarball(tarball_fname);
    583606    if (res) {
    584607        mr_msg(0, "Afioball '%s' no longer matches your live filesystem", p);
     
    599622 */
    600623int
    601 verify_a_biggiefile_from_stream(struct s_bkpinfo *bkpinfo,
    602                                 char *biggie_fname, long long size)
     624verify_a_biggiefile_from_stream(char *biggie_fname, long long size)
    603625{
    604626
     
    642664            wrong_marker(BLK_START_AN_AFIO_OR_SLICE, ctrl_chr);
    643665        }
    644         res = read_file_from_stream_to_file(bkpinfo, test_file, slice_siz);
     666        res = read_file_from_stream_to_file(test_file, slice_siz);
    645667        unlink(test_file);
    646668        res =
     
    672694            mr_free(tmp);
    673695
    674             mr_asprintf(&tmp, "echo \"%s\" >> /tmp/biggies.changed",
    675                      biggie_fname);
     696            mr_asprintf(&tmp, "echo \"%s\" >> %s/biggies.changed",
     697                    biggie_fname, bkpinfo->tmpdir);
    676698            system(tmp);
    677699            mr_free(tmp);
     
    692714 * @return 0 for success (even if there are differences); nonzero for a tape error.
    693715 */
    694 int verify_afioballs_from_stream(struct s_bkpinfo *bkpinfo)
     716int verify_afioballs_from_stream()
    695717{
    696718    /*@ int ********************************************************** */
     
    722744    }
    723745    log_to_screen(_("Verifying regular archives on tape"));
    724     total_afioballs = get_last_filelist_number(bkpinfo) + 1;
     746    total_afioballs = get_last_filelist_number() + 1;
    725747    open_progress_form(_("Verifying filesystem"),
    726748                       _("I am verifying archives against your live filesystem now."),
     
    733755        if (ctrl_chr == BLK_START_EXTENDED_ATTRIBUTES) {
    734756            res =
    735                 read_EXAT_files_from_tape(bkpinfo, &size, fname, &ctrl_chr,
     757                read_EXAT_files_from_tape(&size, fname, &ctrl_chr,
    736758                                          curr_xattr_list_fname,
    737759                                          curr_acl_list_fname);
     
    758780            iamhere("Reading EXAT files from tape");
    759781            res =
    760                 read_EXAT_files_from_tape(bkpinfo, &size, fname, &ctrl_chr,
     782                read_EXAT_files_from_tape(&size, fname, &ctrl_chr,
    761783                                          curr_xattr_list_fname,
    762784                                          curr_acl_list_fname);
     
    772794        mr_free(tmp);
    773795
    774         res = verify_an_afioball_from_stream(bkpinfo, fname, size);
     796        res = verify_an_afioball_from_stream(fname, size);
    775797        if (res) {
    776798            mr_asprintf(&tmp, _("Afioball %ld differs from live filesystem"),
     
    801823 * @return 0 for success (even if there are differences); nonzero for a tape error.
    802824 */
    803 int verify_biggiefiles_from_stream(struct s_bkpinfo *bkpinfo)
     825int verify_biggiefiles_from_stream()
    804826{
    805827
     
    843865            iamhere("Grabbing the EXAT biggiefiles");
    844866            res =
    845                 read_EXAT_files_from_tape(bkpinfo, &size, orig_fname,
     867                read_EXAT_files_from_tape(&size, orig_fname,
    846868                                          &ctrl_chr, curr_xattr_list_fname,
    847869                                          curr_acl_list_fname);
     
    883905                 orig_fname);
    884906        res =
    885             verify_a_biggiefile_from_stream(bkpinfo, logical_fname, size);
     907            verify_a_biggiefile_from_stream(logical_fname, size);
    886908        mr_free(logical_fname);
    887909        retval += res;
     
    911933 * @ingroup verifyGroup
    912934 */
    913 int verify_cd_image(struct s_bkpinfo *bkpinfo)
     935int verify_cd_image()
    914936{
    915937
     
    949971            popup_and_OK(_("Please push CD tray closed."));
    950972        }
    951         if (find_and_mount_actual_cd(bkpinfo, mountpoint)) {
     973        if (find_and_mount_actual_cd(mountpoint)) {
    952974            log_to_screen(_("failed to mount actual CD"));
    953975            return (1);
     
    9981020    mr_free(tmp);
    9991021
    1000     verify_afioballs_on_CD(bkpinfo, mountpoint);
     1022    verify_afioballs_on_CD(mountpoint);
    10011023    iamhere("before verify_all_slices");
    1002     verify_all_slices_on_CD(bkpinfo, mountpoint);
     1024    verify_all_slices_on_CD(mountpoint);
    10031025
    10041026    mr_asprintf(&command, "umount %s", mountpoint);
     
    10451067 * @ingroup verifyGroup
    10461068 */
    1047 int verify_tape_backups(struct s_bkpinfo *bkpinfo)
     1069int verify_tape_backups()
    10481070{
    10491071
     
    10621084    mr_msg(3, "verify_tape_backups --- starting");
    10631085    log_to_screen(_("Verifying backups"));
    1064     openin_tape(bkpinfo);
     1086    openin_tape();
    10651087
    10661088    /* verify archives themselves */
    1067     retval += verify_afioballs_from_stream(bkpinfo);
    1068     retval += verify_biggiefiles_from_stream(bkpinfo);
     1089    retval += verify_afioballs_from_stream();
     1090    retval += verify_biggiefiles_from_stream();
    10691091
    10701092    /* find the final blocks */
    10711093    sync();
    10721094    sleep(2);
    1073     closein_tape(bkpinfo);
     1095    closein_tape();
    10741096
    10751097    /* close tape; exit */
    1076     paranoid_system
    1077         ("rm -f /tmp/biggies.changed /tmp/changed.files.[0-9]* 2> /dev/null");
    1078     mr_asprintf(&changed_files_fname, "/tmp/changed.files.%d",
    1079              (int) (random() % 32767));
     1098    mr_asprintf(&tmp,"rm -f %s/biggies.changed %s/changed.files 2> /dev/null", bkpinfo->tmpdir, bkpinfo->tmpdir);
     1099    paranoid_system(tmp);
     1100    mr_free(tmp);
     1101
     1102    mr_asprintf(&changed_files_fname, "%s/changed.files", bkpinfo->tmpdir);
    10801103    mr_asprintf(&tmp,
    10811104             "grep -E '^%s:.*$' %s | cut -d'\"' -f2 | sort -u | awk '{print \"/\"$0;};' | tr -s '/' '/' | grep -v \"(total of\" | grep -v \"incheckentry.*xwait\" | grep -vE '^/afio:.*$' | grep -vE '^dev/.*$'  > %s",
     
    10961119    mr_free(tmp);
    10971120
    1098     mr_asprintf(&tmp, "cat /tmp/biggies.changed >> %s", changed_files_fname);
     1121    mr_asprintf(&tmp, "cat %s/biggies.changed >> %s", bkpinfo->tmpdir, changed_files_fname);
    10991122    paranoid_system(tmp);
    11001123    mr_free(tmp);
     
    11021125    diffs = count_lines_in_file(changed_files_fname);
    11031126    if (diffs > 0) {
    1104         mr_asprintf(&tmp, "cp -f %s %s", changed_files_fname,
    1105                  "/tmp/changed.files");
     1127        mr_asprintf(&tmp, "cp -f %s %s/changed.files", changed_files_fname, MINDI_CACHE);
    11061128        run_program_and_log_output(tmp, FALSE);
    11071129        mr_free(tmp);
    11081130
    11091131        mr_asprintf(&tmp,
    1110                  "%ld files differed from live filesystem; type less %s or less %s to see",
    1111                  diffs, changed_files_fname, "/tmp/changed.files");
     1132                 "%ld files differed from live filesystem; type less %s or less %s/changed.files to see",
     1133                 diffs, changed_files_fname, MINDI_CACHE);
    11121134        mr_msg(0, tmp);
    11131135        mr_free(tmp);
    11141136
    11151137        log_to_screen
    1116             (_("See /tmp/changed.files for a list of nonmatching files."));
     1138            (_("See "MINDI_CACHE"/changed.files for a list of nonmatching files."));
    11171139        log_to_screen
    11181140            (_("The files probably changed on filesystem, not on backup media."));
     
    11241146
    11251147
    1126 /**
    1127  * Generate the filename of a tarball to verify.
    1128  * @param bkpinfo The backup information structure. @c bkpinfo->zip_suffix is the only field used.
    1129  * @param mountpoint The directory where the CD/DVD/ISO is mounted.
    1130  * @param setno The afioball number to get the location of.
    1131  * @return The absolute path to the afioball.
    1132  * @note The returned string points to static data that will be overwritten with each call.
    1133  * @ingroup stringGroup
    1134  */
    1135 char *vfy_tball_fname(struct s_bkpinfo *bkpinfo, char *mountpoint,
    1136                       int setno)
    1137 {
    1138     /*@ buffers ******************************************************* */
    1139     static char output[MAX_STR_LEN];
    1140 
    1141     assert(bkpinfo != NULL);
    1142     assert_string_is_neither_NULL_nor_zerolength(mountpoint);
    1143     sprintf(output, "%s/archives/%d.star.%s", mountpoint, setno,
    1144             bkpinfo->zip_suffix);
    1145     if (!does_file_exist(output)) {
    1146         sprintf(output, "%s/archives/%d.afio.%s", mountpoint, setno,
    1147                 bkpinfo->zip_suffix);
    1148     }
    1149     return (output);
    1150 }
  • branches/stable/mondo/src/common/libmondo-verify.h

    r684 r1663  
    2121
    2222 /** externals *************************************************************/
    23 int close_tape(struct s_bkpinfo *);
     23int close_tape();
    2424extern void close_progress_form(void);
    2525extern long count_lines_in_file(char *);
     
    2727extern void exclude_nonexistent_files(char *);
    2828extern void fatal_error(char *);
    29 extern int find_and_mount_actual_cd(struct s_bkpinfo *, char *);
     29extern int find_and_mount_actual_cd(char *);
    3030extern int find_cdrom_device(char *, bool);
    3131extern void finish(int);
    32 extern int get_last_filelist_number(struct s_bkpinfo *);
     32extern int get_last_filelist_number();
    3333extern long get_time(void);
    3434extern int grab_percentage_from_last_line_of_file(char *);
     
    4040extern void open_evalcall_form(char *);
    4141extern void open_progress_form(char *, char *, char *, char *, long);
    42 extern int openin_tape(struct s_bkpinfo *);
     42extern int openin_tape();
    4343extern void popup_and_OK(char *);
    4444extern bool popup_and_get_string(char *, char *, char *, int);
    45 extern int read_file_from_tape_to_file(struct s_bkpinfo *, char *,
     45extern int read_file_from_tape_to_file(char *,
    4646                                       long long);
    4747extern int read_header_block_from_tape(long long *, char *, int *);
     
    6262
    6363
    64 int verify_cd_image(struct s_bkpinfo *);
    65 int verify_a_tarball(struct s_bkpinfo *, char *);
    66 int verify_an_afioball_from_CD(struct s_bkpinfo *, char *);
    67 int verify_an_afioball_from_tape(struct s_bkpinfo *, char *, long long);
    68 int verify_a_biggiefile_from_tape(struct s_bkpinfo *, char *, long long);
    69 int verify_afioballs_from_CD(struct s_bkpinfo *);
    70 int verify_afioballs_from_tape(struct s_bkpinfo *);
    71 int verify_biggiefiles_from_tape(struct s_bkpinfo *);
    72 int verify_tape_backups(struct s_bkpinfo *);
    73 char *vfy_tball_fname(struct s_bkpinfo *, char *, int);
     64int verify_cd_image();
     65int verify_a_tarball(char *);
     66int verify_an_afioball_from_CD(char *);
     67int verify_an_afioball_from_tape(char *, long long);
     68int verify_a_biggiefile_from_tape(char *, long long);
     69int verify_afioballs_from_CD();
     70int verify_afioballs_from_tape();
     71int verify_biggiefiles_from_tape();
     72int verify_tape_backups();
     73char *vfy_tball_fname(char *, int);
    7474
    7575
     
    9292extern void center_string(char *, int);
    9393extern void close_evalcall_form(void);
    94 extern int closein_tape(struct s_bkpinfo *);
     94extern int closein_tape();
  • branches/stable/mondo/src/common/newt-specific.c

    r1627 r1663  
    12821282                                 char *source_file) {
    12831283    int i;
     1284    int j = 0;
    12841285    bool done;
    12851286    char *tmp = NULL;
     1287    char *tmp1 = NULL;
    12861288    size_t n = 0;
    12871289    FILE *fin = NULL;
     
    12981300        return (1);
    12991301    }
     1302
     1303    asprintf(&tmp1,"%s/icantfindthesefiles.txt",bkpinfo->tmpdir);
     1304    if (!(fout = fopen(tmp1, "a"))) {
     1305        mr_msg(2, "Can't write to %s", tmp1);
     1306        return(1);
     1307    }
     1308
    13001309    mr_msg(2, "Loading %s", source_file);
    13011310    for (filelist->entries = 0; filelist->entries <= ARBITRARY_MAXIMUM;
     
    13161325            goto god_i_hate_gotos;
    13171326        }
    1318         if (!does_file_exist(tmp)) {
     1327        if (!does_file_exist(tmp) && !feof(fin)) {
     1328            fprintf(fout, "%s\n", tmp);
     1329            j++;
    13191330            goto god_i_hate_gotos;
    13201331        }
     
    13291340
    13301341    paranoid_fclose(fin);
     1342    paranoid_fclose(fout);
     1343
     1344    if (j > 0) {
     1345        log_to_screen("%d files listed in %s/changed.files have been deleted since backup was made\nand are referenced in %s", j, bkpinfo->tmpdir,tmp1);
     1346    }
     1347    mr_free(tmp1);
     1348
    13311349    if (filelist->entries >= ARBITRARY_MAXIMUM) {
    13321350        log_to_screen(_("Arbitrary limits suck, man!"));
Note: See TracChangeset for help on using the changeset viewer.