--- libaitsync/src/dir.c 2012/11/13 13:38:14 1.3.2.2 +++ libaitsync/src/dir.c 2012/11/13 13:58:39 1.3.2.4 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: dir.c,v 1.3.2.2 2012/11/13 13:38:14 misho Exp $ +* $Id: dir.c,v 1.3.2.4 2012/11/13 13:58:39 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -65,7 +65,7 @@ find_tag(int const * __restrict tags, struct tagDirNam if (l[tags[t] + i].hash == hash) { /* finded & marked for delete! */ find = (struct tagDirName*) &l[tags[t] + i]; - find->ch = '*'; + find->ch = DIFF_D0; break; } } @@ -141,55 +141,55 @@ create_diridx(const char *csDir, int lm, int *tags, st } else memset(&l[n + 1], 0, sizeof(struct tagDirName)); - l[n].ch = '<'; + l[n].ch = DIFF_D1; l[n].tag = crcFletcher16((u_short*) d.d_name, d.d_namlen / 2 + d.d_namlen % 2); l[n].hash = crcAdler((u_char*) d.d_name, d.d_namlen); - strlcpy(l[n].name, d.d_name, MAXPATHLEN); + strlcpy(l[n].name, d.d_name, sizeof l[n].name); if (lm & 1) { if (lstat(d.d_name, &sb) != -1) { - memset(szStr, 0, STRSIZ); + memset(szStr, 0, sizeof szStr); #if defined(__OpenBSD__) - strftime(szStr, STRSIZ, "%Y-%m-%d %H:%M:%S", + strftime(szStr, sizeof szStr, "%Y-%m-%d %H:%M:%S", localtime((time_t*) &sb.st_mtim)); #else - strftime(szStr, STRSIZ, "%Y-%m-%d %H:%M:%S", + strftime(szStr, sizeof szStr, "%Y-%m-%d %H:%M:%S", localtime((time_t*) &sb.st_mtime)); #endif switch (d.d_type) { case DT_FIFO: - strlcpy(szType, "fifo", STRSIZ); + strlcpy(szType, "fifo", sizeof szType); break; case DT_CHR: - strlcpy(szType, "char", STRSIZ); + strlcpy(szType, "char", sizeof szType); break; case DT_DIR: - strlcpy(szType, "dir", STRSIZ); + strlcpy(szType, "dir", sizeof szType); break; case DT_BLK: - strlcpy(szType, "block", STRSIZ); + strlcpy(szType, "block", sizeof szType); break; case DT_REG: - strlcpy(szType, "file", STRSIZ); + strlcpy(szType, "file", sizeof szType); break; case DT_LNK: - strlcpy(szType, "link", STRSIZ); + strlcpy(szType, "link", sizeof szType); break; case DT_SOCK: - strlcpy(szType, "socket", STRSIZ); + strlcpy(szType, "socket", sizeof szType); break; /* OpenBSD does not have this type */ #ifdef DT_WHT case DT_WHT: - strlcpy(szType, "wht", STRSIZ); + strlcpy(szType, "wht", sizeof szType); break; #endif case DT_UNKNOWN: default: - strlcpy(szType, "unknown", STRSIZ); + strlcpy(szType, "unknown", sizeof szType); break; } - snprintf(l[n].extra, STRSIZ, + snprintf(l[n].extra, sizeof l[n].extra, "%s links=%d inode=%ld %d:%d perm=0%o size=%ld %s", szType, sb.st_nlink, (long) sb.st_ino, sb.st_uid, sb.st_gid, sb.st_mode & 0x1fff, @@ -365,54 +365,54 @@ sync_dircmpList(const char *csDir1, const char *csDir2 } else memset(&l[n + 1], 0, sizeof(struct tagDirName)); - l[n].ch = '>'; + l[n].ch = DIFF_D2; l[n].tag = t; l[n].hash = hash; - strlcpy(l[n].name, d.d_name, MAXPATHLEN); + strlcpy(l[n].name, d.d_name, sizeof l[n].name); if (lm & 1) { if (lstat(d.d_name, &sb) != -1) { - memset(szStr, 0, STRSIZ); + memset(szStr, 0, sizeof szStr); #if defined(__OpenBSD__) - strftime(szStr, STRSIZ, "%Y-%m-%d %H:%M:%S", + strftime(szStr, sizeof szStr, "%Y-%m-%d %H:%M:%S", localtime((time_t*) &sb.st_mtim)); #else - strftime(szStr, STRSIZ, "%Y-%m-%d %H:%M:%S", + strftime(szStr, sizeof szStr, "%Y-%m-%d %H:%M:%S", localtime((time_t*) &sb.st_mtime)); #endif switch (d.d_type) { case DT_FIFO: - strlcpy(szType, "fifo", STRSIZ); + strlcpy(szType, "fifo", sizeof szType); break; case DT_CHR: - strlcpy(szType, "char", STRSIZ); + strlcpy(szType, "char", sizeof szType); break; case DT_DIR: - strlcpy(szType, "dir", STRSIZ); + strlcpy(szType, "dir", sizeof szType); break; case DT_BLK: - strlcpy(szType, "block", STRSIZ); + strlcpy(szType, "block", sizeof szType); break; case DT_REG: - strlcpy(szType, "file", STRSIZ); + strlcpy(szType, "file", sizeof szType); break; case DT_LNK: - strlcpy(szType, "link", STRSIZ); + strlcpy(szType, "link", sizeof szType); break; case DT_SOCK: - strlcpy(szType, "socket", STRSIZ); + strlcpy(szType, "socket", sizeof szType); break; /* OpenBSD does not have this type */ #ifdef DT_WHT case DT_WHT: - strlcpy(szType, "wht", STRSIZ); + strlcpy(szType, "wht", sizeof szType); break; #endif case DT_UNKNOWN: default: - strlcpy(szType, "unknown", STRSIZ); + strlcpy(szType, "unknown", sizeof szType); break; } - snprintf(l[n].extra, STRSIZ, + snprintf(l[n].extra, sizeof l[n].extra, "%s links=%d inode=%ld %d:%d perm=0%o " "size=%ld %s", szType, sb.st_nlink, (long) sb.st_ino, sb.st_uid, sb.st_gid, @@ -436,7 +436,7 @@ sync_dircmpList(const char *csDir1, const char *csDir2 return -1; } } - while (fgets(szLine, STRSIZ, f)) { + while (fgets(szLine, sizeof szLine, f)) { if (!*szLine || *szLine == '#') continue; @@ -464,12 +464,12 @@ sync_dircmpList(const char *csDir1, const char *csDir2 } else memset(&l[n + 1], 0, sizeof(struct tagDirName)); - l[n].ch = '>'; + l[n].ch = DIFF_D2; l[n].tag = t; l[n].hash = hash; - strlcpy(l[n].name, str, MAXPATHLEN); + strlcpy(l[n].name, str, sizeof l[n].name); if (lm & 1 && (str = strtok_r(NULL, "\r\n", &pbrk))) - strlcpy(l[n].extra, str, STRSIZ); + strlcpy(l[n].extra, str, sizeof l[n].extra); n++; } @@ -480,7 +480,7 @@ sync_dircmpList(const char *csDir1, const char *csDir2 /* delete equal elemets !!! */ for (i = cx = 0; i < n; i++) - if (l[i].ch == '*') { + if (l[i].ch == DIFF_D0) { memmove(&l[i], &l[i + 1], (n - i + 1) * sizeof(struct tagDirName)); cx++; i--;