*
* Send the file and its data to the Storage daemon.
*/
-static int save_file(FF_PKT *ff_pkt, void *ijcr)
+static int save_file(FF_PKT *ff_pkt, void *vjcr)
{
char attribs[MAXSTRING];
char attribsEx[MAXSTRING];
struct SHA1Context sha1c;
int gotMD5 = 0;
int gotSHA1 = 0;
- unsigned char signature[25]; /* large enough for either signature */
+ unsigned char signature[30]; /* large enough for either signature */
BSOCK *sd;
- JCR *jcr = (JCR *)ijcr;
+ JCR *jcr = (JCR *)vjcr;
POOLMEM *msgsave;
if (job_canceled(jcr)) {
return 1;
}
+ /* Open any file with data that we intend to save */
if (ff_pkt->type != FT_LNKSAVED && (S_ISREG(ff_pkt->statp.st_mode) &&
ff_pkt->statp.st_size > 0) ||
ff_pkt->type == FT_RAW || ff_pkt->type == FT_FIFO) {
}
stop_thread_timer(tid);
} else {
- binit(&ff_pkt->bfd);
+ binit(&ff_pkt->bfd); /* mark file not opened */
}
Dmsg1(130, "bfiled: sending %s to stored\n", ff_pkt->fname);
* Send Attributes header to Storage daemon
* <file-index> <stream> <info>
*/
-#ifndef NO_FD_SEND_TEST
+/* #ifndef FD_NO_SEND_TEST */
if (!bnet_fsend(sd, "%ld %d 0", jcr->JobFiles, stream)) {
if (is_bopen(&ff_pkt->bfd)) {
bclose(&ff_pkt->bfd);
return 0;
}
bnet_sig(sd, BNET_EOD); /* indicate end of attributes data */
-#endif
+/* #endif */
/*
* If the file has data, read it and send to the Storage daemon
}
#endif
-#ifndef NO_FD_SEND_TEST
+/* #ifndef FD_NO_SEND_TEST */
/*
* Send Data header to Storage daemon
* <file-index> <stream> <info>
return 0;
}
Dmsg1(100, ">stored: datahdr %s\n", sd->msg);
-#endif
+/* #endif */
if (ff_pkt->flags & FO_MD5) {
MD5Init(&md5c);
}
#endif
-#ifndef NO_FD_SEND_TEST
+/* #ifndef FD_NO_SEND_TEST */
/* Send the buffer to the Storage daemon */
if (!sparseBlock) {
if (ff_pkt->flags & FO_SPARSE) {
}
}
Dmsg1(130, "Send data to SD len=%d\n", sd->msglen);
-#endif
+/* #endif */
jcr->JobBytes += sd->msglen; /* count bytes saved possibly compressed */
sd->msg = msgsave; /* restore read buffer */
}
bclose(&ff_pkt->bfd); /* close file */
-#ifndef NO_FD_SEND_TEST
+/* #ifndef FD_NO_SEND_TEST */
if (!bnet_sig(sd, BNET_EOD)) { /* indicate end of file data */
set_jcr_job_status(jcr, JS_ErrorTerminated);
return 0;
}
-#endif /* NO_FD_SEND_TEST */
+/* #endif */
}
/* Terminate any MD5 signature and send it to Storage daemon and the Director */
if (gotMD5 && ff_pkt->flags & FO_MD5) {
MD5Final(signature, &md5c);
-#ifndef NO_FD_SEND_TEST
+/* #ifndef FD_NO_SEND_TEST */
bnet_fsend(sd, "%ld %d 0", jcr->JobFiles, STREAM_MD5_SIGNATURE);
Dmsg1(100, "bfiled>stored:header %s\n", sd->msg);
memcpy(sd->msg, signature, 16);
sd->msglen = 16;
bnet_send(sd);
bnet_sig(sd, BNET_EOD); /* end of MD5 */
-#endif
+/* #endif */
gotMD5 = 0;
} else if (gotSHA1 && ff_pkt->flags & FO_SHA1) {
/* Terminate any SHA1 signature and send it to Storage daemon and the Director */
SHA1Final(&sha1c, signature);
-#ifndef NO_FD_SEND_TEST
+/* #ifndef FD_NO_SEND_TEST */
bnet_fsend(sd, "%ld %d 0", jcr->JobFiles, STREAM_SHA1_SIGNATURE);
Dmsg1(100, "bfiled>stored:header %s\n", sd->msg);
memcpy(sd->msg, signature, 20);
sd->msglen = 20;
bnet_send(sd);
bnet_sig(sd, BNET_EOD); /* end of SHA1 */
-#endif
+/* #endif */
gotMD5 = 0;
}
return 1;