From 7aff4003b04cc82ca95424c4be6fa00efb5bd7be Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Thu, 22 Jan 2009 15:22:57 +0000 Subject: [PATCH] Restoring ACL only if -acl "on" --- libisoburn/trunk/xorriso/xorriso.1 | 16 +++++++++- libisoburn/trunk/xorriso/xorriso_timestamp.h | 2 +- libisoburn/trunk/xorriso/xorrisoburn.c | 32 +++++++++++--------- 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/libisoburn/trunk/xorriso/xorriso.1 b/libisoburn/trunk/xorriso/xorriso.1 index 7ac38ab6..8941a6d8 100644 --- a/libisoburn/trunk/xorriso/xorriso.1 +++ b/libisoburn/trunk/xorriso/xorriso.1 @@ -2,7 +2,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 "Dec 16, 2008" +.TH XORRISO 1 "Jan 22, 2008" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -622,6 +622,13 @@ image. This has eventually to be done before specifying -dev , -indev or When loading the written image after -commit the setting of -out_charset will be copied to -in_charset. .TP +\fB\-acl\fR "on"|"off" +Enable or disable processing of ACLs. +If enabled then xorriso will obtain ACLs from disk file objects, +store ACLs in the ISO image using the libisofs specific AAIP format, +load AAIP data from ISO images, and restore ACLs to disk files when +extracting them from ISO images. +.TP \fB\-rom_toc_scan\fR "on"|"off"[:"emul_on"|"emul_off"] Read-only drives do not tell the actual media type but show any media as ROM (e.g. as DVD-ROM). The session history of MMC multi-session media might @@ -1400,6 +1407,7 @@ permissible. .B Settings for result writing: .TP Rock Ridge info will be generated by the program unconditionally. +ACL will be written according to the setting of option -acl. .TP \fB\-joliet\fR "on"|"off" If enabled by "on", generate Joliet info additional to Rock Ridge info. @@ -1976,6 +1984,12 @@ Output format resembles shell command ls -ln. Like -lsdx but also listing some of the file attributes. Output format resembles shell command ls -dln. .TP +\fB\-getfacl\fR iso_rr_pattern [***] +Print the access permissions of the given files in the ISO image using the +format of shell command getfacl. If a file has no ACL then it gets fabricated +from the -chmod settings. A file may have a real ACL if it was introduced into +the ISO image while option -acl was set to "on". +.TP \fB\-du\fR iso_rr_pattern [***] Recursively list size of directories and files in the ISO image which match one of the patterns. diff --git a/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index 9b06aaeb..e0154815 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2009.01.22.143253" +#define Xorriso_timestamP "2009.01.22.152252" diff --git a/libisoburn/trunk/xorriso/xorrisoburn.c b/libisoburn/trunk/xorriso/xorrisoburn.c index e196ca95..683a2fe2 100644 --- a/libisoburn/trunk/xorriso/xorrisoburn.c +++ b/libisoburn/trunk/xorriso/xorrisoburn.c @@ -2897,25 +2897,27 @@ int Xorriso_restore_properties(struct XorrisO *xorriso, char *disk_path, #ifdef Xorriso_with_aaiP - ret= iso_node_get_acl_text(node, &text, 16); - if(ret < 0) { - strcpy(xorriso->info_text, "Error with obtaining ACL for "); - Text_shellsafe(disk_path, xorriso->info_text, 1); - Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); - {ret= 0; goto ex;} - } - if(text != NULL) { - ret= iso_local_set_acl_text(disk_path, text, 0); - if(ret == -1) { - sprintf(xorriso->info_text, - "Cannot change ACL of disk file %s", - Text_shellsafe(disk_path, sfe, 0)); - Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0); + if(xorriso->do_aaip & 2) { + ret= iso_node_get_acl_text(node, &text, 16); + if(ret < 0) { + strcpy(xorriso->info_text, "Error with obtaining ACL for "); + Text_shellsafe(disk_path, xorriso->info_text, 1); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); {ret= 0; goto ex;} } + if(text != NULL) { + ret= iso_local_set_acl_text(disk_path, text, 0); + if(ret == -1) { + sprintf(xorriso->info_text, + "Cannot change ACL of disk file %s", + Text_shellsafe(disk_path, sfe, 0)); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",0); + {ret= 0; goto ex;} + } + } } -#endif +#endif /* Xorriso_with_aaiP */ if(flag&1) {ret= 1; goto ex;}