From 0b54206e71084fb2d580ff9bff2c918816613098 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sun, 16 Dec 2007 12:27:35 +0000 Subject: [PATCH] Added copying of attributes from symbolic link into image --- test/xorriso_timestamp.h | 2 +- test/xorrisoburn.c | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/test/xorriso_timestamp.h b/test/xorriso_timestamp.h index f3853c55..f6fc2b45 100644 --- a/test/xorriso_timestamp.h +++ b/test/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2007.12.16.103456" +#define Xorriso_timestamP "2007.12.16.122626" diff --git a/test/xorrisoburn.c b/test/xorrisoburn.c index ced3f5d5..4fcc5ced 100644 --- a/test/xorrisoburn.c +++ b/test/xorrisoburn.c @@ -721,6 +721,19 @@ int Xorriso_get_node_by_path(struct XorrisO *xorriso, } +int Xorriso_transfer_properties(struct XorrisO *xorriso, struct stat *stbuf, + struct iso_tree_node *node, int flag) +{ + iso_tree_node_set_permissions(node, stbuf->st_mode & 07777); + iso_tree_node_set_uid(node, stbuf->st_uid); + iso_tree_node_set_gid(node, stbuf->st_gid); + iso_tree_node_set_atime(node, stbuf->st_atime); + iso_tree_node_set_mtime(node, stbuf->st_mtime); + iso_tree_node_set_ctime(node, stbuf->st_ctime); + return(1); +} + + /* @param flag bit0= recursion is active */ int Xorriso_add_tree(struct XorrisO *xorriso, struct iso_tree_node_dir *dir, char *img_dir_path, char *disk_dir_path, @@ -880,9 +893,9 @@ cannot_lstat:; node= iso_tree_add_symlink(dir, img_name, link_target); if(node!=NULL) { - - /* >>> copy all file properties from disk_link to node */; - + ret= Xorriso_transfer_properties(xorriso, &stbuf, node, 0); + if(ret<=0) + goto was_problem; } } else node= iso_tree_add_node(dir, srcpt);