void do_verify(JCR *jcr)
{
set_jcr_job_status(jcr, JS_Running);
- jcr->buf_size = MAX_NETWORK_BUFFER_SIZE;
+ jcr->buf_size = DEFAULT_NETWORK_BUFFER_SIZE;
if ((jcr->big_buf = (char *) malloc(jcr->buf_size)) == NULL) {
- Jmsg1(jcr, M_ABORT, 0, _("Cannot malloc %d network read buffer\n"), MAX_NETWORK_BUFFER_SIZE);
+ Jmsg1(jcr, M_ABORT, 0, _("Cannot malloc %d network read buffer\n"),
+ DEFAULT_NETWORK_BUFFER_SIZE);
}
- set_find_options((FF_PKT *)jcr->ff, jcr->incremental, jcr->mtime, jcr->mtime_only);
+ set_find_options((FF_PKT *)jcr->ff, jcr->incremental, jcr->mtime);
Dmsg0(10, "Start find files\n");
/* Subroutine verify_file() is called for each file */
find_files(jcr, (FF_PKT *)jcr->ff, verify_file, (void *)jcr);
static int verify_file(FF_PKT *ff_pkt, void *pkt)
{
char attribs[MAXSTRING];
- int32_t n;
+ int64_t n;
int stat;
BFILE bfd;
struct MD5Context md5c;
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);
}
}
- encode_stat(attribs, &ff_pkt->statp, ff_pkt->LinkFI);
+ encode_stat(attribs, ff_pkt, 0);
P(jcr->mutex);
jcr->JobFiles++; /* increment number of files sent */
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"),