Changeset 2325 in MondoRescue for branches/2.2.10/mondo/src/common/libmondo-archive.c
- Timestamp:
- Aug 18, 2009, 3:19:15 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.10/mondo/src/common/libmondo-archive.c
r2324 r2325 561 561 if (IS_THIS_A_STREAMING_BACKUP(bkpinfo->backup_media_type)) { 562 562 mr_asprintf(tape_size_sz, "%ld", bkpinfo->media_size[1]); 563 ntapedev = get_non_rewind_dev(bkpinfo->media_device); 563 if (bkpinfo->media_device) { 564 ntapedev = get_non_rewind_dev(bkpinfo->media_device); 565 } 564 566 if ((bkpinfo->use_obdr) && (ntapedev != NULL)) { 565 strncpy(bkpinfo->media_device,ntapedev,(size_t)(MAX_STR_LEN / 4)); 567 mr_free(bkpinfo->media_device); 568 mr_asprintf(bkpinfo->media_device,"%s",ntapedev); 566 569 } else { 567 570 if (ntapedev == NULL) { … … 569 572 } 570 573 } 571 paranoid_free(ntapedev); 572 mr_asprintf(tape_device, "%s", bkpinfo->media_device); 574 mr_free(ntapedev); 575 if (bkpinfo->media_device) { 576 mr_asprintf(tape_device, "%s", bkpinfo->media_device); 577 } else { 578 mr_asprintf(tape_device, ""); 579 } 573 580 } else { 574 581 mr_asprintf(tape_size_sz, "%ld", 0L);; … … 759 766 fatal_error("Unknown backup_media_type"); 760 767 } 761 if ( bkpinfo->backup_media_type == usb) {768 if ((bkpinfo->backup_media_type == usb) && (bkpinfo->media_device)) { 762 769 mr_asprintf(tmp2, "--usb %s", bkpinfo->media_device); 763 770 } else { … … 1197 1204 mr_free(data_disks_file); 1198 1205 1199 mr_asprintf(command, "rm -f %s/%s/%s-[1-9]*.iso", bkpinfo->isodir, bkpinfo->nfs_remote_dir, bkpinfo->prefix); 1200 paranoid_system(command); 1201 mr_free(command); 1206 if ((bkpinfo->isodir != NULL) && (bkpinfo->prefix != NULL)) { 1207 if (bkpinfo->nfs_remote_dir) { 1208 // NFS 1209 mr_asprintf(command, "rm -f %s/%s/%s-[1-9]*.iso", bkpinfo->isodir, bkpinfo->nfs_remote_dir, bkpinfo->prefix); 1210 } else { 1211 // ISO 1212 mr_asprintf(command, "rm -f %s/%s-[1-9]*.iso", bkpinfo->isodir, bkpinfo->prefix); 1213 } 1214 paranoid_system(command); 1215 mr_free(command); 1216 } 1202 1217 1203 1218 wipe_archives(bkpinfo->scratchdir); … … 1516 1531 log_msg(1, message_to_screen); 1517 1532 1518 mr_asprintf(tmp1, "%s1", bkpinfo->media_device); 1533 if (bkpinfo->media_device) { 1534 mr_asprintf(tmp1, "%s1", bkpinfo->media_device); 1535 } else { 1536 mr_asprintf(tmp1, ""); 1537 } 1519 1538 if (is_this_device_mounted(tmp1)) { 1520 1539 log_msg(1, "USB device mounted. Remounting it at the right place"); … … 1700 1719 } 1701 1720 pause_for_N_seconds(5, "Letting DVD drive settle"); 1702 mr_asprintf(sz_blank_disk, "dvd+rw-format -force %s", bkpinfo->media_device); 1721 if (bkpinfo->media_device) { 1722 mr_asprintf(sz_blank_disk, "dvd+rw-format -force %s", bkpinfo->media_device); 1723 } else { 1724 mr_asprintf(sz_blank_disk, "dvd+rw-format"); 1725 } 1703 1726 log_msg(3, "sz_blank_disk = '%s'", sz_blank_disk); 1704 res = 1705 run_external_binary_with_percentage_indicator_NEW 1706 ("Blanking DVD disk", sz_blank_disk); 1727 res = run_external_binary_with_percentage_indicator_NEW("Blanking DVD disk", sz_blank_disk); 1707 1728 if (res) { 1708 1729 log_to_screen … … 1820 1841 || bkpinfo->backup_media_type == cdrw) { 1821 1842 if (is_this_device_mounted(bkpinfo->media_device)) { 1822 log_msg(2, 1823 "Warning - %s mounted. I'm unmounting it before I burn to it.", 1824 bkpinfo->media_device); 1843 log_msg(2, "Warning - %s mounted. I'm unmounting it before I burn to it.", bkpinfo->media_device); 1825 1844 mr_asprintf(tmp, "umount %s", bkpinfo->media_device); 1826 1845 run_program_and_log_output(tmp, FALSE); … … 2604 2623 /*@ buffers ********************************************* */ 2605 2624 char *tmp = NULL; 2606 char *cdrom_dev ;2625 char *cdrom_dev = NULL; 2607 2626 char *cdrw_dev; 2608 2627 char *our_serial_str = NULL; … … 2616 2635 char *mds = NULL; 2617 2636 2618 malloc_string(cdrom_dev);2619 2637 malloc_string(cdrw_dev); 2620 2638 malloc_string(szcdno); … … 2634 2652 gotos_make_me_puke: 2635 2653 ok_go_ahead_burn_it = TRUE; 2636 if ( !find_cdrom_device(cdrom_dev, FALSE)) {2637 /* When enabled, it made CD eject-and-retract when wrong CD inserted.. Weird2638 2639 2640 */2654 if ((cdrom_dev = find_cdrom_device(FALSE)) != NULL) { 2655 /* When enabled, it made CD eject-and-retract when wrong CD inserted.. Weird 2656 log_msg(2, "paafcd: Retracting CD-ROM drive if possible" ); 2657 retract_CD_tray_and_defeat_autorun(); 2658 */ 2641 2659 mr_asprintf(tmp, "umount %s", cdrom_dev); 2642 2660 run_program_and_log_output(tmp, 1); … … 2718 2736 popup_and_OK(tmp); 2719 2737 mr_free(tmp); 2738 mr_free(cdrom_dev); 2720 2739 goto gotos_make_me_puke; 2721 2740 } else { 2722 2741 log_msg(2, "paafcd: OK, going ahead and burning it."); 2723 2742 } 2743 mr_free(cdrom_dev); 2724 2744 2725 2745 mds = media_descriptor_string(g_backup_media_type); … … 2730 2750 mr_free(mds); 2731 2751 2732 paranoid_free(cdrom_dev);2733 2752 paranoid_free(cdrw_dev); 2734 2753 paranoid_free(mtpt); … … 3187 3206 3188 3207 /*@ buffers ***************************************************** */ 3189 char *tmp ;3190 char *tmp1 ;3208 char *tmp = NULL; 3209 char *tmp1 = NULL; 3191 3210 char *cdno_fname = NULL; 3192 3211 char *lastcd_fname = NULL; … … 3200 3219 /*@ int *********************************************************** */ 3201 3220 int res = 0; 3202 3203 malloc_string(tmp);3204 3221 3205 3222 assert(bkpinfo != NULL); … … 3246 3263 log_to_screen("Warning! CD is too big. It occupies %ld KB, which is more than the %ld KB allowed.", (long) space_occupied_by_cd(bkpinfo->scratchdir), (long) bkpinfo->media_size[g_current_media_number]); 3247 3264 } 3248 mr_asprintf(isofile, "%s/%s/%s-%d.iso", bkpinfo->isodir, bkpinfo->nfs_remote_dir, bkpinfo->prefix, g_current_media_number); 3265 if (((bkpinfo->isodir == NULL) && (bkpinfo->nfs_remote_dir == NULL)) || (bkpinfo->prefix == NULL)) { 3266 fatal_error("Something wrong in your environement. Report to dev team"); 3267 } 3268 if (bkpinfo->nfs_remote_dir) { 3269 // NFS 3270 mr_asprintf(isofile, "%s/%s/%s-%d.iso", bkpinfo->isodir, bkpinfo->nfs_remote_dir, bkpinfo->prefix, g_current_media_number); 3271 } else { 3272 // ISO 3273 mr_asprintf(isofile, "%s/%s-%d.iso", bkpinfo->isodir, bkpinfo->prefix, g_current_media_number); 3274 } 3249 3275 for (that_one_was_ok = FALSE; !that_one_was_ok;) { 3250 3276 if (bkpinfo->backup_media_type != usb) { … … 3256 3282 && (bkpinfo->backup_media_type == cdr 3257 3283 || bkpinfo->backup_media_type == cdrw)) { 3258 if ( find_cdrom_device(tmp, FALSE)) // make sure find_cdrom_device() finds, records CD-R's loc3259 {3284 if ((tmp = find_cdrom_device(FALSE)) == NULL) { 3285 // make sure find_cdrom_device() finds, records CD-R's loc 3260 3286 log_msg(3, "*Sigh* Mike, I hate your computer."); 3287 // if it can't be found then force pausing 3261 3288 bkpinfo->manual_cd_tray = TRUE; 3262 } // if it can't be found then force pausing 3263 else { 3289 } else { 3264 3290 log_msg(3, "Great. Found Mike's CD-ROM drive."); 3265 3291 } 3292 mr_free(tmp); 3266 3293 } 3267 3294 if (bkpinfo->verify_data && !res) { 3268 3295 mds = media_descriptor_string(g_backup_media_type); 3269 log_to_screen 3270 ("Please reboot from the 1st %s in Compare Mode, as a precaution.", mds); 3296 log_to_screen("Please reboot from the 1st %s in Compare Mode, as a precaution.", mds); 3271 3297 mr_free(mds); 3272 3298 chdir("/"); … … 3320 3346 3321 3347 bkpinfo->verify_data = orig_vfy_flag_val; 3322 mr_free(tmp);3323 3348 return (0); 3324 3349 } … … 3353 3378 "Verifying archives against live filesystem"); 3354 3379 if (bkpinfo->backup_media_type == cdstream) { 3355 strcpy(bkpinfo->media_device, "/dev/cdrom"); 3380 mr_free(bkpinfo->media_device); 3381 mr_asprintf(bkpinfo->media_device, "/dev/cdrom"); 3356 3382 } 3357 3383 verify_tape_backups(); … … 3368 3394 g_current_media_number = cdno; 3369 3395 if (bkpinfo->backup_media_type != iso) { 3370 find_cdrom_device(bkpinfo->media_device, FALSE); // replace 0,0,0 with /dev/cdrom 3396 mr_free(bkpinfo->media_device); 3397 bkpinfo->media_device = find_cdrom_device(FALSE); // replace 0,0,0 with /dev/cdrom 3371 3398 } 3372 3399 chdir("/");
Note:
See TracChangeset
for help on using the changeset viewer.