]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/filed/verify.c
Tweak plugin
[bacula/bacula] / bacula / src / filed / verify.c
index 5f3841d4c5cdad5f6bbd3e5495e79adb3735bf7e..8219ab3d5f8faca6d5eefc27f1f45c625438bfd0 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2000-2010 Free Software Foundation Europe e.V.
+   Copyright (C) 2000-2011 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.
@@ -51,7 +51,7 @@ static int read_digest(BFILE *bfd, DIGEST *digest, JCR *jcr);
  */
 void do_verify(JCR *jcr)
 {
-   set_jcr_job_status(jcr, JS_Running);
+   jcr->setJobStatus(JS_Running);
    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"),
@@ -67,7 +67,7 @@ void do_verify(JCR *jcr)
       free(jcr->big_buf);
       jcr->big_buf = NULL;
    }
-   set_jcr_job_status(jcr, JS_Terminated);
+   jcr->setJobStatus(JS_Terminated);
 }
 
 /*
@@ -108,6 +108,7 @@ static int verify_file(JCR *jcr, FF_PKT *ff_pkt, bool top_level)
       jcr->num_files_examined--;      /* correct file count */
       return 1;                       /* ignored */
    case FT_REPARSE: 
+   case FT_JUNCTION:
    case FT_DIREND:
       Dmsg1(30, "FT_DIR saving: %s\n", ff_pkt->fname);
       break;
@@ -155,6 +156,7 @@ static int verify_file(JCR *jcr, FF_PKT *ff_pkt, bool top_level)
    case FT_NOFSCHG:
       Jmsg(jcr, M_SKIPPED, 1, _("     File system change prohibited. Directory skipped: %s\n"), ff_pkt->fname);
       return 1;
+   case FT_PLUGIN_CONFIG:
    case FT_RESTORE_FIRST:
       return 1;                       /* silently skip */
    case FT_NOOPEN: {
@@ -171,7 +173,7 @@ static int verify_file(JCR *jcr, FF_PKT *ff_pkt, bool top_level)
    }
 
    /* Encode attributes and possibly extend them */
-   encode_stat(attribs, &ff_pkt->statp, ff_pkt->LinkFI, 0);
+   encode_stat(attribs, &ff_pkt->statp, sizeof(ff_pkt->statp), ff_pkt->LinkFI, 0);
    encode_attribsEx(jcr, attribsEx, ff_pkt);
 
    jcr->lock();
@@ -196,7 +198,8 @@ static int verify_file(JCR *jcr, FF_PKT *ff_pkt, bool top_level)
       stat = dir->fsend("%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_DIREND || ff_pkt->type == FT_REPARSE) {
+   } else if (ff_pkt->type == FT_DIREND || ff_pkt->type == FT_REPARSE ||
+              ff_pkt->type == FT_JUNCTION) {
       /* Here link is the canonical filename (i.e. with trailing slash) */
       stat = dir->fsend("%d %d %s %s%c%s%c%c", jcr->JobFiles,
                         STREAM_UNIX_ATTRIBUTES, ff_pkt->VerifyOpts, ff_pkt->link,