From a08a7539672d1642633f258c24269ab6eb80912a Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Wed, 9 Mar 2011 07:13:12 +0000 Subject: [PATCH] New isoburn_ropt_set_extensions() option isoburn_ropt_nomd5tag --- libisoburn/isoburn.c | 4 ++-- libisoburn/isoburn.h | 2 +- libisoburn/isofs_wrap.c | 9 +++++++-- libisoburn/libisoburn.h | 9 ++++++++- xorriso/xorriso_timestamp.h | 2 +- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/libisoburn/isoburn.c b/libisoburn/isoburn.c index 63035c8e..5b145a48 100644 --- a/libisoburn/isoburn.c +++ b/libisoburn/isoburn.c @@ -791,7 +791,7 @@ int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext) o->noacl= !!(ext & 64); o->noea= !!(ext & 128); o->noino= !!(ext & 256); - o->nomd5= !!(ext & 512); + o->nomd5= (ext >> 9) & 3; return(1); } @@ -801,7 +801,7 @@ int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext) *ext= (!!o->norock) | ((!!o->nojoliet)<<1) | ((!!o->noiso1999)<<2) | ((!!o->preferjoliet)<<3) | ((!!o->pretend_blank)<<4) | ((!!o->noaaip) << 5) | ((!!o->noacl) << 6) | ((!!o->noea) << 7) | - ((!!o->noino) << 8) | ((!!o->nomd5) << 9); + ((!!o->noino) << 8) | ((o->nomd5 & 3) << 9); return(1); } diff --git a/libisoburn/isoburn.h b/libisoburn/isoburn.h index 51124c63..7e54a948 100644 --- a/libisoburn/isoburn.h +++ b/libisoburn/isoburn.h @@ -298,7 +298,7 @@ struct isoburn_read_opts { unsigned int noino:1; /* Discard eventual PX inode numbers */ /* ts A90810 */ - unsigned int nomd5:1; /* Do not read eventual MD5 array */ + unsigned int nomd5:2; /* Do not read eventual MD5 array */ unsigned int preferjoliet:1; /*< When both Joliet and RR extensions are present, the RR diff --git a/libisoburn/isofs_wrap.c b/libisoburn/isofs_wrap.c index ed0e2398..3e51c6be 100644 --- a/libisoburn/isofs_wrap.c +++ b/libisoburn/isofs_wrap.c @@ -228,8 +228,13 @@ displacement_rollover:; iso_read_opts_set_start_block(ropts, ms_block); iso_read_opts_set_no_rockridge(ropts, read_opts->norock); iso_read_opts_set_no_aaip(ropts, read_opts->noaaip); - iso_read_opts_set_no_md5(ropts, read_opts->nomd5); - + if(read_opts->nomd5 == 2) + int_num= 2; + else if(read_opts->nomd5 == 1) + int_num= 1; + else + int_num= 0; + iso_read_opts_set_no_md5(ropts, int_num); iso_read_opts_set_new_inos(ropts, read_opts->noino); iso_read_opts_set_no_joliet(ropts, read_opts->nojoliet); diff --git a/libisoburn/libisoburn.h b/libisoburn/libisoburn.h index 084b80b7..7826e36a 100644 --- a/libisoburn/libisoburn.h +++ b/libisoburn/libisoburn.h @@ -770,6 +770,11 @@ int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag); bit9= nomd5 @since 0.4.2 Do not load the eventual MD5 checksum array. + Do not check eventual session_md5 tags. + bit10= nomd5tag + @since 1.0.4 + Do not check eventual session_md5 tags although bit9 + is not set. @return 1 success, <=0 failure */ #define isoburn_ropt_norock 1 @@ -782,6 +787,7 @@ int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag); #define isoburn_ropt_noea 128 #define isoburn_ropt_noino 256 #define isoburn_ropt_nomd5 512 +#define isoburn_ropt_nomd5tag 1024 int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext); int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext); @@ -984,7 +990,8 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level); can encode ACL and XFS-style Extended Attributes. bit6= session_md5 @since 0.4.2 - Produce and write a MD5 checksum of the whole session stream. + Produce and write MD5 checksum tags of superblock, directory + tree, and the whole session stream. bit7= file_md5 @since 0.4.2 Produce and write MD5 checksums for each single IsoFile. diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index ac77965e..55694268 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2011.03.07.101547" +#define Xorriso_timestamP "2011.03.09.071325"