|
|
|
@ -74,7 +74,7 @@ int Xorriso_compare_2_contents(struct XorrisO *xorriso, char *common_adr,
|
|
|
|
|
sprintf(respt, "- %s (DISK) : cannot open() : %s\n",
|
|
|
|
|
disk_adr, strerror(errno));
|
|
|
|
|
cannot_address:;
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 2048;
|
|
|
|
|
{ret= 0; goto ex;}
|
|
|
|
@ -106,7 +106,7 @@ cannot_address:;
|
|
|
|
|
ret= Xorriso_iso_file_open(xorriso, iso_adr, NULL, &stream2, 0);
|
|
|
|
|
if(ret<=0) {
|
|
|
|
|
sprintf(respt, "- %s (ISO) : cannot open() file in ISO image\n",iso_adr);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
close(fd1);
|
|
|
|
|
(*result)|= 4096;
|
|
|
|
@ -156,7 +156,7 @@ cannot_address:;
|
|
|
|
|
if(disk_size > r1count + r1 + offset) {
|
|
|
|
|
sprintf(respt, "- %s (DISK) : early EOF after %.f bytes\n",
|
|
|
|
|
disk_adr, (double) r1count);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 8196;
|
|
|
|
|
}
|
|
|
|
@ -169,7 +169,7 @@ cannot_address:;
|
|
|
|
|
if(iso_size > r2count + r2) {
|
|
|
|
|
sprintf(respt, "- %s (ISO) : early EOF after %.f bytes\n",
|
|
|
|
|
iso_adr, (double) r2count);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= (1<<14);
|
|
|
|
|
}
|
|
|
|
@ -180,7 +180,7 @@ cannot_address:;
|
|
|
|
|
if(disk_size > r1count + r1 + offset) {
|
|
|
|
|
sprintf(respt, "- %s (DISK) : early EOF after %.f bytes\n",
|
|
|
|
|
disk_adr, (double) r1count);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 8196;
|
|
|
|
|
}
|
|
|
|
@ -205,7 +205,7 @@ cannot_address:;
|
|
|
|
|
if(!(flag&(1<<29))) {
|
|
|
|
|
xorriso->pacifier_count+= r1;
|
|
|
|
|
xorriso->pacifier_byte_count+= r1;
|
|
|
|
|
if(flag&(1<<31))
|
|
|
|
|
if(flag&(1u<<31))
|
|
|
|
|
Xorriso_pacifier_callback(xorriso, "content bytes read",
|
|
|
|
|
xorriso->pacifier_count, 0, "", 8);
|
|
|
|
|
else
|
|
|
|
@ -229,7 +229,7 @@ cannot_address:;
|
|
|
|
|
sprintf(offset_text, "%.f+", (double) offset);
|
|
|
|
|
sprintf(respt, "%s %s : differs by MD5 sums.\n",
|
|
|
|
|
common_adr, (flag&1 ? "CONTENT": "content"));
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= (1<<15);
|
|
|
|
|
}
|
|
|
|
@ -246,7 +246,7 @@ cannot_address:;
|
|
|
|
|
sprintf(respt, "%s %s : differs by at least %.f bytes. First at %s%.f\n",
|
|
|
|
|
common_adr, (flag&1 ? "CONTENT": "content"),
|
|
|
|
|
dcount, offset_text, (double) first_diff);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= (1<<15);
|
|
|
|
|
}
|
|
|
|
@ -339,7 +339,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
Text_shellsafe(disk_adr, respt, 1);
|
|
|
|
|
sprintf(respt + strlen(respt), " (DISK) : exluded by %s\n",
|
|
|
|
|
(ret==1 ? "-not_paths" : "-not_leaf"));
|
|
|
|
|
if(! (flag & ((1 << 31) | (1 << 26))))
|
|
|
|
|
if(! (flag & ((1u << 31) | (1 << 26))))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
missing= 1;
|
|
|
|
|
(*result)|= 1;
|
|
|
|
@ -355,7 +355,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
Text_shellsafe(disk_adr, respt, 1);
|
|
|
|
|
sprintf(respt + strlen(respt),
|
|
|
|
|
" (DISK) : cannot lstat() : %s\n", strerror(errno));
|
|
|
|
|
if(! (flag & ((1 << 31) | (1 << 26))))
|
|
|
|
|
if(! (flag & ((1u << 31) | (1 << 26))))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
missing= 1;
|
|
|
|
|
(*result)|= 1;
|
|
|
|
@ -384,7 +384,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
strcpy(respt, "? ");
|
|
|
|
|
Text_shellsafe(iso_adr, respt, 1);
|
|
|
|
|
strcat(respt, " (ISO) : cannot find this file in ISO image\n");
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
missing= 1;
|
|
|
|
|
(*result)|= 2;
|
|
|
|
@ -410,7 +410,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
sprintf(respt, "%s st_mode : %7.7o <> %7.7o\n",
|
|
|
|
|
a, (unsigned int) (s1.st_mode & ~S_IFMT),
|
|
|
|
|
(unsigned int) (s2.st_mode & ~S_IFMT));
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 4;
|
|
|
|
|
}
|
|
|
|
@ -418,7 +418,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
if((s1.st_mode&S_IFMT)!=(s2.st_mode&S_IFMT)) {
|
|
|
|
|
sprintf(respt, "%s type : %s <> %s\n",
|
|
|
|
|
a, Ftypetxt(s1.st_mode, 0), Ftypetxt(s2.st_mode, 0));
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 8;
|
|
|
|
|
if((s1.st_mode&S_IFMT) == S_IFLNK) {
|
|
|
|
@ -458,7 +458,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
if((*result) & (1 << 19)) {
|
|
|
|
|
sprintf(respt, "%s ACL : %d difference%s\n",
|
|
|
|
|
a, diff_count, diff_count == 1 ? "" : "s");
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -479,7 +479,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
(*result)|= (1 << 20);
|
|
|
|
|
sprintf(respt, "%s xattr : %d difference%s\n",
|
|
|
|
|
a, diff_count, diff_count == 1 ? "" : "s");
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -487,14 +487,14 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
if(s1.st_uid != s2.st_uid) {
|
|
|
|
|
sprintf(respt, "%s st_uid : %lu <> %lu\n", a,
|
|
|
|
|
(unsigned long) s1.st_uid, (unsigned long) s2.st_uid);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 16;
|
|
|
|
|
}
|
|
|
|
|
if(s1.st_gid != s2.st_gid) {
|
|
|
|
|
sprintf(respt, "%s st_gid : %lu <> %lu\n", a,
|
|
|
|
|
(unsigned long) s1.st_gid, (unsigned long) s2.st_gid);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 32;
|
|
|
|
|
}
|
|
|
|
@ -504,7 +504,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
sprintf(respt, "%s %s st_rdev : %lu <> %lu\n", a,
|
|
|
|
|
(S_ISCHR(s1.st_mode) ? "S_IFCHR" : "S_IFBLK"),
|
|
|
|
|
(unsigned long) s1.st_rdev, (unsigned long) s1.st_rdev);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 64;
|
|
|
|
|
}
|
|
|
|
@ -514,7 +514,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
sprintf(respt, "%s st_size : %.f <> %.f diff= %.f\n",
|
|
|
|
|
a, (double) s1.st_size, (double) s2.st_size,
|
|
|
|
|
((double) s1.st_size) - (double) s2.st_size);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 128;
|
|
|
|
|
}
|
|
|
|
@ -523,7 +523,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
a, Ftimetxt(s1.st_mtime, ttx1, 0),
|
|
|
|
|
Ftimetxt(s2.st_mtime, ttx2, 0),
|
|
|
|
|
((double) s1.st_mtime) - (double) s2.st_mtime);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 256;
|
|
|
|
|
}
|
|
|
|
@ -533,7 +533,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
a, Ftimetxt(s1.st_atime, ttx1, 0),
|
|
|
|
|
Ftimetxt(s2.st_atime, ttx2, 0),
|
|
|
|
|
((double) s1.st_atime) - (double) s2.st_atime);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 512;
|
|
|
|
|
}
|
|
|
|
@ -544,7 +544,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
a, Ftimetxt(s1.st_ctime, ttx1, 0),
|
|
|
|
|
Ftimetxt(s2.st_ctime, ttx2, 0),
|
|
|
|
|
((double) s1.st_ctime) - (double) s2.st_ctime);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= 1024;
|
|
|
|
|
}
|
|
|
|
@ -573,7 +573,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
!((*result) & (8 | 128 | 256 | 512 | 1024))) {
|
|
|
|
|
sprintf(respt,
|
|
|
|
|
"%s content : node timestamp younger than image timestamp\n", a);
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1<<31)))
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
stamp= s2.st_mtime;
|
|
|
|
|
if((flag & 1) && s2.st_atime >= stamp)
|
|
|
|
@ -584,19 +584,19 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
a, Ftimetxt(stamp, ttx1, 3 << 1),
|
|
|
|
|
Ftimetxt(xorriso->isofs_st_in, ttx2, 3 << 1),
|
|
|
|
|
((double) stamp) - (double) xorriso->isofs_st_in);
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1<<31)))
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
}
|
|
|
|
|
sprintf(respt,
|
|
|
|
|
"%s content : assuming inequality due to size or timestamps\n", a);
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1<<31)))
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else if(ret == 1) { /* mismatch */
|
|
|
|
|
(*result)|= (1 << 21);
|
|
|
|
|
sprintf(respt, "%s dev_ino : differing\n", a);
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1<<31)))
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
|
|
|
|
|
if((xorriso->do_aaip & 64) && S_ISREG(s1.st_mode) && S_ISREG(s2.st_mode)){
|
|
|
|
@ -605,12 +605,12 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
(*result)|= (1 << 15); /* content bytes differ */
|
|
|
|
|
sprintf(respt,
|
|
|
|
|
"%s content : assuming inequality after dev_ino mismatch\n", a);
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1<<31)))
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
sprintf(respt, "%s dev_ino : no dev_ino stored with image node\n", a);
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1<<31)))
|
|
|
|
|
if((xorriso->do_aaip & 32) && !(flag&(1u<<31)))
|
|
|
|
|
Xorriso_result(xorriso,0);
|
|
|
|
|
(*result)|= (1 << 22);
|
|
|
|
|
}
|
|
|
|
@ -634,7 +634,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
ret= Xorriso_compare_2_contents(xorriso, a, disk_adr, s1.st_size,
|
|
|
|
|
offset, bytes,
|
|
|
|
|
part_path, stbuf.st_size, result,
|
|
|
|
|
(s1.st_mtime==s2.st_mtime) | (flag&((1<<29)|(1<<31))));
|
|
|
|
|
(s1.st_mtime==s2.st_mtime) | (flag&((1<<29)|(1u<<31))));
|
|
|
|
|
if(ret<0)
|
|
|
|
|
was_error= 1;
|
|
|
|
|
}
|
|
|
|
@ -642,7 +642,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
sprintf(xorriso->info_text,
|
|
|
|
|
"- %s/* (ISO) : Not all split parts present (%d of %d)\n",
|
|
|
|
|
iso_adr, split_count, total_parts);
|
|
|
|
|
if(!(flag&(1<<31)))
|
|
|
|
|
if(!(flag&(1u<<31)))
|
|
|
|
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 1);
|
|
|
|
|
(*result)|= 1<<18;
|
|
|
|
|
}
|
|
|
|
@ -650,7 +650,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
|
|
|
|
ret= Xorriso_compare_2_contents(xorriso, a, disk_adr, s1.st_size,
|
|
|
|
|
(off_t) 0, s1.st_size,
|
|
|
|
|
iso_adr, s2.st_size, result,
|
|
|
|
|
(s1.st_mtime==s2.st_mtime) | (flag&((1<<29)|(1<<31))));
|
|
|
|
|
(s1.st_mtime==s2.st_mtime) | (flag&((1<<29)|(1u<<31))));
|
|
|
|
|
if(ret<0)
|
|
|
|
|
was_error= 1;
|
|
|
|
|
}
|
|
|
|
@ -746,7 +746,7 @@ int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter, void *node,
|
|
|
|
|
(xorriso->do_follow_param && !(flag&2))) <<28;
|
|
|
|
|
ret= Xorriso_compare_2_files(xorriso, disk_path, iso_path, "", &result,
|
|
|
|
|
2 | follow_links | ((!!(flag & 4)) << 26)
|
|
|
|
|
| ((!(flag&2))<<27) | ((flag&1)<<31));
|
|
|
|
|
| ((!(flag&2))<<27) | (((unsigned)(flag&1))<<31));
|
|
|
|
|
/* was once: | ((!(flag&1))<<29) */
|
|
|
|
|
if(ret<xorriso->find_compare_result)
|
|
|
|
|
xorriso->find_compare_result= ret;
|
|
|
|
|