return 1;
case FT_DIRNOCHG:
case FT_NOCHG:
- Jmsg(jcr, M_INFO, -1, _(" Unchanged file skipped: %s\n"), ff_pkt->fname);
+ Jmsg(jcr, M_SKIPPED, -1, _(" Unchanged file skipped: %s\n"), ff_pkt->fname);
return 1;
case FT_ISARCH:
Jmsg(jcr, M_SKIPPED, -1, _(" Archive file skipped: %s\n"), ff_pkt->fname);
stat = bnet_fsend(dir, "%d %d %s %s%c%s%c%s%c", jcr->JobFiles,
STREAM_UNIX_ATTRIBUTES, ff_pkt->VerifyOpts, ff_pkt->fname,
0, attribs, 0, ff_pkt->link, 0);
+ } else if (ff_pkt->type == FT_DIR) {
+ /* Here link is the canonical filename (i.e. with trailing slash) */
+ stat = bnet_fsend(dir,"%d %d %s %s%c%s%c%c", jcr->JobFiles,
+ STREAM_UNIX_ATTRIBUTES, ff_pkt->VerifyOpts, ff_pkt->link,
+ 0, attribs, 0, 0);
} else {
stat = bnet_fsend(dir,"%d %d %s %s%c%s%c%c", jcr->JobFiles,
STREAM_UNIX_ATTRIBUTES, ff_pkt->VerifyOpts, ff_pkt->fname,
return 0;
}
- /* If file opened, compute MD5 */
+ /* If file opened, compute MD5 or SHA1 hash */
if (is_bopen(&bfd) && ff_pkt->flags & FO_MD5) {
char MD5buf[40]; /* 24 should do */
MD5Init(&md5c);
while ((n=bread(&bfd, jcr->big_buf, jcr->buf_size)) > 0) {
MD5Update(&md5c, ((unsigned char *) jcr->big_buf), n);
jcr->JobBytes += n;
+ jcr->ReadBytes += n;
}
if (n < 0) {
Jmsg(jcr, M_ERROR, -1, _("Error reading file %s: ERR=%s\n"),
while ((n=bread(&bfd, jcr->big_buf, jcr->buf_size)) > 0) {
SHA1Update(&sha1c, ((unsigned char *) jcr->big_buf), n);
jcr->JobBytes += n;
+ jcr->ReadBytes += n;
}
if (n < 0) {
Jmsg(jcr, M_ERROR, -1, _("Error reading file %s: ERR=%s\n"),