]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/filed/heartbeat.c
Add comment to crypto.h
[bacula/bacula] / bacula / src / filed / heartbeat.c
index cb80c769eaf5fc3a260faf58da360a0922863cee..32496e7a8e07d861d9d92a4fc79a7f700f9127b2 100644 (file)
@@ -9,24 +9,37 @@
  *
  */
 /*
-   Copyright (C) 2003-2005 Kern Sibbald
+   Bacula® - The Network Backup Solution
 
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License
-   version 2 as ammended with additional clauses defined in the
-   file LICENSE in the main source directory.
+   Copyright (C) 2003-2006 Free Software Foundation Europe e.V.
 
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
-   the file LICENSE for additional details.
+   The main author of Bacula is Kern Sibbald, with contributions from
+   many others, a complete list can be found in the file AUTHORS.
+   This program is Free Software; you can redistribute it and/or
+   modify it under the terms of version two of the GNU General Public
+   License as published by the Free Software Foundation plus additions
+   that are listed in the file LICENSE.
 
- */
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.
+
+   Bacula® is a registered trademark of John Walker.
+   The licensor of Bacula is the Free Software Foundation Europe
+   (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+   Switzerland, email:ftf@fsfeurope.org.
+*/
 
 #include "bacula.h"
 #include "filed.h"
 
-#define WAIT_INTERVAL 10
+#define WAIT_INTERVAL 5
 
 extern "C" void *sd_heartbeat_thread(void *arg);
 extern "C" void *dir_heartbeat_thread(void *arg);
@@ -49,12 +62,6 @@ extern "C" void *sd_heartbeat_thread(void *arg)
 
    /* Get our own local copy */
    sd = dup_bsock(jcr->store_bsock);
-#ifndef WIN32
-   int oflags;
-   if ((oflags = fcntl(sd->fd, F_GETFL, 0)) != -1) {
-      fcntl(sd->fd, F_SETFL, oflags|O_NONBLOCK);
-   }
-#endif
    dir = dup_bsock(jcr->dir_bsock);
 
    jcr->hb_bsock = sd;
@@ -74,7 +81,7 @@ extern "C" void *sd_heartbeat_thread(void *arg)
             last_heartbeat = now;
          }
       }
-      if (is_bnet_stop(sd)) {
+      if (n < 0 || is_bnet_stop(sd)) {
          break;
       }
       if (n == 1) {                   /* input waiting */
@@ -85,7 +92,7 @@ extern "C" void *sd_heartbeat_thread(void *arg)
             Dmsg2(100, "Got %d bytes from SD. MSG=%s\n", sd->msglen, sd->msg);
          }
       }
-      Dmsg2(000, "wait_intr=%d stop=%d\n", n, is_bnet_stop(sd));
+      Dmsg2(100, "wait_intr=%d stop=%d\n", n, is_bnet_stop(sd));
    }
    bnet_close(sd);
    bnet_close(dir);
@@ -120,8 +127,6 @@ void stop_heartbeat_monitor(JCR *jcr)
    while (jcr->hb_bsock == NULL && cnt++ < 200) {
       bmicrosleep(0, 50000);         /* wait for start */
    }
-   if (!jcr->hb_bsock) {
-   }
 
    if (jcr->hb_bsock) {
       jcr->hb_bsock->timed_out = 1;   /* set timed_out to terminate read */
@@ -131,6 +136,7 @@ void stop_heartbeat_monitor(JCR *jcr)
       jcr->hb_dir_bsock->timed_out = 1;   /* set timed_out to terminate read */
       jcr->hb_dir_bsock->terminated = 1;  /* set to terminate read */
    }
+   Dmsg0(100, "Send kill to heartbeat id\n");
    pthread_kill(jcr->heartbeat_id, TIMEOUT_SIGNAL);  /* make heartbeat thread go away */
    bmicrosleep(0, 50000);
    cnt = 0;
@@ -139,8 +145,6 @@ void stop_heartbeat_monitor(JCR *jcr)
       pthread_kill(jcr->heartbeat_id, TIMEOUT_SIGNAL);  /* make heartbeat thread go away */
       bmicrosleep(0, 500000);
    }
-   if (jcr->hb_bsock) {
-   }
 }
 
 /*