|
|
|
@ -1536,6 +1536,7 @@ int Xorriso_scsi_log(struct XorrisO *xorriso, int flag)
|
|
|
|
|
return(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int Xorriso_check_md5_range(struct XorrisO *xorriso, off_t start_lba,
|
|
|
|
|
off_t end_lba, char md5[16], int flag)
|
|
|
|
|
{
|
|
|
|
@ -1615,7 +1616,31 @@ int Xorriso_check_session_md5(struct XorrisO *xorriso, char *severity,
|
|
|
|
|
md5, 0);
|
|
|
|
|
return(ret);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int Xorriso_check_for_abort(struct XorrisO *xorriso,
|
|
|
|
|
char *abort_file_path,
|
|
|
|
|
double post_read_time,
|
|
|
|
|
double *last_abort_file_time, int flag)
|
|
|
|
|
{
|
|
|
|
|
struct stat stbuf;
|
|
|
|
|
|
|
|
|
|
if(abort_file_path[0] == 0)
|
|
|
|
|
return(0);
|
|
|
|
|
if(post_read_time - *last_abort_file_time >= 0.1) {
|
|
|
|
|
if(stat(abort_file_path, &stbuf) != -1) {
|
|
|
|
|
if(stbuf.st_mtime >= xorriso->start_time) {
|
|
|
|
|
sprintf(xorriso->info_text,
|
|
|
|
|
"-check_media: Found fresh abort_file=%s", abort_file_path);
|
|
|
|
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
|
|
|
|
return(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
*last_abort_file_time= post_read_time;
|
|
|
|
|
}
|
|
|
|
|
return(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* @param flag bit0= this is a follow-up session (i.e. on CD: TAO)
|
|
|
|
|
bit1= no pacifier messages
|
|
|
|
@ -1638,7 +1663,6 @@ int Xorriso_check_interval(struct XorrisO *xorriso, struct SpotlisT *spotlist,
|
|
|
|
|
off_t data_count, to_read, read_count= 0, write_amount;
|
|
|
|
|
double pre_read_time, post_read_time, time_diff, total_time_diff= 0;
|
|
|
|
|
double last_abort_file_time= 0;
|
|
|
|
|
struct stat stbuf;
|
|
|
|
|
void *ctx= NULL, *cloned_ctx= NULL;
|
|
|
|
|
char md5[16], tag_md5[16];
|
|
|
|
|
uint32_t pos, range_start, range_size, next_tag= 0, lba, md5_spot_lba= 0;
|
|
|
|
@ -1679,21 +1703,10 @@ int Xorriso_check_interval(struct XorrisO *xorriso, struct SpotlisT *spotlist,
|
|
|
|
|
post_read_time= Sfile_microtime(0);
|
|
|
|
|
for(i= 0; i < block_count; i+= to_read) {
|
|
|
|
|
skip_reading= 0;
|
|
|
|
|
|
|
|
|
|
if(job->abort_file_path[0]) {
|
|
|
|
|
if(post_read_time - last_abort_file_time >= 0.1) {
|
|
|
|
|
if(stat(job->abort_file_path, &stbuf) != -1) {
|
|
|
|
|
if(stbuf.st_mtime >= xorriso->start_time) {
|
|
|
|
|
sprintf(xorriso->info_text,
|
|
|
|
|
"-check_media: Found fresh abort_file=%s",
|
|
|
|
|
job->abort_file_path);
|
|
|
|
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
|
|
|
|
goto abort_check;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
last_abort_file_time= post_read_time;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ret= Xorriso_check_for_abort(xorriso, job->abort_file_path, post_read_time,
|
|
|
|
|
&last_abort_file_time, 0);
|
|
|
|
|
if(ret == 1)
|
|
|
|
|
goto abort_check;
|
|
|
|
|
if(job->item_limit > 0 &&
|
|
|
|
|
Spotlist_count(spotlist, 0) + 2 >= job->item_limit) {
|
|
|
|
|
sprintf(xorriso->info_text, "-check_media: Reached item_limit=%d",
|
|
|
|
|