Functions to access volume information from an IsoImageFilesystem.
This commit is contained in:
parent
f27f2449f9
commit
cd8943105c
|
@ -147,7 +147,22 @@ int main(int argc, char **argv)
|
||||||
printf ("Error creating filesystem\n");
|
printf ("Error creating filesystem\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
printf("\nVOLUME INFORMATION\n");
|
||||||
|
printf("==================\n\n");
|
||||||
|
|
||||||
|
printf("Vol. id: %s\n", iso_image_fs_get_volume_id(fs));
|
||||||
|
printf("Publisher: %s\n", iso_image_fs_get_publisher_id(fs));
|
||||||
|
printf("Data preparer: %s\n", iso_image_fs_get_data_preparer_id(fs));
|
||||||
|
printf("System: %s\n", iso_image_fs_get_system_id(fs));
|
||||||
|
printf("Application: %s\n", iso_image_fs_get_application_id(fs));
|
||||||
|
printf("Copyright: %s\n", iso_image_fs_get_copyright_file_id(fs));
|
||||||
|
printf("Abstract: %s\n", iso_image_fs_get_abstract_file_id(fs));
|
||||||
|
printf("Biblio: %s\n", iso_image_fs_get_biblio_file_id(fs));
|
||||||
|
|
||||||
|
printf("\nDIRECTORY TREE\n");
|
||||||
|
printf("==============\n");
|
||||||
|
|
||||||
result = fs->fs.get_root((IsoFilesystem*)fs, &root);
|
result = fs->fs.get_root((IsoFilesystem*)fs, &root);
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
printf ("Can't get root %d\n", result);
|
printf ("Can't get root %d\n", result);
|
||||||
|
|
|
@ -1786,18 +1786,8 @@ int image_builder_create_node(IsoNodeBuilder *builder, IsoImage *image,
|
||||||
case S_IFREG:
|
case S_IFREG:
|
||||||
{
|
{
|
||||||
/* source is a regular file */
|
/* source is a regular file */
|
||||||
IsoStream *stream;
|
|
||||||
IsoFile *file;
|
|
||||||
_ImageFsData *fsdata = data->fs->fs.data;
|
_ImageFsData *fsdata = data->fs->fs.data;
|
||||||
|
|
||||||
result = iso_file_source_stream_new(src, &stream);
|
|
||||||
if (result < 0) {
|
|
||||||
free(name);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
/* take a ref to the src, as stream has taken our ref */
|
|
||||||
iso_file_source_ref(src);
|
|
||||||
|
|
||||||
if (fsdata->eltorito && data->block == fsdata->catblock) {
|
if (fsdata->eltorito && data->block == fsdata->catblock) {
|
||||||
|
|
||||||
if (image->bootcat->node != NULL) {
|
if (image->bootcat->node != NULL) {
|
||||||
|
@ -1819,8 +1809,19 @@ int image_builder_create_node(IsoNodeBuilder *builder, IsoImage *image,
|
||||||
|
|
||||||
/* and set the image node */
|
/* and set the image node */
|
||||||
image->bootcat->node = (IsoBoot*)new;
|
image->bootcat->node = (IsoBoot*)new;
|
||||||
new->refcount++;
|
new->type = LIBISO_BOOT;
|
||||||
|
new->refcount = 1;
|
||||||
} else {
|
} else {
|
||||||
|
IsoStream *stream;
|
||||||
|
IsoFile *file;
|
||||||
|
|
||||||
|
result = iso_file_source_stream_new(src, &stream);
|
||||||
|
if (result < 0) {
|
||||||
|
free(name);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
/* take a ref to the src, as stream has taken our ref */
|
||||||
|
iso_file_source_ref(src);
|
||||||
|
|
||||||
file = calloc(1, sizeof(IsoFile));
|
file = calloc(1, sizeof(IsoFile));
|
||||||
if (file == NULL) {
|
if (file == NULL) {
|
||||||
|
@ -1841,6 +1842,7 @@ int image_builder_create_node(IsoNodeBuilder *builder, IsoImage *image,
|
||||||
file->stream = stream;
|
file->stream = stream;
|
||||||
file->node.type = LIBISO_FILE;
|
file->node.type = LIBISO_FILE;
|
||||||
new = (IsoNode*) file;
|
new = (IsoNode*) file;
|
||||||
|
new->refcount = 0;
|
||||||
|
|
||||||
if (fsdata->eltorito && data->block == fsdata->imgblock) {
|
if (fsdata->eltorito && data->block == fsdata->imgblock) {
|
||||||
/* it is boot image node */
|
/* it is boot image node */
|
||||||
|
@ -1865,6 +1867,7 @@ int image_builder_create_node(IsoNodeBuilder *builder, IsoImage *image,
|
||||||
return ISO_MEM_ERROR;
|
return ISO_MEM_ERROR;
|
||||||
}
|
}
|
||||||
new->type = LIBISO_DIR;
|
new->type = LIBISO_DIR;
|
||||||
|
new->refcount = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case S_IFLNK:
|
case S_IFLNK:
|
||||||
|
@ -1886,6 +1889,7 @@ int image_builder_create_node(IsoNodeBuilder *builder, IsoImage *image,
|
||||||
link->dest = strdup(dest);
|
link->dest = strdup(dest);
|
||||||
link->node.type = LIBISO_SYMLINK;
|
link->node.type = LIBISO_SYMLINK;
|
||||||
new = (IsoNode*) link;
|
new = (IsoNode*) link;
|
||||||
|
new->refcount = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case S_IFSOCK:
|
case S_IFSOCK:
|
||||||
|
@ -1903,6 +1907,7 @@ int image_builder_create_node(IsoNodeBuilder *builder, IsoImage *image,
|
||||||
special->dev = info.st_rdev;
|
special->dev = info.st_rdev;
|
||||||
special->node.type = LIBISO_SPECIAL;
|
special->node.type = LIBISO_SPECIAL;
|
||||||
new = (IsoNode*) special;
|
new = (IsoNode*) special;
|
||||||
|
new->refcount = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1930,6 +1935,7 @@ int image_builder_create_node(IsoNodeBuilder *builder, IsoImage *image,
|
||||||
* Create a new builder, that is exactly a copy of an old builder, but where
|
* Create a new builder, that is exactly a copy of an old builder, but where
|
||||||
* create_node() function has been replaced by image_builder_create_node.
|
* create_node() function has been replaced by image_builder_create_node.
|
||||||
*/
|
*/
|
||||||
|
static
|
||||||
int iso_image_builder_new(IsoNodeBuilder *old, IsoNodeBuilder **builder)
|
int iso_image_builder_new(IsoNodeBuilder *old, IsoNodeBuilder **builder)
|
||||||
{
|
{
|
||||||
IsoNodeBuilder *b;
|
IsoNodeBuilder *b;
|
||||||
|
@ -2200,3 +2206,58 @@ int iso_image_import(IsoImage *image, IsoDataSource *src,
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_volset_id(IsoImageFilesystem *fs)
|
||||||
|
{
|
||||||
|
_ImageFsData *data = (_ImageFsData*) fs->fs.data;
|
||||||
|
return data->volset_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_volume_id(IsoImageFilesystem *fs)
|
||||||
|
{
|
||||||
|
_ImageFsData *data = (_ImageFsData*) fs->fs.data;
|
||||||
|
return data->volume_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_publisher_id(IsoImageFilesystem *fs)
|
||||||
|
{
|
||||||
|
_ImageFsData *data = (_ImageFsData*) fs->fs.data;
|
||||||
|
return data->publisher_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_data_preparer_id(IsoImageFilesystem *fs)
|
||||||
|
{
|
||||||
|
_ImageFsData *data = (_ImageFsData*) fs->fs.data;
|
||||||
|
return data->data_preparer_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_system_id(IsoImageFilesystem *fs)
|
||||||
|
{
|
||||||
|
_ImageFsData *data = (_ImageFsData*) fs->fs.data;
|
||||||
|
return data->system_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_application_id(IsoImageFilesystem *fs)
|
||||||
|
{
|
||||||
|
_ImageFsData *data = (_ImageFsData*) fs->fs.data;
|
||||||
|
return data->application_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_copyright_file_id(IsoImageFilesystem *fs)
|
||||||
|
{
|
||||||
|
_ImageFsData *data = (_ImageFsData*) fs->fs.data;
|
||||||
|
return data->copyright_file_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_abstract_file_id(IsoImageFilesystem *fs)
|
||||||
|
{
|
||||||
|
_ImageFsData *data;
|
||||||
|
data = (_ImageFsData*) fs->fs.data;
|
||||||
|
return data->abstract_file_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_biblio_file_id(IsoImageFilesystem *fs)
|
||||||
|
{
|
||||||
|
_ImageFsData *data = (_ImageFsData*) fs->fs.data;
|
||||||
|
return data->biblio_file_id;
|
||||||
|
}
|
||||||
|
|
|
@ -47,4 +47,22 @@ int iso_image_filesystem_new(IsoDataSource *src, struct iso_read_opts *opts,
|
||||||
struct libiso_msgs *messenger,
|
struct libiso_msgs *messenger,
|
||||||
IsoImageFilesystem **fs);
|
IsoImageFilesystem **fs);
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_volset_id(IsoImageFilesystem *fs);
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_volume_id(IsoImageFilesystem *fs);
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_publisher_id(IsoImageFilesystem *fs);
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_data_preparer_id(IsoImageFilesystem *fs);
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_system_id(IsoImageFilesystem *fs);
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_application_id(IsoImageFilesystem *fs);
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_copyright_file_id(IsoImageFilesystem *fs);
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_abstract_file_id(IsoImageFilesystem *fs);
|
||||||
|
|
||||||
|
const char *iso_image_fs_get_biblio_file_id(IsoImageFilesystem *fs);
|
||||||
|
|
||||||
#endif /*LIBISO_FS_IMAGE_H_*/
|
#endif /*LIBISO_FS_IMAGE_H_*/
|
||||||
|
|
Loading…
Reference in New Issue