Changeset 2519 in MondoRescue
- Timestamp:
- Jan 4, 2010, 7:42:23 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.9/mondo/src/common/libmondo-fifo.c
r2290 r2519 71 71 long internal_tape_block_size) 72 72 { 73 char sz_dir[32];74 73 char keych; 75 char *tmp; 76 char *command; 74 char *sz_dir = NULL; 75 char *tmp = NULL; 76 char *command = NULL; 77 77 FILE *fres; 78 78 int bufsize; // in megabytes … … 81 81 int wise_lower_limit; 82 82 83 malloc_string(tmp);84 malloc_string(command);85 83 assert_string_is_neither_NULL_nor_zerolength(device); 86 84 assert(direction == 'w' || direction == 'r'); 87 sprintf(sz_dir, "%c", direction);88 85 wise_upper_limit = (am_I_in_disaster_recovery_mode()? 8 : 32); 89 86 wise_lower_limit = 1; // wise_upper_limit/2 + 1; … … 91 88 for (bufsize = wise_upper_limit, res = -1; 92 89 res != 0 && bufsize >= wise_lower_limit; bufsize--) { 93 sprintf(tmp,90 mr_asprintf(&tmp, 94 91 "dd if=/dev/zero bs=1024 count=16k 2> /dev/null | buffer -o /dev/null -s %ld -m %d%c", 95 92 internal_tape_block_size, bufsize, 'm'); 96 93 res = run_program_and_log_output(tmp, 2); 94 mr_free(tmp); 97 95 } 98 96 if (!res) { 99 97 bufsize++; 100 sprintf(tmp, "Negotiated max buffer of %d MB ", bufsize);98 mr_asprintf(&tmp, "Negotiated max buffer of %d MB ", bufsize); 101 99 log_to_screen(tmp); 100 mr_free(tmp); 102 101 } else { 103 102 bufsize = 0; … … 121 120 } 122 121 log_msg(2, "Calling buffer --- command = '%s'", g_sz_call_to_buffer); 122 mr_asprintf(&sz_dir, "%c", direction); 123 123 fres = popen(g_sz_call_to_buffer, sz_dir); 124 mr_free(sz_dir); 125 124 126 if (fres) { 125 127 log_msg(2, "Successfully opened ('%c') tape device %s", direction, … … 130 132 } 131 133 sleep(2); 132 sprintf(tmp, "ps %s | grep \"%s\"", ps_options, g_sz_call_to_buffer);134 mr_asprintf(&tmp, "ps %s | grep \"%s\"", ps_options, g_sz_call_to_buffer); 133 135 if (run_program_and_log_output(tmp, 2)) { 134 136 log_msg(2, "Warning - I think I failed to open tape, actually."); 135 137 } 138 mr_free(tmp); 136 139 g_tape_buffer_size_MB = bufsize; 137 tmp[30] = '\0'; 138 sprintf(command, "ps %s | grep buffer | grep -v grep", ps_options); 140 mr_asprintf(&command, "ps %s | grep buffer | grep -v grep", ps_options); 139 141 if (run_program_and_log_output(command, 1)) { 140 142 fres = NULL; … … 143 145 log_to_screen("Buffer successfully started."); 144 146 } 147 mr_free(command); 145 148 146 paranoid_free(command);147 paranoid_free(tmp);148 149 return (fres); 149 150 }
Note:
See TracChangeset
for help on using the changeset viewer.