mirror of
https://github.com/martijnvanbrummelen/nwipe.git
synced 2026-02-20 13:42:14 +00:00
Merge pull request #373 from PartialVolume/Fix_intermittent_FAILED_message_instead_of_UABORTED_on_control-C
Fix summary table - Control-C
This commit is contained in:
@@ -758,7 +758,7 @@ void nwipe_log_summary( nwipe_context_t** ptr, int nwipe_selected )
|
||||
/* Any errors ? if so set the exclamation_flag and fail message,
|
||||
* All status messages should be eight characters EXACTLY !
|
||||
*/
|
||||
if( c[i]->result < 0 )
|
||||
if( c[i]->pass_errors != 0 || c[i]->verify_errors != 0 || c[i]->fsyncdata_errors != 0 )
|
||||
{
|
||||
strncpy( exclamation_flag, "!", 1 );
|
||||
exclamation_flag[1] = 0;
|
||||
@@ -768,44 +768,32 @@ void nwipe_log_summary( nwipe_context_t** ptr, int nwipe_selected )
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if( c[i]->pass_errors != 0 || c[i]->verify_errors != 0 )
|
||||
if( c[i]->wipe_status == 0 )
|
||||
{
|
||||
strncpy( exclamation_flag, "!", 1 );
|
||||
strncpy( exclamation_flag, " ", 1 );
|
||||
exclamation_flag[1] = 0;
|
||||
|
||||
strncpy( status, "-FAILED-", 8 );
|
||||
strncpy( status, " Erased ", 8 );
|
||||
status[8] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( c[i]->wipe_status == 0 )
|
||||
if( user_abort == 1 )
|
||||
{
|
||||
strncpy( exclamation_flag, " ", 1 );
|
||||
strncpy( exclamation_flag, "!", 1 );
|
||||
exclamation_flag[1] = 0;
|
||||
|
||||
strncpy( status, " Erased ", 8 );
|
||||
strncpy( status, "UABORTED", 8 );
|
||||
status[8] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( user_abort == 1 )
|
||||
{
|
||||
strncpy( exclamation_flag, "!", 1 );
|
||||
exclamation_flag[1] = 0;
|
||||
/* If this ever happens, there is a bug ! */
|
||||
strncpy( exclamation_flag, " ", 1 );
|
||||
exclamation_flag[1] = 0;
|
||||
|
||||
strncpy( status, "UABORTED", 8 );
|
||||
status[8] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* If this ever happens, there is a bug ! */
|
||||
strncpy( exclamation_flag, " ", 1 );
|
||||
exclamation_flag[1] = 0;
|
||||
|
||||
strncpy( status, "INSANITY", 8 );
|
||||
status[8] = 0;
|
||||
}
|
||||
strncpy( status, "INSANITY", 8 );
|
||||
status[8] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -804,8 +804,6 @@ int nwipe_runmethod( nwipe_context_t* c, nwipe_pattern_t* patterns )
|
||||
/* For the selected method, calculate the correct round_size value (for correct percentage calculation) */
|
||||
calculate_round_size( c );
|
||||
|
||||
c->result = c->round_size;
|
||||
|
||||
/* If only verifying then the round size is the device size */
|
||||
if( nwipe_options.method == &nwipe_verify_zero || nwipe_options.method == &nwipe_verify_one )
|
||||
{
|
||||
|
||||
41
src/nwipe.c
41
src/nwipe.c
@@ -291,6 +291,9 @@ int main( int argc, char** argv )
|
||||
{
|
||||
nwipe_selected += 1;
|
||||
}
|
||||
|
||||
/* Initialise the wipe result value */
|
||||
c1[i]->result = 0;
|
||||
}
|
||||
|
||||
/* Pass the number selected to the struct for other threads */
|
||||
@@ -598,6 +601,19 @@ int main( int argc, char** argv )
|
||||
close( c2[i]->device_fd );
|
||||
}
|
||||
}
|
||||
if( nwipe_options.verbose )
|
||||
{
|
||||
for( i = 0; i < nwipe_selected; i++ )
|
||||
{
|
||||
nwipe_log( NWIPE_LOG_DEBUG,
|
||||
"Status: %s, result=%d, pass_errors=%llu, verify_errors=%llu, fsync_errors=%llu",
|
||||
c2[i]->device_name,
|
||||
c2[i]->result,
|
||||
c2[i]->pass_errors,
|
||||
c2[i]->verify_errors,
|
||||
c2[i]->fsyncdata_errors );
|
||||
}
|
||||
}
|
||||
|
||||
/* if no wipe threads started then zero each selected drive result flag,
|
||||
* as we don't need to report fatal/non fatal errors if no wipes were ever started ! */
|
||||
@@ -613,24 +629,23 @@ int main( int argc, char** argv )
|
||||
for( i = 0; i < nwipe_selected; i++ )
|
||||
{
|
||||
/* Check for non-fatal errors. */
|
||||
if( c2[i]->result > 0 )
|
||||
if( c2[i]->result != 0 || c2[i]->pass_errors != 0 || c2[i]->verify_errors != 0
|
||||
|| c2[i]->fsyncdata_errors != 0 )
|
||||
{
|
||||
nwipe_log( NWIPE_LOG_FATAL, "Nwipe exited with non fatal errors on device = %s\n", c2[i]->device_name );
|
||||
nwipe_log( NWIPE_LOG_FATAL,
|
||||
"Nwipe exited with errors on device = %s, see log for specific error\n",
|
||||
c2[i]->device_name );
|
||||
nwipe_log( NWIPE_LOG_DEBUG,
|
||||
"Status: %s, result=%d, pass_errors=%llu, verify_errors=%llu, fsync_errors=%llu",
|
||||
c2[i]->device_name,
|
||||
c2[i]->result,
|
||||
c2[i]->pass_errors,
|
||||
c2[i]->verify_errors,
|
||||
c2[i]->fsyncdata_errors );
|
||||
non_fatal_errors_flag = 1;
|
||||
return_status = 1;
|
||||
}
|
||||
}
|
||||
|
||||
for( i = 0; i < nwipe_selected; i++ )
|
||||
{
|
||||
/* Check for fatal errors. */
|
||||
if( c2[i]->result < 0 )
|
||||
{
|
||||
nwipe_log( NWIPE_LOG_ERROR, "Nwipe exited with fatal errors on device = %s\n", c2[i]->device_name );
|
||||
fatal_errors_flag = 1;
|
||||
return_status = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Generate and send the drive status summary to the log */
|
||||
|
||||
Reference in New Issue
Block a user