diff --git a/libisofs/buffer.c b/libisofs/buffer.c index 5c23ed7..e3ef566 100644 --- a/libisofs/buffer.c +++ b/libisofs/buffer.c @@ -16,9 +16,8 @@ * */ -/* ts A90218 : libburn.h is not necessarily available */ /* - # include "libburn/libburn.h" + Use the copy of the struct burn_source definition in libisofs.h */ #define LIBISOFS_WITHOUT_LIBBURN yes #include "libisofs.h" diff --git a/libisofs/builder.c b/libisofs/builder.c index 78a5a3f..a1a082c 100644 --- a/libisofs/builder.c +++ b/libisofs/builder.c @@ -1,29 +1,25 @@ /* * Copyright (c) 2007 Vreixo Formoso + * Copyright (c) 2009 Thomas Schmitt * * This file is part of the libisofs project; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. See COPYING file for details. */ -/* ts A90116 : libisofs.h eventually defines aaip_xinfo_func */ +/* libisofs.h defines aaip_xinfo_func */ #include "libisofs.h" #include "builder.h" #include "node.h" #include "fsource.h" - -/* ts A90121 : needed for image->builder_ignore_acl */ #include "image.h" +#include "aaip_0_2.h" #include #include #include -/* ts A90207 */ -#ifdef Libisofs_with_aaiP -#include "aaip_0_2.h" -#endif void iso_node_builder_ref(IsoNodeBuilder *builder) @@ -97,11 +93,8 @@ int default_create_node(IsoNodeBuilder *builder, IsoImage *image, struct stat info; IsoNode *new; char *name; - -#ifdef Libisofs_with_aaiP unsigned char *aa_string; char *a_text = NULL, *d_text = NULL; -#endif /* Libisofs_with_aaiP */ if (builder == NULL || src == NULL || node == NULL) { return ISO_NULL_POINTER; @@ -191,9 +184,6 @@ int default_create_node(IsoNodeBuilder *builder, IsoImage *image, iso_node_set_ctime(new, info.st_ctime); iso_node_set_uid(new, info.st_uid); -#ifdef Libisofs_with_aaiP - - /* ts A90207 */ /* Eventually set S_IRWXG from ACL */ if (image->builder_ignore_acl) { ret = iso_file_source_get_aa_string(src, &aa_string, 4); @@ -207,8 +197,7 @@ int default_create_node(IsoNodeBuilder *builder, IsoImage *image, 1 << 15); /* free ACL texts */ } - /* ts A90115 */ - /* obtain ownership of eventual AA string */ + /* Obtain ownership of eventual AA string */ ret = iso_file_source_get_aa_string(src, &aa_string, 1 | (image->builder_ignore_acl << 1) | (image->builder_ignore_ea << 2 )); @@ -218,8 +207,6 @@ int default_create_node(IsoNodeBuilder *builder, IsoImage *image, return ret; } -#endif /* Libisofs_with_aaiP */ - *node = new; return ISO_SUCCESS; diff --git a/libisofs/ecma119.c b/libisofs/ecma119.c index b0ac1a4..e80441a 100644 --- a/libisofs/ecma119.c +++ b/libisofs/ecma119.c @@ -1,15 +1,15 @@ /* * Copyright (c) 2007 Vreixo Formoso * Copyright (c) 2007 Mario Danic + * Copyright (c) 2009 Thomas Schmitt * * This file is part of the libisofs project; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. See COPYING file for details. */ -/* ts A90218 : libburn.h is not necessarily available */ /* - # include "libburn/libburn.h" + Use the copy of the struct burn_source definition in libisofs.h */ #define LIBISOFS_WITHOUT_LIBBURN yes #include "libisofs.h" @@ -887,10 +887,7 @@ int ecma119_image_new(IsoImage *src, IsoWriteOpts *opts, Ecma119Image **img) target->rockridge = opts->rockridge; target->joliet = opts->joliet; target->iso1999 = opts->iso1999; - - /* ts A90122 */ target->aaip = opts->aaip; - target->always_gmt = opts->always_gmt; target->ino = 0; target->omit_version_numbers = opts->omit_version_numbers @@ -1520,7 +1517,6 @@ int iso_write_opts_set_rrip_version_1_10(IsoWriteOpts *opts, int oldvers) return ISO_SUCCESS; } -/* ts A90125 */ int iso_write_opts_set_aaip_susp_1_10(IsoWriteOpts *opts, int oldvers) { if (opts == NULL) { diff --git a/libisofs/ecma119.h b/libisofs/ecma119.h index d60d00b..f11c32e 100644 --- a/libisofs/ecma119.h +++ b/libisofs/ecma119.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2007 Vreixo Formoso + * Copyright (c) 2009 Thomas Schmitt * * This file is part of the libisofs project; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 as @@ -42,7 +43,6 @@ struct iso_write_opts { unsigned int joliet :1; unsigned int iso1999 :1; - /* ts A90122 */ unsigned int aaip :1; /* whether to write eventual ACL and EAs */ /* allways write timestamps in GMT */ @@ -115,7 +115,6 @@ struct iso_write_opts { */ unsigned int rrip_version_1_10 :1; - /* ts A90125 */ /** * Write AAIP as extension according to SUSP 1.10 rather than SUSP 1.12. * I.e. without announcing it by an ER field and thus without the need @@ -262,7 +261,6 @@ struct ecma119_image unsigned int eltorito :1; unsigned int iso1999 :1; - /* ts A90122 */ unsigned int aaip :1; /* whether to write eventual ACLs and EAs */ /* allways write timestamps in GMT */ @@ -285,7 +283,6 @@ struct ecma119_image /** Write old fashioned RRIP-1.10 rather than RRIP-1.12 */ unsigned int rrip_version_1_10 :1; - /* ts A90125 */ /* Write AAIP as extension according to SUSP 1.10 rather than SUSP 1.12. */ unsigned int aaip_susp_1_10 :1; diff --git a/libisofs/fs_image.c b/libisofs/fs_image.c index 01d5474..995934f 100644 --- a/libisofs/fs_image.c +++ b/libisofs/fs_image.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2007 Vreixo Formoso + * Copyright (c) 2009 Thomas Schmitt * * This file is part of the libisofs project; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 as @@ -18,10 +19,7 @@ #include "image.h" #include "tree.h" #include "eltorito.h" - -#ifdef Libisofs_with_aaiP #include "aaip_0_2.h" -#endif #include #include @@ -61,11 +59,7 @@ struct iso_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 */ - -#ifdef Libisofs_with_aaiP - /* ts A90121 */ - unsigned int noaaip : 1; /* Do not read AAIP extension for EA and ACL */ -#endif /* Libisofs_with_aaiP */ + unsigned int noaaip : 1; /* Do not read AAIP extension for xattr and ACL */ /** * When both Joliet and RR extensions are present, the RR tree is used. @@ -222,9 +216,6 @@ typedef struct /** If ISO 9660:1999 is available on image */ unsigned int iso1999 : 1; -#ifdef Libisofs_with_aaiP - /* ts A90121 */ - /** Whether AAIP info shall be loaded if it is present. * 1 = yes , 0 = no */ @@ -235,8 +226,6 @@ typedef struct */ int aaip_version; -#endif /* ! Libisofs_with_aaiP */ - /** * Number of blocks of the volume, as reported in the PVM. */ @@ -290,9 +279,6 @@ struct image_fs_data off_t offset; } data; -#ifdef Libisofs_with_aaiP - /* ts A90114 */ - /** * malloc() storage for the string of AA fields which represent * ACLs and XFS-style Extended Attributes. (Not to be confused with @@ -300,9 +286,6 @@ struct image_fs_data */ unsigned char *aa_string; -#endif /* Libisofs_with_aaiP */ - - }; struct child_list @@ -945,21 +928,12 @@ void ifs_free(IsoFileSource *src) free(data->sections); free(data->name); - -#ifdef Libisofs_with_aaiP - /* ts A90115 */ - if (data->aa_string != NULL) free(data->aa_string); - -#endif /* Libisofs_with_aaiP */ - free(data); } -#ifdef Libisofs_with_aaiP - static int ifs_get_aa_string(IsoFileSource *src, unsigned char **aa_string, int flag) { @@ -981,17 +955,10 @@ int ifs_get_aa_string(IsoFileSource *src, unsigned char **aa_string, int flag) return 1; } -#endif /* Libisofs_with_aaiP */ - IsoFileSourceIface ifs_class = { -#ifdef Libisofs_with_aaiP 1, /* version */ -#else - 0, /* version */ -#endif - ifs_get_path, ifs_get_name, ifs_lstat, @@ -1004,12 +971,8 @@ IsoFileSourceIface ifs_class = { ifs_readlink, ifs_get_filesystem, ifs_free, - ifs_lseek - -#ifdef Libisofs_with_aaiP - , + ifs_lseek, ifs_get_aa_string -#endif }; @@ -1082,16 +1045,10 @@ int iso_file_source_new_ifs(IsoImageFilesystem *fs, IsoFileSource *parent, uint32_t relocated_dir = 0; -#ifdef Libisofs_with_aaiP - - /* ts A90115 */ unsigned char *aa_string = NULL; size_t aa_size = 0, aa_len = 0, prev_field = 0; int aa_done = 0; -#endif /* Libisofs_with_aaiP */ - - if (fs == NULL || fs->data == NULL || record == NULL || src == NULL) { return ISO_NULL_POINTER; } @@ -1332,10 +1289,6 @@ int iso_file_source_new_ifs(IsoImageFilesystem *fs, IsoFileSource *parent, } continue; - -#ifdef Libisofs_with_aaiP - /* ts A90115 */ - /* Need to read AA in any case so it is available for S_IRWXG mapping in case that fsdata->aaip_load != 1 */ @@ -1350,10 +1303,7 @@ int iso_file_source_new_ifs(IsoImageFilesystem *fs, IsoFileSource *parent, continue; } -#endif /* Libisofs_with_aaiP */ - - -/* ts A90112 : this message is inflationary */ +/* This message is inflationary */ /* } else { ret = iso_msg_submit(fsdata->msgid, ISO_SUSP_UNHANDLED, 0, @@ -1609,14 +1559,8 @@ int iso_file_source_new_ifs(IsoImageFilesystem *fs, IsoFileSource *parent, } ifsdata->info = atts; ifsdata->name = name; - -#ifdef Libisofs_with_aaiP - ifsdata->aa_string = aa_string; -#endif /* Libisofs_with_aaiP */ - - /* save extents */ ifsdata->sections = realloc(ifsdata->sections, (1 + ifsdata->nsections) * sizeof(struct iso_file_section)); @@ -1983,26 +1927,17 @@ int read_root_susp_entries(_ImageFsData *data, uint32_t block) (strncmp((char*)sue->data.ER.ext_id, "AAIP_0002", 9) == 0 || strncmp((char*)sue->data.ER.ext_id, "AAIP_0100", 9) == 0)) { - /* ts A90113 : tolerate AAIP ER even if not supported */ + /* Tolerate AAIP ER even if not supported */ iso_msg_debug(data->msgid, "Suitable AAIP ER found."); -#ifdef Libisofs_with_aaiP - if (((char*)sue->data.ER.ext_id)[6] == '1') data->aaip_version = 100; else data->aaip_version = 2; if (!data->aaip_load) iso_msg_submit(data->msgid, ISO_AAIP_IGNORED, 0, - "Identifier for extension AAIP found, but loading is not enabled."); - -#else /* Libisofs_with_aaiP */ - - iso_msg_submit(data->msgid, ISO_AAIP_IGNORED, 0, - "Identifier for future extension AAIP found and ignored."); - -#endif /* ! Libisofs_with_aaiP */ + "Identifier for extension AAIP found, but loading is not enabled."); } else { ret = iso_msg_submit(data->msgid, ISO_SUSP_MULTIPLE_ER, 0, @@ -2170,16 +2105,9 @@ int iso_image_filesystem_new(IsoDataSource *src, struct iso_read_opts *opts, data->file_mode = opts->file_mode & ~S_IFMT; data->dir_mode = opts->dir_mode & ~S_IFMT; data->msgid = msgid; - -#ifdef Libisofs_with_aaiP - /* ts A90121 */ - data->aaip_load = !opts->noaaip; data->aaip_version = -1; -#endif /* Libisofs_with_aaiP */ - - /* ??? ts Nov 25 2008 : Shouldn't this go to library initialization or even to app ? */ @@ -2385,10 +2313,7 @@ int image_builder_create_node(IsoNodeBuilder *builder, IsoImage *image, IsoNode *new; char *name; ImageFileSourceData *data; - -#ifdef Libisofs_with_aaiP unsigned char *aa_string; -#endif /* Libisofs_with_aaiP */ if (builder == NULL || src == NULL || node == NULL || src->data == NULL) { return ISO_NULL_POINTER; @@ -2560,10 +2485,7 @@ int image_builder_create_node(IsoNodeBuilder *builder, IsoImage *image, new->next = NULL; *node = new; -#ifdef Libisofs_with_aaiP - /* ts A90115 */ - - /* obtain ownership of eventual AA string */ + /* Obtain ownership of eventual AA string */ ret = iso_file_source_get_aa_string(src, &aa_string, 1); if (ret == 1 && aa_string != NULL) { _ImageFsData *fsdata = data->fs->data; @@ -2575,7 +2497,6 @@ int image_builder_create_node(IsoNodeBuilder *builder, IsoImage *image, return ret; } else { - /* ts A90208 */ /* Look for ACL and perform S_IRWXG mapping */ if (aa_string != NULL) iso_aa_get_acl_text(aa_string, info.st_mode, &a_text, &d_text, @@ -2589,9 +2510,6 @@ int image_builder_create_node(IsoNodeBuilder *builder, IsoImage *image, aaip_xinfo_func(aa_string, 1); } } - -#endif /* Libisofs_with_aaiP */ - return ISO_SUCCESS; } @@ -2966,14 +2884,8 @@ int iso_read_opts_new(IsoReadOpts **opts, int profile) ropts->file_mode = 0444; ropts->dir_mode = 0555; - -#ifdef Libisofs_with_aaiP - /* ts A90121 */ - ropts->noaaip= 1; -#endif /* Libisofs_with_aaiP */ - *opts = ropts; return ISO_SUCCESS; } @@ -3024,22 +2936,15 @@ int iso_read_opts_set_no_iso1999(IsoReadOpts *opts, int noiso1999) return ISO_SUCCESS; } -/* ts A90121 */ int iso_read_opts_set_no_aaip(IsoReadOpts *opts, int noaaip) { if (opts == NULL) { return ISO_NULL_POINTER; } - -#ifdef Libisofs_with_aaiP opts->noaaip = noaaip ? 1 : 0; -#endif /* Libisofs_with_aaiP */ - return ISO_SUCCESS; } - - int iso_read_opts_set_preferjoliet(IsoReadOpts *opts, int preferjoliet) { if (opts == NULL) { diff --git a/libisofs/fs_local.c b/libisofs/fs_local.c index ddb55c0..d188550 100644 --- a/libisofs/fs_local.c +++ b/libisofs/fs_local.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2007 Vreixo Formoso + * Copyright (c) 2009 Thomas Schmitt * * This file is part of the libisofs project; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 as @@ -10,15 +11,9 @@ * Filesystem/FileSource implementation to access the local filesystem. */ -/* ts A90116 : libisofs.h eventually defines Libisofs_with_aaiP */ -#include "libisofs.h" - #include "fsource.h" #include "util.h" - -#ifdef Libisofs_with_aaiP #include "aaip_0_2.h" -#endif #include #include @@ -475,10 +470,6 @@ void lfs_free(IsoFileSource *src) } - -#ifdef Libisofs_with_aaiP -/* ts A90116 */ - static int lfs_get_aa_string(IsoFileSource *src, unsigned char **aa_string, int flag) { @@ -528,17 +519,10 @@ ex:; return ret; } -#endif /* Libisofs_with_aaiP */ - IsoFileSourceIface lfs_class = { -#ifdef Libisofs_with_aaiP 1, /* version */ -#else - 0, /* version */ -#endif - lfs_get_path, lfs_get_name, lfs_lstat, @@ -551,12 +535,8 @@ IsoFileSourceIface lfs_class = { lfs_readlink, lfs_get_filesystem, lfs_free, - lfs_lseek - -#ifdef Libisofs_with_aaiP - , + lfs_lseek, lfs_get_aa_string -#endif }; @@ -770,55 +750,29 @@ int iso_local_filesystem_new(IsoFilesystem **fs) } -/* ts A90127 */ int iso_local_get_acl_text(char *disk_path, char **text, int flag) { - -#ifdef Libisofs_with_aaiP - int ret; ret = aaip_get_acl_text(disk_path, text, flag & (1 | 16 | 32 | (1 << 15))); return ret; - -#else /* Libisofs_with_aaiP */ - - return 0; - -#endif /* ! Libisofs_with_aaiP */ - } -/* ts A90118 */ int iso_local_set_acl_text(char *disk_path, char *text, int flag) { - -#ifdef Libisofs_with_aaiP - int ret; ret = aaip_set_acl_text(disk_path, text, flag & (1 | 32)); if (ret < 0) return ISO_AAIP_NO_SET_LOCAL; return ret; - -#else /* Libisofs_with_aaiP */ - - return 0; - -#endif /* ! Libisofs_with_aaiP */ - } -/* ts A90131 */ int iso_local_get_attrs(char *disk_path, size_t *num_attrs, char ***names, size_t **value_lengths, char ***values, int flag) { - -#ifdef Libisofs_with_aaiP - int ret; ret = aaip_get_attr_list(disk_path, @@ -827,26 +781,12 @@ int iso_local_get_attrs(char *disk_path, size_t *num_attrs, char ***names, if (ret <= 0) return ISO_AAIP_NO_GET_LOCAL; return 1; - -#else /* Libisofs_with_aaiP */ - - *num_attrs = 0; - *names = NULL; - *value_lengths = NULL; - *values = NULL; - return 1; - -#endif /* ! Libisofs_with_aaiP */ - } -/* ts A90131 */ int iso_local_set_attrs(char *disk_path, size_t num_attrs, char **names, size_t *value_lengths, char **values, int flag) { - -#ifdef Libisofs_with_aaiP int ret; ret = aaip_set_attr_list(disk_path, num_attrs, names, value_lengths, @@ -859,27 +799,14 @@ int iso_local_set_attrs(char *disk_path, size_t num_attrs, char **names, return ISO_AAIP_NO_SET_LOCAL; } return 1; - -#else /* Libisofs_with_aaiP */ - - if (num_attrs > 0) - return ISO_AAIP_NOT_ENABLED; - return 1; - -#endif /* ! Libisofs_with_aaiP */ - } -/* ts A90207 */ int iso_local_get_perms_wo_acl(char *disk_path, mode_t *st_mode, int flag) { struct stat stbuf; int ret; - -#ifdef Libisofs_with_aaiP char *a_text = NULL; -#endif if (flag & 32) ret = stat(disk_path, &stbuf); @@ -888,17 +815,11 @@ int iso_local_get_perms_wo_acl(char *disk_path, mode_t *st_mode, int flag) if (ret == -1) return -1; *st_mode = stbuf.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO); - -#ifdef Libisofs_with_aaiP - ret = iso_local_get_acl_text(disk_path, &a_text, 16 | (flag & 32)); if (a_text != NULL) { aaip_cleanout_st_mode(a_text, st_mode, 4 | 16); iso_local_get_acl_text(disk_path, &a_text, 1 << 15); /* free a_text */ } - -#endif /* Libisofs_with_aaiP */ - return 1; } diff --git a/libisofs/fsource.c b/libisofs/fsource.c index 603e66f..fffb198 100644 --- a/libisofs/fsource.c +++ b/libisofs/fsource.c @@ -117,7 +117,6 @@ IsoFilesystem* iso_file_source_get_filesystem(IsoFileSource *src) } -/* ts A90115 */ inline int iso_file_source_get_aa_string(IsoFileSource *src, unsigned char **aa_string, int flag) diff --git a/libisofs/libisofs.h b/libisofs/libisofs.h index 5aceaab..c6e0737 100644 --- a/libisofs/libisofs.h +++ b/libisofs/libisofs.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2007-2008 Vreixo Formoso, Mario Danic + * Copyright (c) 2009 Thomas Schmitt * * This file is part of the libisofs project; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 as @@ -472,7 +473,6 @@ struct iso_filesystem */ struct IsoFileSource_Iface { - /* ts A90114 */ /** * Tells the version of the interface: * Version 0 provides functions up to (*lseek)(). @@ -683,11 +683,10 @@ struct IsoFileSource_Iface /* Add-ons of .version 1 begin here */ - /* ts A90114 */ /** * Valid only if .version is > 0. See above. - * Get the AA string with encoded ACL and XFS-style Extended Attributes - * xattr. (Not to be confused with ECMA-119 Extended Attributes). + * Get the AA string with encoded ACL and xattr. + * (Not to be confused with ECMA-119 Extended Attributes). * * bit1 and bit2 of flag should be implemented so that freshly fetched * info does not include the undesired ACL or xattr. Nevertheless if the @@ -935,12 +934,11 @@ char *iso_get_local_charset(int flag); int iso_image_new(const char *name, IsoImage **image); -/* ts A90121 */ /** - * Control whether ACL and XFS-style Extended Attributes xattr will be - * imported from external filesystems (typically the local POSIX filesystem) - * when new nodes get inserted. If enabled by iso_write_opts_set_aaip() they - * will later be written into the image as AAIP extension fields. + * Control whether ACL and xattr will be imported from external filesystems + * (typically the local POSIX filesystem) when new nodes get inserted. If + * enabled by iso_write_opts_set_aaip() they will later be written into the + * image as AAIP extension fields. * * A change of this setting does neither affect existing IsoNode objects * nor the way how ACL and xattr are handled when loading an ISO image. @@ -1061,7 +1059,7 @@ int iso_lib_is_compatible(int major, int minor, int micro); * ---> 1 [BACKUP] * POSIX compatibility for backup. Simple settings, ISO level is set to * 3 and RR extensions are enabled. Useful for backup purposes. - * Note that ACL and XFS-style xattr are not enabled by default. + * Note that ACL and xattr are not enabled by default. * If you enable them, expect them not to show up in the mounted image. * They will have to be retrieved by libisofs applications like xorriso. * ---> 2 [DISTRIBUTION] @@ -1145,10 +1143,8 @@ int iso_write_opts_set_joliet(IsoWriteOpts *opts, int enable); */ int iso_write_opts_set_iso1999(IsoWriteOpts *opts, int enable); -/* ts A90122 */ /** - * Control writing of AAIP informations for ACL and XFS-style Extended - * Attributes xattr. + * Control writing of AAIP informations for ACL and xattr. * For importing ACL and xattr when inserting nodes from external filesystems * (e.g. the local POSIX filesystem) see iso_image_set_ignore_aclea(). * For loading of this information from images see iso_read_opts_set_no_aaip(). @@ -1251,7 +1247,6 @@ int iso_write_opts_set_joliet_longer_paths(IsoWriteOpts *opts, int allow); */ int iso_write_opts_set_rrip_version_1_10(IsoWriteOpts *opts, int oldvers); -/* ts A90125 */ /** * Write AAIP as extension according to SUSP 1.10 rather than SUSP 1.12. * I.e. without announcing it by an ER field and thus without the need @@ -1586,8 +1581,8 @@ int iso_read_opts_set_no_joliet(IsoReadOpts *opts, int nojoliet); int iso_read_opts_set_no_iso1999(IsoReadOpts *opts, int noiso1999); /** - * Control reading of AAIP informations about ACL and XFS-style Extended - * Attributes xattr when loading existing images. + * Control reading of AAIP informations about ACL and xattr when loading + * existing images. * For importing ACL and xattr when inserting nodes from external filesystems * (e.g. the local POSIX filesystem) see iso_image_set_ignore_aclea(). * For eventual writing of this information see iso_write_opts_set_aaip(). @@ -3752,7 +3747,7 @@ int iso_file_source_readlink(IsoFileSource *src, char *buf, size_t bufsiz); /** - * Get the AA string with encoded ACL and XFS-style Extended Attributes xattr. + * Get the AA string with encoded ACL and xattr. * (Not to be confused with ECMA-119 Extended Attributes). * @param src The file source object to be inquired. * @param aa_string Returns a pointer to the AA string data. If no AA @@ -4204,37 +4199,29 @@ void iso_stream_get_id(IsoStream *stream, unsigned int *fs_id, dev_t *dev_id, #define ISO_DATA_SOURCE_FATAL 0xF030FCFF -/* ts A90121 */ /** AAIP info with ACL or xattr in ISO image will be ignored (NOTE, HIGH, -336) */ #define ISO_AAIP_IGNORED 0xB030FEB0 -/* ts A90130 */ /** Error with decoding ACL from AAIP info (FAILURE, HIGH, -337) */ #define ISO_AAIP_BAD_ACL 0xE830FEAF -/* ts A90130 */ /** Error with encoding ACL for AAIP (FAILURE, HIGH, -338) */ #define ISO_AAIP_BAD_ACL_TEXT 0xE830FEAE -/* ts A90130 */ /** AAIP processing for ACL or xattr not enabled at compile time (FAILURE, HIGH, -339) */ #define ISO_AAIP_NOT_ENABLED 0xE830FEAD -/* ts A90130 */ /** Error with decoding AAIP info for ACL or xattr (FAILURE, HIGH, -340) */ #define ISO_AAIP_BAD_AASTRING 0xE830FEAC -/* ts A90131 */ /** Error with reading ACL or xattr from local file (FAILURE, HIGH, -341) */ #define ISO_AAIP_NO_GET_LOCAL 0xE830FEAB -/* ts A90131 */ /** Error with attaching ACL or xattr to local file (FAILURE, HIGH, -342) */ #define ISO_AAIP_NO_SET_LOCAL 0xE830FEAA -/* ts A90206 */ /** Unallowed attempt to set an xattr with non-userspace name (FAILURE, HIGH, -343) */ #define ISO_AAIP_NON_USER_NAME 0xE830FEA9 @@ -4242,18 +4229,12 @@ void iso_stream_get_id(IsoStream *stream, unsigned int *fs_id, dev_t *dev_id, /* --------------------------------- AAIP --------------------------------- */ -/* ts A90112 : Enable experiments about xattr and ACL -*/ -#define Libisofs_with_aaiP yes - - -/* ts A90114 */ /** * Function to identify and manage AA strings as xinfo of IsoNode. * * An AA string contains the Attribute List with the xattr and ACL of a node * in the image tree. It is formatted according to libisofs specification - * AAIP-0.2 and ready to be written into the System Use Area resp. Continuation + * AAIP-1.0 and ready to be written into the System Use Area resp. Continuation * Area of a directory entry in an ISO image. * * Applications are not supposed to manipulate AA strings directly. They should @@ -4272,7 +4253,6 @@ void iso_stream_get_id(IsoStream *stream, unsigned int *fs_id, dev_t *dev_id, int aaip_xinfo_func(void *data, int flag); -/* ts A90130 */ /** * Get the eventual ACLs which are associated with the node. * The result will be in "long" text form as of man acl resp. acl_to_text(). @@ -4306,7 +4286,6 @@ int iso_node_get_acl_text(IsoNode *node, char **access_text, char **default_text, int flag); -/* ts A90130 */ /** * Set the ACLs of the given node to the lists in parameters access_text and * default_text or delete them. @@ -4341,7 +4320,6 @@ int iso_node_get_acl_text(IsoNode *node, int iso_node_set_acl_text(IsoNode *node, char *access_text, char *default_text, int flag); -/* ts A90206 */ /** * Like iso_node_get_permissions but reflecting ACL entry "group::" in S_IRWXG * rather than ACL entry "mask::". This is necessary if the permissions of a @@ -4358,10 +4336,8 @@ int iso_node_set_acl_text(IsoNode *node, mode_t iso_node_get_perms_wo_acl(const IsoNode *node); -/* ts A90131 */ /** - * Get the list of XFS-style Extended Attributes xattr which is associated - * with the node. + * Get the list of xattr which is associated with the node. * The resulting data may finally be disposed by a call to this function * with flag bit15 set, or its components may be freed one-by-one. * The following values are either NULL or malloc() memory: @@ -4401,10 +4377,8 @@ mode_t iso_node_get_perms_wo_acl(const IsoNode *node); int iso_node_get_attrs(IsoNode *node, size_t *num_attrs, char ***names, size_t **value_lengths, char ***values, int flag); -/* ts A90131 */ /** - * Set the list of XFS-style Extended Attributes xattr which is associated - * with the node. + * Set the list of xattr which is associated with the node. * The data get copied so that you may dispose your input data afterwards. * * If enabled by flag bit0 then the submitted list of attributes will not only @@ -4442,16 +4416,17 @@ int iso_node_set_attrs(IsoNode *node, size_t num_attrs, char **names, size_t *value_lengths, char **values, int flag); -/* -------- This is an interface to the ACL of the local filesystem -------- */ +/* ----- This is an interface to ACL and xattr of the local filesystem ----- */ + /** - * libisofs has an internal system dependent adapter to ACL operations. For - * the sake of completeness and simplicity it exposes this functionality to - * its applications which might want to get and set ACLs from local files. + * libisofs has an internal system dependent adapter to ACL and xattr + * operations. For the sake of completeness and simplicity it exposes this + * functionality to its applications which might want to get and set ACLs + * from local files. */ -/* ts A90127 */ /** - * Get the ACL of the given file in the local filesystem in long text form. + * Get an ACL of the given file in the local filesystem in long text form. * * @param disk_path * Path to the file @@ -4461,7 +4436,7 @@ int iso_node_set_attrs(IsoNode *node, size_t num_attrs, char **names, * with bit15 set. * @param flag * Bitfield for control purposes - * bit0= get default ACL rather than access ACL + * bit0= get "default" ACL rather than "access" ACL * bit4= set *text = NULL and return 2 * if the ACL matches st_mode permissions. * bit5= in case of symbolic link: inquire link target @@ -4479,7 +4454,6 @@ int iso_node_set_attrs(IsoNode *node, size_t num_attrs, char **names, int iso_local_get_acl_text(char *disk_path, char **text, int flag); -/* ts A90118 */ /** * Set the ACL of the given file in the local filesystem to a given list * in long text form. @@ -4490,7 +4464,7 @@ int iso_local_get_acl_text(char *disk_path, char **text, int flag); * The input text (0 terminated, ACL long text form) * @param flag * Bitfield for control purposes - * bit0= set default ACL rather than access ACL + * bit0= set "default" ACL rather than "access" ACL * bit5= in case of symbolic link: manipulate link target * @return * > 0 ok @@ -4504,7 +4478,6 @@ int iso_local_get_acl_text(char *disk_path, char **text, int flag); int iso_local_set_acl_text(char *disk_path, char *text, int flag); -/* ts A90207 */ /** * Obtain permissions of a file in the local filesystem which shall reflect * ACL entry "group::" in S_IRWXG rather than ACL entry "mask::". This is @@ -4526,7 +4499,6 @@ int iso_local_set_acl_text(char *disk_path, char *text, int flag); int iso_local_get_perms_wo_acl(char *disk_path, mode_t *st_mode, int flag); -/* ts A90131 */ /** * Get xattr and non-trivial ACLs of the given file in the local filesystem. * The resulting data has finally to be disposed by a call to this function @@ -4564,7 +4536,6 @@ int iso_local_get_attrs(char *disk_path, size_t *num_attrs, char ***names, size_t **value_lengths, char ***values, int flag); -/* ts A90131 */ /** * Attach a list of xattr and ACLs to the given file in the local filesystem. * @@ -4600,7 +4571,6 @@ int iso_local_set_attrs(char *disk_path, size_t num_attrs, char **names, #ifdef LIBISOFS_WITHOUT_LIBBURN -/* ts A90218 */ /** This is a copy from the API of libburn-0.6.0 (under GPL). It is supposed to be as stable as any overall include of libburn.h. @@ -4609,6 +4579,10 @@ int iso_local_set_attrs(char *disk_path, size_t num_attrs, char **names, Libisofs does not need to be linked with libburn at all. But if it is linked with libburn then it must be libburn-0.4.2 or later. + + An application that provides own struct burn_source objects and does not + include libburn/libburn.h has to define LIBISOFS_WITHOUT_LIBBURN before + including libisofs/libisofs.h in order to make this copy available. */ @@ -4702,7 +4676,6 @@ struct burn_source { off_t (*get_size)(struct burn_source *); - /* ts A70125 : BROKE BINARY BACKWARD COMPATIBILITY AT libburn-0.3.1. */ /* @since 0.3.2 */ /** Program the reply of (*get_size) to a fixed value. It is advised to implement this by a attribute off_t fixed_size; in *data . @@ -4750,7 +4723,6 @@ struct burn_source { void *data; - /* ts A71222 : Supposed to be binary backwards compatible extension. */ /* @since 0.4.2 */ /** Valid only if above member .(*read)() is NULL. This indicates a version of struct burn_source younger than 0. diff --git a/libisofs/node.c b/libisofs/node.c index 58226a5..4f31335 100644 --- a/libisofs/node.c +++ b/libisofs/node.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2007 Vreixo Formoso + * Copyright (c) 2009 Thomas Schmitt * * This file is part of the libisofs project; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 as @@ -9,11 +10,7 @@ #include "libisofs.h" #include "node.h" #include "stream.h" - -#ifdef Libisofs_with_aaiP #include "aaip_0_2.h" -#endif - #include #include @@ -277,7 +274,6 @@ const char *iso_node_get_name(const IsoNode *node) return node->name; } -/* ts A90128 */ /** * See API function iso_node_set_permissions() * @@ -290,17 +286,12 @@ int iso_node_set_perms_internal(IsoNode *node, mode_t mode, int flag) node->mode = (node->mode & S_IFMT) | (mode & ~S_IFMT); -#ifdef Libisofs_with_aaiP - /* ts A90119 */ - /* If the node has ACL info : update ACL */ ret = 1; if (!(flag & 1)) ret = iso_node_set_acl_text(node, "", "", 2); return ret; -#endif - } /** @@ -1352,7 +1343,6 @@ int iso_node_new_special(char *name, mode_t mode, dev_t dev, } -/* ts A90202 */ /* @param flag bit0= inverse: cleanout everything but del_name */ static @@ -1380,9 +1370,6 @@ int attrs_cleanout_name(char *del_name, size_t *num_attrs, char **names, } -#ifdef Libisofs_with_aaiP - -/* ts A90207 */ /** * Backend of iso_node_get_attrs() with parameter node replaced by the * AA string from where to get the attribute list. @@ -1459,16 +1446,10 @@ ex:; return ret; } -#endif /* ! Libisofs_with_aaiP */ - -/* ts A90116 */ int iso_node_get_attrs(IsoNode *node, size_t *num_attrs, char ***names, size_t **value_lengths, char ***values, int flag) { - -#ifdef Libisofs_with_aaiP - void *xipt; unsigned char *aa_string = NULL; int ret; @@ -1489,21 +1470,9 @@ int iso_node_get_attrs(IsoNode *node, size_t *num_attrs, ret = iso_aa_get_attrs(aa_string, num_attrs, names, value_lengths, values, flag); return ret; - -#else /* Libisofs_with_aaiP */ - - *num_attrs = 0; - *names = NULL; - *value_lengths = NULL; - *values = NULL; - -#endif /* ! Libisofs_with_aaiP */ - - return 1; } -/* ts A90205 */ /* Enlarge attribute list */ static int attr_enlarge_list(char ***names, size_t **value_lengths, char ***values, @@ -1527,7 +1496,6 @@ int attr_enlarge_list(char ***names, size_t **value_lengths, char ***values, } -/* ts A90205 */ /* Merge attribute list of node and given new attribute list into attribute list returned by m_* parameters. The m_* paramters have finally to be freed by a call with bit15 set. @@ -1668,13 +1636,9 @@ int iso_node_merge_xattr(IsoNode *node, size_t num_attrs, char **names, } -/* ts A90121 */ int iso_node_set_attrs(IsoNode *node, size_t num_attrs, char **names, size_t *value_lengths, char **values, int flag) { - -#ifdef Libisofs_with_aaiP - int ret, acl_saved = 0; size_t sret, result_len, m_num = 0, *m_value_lengths = NULL, i; unsigned char *result; @@ -1745,18 +1709,9 @@ ex:; iso_node_merge_xattr(node, num_attrs, names, value_lengths, values, &m_num, &m_names, &m_value_lengths, &m_values, 1 << 15); return ret; - -#else /* Libisofs_with_aaiP */ - - return ISO_AAIP_NOT_ENABLED; - -#endif /* ! Libisofs_with_aaiP */ - } -#ifdef Libisofs_with_aaiP - static int iso_decode_acl(unsigned char *v_data, size_t v_len, size_t *consumed, char **text, size_t *text_fill, int flag) @@ -1784,7 +1739,6 @@ int iso_decode_acl(unsigned char *v_data, size_t v_len, size_t *consumed, } -/* ts A90207 */ /** * Backend of iso_node_get_acl_text() with parameter node replaced by the * attribute list from where to get the ACL and by the associated st_mode @@ -1856,16 +1810,9 @@ bad_decode:; } -#endif /* ! Libisofs_with_aaiP */ - - -/* ts A90130 */ int iso_node_get_acl_text(IsoNode *node, char **access_text, char **default_text, int flag) { - -#ifdef Libisofs_with_aaiP - size_t num_attrs = 0, *value_lengths = NULL; char **names = NULL, **values = NULL; mode_t st_mode = 0; @@ -1886,20 +1833,9 @@ int iso_node_get_acl_text(IsoNode *node, iso_node_get_attrs(node, &num_attrs, &names, &value_lengths, &values, 1 << 15); /* free memory */ return ret; - -#else /* Libisofs_with_aaiP */ - - *access_text = *default_text = NULL; - return ISO_AAIP_NOT_ENABLED; - -#endif /* ! Libisofs_with_aaiP */ - } -#ifdef Libisofs_with_aaiP - -/* ts A90207 */ int iso_aa_get_acl_text(unsigned char *aa_string, mode_t st_mode, char **access_text, char **default_text, int flag) { @@ -1924,17 +1860,10 @@ ex:; return ret; } -#endif /* Libisofs_with_aaiP */ - - -/* ts A90130 */ int iso_node_set_acl_text(IsoNode *node, char *access_text, char *default_text, int flag) { - -#ifdef Libisofs_with_aaiP - size_t num_attrs = 0, *value_lengths = NULL, i, j, consumed; size_t a_text_fill = 0, d_text_fill = 0; size_t v_len, acl_len= 0; @@ -2109,24 +2038,11 @@ ex:; bad_decode:; ret = ISO_AAIP_BAD_ACL; goto ex; - -#else /* Libisofs_with_aaiP */ - - if (access_text != NULL || default_text != NULL) - return ISO_AAIP_NOT_ENABLED; - return 1; - -#endif /* ! Libisofs_with_aaiP */ - } -/* ts A90206 */ mode_t iso_node_get_perms_wo_acl(const IsoNode *node) { - -#ifdef Libisofs_with_aaiP - mode_t st_mode; int ret; char *a_text = NULL, *d_text = NULL; @@ -2140,12 +2056,5 @@ mode_t iso_node_get_perms_wo_acl(const IsoNode *node) ex:; iso_node_get_acl_text((IsoNode *) node, &a_text, &d_text, 1 << 15); return st_mode; - -#else /* Libisofs_with_aaiP */ - - return iso_node_get_permissions(node); - -#endif /* ! Libisofs_with_aaiP */ - } diff --git a/libisofs/node.h b/libisofs/node.h index 954a065..503fb81 100644 --- a/libisofs/node.h +++ b/libisofs/node.h @@ -332,7 +332,6 @@ void iso_dir_iter_unregister(IsoDirIter *iter); void iso_notify_dir_iters(IsoNode *node, int flag); -/* ts A90128 */ /** * See API function iso_node_set_permissions() * @@ -342,7 +341,6 @@ void iso_notify_dir_iters(IsoNode *node, int flag); int iso_node_set_perms_internal(IsoNode *node, mode_t mode, int flag); -/* ts A90207 */ /** * Like iso_node_get_acl_text() with param node replaced by aa_string and * st_mode from where to obtain the ACLs. All other parameter specs apply. diff --git a/libisofs/rockridge.c b/libisofs/rockridge.c index b3a6a65..896abb1 100644 --- a/libisofs/rockridge.c +++ b/libisofs/rockridge.c @@ -1,38 +1,27 @@ /* * Copyright (c) 2007 Vreixo Formoso * Copyright (c) 2007 Mario Danic + * Copyright (c) 2009 Thomas Schmitt * * This file is part of the libisofs project; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. See COPYING file for details. */ - -/* ts A90116 : libisofs.h eventually defines Libisofs_with_aaiP */ -#include "libisofs.h" - #include "rockridge.h" #include "node.h" #include "ecma119_tree.h" #include "writer.h" #include "messages.h" #include "image.h" - -#ifdef Libisofs_with_aaiP #include "aaip_0_2.h" -#endif #include -#ifdef Libisofs_with_aaiP - -/* ts A90125 */ static int susp_add_ES(Ecma119Image *t, struct susp_info *susp, int to_ce, int seqno); -#endif /* Libisofs_with_aaiP */ - static int susp_append(Ecma119Image *t, struct susp_info *susp, uint8_t *data) @@ -479,9 +468,6 @@ int rrip_add_SL(Ecma119Image *t, struct susp_info *susp, uint8_t **comp, } -#ifdef Libisofs_with_aaiP - -/* ts A90112 */ /* @param flag bit0= only account sizes in sua_free resp. ce_len parameters susp and data may be NULL in this case @@ -544,8 +530,6 @@ int aaip_add_AA(Ecma119Image *t, struct susp_info *susp, return ISO_SUCCESS; } -#endif /* Libisofs_with_aaiP */ - /** * Add a SUSP "ER" System Use Entry to identify the Rock Ridge specification. @@ -721,7 +705,6 @@ int susp_add_SP(Ecma119Image *t, struct susp_info *susp) } -/* ts A90125 */ /** * SUSP 1.12: [...] shall specify as an 8-bit number the Extension * Sequence Number of the extension specification utilized in the entries @@ -750,8 +733,6 @@ int susp_add_ES(Ecma119Image *t, struct susp_info *susp, int to_ce, int seqno) } -/* ts A90114 */ - int aaip_xinfo_func(void *data, int flag) { if (flag & 1) { @@ -761,7 +742,6 @@ int aaip_xinfo_func(void *data, int flag) } -/* ts A90117 */ /** * Compute SUA lentgth and eventual Continuation Area length of field NM and * eventually fields SL and AA. Because CA usage makes necessary the use of @@ -782,13 +762,9 @@ int susp_calc_nm_sl_aa(Ecma119Image *t, Ecma119Node *n, size_t space, { char *name; size_t namelen, su_mem, ce_mem; - -#ifdef Libisofs_with_aaiP - /* ts A90112 */ void *xipt; size_t num_aapt = 0, sua_free = 0; int ret; -#endif su_mem = *su_size; ce_mem = *ce; @@ -922,11 +898,8 @@ int susp_calc_nm_sl_aa(Ecma119Image *t, Ecma119Node *n, size_t space, } -#ifdef Libisofs_with_aaiP - /* ts A90112 */ - xipt = NULL; - /* obtain num_aapt from node */ + xipt = NULL; num_aapt = 0; if (t->aaip) { ret = iso_node_get_xinfo(n->node, aaip_xinfo_func, &xipt); @@ -942,9 +915,6 @@ int susp_calc_nm_sl_aa(Ecma119Image *t, Ecma119Node *n, size_t space, if (*ce > 0 && !(flag & 1)) goto unannounced_ca; } - -#endif /* Libisofs_with_aaiP */ - return 1; unannounced_ca:; @@ -972,13 +942,7 @@ size_t rrip_calc_len(Ecma119Image *t, Ecma119Node *n, int type, size_t space, size_t *ce) { size_t su_size; - -#ifdef Libisofs_with_aaiP - /* ts A90112 */ int ret; -#else /* Libisofs_with_aaiP */ - int ret; -#endif /* ! Libisofs_with_aaiP */ /* space min is 255 - 33 - 37 = 185 * At the same time, it is always an odd number, but we need to pad it @@ -990,15 +954,10 @@ size_t rrip_calc_len(Ecma119Image *t, Ecma119Node *n, int type, size_t space, su_size = 0; -#ifdef Libisofs_with_aaiP - - /* ts A90125 */ /* If AAIP enabled and announced by ER : account for 5 bytes of ES */; if (t->aaip && !t->aaip_susp_1_10) su_size += 5; -#endif /* Libisofs_with_aaiP */ - /* PX and TF, we are sure they always fit in SUA */ if (!t->rrip_version_1_10) { su_size += 44 + 26; @@ -1046,16 +1005,9 @@ size_t rrip_calc_len(Ecma119Image *t, Ecma119Node *n, int type, size_t space, */ su_size += 7 + 28; /* SP + CE */ *ce = 182; /* ER of RRIP */ - -#ifdef Libisofs_with_aaiP - /* ts A90113 */ - if (t->aaip) { *ce += 160; /* ER of AAIP */ } - -#endif /* Libisofs_with_aaiP */ - } } @@ -1111,13 +1063,9 @@ int rrip_get_susp_fields(Ecma119Image *t, Ecma119Node *n, int type, Ecma119Node *node; char *name = NULL; char *dest = NULL; - -#ifdef Libisofs_with_aaiP - /* ts A90112 */ uint8_t *aapt; void *xipt; size_t num_aapt= 0; -#endif size_t aaip_er_len= 0; size_t su_size_pd, ce_len_pd; /* predicted sizes of SUA and CA */ int ce_is_predicted = 0; @@ -1154,9 +1102,6 @@ int rrip_get_susp_fields(Ecma119Image *t, Ecma119Node *n, int type, } } -#ifdef Libisofs_with_aaiP - - /* ts A90125 */ /* If AAIP enabled and announced by ER : Announce RRIP by ES */ if (t->aaip && !t->aaip_susp_1_10) { ret = susp_add_ES(t, info, 0, 0); @@ -1164,8 +1109,6 @@ int rrip_get_susp_fields(Ecma119Image *t, Ecma119Node *n, int type, goto add_susp_cleanup; } -#endif /* Libisofs_with_aaiP */ - /* PX and TF, we are sure they always fit in SUA */ ret = rrip_add_PX(t, node, info); if (ret < 0) { @@ -1227,7 +1170,6 @@ int rrip_get_susp_fields(Ecma119Image *t, Ecma119Node *n, int type, sua_free = space - info->suf_len; - /* ts A90117 */ /* Try whether NM, SL, AA will fit into SUA */ su_size_pd = info->suf_len; ce_len_pd = ce_len; @@ -1295,7 +1237,6 @@ int rrip_get_susp_fields(Ecma119Image *t, Ecma119Node *n, int type, * will be completelly moved into the CA */ - /* ts A90117 */ /* sua_free, ce_len, nm_type already account for CE */ cew = 1; @@ -1458,9 +1399,6 @@ int rrip_get_susp_fields(Ecma119Image *t, Ecma119Node *n, int type, } } -#ifdef Libisofs_with_aaiP -/* ts A90114 */ - /* Obtain AA field string from node and write it to directory entry or CE area. */ @@ -1488,8 +1426,6 @@ int rrip_get_susp_fields(Ecma119Image *t, Ecma119Node *n, int type, } } -#endif /* Libisofs_with_aaiP */ - } else { /* "." or ".." entry */ @@ -1507,15 +1443,10 @@ int rrip_get_susp_fields(Ecma119Image *t, Ecma119Node *n, int type, * Note that SP entry was already added above */ -#ifdef Libisofs_with_aaiP - /* ts A90113 */ - if (t->aaip && !t->aaip_susp_1_10) { aaip_er_len = 160; } -#endif /* Libisofs_with_aaiP */ - ret = susp_add_CE(t, 182 + aaip_er_len, info); /* 182 is RRIP-ER length */ if (ret < 0) { @@ -1526,18 +1457,12 @@ int rrip_get_susp_fields(Ecma119Image *t, Ecma119Node *n, int type, goto add_susp_cleanup; } -#ifdef Libisofs_with_aaiP - /* ts A90113 */ - if (t->aaip && !t->aaip_susp_1_10) { ret = aaip_add_ER(t, info, 0); if (ret < 0) { goto add_susp_cleanup; } } - -#endif /* Libisofs_with_aaiP */ - } } diff --git a/libisofs/rockridge.h b/libisofs/rockridge.h index 2d48a22..9af8a13 100644 --- a/libisofs/rockridge.h +++ b/libisofs/rockridge.h @@ -1,6 +1,7 @@ /* * Copyright (c) 2007 Vreixo Formoso * Copyright (c) 2007 Mario Danic + * Copyright (c) 2009 Thomas Schmitt * * This file is part of the libisofs project; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 as @@ -117,16 +118,12 @@ struct rr_SL { }; -#ifdef Libisofs_with_aaiP - -/** Arbitrary Attribute (AAIP, see doc/susp_aaip_0_2.txt) */ +/** Arbitrary Attribute (AAIP, see doc/susp_aaip_1_0.txt) */ struct rr_AA { uint8_t flags[1]; uint8_t comps[1]; }; -#endif /* Libisofs_with_aaiP */ - /** * Struct for a SUSP System User Entry (SUSP, 4.1) @@ -146,10 +143,7 @@ struct susp_sys_user_entry struct rr_NM NM; struct rr_CL CL; struct rr_SL SL; - -#ifdef Libisofs_with_aaiP struct rr_AA AA; -#endif /* Libisofs_with_aaiP */ } data; /* 5 to 4+len_sue */ }; @@ -283,8 +277,6 @@ int read_rr_SL(struct susp_sys_user_entry *sl, char **dest, int *cont); int read_rr_PN(struct susp_sys_user_entry *pn, struct stat *st); -#ifdef Libisofs_with_aaiP - /** * Collects the AA field string from single AA fields. * (see doc/susp_aaip_0_2.txt) @@ -305,7 +297,5 @@ int read_aaip_AA(struct susp_sys_user_entry *sue, unsigned char **aa_string, size_t *aa_size, size_t *aa_len, size_t *prev_field, int *is_done, int flag); -#endif /* Libisofs_with_aaiP */ - #endif /* LIBISO_ROCKRIDGE_H */ diff --git a/libisofs/rockridge_read.c b/libisofs/rockridge_read.c index 4714c72..b272ca3 100644 --- a/libisofs/rockridge_read.c +++ b/libisofs/rockridge_read.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2007 Vreixo Formoso + * Copyright (c) 2009 Thomas Schmitt * * This file is part of the libisofs project; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 as @@ -7,8 +8,8 @@ */ /* - * This file contains functions related to the reading of SUSP and - * Rock Ridge extensions on an ECMA-119 image. + * This file contains functions related to the reading of SUSP, + * Rock Ridge and AAIP extensions on an ECMA-119 image. */ #include "libisofs.h" @@ -415,7 +416,6 @@ int read_rr_PN(struct susp_sys_user_entry *pn, struct stat *st) return ISO_WRONG_RR; } - /* ts A90129 */ /* (dev_t << 32) causes compiler warnings on FreeBSD because sizeof(dev_t) is 4. */ @@ -426,7 +426,7 @@ int read_rr_PN(struct susp_sys_user_entry *pn, struct stat *st) high_shift); } -/* <<< was originally: +/* was originally: st->st_rdev = (dev_t)((dev_t)iso_read_bb(pn->data.PN.high, 4, NULL) << 32) | (dev_t)iso_read_bb(pn->data.PN.low, 4, NULL); */ @@ -435,9 +435,6 @@ int read_rr_PN(struct susp_sys_user_entry *pn, struct stat *st) } -#ifdef Libisofs_with_aaiP - - int read_aaip_AA(struct susp_sys_user_entry *sue, unsigned char **aa_string, size_t *aa_size, size_t *aa_len, size_t *prev_field, int *is_done, int flag) @@ -483,5 +480,3 @@ int read_aaip_AA(struct susp_sys_user_entry *sue, return ISO_SUCCESS; } -#endif /* Libisofs_with_aaiP */ -