Index: cfexecd.c =================================================================== RCS file: /net/scully/cvs/is-cvs/os-apps/cfengine/src/cfexecd.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- cfexecd.c 28 Jul 2003 20:50:43 -0000 1.2 +++ cfexecd.c 18 Aug 2003 20:43:04 -0000 1.3 @@ -699,49 +699,38 @@ char digest2[EVP_MAX_MD_SIZE+1]; int md_len1, md_len2; FILE *fp; + int rtn = 0; -Verbose("Comparing files %s with %s\n", prev_file, filename); + Verbose("Comparing files %s with %s\n", prev_file, filename); -if ((fp=fopen(prev_file,"r")) != NULL) - { - fclose(fp); + if ((fp=fopen(prev_file,"r")) != NULL) { + fclose(fp); - md_len1 = FileChecksum(prev_file, digest1, 'm'); - md_len2 = FileChecksum(filename, digest2, 'm'); - - if (md_len1 != md_len2) - { - return(1); - } - - for (i = 0; i < md_len1; i++) - { - if (digest1[i] != digest2[i]) - { - /* Current file will now be the previous result */ - unlink(prev_file); - if (symlink(filename, prev_file) == -1) - { - snprintf(OUTPUT,bufsize,"Could not link %s and %s",filename,prev_file); - CfLog(cfinform,OUTPUT,"symlink"); - } - - return(1); - } + md_len1 = FileChecksum(prev_file, digest1, 'm'); + md_len2 = FileChecksum(filename, digest2, 'm'); + + if (md_len1 != md_len2) { + rtn = 1; + } else { + for (i = 0; i < md_len1; i++) { + if (digest1[i] != digest2[i]) { + rtn = 1; + break; + } + } } - - return(0); - } -else - { - /* no previous file */ - if ( symlink(filename, prev_file) == -1 ) - { + } else { + rtn = 1; + } + + /* always update the symlink. */ + unlink(prev_file); + if (symlink(filename, prev_file) == -1 ) { snprintf(OUTPUT,bufsize,"Could not link %s and %s",filename,prev_file); CfLog(cfinform,OUTPUT,"symlink"); - } - return(1); - } + rtn = 1; + } + return(rtn); } /***********************************************************************/