version 1.3.4.3, 2014/01/30 01:03:22
|
version 1.3.4.4, 2014/02/04 16:52:32
|
Line 54 Usage()
|
Line 54 Usage()
|
printf( "-= Direr =- Tool for compare directories by checksum\n" |
printf( "-= Direr =- Tool for compare directories by checksum\n" |
"=== %s === %s@%s ===\n\n" |
"=== %s === %s@%s ===\n\n" |
" Syntax: direr [options] <dir> [cmp_dir]\n\n" |
" Syntax: direr [options] <dir> [cmp_dir]\n\n" |
|
"\t-q\t\t\tQuiet mode\n" |
"\t-s <cksum>\t\tCompare dir with this checksum ...\n" |
"\t-s <cksum>\t\tCompare dir with this checksum ...\n" |
"\n", compiled, compiledby, compilehost); |
"\n", compiled, compiledby, compilehost); |
} |
} |
Line 61 Usage()
|
Line 62 Usage()
|
int |
int |
main(int argc, char **argv) |
main(int argc, char **argv) |
{ |
{ |
u_char *md[2], mode = 0; | u_char *md[2], mode = 0, quiet = 0; |
char szCmp[MAXPATHLEN], *str[2], ch; |
char szCmp[MAXPATHLEN], *str[2], ch; |
int ret = 0; |
int ret = 0; |
ait_val_t v; | ait_val_t v = AIT_VAL_INITIALIZER(v); |
|
|
memset(md, 0, sizeof md); |
memset(md, 0, sizeof md); |
memset(str, 0, sizeof str); |
memset(str, 0, sizeof str); |
memset(szCmp, 0, MAXPATHLEN); |
memset(szCmp, 0, MAXPATHLEN); |
while ((ch = getopt(argc, argv, "hs:")) != -1) | while ((ch = getopt(argc, argv, "hqs:")) != -1) |
switch (ch) { |
switch (ch) { |
case 's': |
case 's': |
str[1] = strdup(optarg); |
str[1] = strdup(optarg); |
mode = 1; |
mode = 1; |
break; |
break; |
|
case 'q': |
|
quiet = 1; |
|
break; |
case 'h': |
case 'h': |
default: |
default: |
Usage(); |
Usage(); |
Line 93 main(int argc, char **argv)
|
Line 97 main(int argc, char **argv)
|
} |
} |
|
|
if (sync_dirChkSum(argv[0], &md[0]) == -1) { |
if (sync_dirChkSum(argv[0], &md[0]) == -1) { |
printf("Error:: %s(%d) #%d - %s\n", __func__, __LINE__, errno, strerror(errno)); | ELIBERR(sync); |
return 1; |
return 1; |
} |
} |
AIT_SET_BUF(&v, md[0], MD5_DIGEST_LENGTH); |
AIT_SET_BUF(&v, md[0], MD5_DIGEST_LENGTH); |
str[0] = str_Dig2Hex(&v); |
str[0] = str_Dig2Hex(&v); |
AIT_FREE_VAL(&v); |
AIT_FREE_VAL(&v); |
if (!str[0]) { |
if (!str[0]) { |
free(md[0]); | e_free(md[0]); |
return 1; |
return 1; |
} |
} |
printf("1.Directory '%s': %s\n", argv[0], str[0]); | if (!quiet) |
| printf("1.Directory '%s': %s\n", argv[0], str[0]); |
|
|
if (mode & 1 && *str[1]) { |
if (mode & 1 && *str[1]) { |
ret |= !strcmp((char*) str[0], (char*) str[1]) << 1; |
ret |= !strcmp((char*) str[0], (char*) str[1]) << 1; |
printf("Result checksum:: %s %s %s\n\n", str[0], ret & 2 ? "==" : "!=", str[1]); | if (!quiet) |
free(str[1]); | printf("Result checksum:: %s %s %s\n\n", str[0], |
| ret & 2 ? "==" : "!=", str[1]); |
| e_free(str[1]); |
} |
} |
|
|
if (mode & 2 && *szCmp) { |
if (mode & 2 && *szCmp) { |
if (sync_dirChkSum(szCmp, &md[1]) == -1) { |
if (sync_dirChkSum(szCmp, &md[1]) == -1) { |
printf("Error:: %s(%d) #%d - %s\n", __func__, __LINE__, errno, strerror(errno)); | ELIBERR(sync); |
return 1; |
return 1; |
} |
} |
AIT_SET_BUF(&v, md[1], MD5_DIGEST_LENGTH); |
AIT_SET_BUF(&v, md[1], MD5_DIGEST_LENGTH); |
str[1] = str_Dig2Hex(&v); |
str[1] = str_Dig2Hex(&v); |
AIT_FREE_VAL(&v); |
AIT_FREE_VAL(&v); |
if (!str[1]) { |
if (!str[1]) { |
free(md[0]); | e_free(md[0]); |
free(str[0]); | e_free(str[0]); |
free(md[1]); | e_free(md[1]); |
return 1; |
return 1; |
} |
} |
printf("2.Directory '%s': %s\n", szCmp, str[1]); | if (!quiet) |
| printf("2.Directory '%s': %s\n", szCmp, str[1]); |
|
|
ret |= (!strcmp((char*) str[0], (char*) str[1]) << 2); |
ret |= (!strcmp((char*) str[0], (char*) str[1]) << 2); |
printf("Result directory:: %s %s %s\n\n", argv[0], ret & 4 ? "==" : "!=", szCmp); | if (!quiet) |
| printf("Result directory:: %s %s %s\n\n", argv[0], |
if (str[1]) | ret & 4 ? "==" : "!=", szCmp); |
free(str[1]); | e_free(str[1]); |
if (md[1]) | e_free(md[1]); |
free(md[1]); | |
} |
} |
|
|
if (str[0]) | e_free(str[0]); |
free(str[0]); | e_free(md[0]); |
if (md[0]) | |
free(md[0]); | |
return ret; |
return ret; |
} |
} |