]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/getmsg.c
Add SD heartbeat
[bacula/bacula] / bacula / src / dird / getmsg.c
index e6ec9b4153c9335faeac5eb55de7ebff70fc6865..8383a7ab5b7e139731db5c908383a07b1ae3c7af 100644 (file)
@@ -83,28 +83,28 @@ int32_t bget_msg(BSOCK *bs, int rtn)
       if (n == BNET_SIGNAL) {         /* handle signal */
         /* BNET_SIGNAL (-1) return from bnet_recv() => network signal */
         switch (bs->msglen) {
-           case BNET_EOD:            /* end of data */
-              return n;
-           case BNET_EOD_POLL:
-              bnet_fsend(bs, OK_msg);/* send response */
-              return n;              /* end of data */
-           case BNET_TERMINATE:
-              bs->terminated = 1;
-              return n;
-           case BNET_POLL:
-              bnet_fsend(bs, OK_msg); /* send response */
-              break;
-           case BNET_HEARTBEAT:
-              bnet_sig(bs, BNET_HB_RESPONSE);
-              break;
-           case BNET_STATUS:
-              /* *****FIXME***** Implement */
-               bnet_fsend(bs, "Status OK\n");
-              bnet_sig(bs, BNET_EOD);
-              break;
-           default:
-               Emsg1(M_WARNING, 0, _("bget_msg: unknown signal %d\n"), bs->msglen);
-              return n;
+        case BNET_EOD:            /* end of data */
+           return n;
+        case BNET_EOD_POLL:
+           bnet_fsend(bs, OK_msg);/* send response */
+           return n;              /* end of data */
+        case BNET_TERMINATE:
+           bs->terminated = 1;
+           return n;
+        case BNET_POLL:
+           bnet_fsend(bs, OK_msg); /* send response */
+           break;
+        case BNET_HEARTBEAT:
+        case BNET_HB_RESPONSE:
+           break;
+        case BNET_STATUS:
+           /* *****FIXME***** Implement */
+            bnet_fsend(bs, "Status OK\n");
+           bnet_sig(bs, BNET_EOD);
+           break;
+        default:
+            Emsg1(M_WARNING, 0, _("bget_msg: unknown signal %d\n"), bs->msglen);
+           return n;
         }
         continue;
       }
@@ -128,6 +128,7 @@ int32_t bget_msg(BSOCK *bs, int rtn)
          Emsg1(M_ERROR, 0, _("Job not found: %s\n"), bs->msg);
         continue;
       }
+      Dmsg1(200, "Getmsg got jcr 0x%x\n", jcr);
 
       /* Skip past "Jmsg Job=nnn" */
       if (!(msg=find_msg_start(bs->msg))) {
@@ -165,13 +166,16 @@ int32_t bget_msg(BSOCK *bs, int rtn)
        *   CatReq Job=nn Catalog-Request-Message
        */
       if (bs->msg[0] == 'C') {        /* Catalog request */
-         Dmsg1(120, "Catalog req: %s", bs->msg);
+         Dmsg2(120, "Catalog req jcr 0x%x: %s", jcr, bs->msg);
         catalog_request(jcr, bs, msg);
+         Dmsg1(200, "Calling freejcr 0x%x\n", jcr);
         free_jcr(jcr);
         continue;
       }
       if (bs->msg[0] == 'U') {        /* Catalog update */
+         Dmsg2(120, "Catalog upd jcr 0x%x: %s", jcr, bs->msg);
         catalog_update(jcr, bs, msg);
+         Dmsg1(200, "Calling freejcr 0x%x\n", jcr);
         free_jcr(jcr);
         continue;
       }
@@ -203,7 +207,7 @@ static char *find_msg_start(char *msg)
  *  Returns: 0 on failure
  *          1 on success
  */
-int response(BSOCK *fd, char *resp, char *cmd)
+int response(BSOCK *fd, char *resp, char *cmd, int prtmsg)
 {
    int n;
 
@@ -215,11 +219,13 @@ int response(BSOCK *fd, char *resp, char *cmd)
       if (strcmp(fd->msg, resp) == 0) {
         return 1;
       }
-      Emsg3(M_FATAL, 0, _("<filed: bad response to %s command: wanted %s got: %s\n"),
-        cmd, resp, fd->msg);
+      if (prtmsg) {
+         Emsg3(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, _("<filed: Socket error from Filed on %s command: ERR=%s\n"),
+   Emsg2(M_FATAL, 0, _("Socket error from Filed on %s command: ERR=%s\n"),
         cmd, bnet_strerror(fd));
    return 0;
 }