* any message beginning with Jmsg will be processed.
*
*/
-int32_t bget_msg(BSOCK *bs, int rtn)
+int bget_dirmsg(BSOCK *bs)
{
int32_t n;
char Job[MAX_NAME_LENGTH];
for (;;) {
n = bnet_recv(bs);
- Dmsg2(120, "bget_msg %d: %s\n", n, bs->msg);
+ Dmsg2(120, "bget_dirmsg %d: %s\n", n, bs->msg);
if (is_bnet_stop(bs)) {
return n; /* error or terminate */
bnet_fsend(bs, OK_msg); /* send response */
break;
case BNET_HEARTBEAT:
+// encode_time(time(NULL), Job);
+// Dmsg1(100, "%s got heartbeat.\n", Job);
+ break;
case BNET_HB_RESPONSE:
break;
case BNET_STATUS:
- /* *****FIXME***** Implement */
+ /* *****FIXME***** Implement more completely */
bnet_fsend(bs, "Status OK\n");
bnet_sig(bs, BNET_EOD);
break;
+ case BNET_BTIME: /* send Bacula time */
+ char ed1[50];
+ bnet_fsend(bs, "btime %s\n", edit_uint64(get_current_btime(),ed1));
+ break;
default:
- Emsg1(M_WARNING, 0, _("bget_msg: unknown signal %d\n"), bs->msglen);
+ Emsg1(M_WARNING, 0, _("bget_dirmsg: unknown bnet signal %d\n"), bs->msglen);
return n;
}
continue;
/* Handle normal data */
- if (B_ISDIGIT(bs->msg[0])) { /* response? */
+ if (n > 0 && B_ISDIGIT(bs->msg[0])) { /* response? */
return n; /* yes, return it */
}
* Returns: 0 on failure
* 1 on success
*/
-int response(BSOCK *fd, char *resp, char *cmd, int prtmsg)
+int response(JCR *jcr, BSOCK *fd, char *resp, char *cmd, e_prtmsg prtmsg)
{
int n;
if (is_bnet_error(fd)) {
return 0;
}
- if ((n = bget_msg(fd, 0)) >= 0) {
+ if ((n = bget_dirmsg(fd)) >= 0) {
Dmsg0(110, fd->msg);
if (strcmp(fd->msg, resp) == 0) {
return 1;
}
- if (prtmsg) {
- Emsg3(M_FATAL, 0, _("FD gave bad response to %s command: wanted %s got: %s\n"),
+ if (prtmsg == DISPLAY_ERROR) {
+ Jmsg(jcr, M_FATAL, 0, _("FD gave bad response to %s command: wanted %s got: %s\n"),
cmd, resp, fd->msg);
}
return 0;
}
- Emsg2(M_FATAL, 0, _("Socket error from Filed on %s command: ERR=%s\n"),
+ Jmsg(jcr, M_FATAL, 0, _("Socket error from Filed on %s command: ERR=%s\n"),
cmd, bnet_strerror(fd));
return 0;
}