New -check_media option data_to="-" for standard output
This commit is contained in:
parent
56b2d88667
commit
588578f9a8
@ -210,6 +210,7 @@ char *Spotlist__quality_name(int quality, char name[80], int bad_limit,
|
||||
{
|
||||
if(quality == Xorriso_read_quality_untesteD ||
|
||||
quality == Xorriso_read_quality_tao_enD ||
|
||||
(quality == Xorriso_read_quality_md5_mismatcH && quality > bad_limit) ||
|
||||
quality == Xorriso_read_quality_off_tracK)
|
||||
strcpy(name, "0 ");
|
||||
else if(quality <= bad_limit)
|
||||
@ -603,7 +604,7 @@ int Checkmediajob_destroy(struct CheckmediajoB **o, int flag)
|
||||
{
|
||||
if((*o) == NULL)
|
||||
return(0);
|
||||
if((*o)->data_to_fd != -1)
|
||||
if((*o)->data_to_fd != -1 && strcmp((*o)->data_to_path, "-") == 0)
|
||||
close((*o)->data_to_fd);
|
||||
Sectorbitmap_destroy(&((*o)->sector_map), 0);
|
||||
free((char *) *o);
|
||||
@ -1081,8 +1082,12 @@ int Xorriso_open_job_data_to(struct XorrisO *xorriso,
|
||||
{
|
||||
if(job->data_to_path[0] == 0)
|
||||
return(2);
|
||||
job->data_to_fd= open(job->data_to_path, O_RDWR | O_CREAT | O_BINARY,
|
||||
S_IRUSR | S_IWUSR);
|
||||
if(strcmp(job->data_to_path, "-") == 0) {
|
||||
job->data_to_fd= 1;
|
||||
} else {
|
||||
job->data_to_fd= open(job->data_to_path, O_RDWR | O_CREAT | O_BINARY,
|
||||
S_IRUSR | S_IWUSR);
|
||||
}
|
||||
if(job->data_to_fd == -1) {
|
||||
sprintf(xorriso->info_text, "Cannot open path ");
|
||||
Text_shellsafe(job->data_to_path, xorriso->info_text, 1);
|
||||
|
@ -3082,7 +3082,9 @@ abort_check:;
|
||||
}
|
||||
if(write_amount > 0) {
|
||||
if(job->data_to_fd >= 0) {
|
||||
ret= lseek(job->data_to_fd,
|
||||
ret= 0;
|
||||
if(strcmp(job->data_to_path, "-") != 0)
|
||||
ret= lseek(job->data_to_fd,
|
||||
((off_t) (i + from_lba)) * (off_t) 2048 + job->data_to_offset,
|
||||
SEEK_SET);
|
||||
if(ret == -1) {
|
||||
@ -3426,7 +3428,7 @@ libburn_whole_disc:;
|
||||
ret= 1;
|
||||
ex:;
|
||||
|
||||
if(job->data_to_fd != -1)
|
||||
if(job->data_to_fd != -1 && strcmp(job->data_to_path, "-") != 0)
|
||||
close(job->data_to_fd);
|
||||
job->data_to_fd= -1;
|
||||
|
||||
|
@ -1761,7 +1761,7 @@ int Xorriso_option_check_media(struct XorrisO *xorriso,
|
||||
int argc, char **argv, int *idx, int flag)
|
||||
{
|
||||
int ret, i, count, lba, blocks, quality, pass, was_md5= 0, was_event= 0;
|
||||
int end_idx, old_idx, os_errno;
|
||||
int end_idx, old_idx, os_errno, to_info= 0;
|
||||
char quality_name[80], *head_buffer= NULL;
|
||||
struct SpotlisT *spotlist= NULL;
|
||||
struct CheckmediajoB *job= NULL;
|
||||
@ -1781,6 +1781,7 @@ int Xorriso_option_check_media(struct XorrisO *xorriso,
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
|
||||
to_info= (strcmp(job->data_to_path, "-") == 0);
|
||||
if((job->report_mode == 1 || job->report_mode == 2) && job->use_dev == 1) {
|
||||
sprintf(xorriso->info_text,
|
||||
"-check_media: cannot report=*files while use=outdef");
|
||||
@ -1793,6 +1794,12 @@ int Xorriso_option_check_media(struct XorrisO *xorriso,
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
if(job->patch_lba0 && to_info) {
|
||||
sprintf(xorriso->info_text,
|
||||
"-check_media: cannot apply patch_lba0= while data_to= is \"-\"");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
|
||||
if(job->use_dev == 2) {
|
||||
if(job->sector_map_path[0] == 0) {
|
||||
@ -1847,7 +1854,12 @@ int Xorriso_option_check_media(struct XorrisO *xorriso,
|
||||
sprintf(xorriso->result_line,
|
||||
"MD5 checks : lba , size , result\n");
|
||||
}
|
||||
Xorriso_result(xorriso,0);
|
||||
if(to_info) {
|
||||
strcpy(xorriso->info_text, xorriso->result_line);
|
||||
Xorriso_info(xorriso, 0);
|
||||
} else {
|
||||
Xorriso_result(xorriso, 0);
|
||||
}
|
||||
count= Spotlist_count(spotlist, 0);
|
||||
for(i= 0; i < count; i++) {
|
||||
ret= Spotlist_get_item(spotlist, i, &lba, &blocks, &quality, 0);
|
||||
@ -1871,7 +1883,12 @@ int Xorriso_option_check_media(struct XorrisO *xorriso,
|
||||
pass == 0 ? "Media region " : "MD5 tag range",
|
||||
lba, blocks, Spotlist__quality_name(quality, quality_name,
|
||||
xorriso->check_media_bad_limit, 0));
|
||||
Xorriso_result(xorriso,0);
|
||||
if(to_info) {
|
||||
strcpy(xorriso->info_text, xorriso->result_line);
|
||||
Xorriso_info(xorriso, 0);
|
||||
} else {
|
||||
Xorriso_result(xorriso, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,7 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH XORRISO 1 "Version 1.5.3, Sep 11, 2020"
|
||||
.TH XORRISO 1 "Version 1.5.3, Sep 30, 2020"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@ -4754,7 +4754,18 @@ gives the number of report list items after which to abort.
|
||||
Value \-1 means unlimited item number.
|
||||
.br
|
||||
\fBdata_to=disk_path\fR
|
||||
copies the valid blocks to the given file.
|
||||
copies the valid blocks to the given file, which must support random access
|
||||
writing, unless disk_path is "\-" which means standard output.
|
||||
.br
|
||||
In the latter case, patch_lba0= settings other than "off" yield failure.
|
||||
Further the usual result messages of \-check_media get redirected to the info
|
||||
channel. But beware of result messages from other commands. Beware of \-*dev "\-"
|
||||
which redirect standard output to standard error. Keep the run simple:
|
||||
.br
|
||||
xorriso \-indev /dev/sr0 \-check_media data_to=\- \-\- | md5sum
|
||||
.br
|
||||
xorriso \-outdev /dev/sr0 \-check_media data_to=\- use=outdev \\
|
||||
what=disc min_lba=0 max_lba=999999 \-\- | sha256sum
|
||||
.br
|
||||
\fBevent=severity\fR
|
||||
sets the given severity for a problem event which shall be issued at
|
||||
|
@ -3989,7 +3989,18 @@ transmission errors.
|
||||
gives the number of report list items after which to abort.
|
||||
Value -1 means unlimited item number.
|
||||
data_to=disk_path
|
||||
copies the valid blocks to the given file.
|
||||
copies the valid blocks to the given file, which must support
|
||||
random access writing, unless disk_path is "-" which means
|
||||
standard output.
|
||||
In the latter case, patch_lba0= settings other than "off"
|
||||
yield failure. Further the usual result messages of
|
||||
-check_media get redirected to the info channel. But beware
|
||||
of result messages from other commands. Beware of -*dev "-"
|
||||
which redirect standard output to standard error. Keep the
|
||||
run simple:
|
||||
xorriso -indev /dev/sr0 -check_media data_to=- - | md5sum
|
||||
xorriso -outdev /dev/sr0 -check_media data_to=- use=outdev \
|
||||
what=disc min_lba=0 max_lba=999999 - | sha256sum
|
||||
event=severity
|
||||
sets the given severity for a problem event which shall be
|
||||
issued at the end of a check run if data blocks were
|
||||
@ -5419,8 +5430,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -cdx sets working directory on disk: Navigate. (line 15)
|
||||
* -changes_pending overrides change status: Writing. (line 12)
|
||||
* -charset sets input/output character set: Charset. (line 54)
|
||||
* -check_md5 verifies file checksum: Verify. (line 173)
|
||||
* -check_md5_r verifies file tree checksums: Verify. (line 187)
|
||||
* -check_md5 verifies file checksum: Verify. (line 184)
|
||||
* -check_md5_r verifies file tree checksums: Verify. (line 198)
|
||||
* -check_media reads media block by block: Verify. (line 21)
|
||||
* -check_media_defaults sets -check_media options: Verify. (line 40)
|
||||
* -chgrp sets group in ISO image: Manip. (line 49)
|
||||
@ -5923,8 +5934,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* Verify, compare ISO and disk file, -compare: Navigate. (line 131)
|
||||
* Verify, compare ISO and disk tree, -compare_r: Navigate. (line 143)
|
||||
* Verify, compare ISO and disk, -compare_l: Navigate. (line 147)
|
||||
* Verify, file checksum, -check_md5: Verify. (line 173)
|
||||
* Verify, file tree checksums, -check_md5_r: Verify. (line 187)
|
||||
* Verify, file checksum, -check_md5: Verify. (line 184)
|
||||
* Verify, file tree checksums, -check_md5_r: Verify. (line 198)
|
||||
* Verify, preset -check_media, -check_media_defaults: Verify. (line 40)
|
||||
* Write, block size, -dvd_obs: SetWrite. (line 336)
|
||||
* Write, bootability, -boot_image: Bootable. (line 75)
|
||||
@ -5985,33 +5996,33 @@ Node: DialogCtl190767
|
||||
Node: Inquiry193369
|
||||
Node: Navigate202251
|
||||
Node: Verify210708
|
||||
Node: Restore221179
|
||||
Node: Emulation230345
|
||||
Node: Scripting240801
|
||||
Node: Frontend248584
|
||||
Node: Examples258210
|
||||
Node: ExDevices259388
|
||||
Node: ExCreate260049
|
||||
Node: ExDialog261349
|
||||
Node: ExGrowing262620
|
||||
Node: ExModifying263429
|
||||
Node: ExBootable263939
|
||||
Node: ExCharset264494
|
||||
Node: ExPseudo265390
|
||||
Node: ExCdrecord266317
|
||||
Node: ExMkisofs266637
|
||||
Node: ExGrowisofs268534
|
||||
Node: ExException269687
|
||||
Node: ExTime270145
|
||||
Node: ExIncBackup270603
|
||||
Node: ExRestore274629
|
||||
Node: ExRecovery275575
|
||||
Node: Files276147
|
||||
Node: Environ277481
|
||||
Node: Seealso278229
|
||||
Node: Bugreport278946
|
||||
Node: Legal279537
|
||||
Node: CommandIdx280549
|
||||
Node: ConceptIdx298165
|
||||
Node: Restore221857
|
||||
Node: Emulation231023
|
||||
Node: Scripting241479
|
||||
Node: Frontend249262
|
||||
Node: Examples258888
|
||||
Node: ExDevices260066
|
||||
Node: ExCreate260727
|
||||
Node: ExDialog262027
|
||||
Node: ExGrowing263298
|
||||
Node: ExModifying264107
|
||||
Node: ExBootable264617
|
||||
Node: ExCharset265172
|
||||
Node: ExPseudo266068
|
||||
Node: ExCdrecord266995
|
||||
Node: ExMkisofs267315
|
||||
Node: ExGrowisofs269212
|
||||
Node: ExException270365
|
||||
Node: ExTime270823
|
||||
Node: ExIncBackup271281
|
||||
Node: ExRestore275307
|
||||
Node: ExRecovery276253
|
||||
Node: Files276825
|
||||
Node: Environ278159
|
||||
Node: Seealso278907
|
||||
Node: Bugreport279624
|
||||
Node: Legal280215
|
||||
Node: CommandIdx281227
|
||||
Node: ConceptIdx298843
|
||||
|
||||
End Tag Table
|
||||
|
@ -50,7 +50,7 @@
|
||||
@c man .\" First parameter, NAME, should be all caps
|
||||
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
@c man .\" other parameters are allowed: see man(7), man(1)
|
||||
@c man .TH XORRISO 1 "Version 1.5.3, Sep 11, 2020"
|
||||
@c man .TH XORRISO 1 "Version 1.5.3, Sep 30, 2020"
|
||||
@c man .\" Please adjust this date whenever revising the manpage.
|
||||
@c man .\"
|
||||
@c man .\" Some roff macros, for reference:
|
||||
@ -5477,7 +5477,18 @@ gives the number of report list items after which to abort.
|
||||
Value -1 means unlimited item number.
|
||||
@*
|
||||
@item data_to=disk_path
|
||||
copies the valid blocks to the given file.
|
||||
copies the valid blocks to the given file, which must support random access
|
||||
writing, unless disk_path is "-" which means standard output.
|
||||
@*
|
||||
In the latter case, patch_lba0= settings other than "off" yield failure.
|
||||
Further the usual result messages of -check_media get redirected to the info
|
||||
channel. But beware of result messages from other commands. Beware of -*dev "-"
|
||||
which redirect standard output to standard error. Keep the run simple:
|
||||
@*
|
||||
xorriso -indev /dev/sr0 -check_media data_to=- -- | md5sum
|
||||
@*
|
||||
xorriso -outdev /dev/sr0 -check_media data_to=- use=outdev \
|
||||
what=disc min_lba=0 max_lba=999999 -- | sha256sum
|
||||
@*
|
||||
@item event=severity
|
||||
sets the given severity for a problem event which shall be issued at
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2020.08.26.142853"
|
||||
#define Xorriso_timestamP "2020.09.30.190728"
|
||||
|
Loading…
Reference in New Issue
Block a user