*
*/
/*
- Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker
+ Copyright (C) 2000-2003 Kern Sibbald and John Walker
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
jcr->buf_size = MAX_NETWORK_BUFFER_SIZE;
if ((jcr->big_buf = (char *) malloc(jcr->buf_size)) == NULL) {
- Emsg1(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"), MAX_NETWORK_BUFFER_SIZE);
}
- set_find_options(jcr->ff, jcr->incremental, jcr->mtime);
+ 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, verify_file, (void *)jcr);
+ find_files(jcr, (FF_PKT *)jcr->ff, verify_file, (void *)jcr);
Dmsg0(10, "End find files\n");
bnet_sig(dir, BNET_EOD); /* signal end of data */
/*
* Called here by find() for each file.
-
- *****FIXME***** add FSMs File System Modules
-
*
* Find the file, compute the MD5 and send it back to the Director
*/
int32_t n;
int fid, stat;
struct MD5Context md5c;
- unsigned char signature[16];
+ unsigned char signature[20];
BSOCK *dir;
JCR *jcr = (JCR *)pkt;
case FT_SPEC:
Dmsg1(30, "FT_SPEC saving: %s\n", ff_pkt->fname);
break;
+ case FT_RAW:
+ Dmsg1(30, "FT_RAW saving: %s\n", ff_pkt->fname);
+ break;
+ case FT_FIFO:
+ Dmsg1(30, "FT_FIFO saving: %s\n", ff_pkt->fname);
+ break;
case FT_NOACCESS:
Jmsg(jcr, M_NOTSAVED, -1, _(" Could not access %s: ERR=%s\n"), ff_pkt->fname, strerror(ff_pkt->ff_errno));
return 1;
Jmsg(jcr, M_NOTSAVED, -1, _(" Could not follow link %s: ERR=%s\n"), ff_pkt->fname, strerror(ff_pkt->ff_errno));
return 1;
case FT_NOSTAT:
- Jmsg(jcr, M_NOTSAVED, -1, _(" Could not stat %s: ERR=%s\n"), ff_pkt->fname, strerror(ff_pkt->ff_errno));
+ Jmsg(jcr, M_NOTSAVED, -1, _(" Could not stat %s: ERR=%s\n"), ff_pkt->fname, strerror(ff_pkt->ff_errno));
return 1;
case FT_DIRNOCHG:
case FT_NOCHG:
}
- if (ff_pkt->type != FT_LNKSAVED && S_ISREG(ff_pkt->statp.st_mode) &&
- ff_pkt->statp.st_size > 0) {
+ 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) {
if ((fid = open(ff_pkt->fname, O_RDONLY | O_BINARY)) < 0) {
ff_pkt->ff_errno = errno;
Jmsg(jcr, M_NOTSAVED, -1, _(" Cannot open %s: ERR=%s.\n"), ff_pkt->fname, strerror(ff_pkt->ff_errno));
encode_stat(attribs, &ff_pkt->statp);
+ P(jcr->mutex);
jcr->JobFiles++; /* increment number of files sent */
pm_strcpy(&jcr->last_fname, ff_pkt->fname);
+ V(jcr->mutex);
/*