Changeset 3190 in MondoRescue for branches/3.1/mondo/src/common/libmondo-cli.c
- Timestamp:
- Sep 25, 2013, 8:55:43 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.1/mondo/src/common/libmondo-cli.c
r3161 r3190 39 39 40 40 extern void setup_tmpdir(char *path); 41 extern void setup_scratchdir(char *path); 41 42 void mr_make_devlist_from_pathlist(char *pathlist, char mode); 42 43 extern double g_kernel_version; … … 85 86 flag_set[i] = FALSE; 86 87 } 87 for (j = 1; j <= MAX_NOOF_MEDIA; j++) { 88 bkpinfo->media_size[j] = 650; 89 } /* default */ 88 bkpinfo->media_size = 650; /* default */ 90 89 res = retrieve_switches_from_command_line(argc, argv, flag_val, flag_set); 91 90 retval += res; … … 94 93 retval += res; 95 94 } 95 96 96 log_msg(3, "Switches:-"); 97 97 for (i = 0; i < 128; i++) { … … 100 100 } 101 101 } 102 mr_asprintf(tmp, "mkdir -p %s/tmpfs", bkpinfo->tmpdir); 103 paranoid_system(tmp); 104 mr_free(tmp); 105 106 /* Before erasing dirs go into a safe place */ 107 if (chdir("/tmp")) { 108 // FIXME 109 } 110 mr_asprintf(tmp, "rm -Rf %s/tmp.mondo.*", bkpinfo->tmpdir); 111 paranoid_system(tmp); 112 mr_free(tmp); 113 114 mr_asprintf(tmp, "mkdir -p %s", bkpinfo->scratchdir); 115 paranoid_system(tmp); 116 mr_free(tmp); 102 117 103 return (retval); 118 104 } 119 120 121 105 122 106 … … 130 114 int process_the_s_switch(char *value) 131 115 { 132 int j;133 char tmp[MAX_STR_LEN], *p;134 135 116 assert(bkpinfo != NULL); 136 117 assert(value != NULL); 137 118 138 bkpinfo->media_size[0] = -1; /* dummy value */ 139 for (j = 1, p = value; j < MAX_NOOF_MEDIA && strchr(p, ','); 140 j++, p = strchr(p, ',') + 1) { 141 strncpy(tmp, p, MAX_STR_LEN); 142 *(strchr(tmp, ',')) = '\0'; 143 bkpinfo->media_size[j] = friendly_sizestr_to_sizelong(tmp); 144 log_msg(3, "media_size[%d] = %ld", j, bkpinfo->media_size[j]); 145 } 146 for (; j <= MAX_NOOF_MEDIA; j++) { 147 bkpinfo->media_size[j] = friendly_sizestr_to_sizelong(p); 148 } 149 for (j = 1; j <= MAX_NOOF_MEDIA; j++) { 150 if (bkpinfo->media_size[j] <= 0) { 151 log_msg(1, "You gave media #%d an invalid size\n", j); 152 return (-1); 153 } 119 bkpinfo->media_size = -1; /* dummy value */ 120 bkpinfo->media_size = friendly_sizestr_to_sizelong(value); 121 log_msg(3, "media_size = %ld", bkpinfo->media_size); 122 if (bkpinfo->media_size <= 0) { 123 log_msg(1, "You gave media an invalid size %s\n", value); 124 return (-1); 154 125 } 155 126 return (0); … … 269 240 retval++; 270 241 log_to_screen("Please supply a sensible value with '-I'\n"); 242 } 243 if (!strcmp(bkpinfo->include_paths, "/")) { 244 log_msg(2, "'/' is pleonastic."); 245 bkpinfo->include_paths[0] = '\0'; 246 } 247 if (bkpinfo->include_paths[0]) { 248 strcat(bkpinfo->include_paths, "|"); 271 249 } 272 250 … … 361 339 mr_free(tmp1); 362 340 flag_set['d'] = TRUE; 363 strcpy(flag_val['d'], p);364 mr_free(p);365 341 log_to_screen("You didn't specify a tape streamer device. I'm assuming %s", flag_val['d']); 366 342 } … … 429 405 } 430 406 } else if (flag_set['u'] || flag_set['t']) { 431 for (i = 0; i <= MAX_NOOF_MEDIA; i++) { 432 bkpinfo->media_size[i] = 0; 433 } 407 bkpinfo->media_size = 0; 434 408 } else { 435 409 retval++; … … 483 457 /* p points on to the string server:/path */ 484 458 /* Store the 2 values */ 459 /* using memmove instead of strcpy as per #584 */ 460 /* memmove(bkpinfo->netfs_mount, p, MAX_STR_LEN); */ 485 461 bkpinfo->netfs_mount = p; 486 462 … … 492 468 p++; 493 469 /* new netfs mount */ 494 bkpinfo->netfs_mount = p; 470 mr_asprintf(bkpinfo->netfs_mount, "%s", p); 471 /* now that user is computed, create the right value by removing end of string */ 495 472 p--; 496 473 *p = '\0'; … … 506 483 if (strstr(bkpinfo->netfs_proto, "sshfs")) { 507 484 mr_asprintf(tmp1, "sshfs %s@%s", bkpinfo->netfs_user, bkpinfo->netfs_mount); 508 } else if (strstr(bkpinfo->netfs_proto, "smbfs")) {509 mr_asprintf(tmp1, "mount -t cifs %s -o user=%s", bkpinfo->netfs_mount, bkpinfo->netfs_user);510 485 } else if (strstr(bkpinfo->netfs_proto, "smbfs")) { 511 486 mr_asprintf(tmp1, "mount -t cifs %s -o user=%s", bkpinfo->netfs_mount, bkpinfo->netfs_user); … … 521 496 } else if (strstr(bkpinfo->netfs_proto, "smbfs")) { 522 497 mr_asprintf(tmp1, "mount -t cifs %s", bkpinfo->netfs_mount); 523 } else if (strstr(bkpinfo->netfs_proto, "smbfs")) {524 mr_asprintf(tmp1, "mount -t cifs %s", bkpinfo->netfs_mount);525 498 } else if (strstr(bkpinfo->netfs_proto, "nfs")) { 526 499 mr_asprintf(tmp1, "mount %s", bkpinfo->netfs_mount); … … 611 584 612 585 if (flag_set['E']) { 613 if (bkpinfo->exclude_paths && bkpinfo->exclude_paths[0] == '-') {586 if (bkpinfo->exclude_paths && (bkpinfo->exclude_paths[0] == '-')) { 614 587 retval++; 615 588 log_to_screen("Please supply a sensible value with '-E'\n"); … … 758 731 if (i) { 759 732 retval++; 760 log_to_screen( tmp2,"Are you sure directory '%s' exists in remote dir '%s'?\nIf so, do you have rights to write to it?\n", bkpinfo->netfs_remote_dir, bkpinfo->netfs_mount);733 log_to_screen("Are you sure directory '%s' exists in remote dir '%s'?\nIf so, do you have rights to write to it?\n", bkpinfo->netfs_remote_dir, bkpinfo->netfs_mount); 761 734 } 762 735 unlink(tmp1); … … 805 778 mr_free(tmp1); 806 779 } 807 mr_asprintf(bkpinfo->scratchdir, "%s/mondo.scratch.%ld", flag_val['S'], random() % 32768); 780 781 mr_asprintf(tmp1, "ln -sf %s/.foo.dat %s/.bar.dat", bkpinfo->scratchdir, bkpinfo->scratchdir); 782 if (run_program_and_log_output(tmp1, 1)) { 783 retval++; 784 mr_free(tmp1); 785 log_to_screen("Please don't specify a SAMBA or VFAT or NFS scratchdir."); 786 fatal_error("I cannot write to the scratchdir you specified."); 787 } 788 mr_free(tmp1); 808 789 } 809 790 … … 815 796 816 797 if (i) { 798 retval++; 817 799 log_to_screen("Please specify a tempdir which I can write to. :)"); 818 800 fatal_error("I cannot write to the tempdir you specified.");
Note:
See TracChangeset
for help on using the changeset viewer.