Avoided to use MD5 on filtered streams with compare and update

This commit is contained in:
2009-09-07 16:11:46 +00:00
parent 3c25d5a163
commit e5145063f9
4 changed files with 21 additions and 6 deletions

View File

@ -3625,11 +3625,19 @@ int Xorriso_restore_implicit_properties(struct XorrisO *xorriso,
}
int Xorriso_is_plain_image_file(struct XorrisO *xorriso, IsoNode *node,
int flag)
int Xorriso_is_plain_image_file(struct XorrisO *xorriso, void *in_node,
char *path, int flag)
{
int ret, lba;
IsoStream *stream;
IsoNode *node;
node= (IsoNode *) in_node;
if(node == NULL) {
ret= Xorriso_get_node_by_path(xorriso, path, NULL, &node, 0);
if(ret<=0)
return(ret);
}
ret= Xorriso__file_start_lba(node, &lba, 0);
if(ret > 0) { /* Stream source is from loaded image */
@ -3748,7 +3756,7 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node,
ret= Xorriso_iso_file_read(xorriso, data_stream, buf, wanted, 0);
if(ret<=0) {
if(xorriso->extract_error_mode == 0 &&
Xorriso_is_plain_image_file(xorriso, node, 0)) {
Xorriso_is_plain_image_file(xorriso, node, "", 0)) {
close(write_fd);
write_fd= -1;
already_done= (size - todo) / (off_t) 2048;
@ -10118,7 +10126,7 @@ int Xorriso_extract_cut(struct XorrisO *xorriso,
}
read_raw= 0;
if((img_offset % 2048) == 0) {
ret= Xorriso_is_plain_image_file(xorriso, node, 0);
ret= Xorriso_is_plain_image_file(xorriso, node, "", 0);
if(ret > 0)
read_raw= 1;
}