New bit10 of isoburn_drive_aquire() to accept all xattr namespaces

This commit is contained in:
Thomas Schmitt 2017-10-23 11:53:12 +02:00
parent c3d302efe4
commit 25e24911d9
4 changed files with 20 additions and 13 deletions

View File

@ -6,7 +6,7 @@
*/ */
/* libburn wrappers for libisoburn /* libburn wrappers for libisoburn
Copyright 2007 - 2016 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007 - 2017 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
*/ */
@ -343,6 +343,8 @@ int isoburn_is_intermediate_dvd_rw(struct burn_drive *d, int flag)
bit9= when scanning for ISO 9660 sessions on overwritable bit9= when scanning for ISO 9660 sessions on overwritable
media: Do not demand a valid superblock at LBA 0 media: Do not demand a valid superblock at LBA 0
and scan until end of medium. and scan until end of medium.
bit10= if not bit6: accept all xattr namespaces from external
filesystems, not only "user.".
*/ */
static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d, static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
int flag) int flag)
@ -386,7 +388,8 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
(*o)->msgs_submit= libisoburn_default_msgs_submit; (*o)->msgs_submit= libisoburn_default_msgs_submit;
(*o)->msgs_submit_handle= libisoburn_default_msgs_submit_handle; (*o)->msgs_submit_handle= libisoburn_default_msgs_submit_handle;
(*o)->msgs_submit_flag= libisoburn_default_msgs_submit_flag; (*o)->msgs_submit_flag= libisoburn_default_msgs_submit_flag;
iso_image_set_ignore_aclea((*o)->image, (flag >> 5 ) & 3); iso_image_set_ignore_aclea((*o)->image,
((flag >> 5 ) & 3) | ((!!(flag & 1024)) << 3));
#ifdef Hardcoded_cd_rW #ifdef Hardcoded_cd_rW
/* <<< A70929 : hardcoded CD-RW with fabricated -msinfo */ /* <<< A70929 : hardcoded CD-RW with fabricated -msinfo */
@ -536,6 +539,8 @@ ex:
bit9= when scanning for ISO 9660 sessions on overwritable bit9= when scanning for ISO 9660 sessions on overwritable
media: Do not demand a valid superblock at LBA 0 media: Do not demand a valid superblock at LBA 0
and scan until end of medium. and scan until end of medium.
bit10= if not bit6: accept all xattr namespaces from external
filesystems, not only "user.".
*/ */
int isoburn_drive_aquire(struct burn_drive_info *drive_infos[], int isoburn_drive_aquire(struct burn_drive_info *drive_infos[],
char *adr, int flag) char *adr, int flag)
@ -562,7 +567,8 @@ int isoburn_drive_aquire(struct burn_drive_info *drive_infos[],
goto ex; goto ex;
drive_grabbed= 1; drive_grabbed= 1;
ret= isoburn_welcome_media(&o, (*drive_infos)[0].drive, ret= isoburn_welcome_media(&o, (*drive_infos)[0].drive,
(flag & (8 | 16 | 32 | 64 | 128 | 512)) | !!(flag&2)); (flag & (8 | 16 | 32 | 64 | 128 | 512 | 1024)) |
!!(flag&2));
if(ret<=0) if(ret<=0)
goto ex; goto ex;

View File

@ -6,7 +6,7 @@
/* /*
libisofs related functions of libisoburn. libisofs related functions of libisoburn.
Copyright 2007 - 2011 Vreixo Formoso Lopes <metalpain2002@yahoo.es> Copyright 2007 - 2017 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
Thomas Schmitt <scdbackup@gmx.net> Thomas Schmitt <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
*/ */
@ -143,7 +143,7 @@ int isoburn_read_image(struct burn_drive *d,
struct isoburn_read_opts *read_opts, struct isoburn_read_opts *read_opts,
IsoImage **image) IsoImage **image)
{ {
int ret, int_num, dummy; int ret, int_num, dummy, ignore_aclea= 0;
IsoReadOpts *ropts= NULL; IsoReadOpts *ropts= NULL;
IsoReadImageFeatures *features= NULL; IsoReadImageFeatures *features= NULL;
uint32_t ms_block; uint32_t ms_block;
@ -188,11 +188,11 @@ create_blank_image:;
isoburn_report_iso_error(ret, "Cannot create image", 0, "FATAL", 0); isoburn_report_iso_error(ret, "Cannot create image", 0, "FATAL", 0);
goto ex; goto ex;
} }
iso_image_set_ignore_aclea(*image,
(!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) );
new_image= *image; new_image= *image;
} else { } else {
/* Blank new image for the drive */ /* Blank new image for the drive */
if(o->image != NULL)
ignore_aclea= iso_image_get_ignore_aclea(o->image);
iso_image_unref(o->image); iso_image_unref(o->image);
ret = iso_image_new("ISOIMAGE", &o->image); ret = iso_image_new("ISOIMAGE", &o->image);
if (ret < 0) { if (ret < 0) {
@ -203,9 +203,7 @@ create_blank_image:;
*image = o->image; *image = o->image;
iso_image_ref(*image); /*protects object from premature free*/ iso_image_ref(*image); /*protects object from premature free*/
} }
iso_image_set_ignore_aclea(o->image, iso_image_set_ignore_aclea(o->image, ignore_aclea);
(!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) );
ret= isoburn_root_defaults(o->image, 0); ret= isoburn_root_defaults(o->image, 0);
if(ret <= 0) if(ret <= 0)
goto ex; goto ex;

View File

@ -249,7 +249,7 @@ void isoburn_version(int *major, int *minor, int *micro);
*/ */
#define isoburn_libisofs_req_major 1 #define isoburn_libisofs_req_major 1
#define isoburn_libisofs_req_minor 4 #define isoburn_libisofs_req_minor 4
#define isoburn_libisofs_req_micro 8 #define isoburn_libisofs_req_micro 9
/** The minimum version of libburn to be used with this version of libisoburn /** The minimum version of libburn to be used with this version of libisoburn
at compile time. at compile time.
@ -440,7 +440,7 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[],
bit4= do not emulate table of content on overwriteable media bit4= do not emulate table of content on overwriteable media
bit5= ignore ACL from external filesystems bit5= ignore ACL from external filesystems
bit6= ignore POSIX Extended Attributes from external bit6= ignore POSIX Extended Attributes from external
filesystems filesystems (xattr)
bit7= pretend read-only profile and scan for table of content bit7= pretend read-only profile and scan for table of content
bit8= re-assess already acquired (*drive_infos)[0] rather bit8= re-assess already acquired (*drive_infos)[0] rather
than acquiring adr than acquiring adr
@ -449,6 +449,9 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[],
Do not demand a valid superblock at LBA 0, ignore it in Do not demand a valid superblock at LBA 0, ignore it in
favor of one at LBA 32, and scan until end of medium. favor of one at LBA 32, and scan until end of medium.
@since 1.2.6 @since 1.2.6
bit10= if not bit6: accept all xattr namespaces from external
filesystems, not only "user.".
@since 1.5.0
@return 1 = success , 0 = drive not found , <0 = other error @return 1 = success , 0 = drive not found , <0 = other error
Please excuse the typo "aquire" in the function name. Please excuse the typo "aquire" in the function name.

View File

@ -1 +1 @@
#define Xorriso_timestamP "2017.09.29.113942" #define Xorriso_timestamP "2017.10.23.095252"