diff --git a/libisoburn/burn_wrap.c b/libisoburn/burn_wrap.c index 9597f9ea..a7be06c2 100644 --- a/libisoburn/burn_wrap.c +++ b/libisoburn/burn_wrap.c @@ -265,6 +265,8 @@ int isoburn_is_intermediate_dvd_rw(struct burn_drive *d, int flag) bit3= if the drive reports a -ROM profile then try to read table of content by scanning for ISO image headers. bit4= do not emulate TOC on overwriteable media + bit5= ignore ACL from external filesystems + bit6= ignore POSIX Extended Attributes from external filesystems */ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d, int flag) @@ -290,6 +292,7 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d, (*o)->msgs_submit= libisoburn_default_msgs_submit; (*o)->msgs_submit_handle= libisoburn_default_msgs_submit_handle; (*o)->msgs_submit_flag= libisoburn_default_msgs_submit_flag; + iso_image_set_ignore_aclea((*o)->image, (flag >> 5 ) & 3); #ifdef Hardcoded_cd_rW /* <<< A70929 : hardcoded CD-RW with fabricated -msinfo */ @@ -382,6 +385,8 @@ ex: (depending on media type and drive state this might help or it might make the resulting toc even worse) bit4= do not emulate TOC on overwriteable media + bit5= ignore ACL from external filesystems + bit6= ignore POSIX Extended Attributes from external filesystems */ int isoburn_drive_aquire(struct burn_drive_info *drive_infos[], char *adr, int flag) @@ -412,7 +417,7 @@ int isoburn_drive_aquire(struct burn_drive_info *drive_infos[], goto ex; drive_grabbed= 1; ret= isoburn_welcome_media(&o, (*drive_infos)[0].drive, - (flag & 24) | !!(flag&2)); + (flag & (8 | 16 | 32 | 64)) | !!(flag&2)); if(ret<=0) goto ex; diff --git a/libisoburn/isoburn.c b/libisoburn/isoburn.c index b1d6c696..bc8ef855 100644 --- a/libisoburn/isoburn.c +++ b/libisoburn/isoburn.c @@ -629,7 +629,8 @@ int isoburn_ropt_new(struct isoburn_read_opts **new_o, int flag) o->norock= 0; o->nojoliet= 0; o->noiso1999= 1; - o->noaaip= 1; + o->noacl= 1; + o->noea= 1; o->preferjoliet= 0; o->uid= geteuid(); o->gid= getegid(); @@ -663,7 +664,8 @@ int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext) o->noiso1999= !!(ext&4); o->preferjoliet= !!(ext&8); o->pretend_blank= !!(ext&16); - o->noaaip= !!(ext & 32); + o->noacl= !!(ext & 32); + o->noea= !!(ext & 64); return(1); } @@ -672,7 +674,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) << 5) | ((!!o->noea) << 6); return(1); } diff --git a/libisoburn/isoburn.h b/libisoburn/isoburn.h index d2b18d7e..78df7ba8 100644 --- a/libisoburn/isoburn.h +++ b/libisoburn/isoburn.h @@ -250,7 +250,11 @@ struct isoburn_read_opts { unsigned int norock:1; /*< Do not read Rock Ridge extensions */ unsigned int nojoliet:1; /*< Do not read Joliet extensions */ unsigned int noiso1999:1; /*< Do not read ISO 9660:1999 enhanced tree */ - unsigned int noaaip:1; /* Do not read AAIP for ACL and POSIX EA*/ + + /* ts A90121 */ + unsigned int noacl:1; /* Do not read AAIP for ACL */ + unsigned int noea:1; /* Do not read AAIP for POSIX EA */ + unsigned int preferjoliet:1; /*< When both Joliet and RR extensions are present, the RR * tree is used. If you prefer using Joliet, set this to 1. */ diff --git a/libisoburn/isofs_wrap.c b/libisoburn/isofs_wrap.c index e281078d..541f693f 100644 --- a/libisoburn/isofs_wrap.c +++ b/libisoburn/isofs_wrap.c @@ -166,6 +166,8 @@ create_blank_image:; iso_image_ref(*image); /*protects object from premature free*/ } } + iso_image_set_ignore_aclea(*image, + (!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) ); return 1; } @@ -200,7 +202,7 @@ create_blank_image:; iso_read_opts_set_no_rockridge(ropts, read_opts->norock); #ifdef Libisofs_with_aaiP - iso_read_opts_set_no_aaip(ropts, read_opts->noaaip); + iso_read_opts_set_no_aaip(ropts, read_opts->noacl && read_opts->noea); #endif /* Libisofs_with_aaiP */ iso_read_opts_set_no_joliet(ropts, read_opts->nojoliet); diff --git a/libisoburn/libisoburn.h b/libisoburn/libisoburn.h index fe73d5f3..5d2117ed 100644 --- a/libisoburn/libisoburn.h +++ b/libisoburn/libisoburn.h @@ -367,6 +367,9 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[], (depending on media type and drive this might help or it might make the resulting toc even worse) bit4= do not emulate table of content on overwriteable media + bit5= ignore ACL from external filesystems + bit6= ignore POSIX Extended Attributes from external + filesystems @return 1 = success , 0 = drive not found , <0 = other error */ int isoburn_drive_aquire(struct burn_drive_info *drive_infos[], @@ -682,9 +685,11 @@ int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag); tree is used. If you prefer using Joliet, set this to 1. bit4= pretend_blank Always create empty image.Ignore any image on input drive. - bit5= noaaip + bit5= noacl @since 0.3.4 - Do not read AAIP informations for ACL and POSIX Extended + No need to read AAIP informations for ACL + bit6= noea + No need to read AAIP informations for POSIX Extended Attributes. @return 1 success, <=0 failure */ @@ -693,7 +698,8 @@ int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag); #define isoburn_ropt_noiso1999 4 #define isoburn_ropt_preferjoliet 8 #define isoburn_ropt_pretend_blank 16 -#define isoburn_ropt_noaaip 32 +#define isoburn_ropt_noacl 32 +#define isoburn_ropt_noea 64 int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext); int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext); diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 89bd98a9..e201c0d8 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2009.01.21.150243" +#define Xorriso_timestamP "2009.01.21.203852"