+ p = fileset->include_array[i];
+ skip_nonspaces(&p);
+ skip_spaces(&p);
+ switch (*p++) {
+ case '|':
+ fd->msg = edit_job_codes(jcr, fd->msg, p, "");
+ Dmsg1(000, "Doing bopen: %s\n", fd->msg);
+ bpipe = open_bpipe(fd->msg, 0, "r");
+ if (!bpipe) {
+ Jmsg(jcr, M_FATAL, 0, _("Cannot run program: %s. ERR=%s\n"),
+ p, strerror(errno));
+ goto bail_out;
+ }
+ Dmsg0(000, "Call fgets\n");
+ while (fgets(buf, sizeof(buf), bpipe->rfd)) {
+ fd->msglen = Mmsg(&fd->msg, "%s", buf);
+ Dmsg2(000, "Including len=%d: %s", fd->msglen, fd->msg);
+ if (!bnet_send(fd)) {
+ Jmsg(jcr, M_FATAL, 0, _(">filed: write error on socket\n"));
+ goto bail_out;
+ }
+ }
+ Dmsg0(000, "Close bpipe\n");
+ close_bpipe(bpipe);
+ break;
+ case '<':
+ if ((ffd = fopen(p, "r")) == NULL) {
+ Jmsg(jcr, M_FATAL, 0, _("Cannot open included file: %s. ERR=%s\n"),
+ p, strerror(errno));
+ goto bail_out;
+ }
+ while (fgets(buf, sizeof(buf), ffd)) {
+ fd->msglen = Mmsg(&fd->msg, "%s", buf);
+ if (!bnet_send(fd)) {
+ Jmsg(jcr, M_FATAL, 0, _(">filed: write error on socket\n"));
+ goto bail_out;
+ }
+ }
+ fclose(ffd);
+ break;
+ default:
+ msgsave = fd->msg;
+ fd->msg = fileset->include_array[i];
+ fd->msglen = strlen(fileset->include_array[i]);
+ if (!bnet_send(fd)) {
+ Jmsg(jcr, M_FATAL, 0, _(">filed: write error on socket\n"));
+ goto bail_out;
+ }
+ fd->msg = msgsave;
+ break;