svn commit: r210881 - head/sbin/hastd

Pawel Jakub Dawidek pjd at FreeBSD.org
Thu Aug 5 19:01:57 UTC 2010


Author: pjd
Date: Thu Aug  5 19:01:57 2010
New Revision: 210881
URL: http://svn.freebsd.org/changeset/base/210881

Log:
  Allow to use 'none' keywork as remote address in case second cluster node
  is not setup yet.
  
  MFC after:	1 month

Modified:
  head/sbin/hastd/primary.c

Modified: head/sbin/hastd/primary.c
==============================================================================
--- head/sbin/hastd/primary.c	Thu Aug  5 18:58:00 2010	(r210880)
+++ head/sbin/hastd/primary.c	Thu Aug  5 19:01:57 2010	(r210881)
@@ -298,6 +298,13 @@ hast_activemap_flush(struct hast_resourc
 	return (0);
 }
 
+static bool
+real_remote(const struct hast_resource *res)
+{
+
+	return (strcmp(res->hr_remoteaddr, "none") != 0);
+}
+
 static void
 init_environment(struct hast_resource *res __unused)
 {
@@ -479,6 +486,7 @@ init_remote(struct hast_resource *res, s
 	size_t size;
 
 	assert((inp == NULL && outp == NULL) || (inp != NULL && outp != NULL));
+	assert(real_remote(res));
 
 	in = out = NULL;
 
@@ -765,7 +773,7 @@ hastd_primary(struct hast_resource *res)
 	signal(SIGCHLD, SIG_DFL);
 
 	init_local(res);
-	if (init_remote(res, NULL, NULL))
+	if (real_remote(res) && init_remote(res, NULL, NULL))
 		sync_start();
 	init_ggate(res);
 	init_environment(res);
@@ -1760,7 +1768,7 @@ guard_thread(void *arg)
 				pjdlog_debug(2,
 				    "remote_guard: Connection to %s is ok.",
 				    res->hr_remoteaddr);
-			} else {
+			} else if (real_remote(res)) {
 				assert(res->hr_remotein == NULL);
 				assert(res->hr_remoteout == NULL);
 				/*
@@ -1795,6 +1803,8 @@ guard_thread(void *arg)
 					    res->hr_remoteaddr);
 					timeout = RECONNECT_SLEEP;
 				}
+			} else {
+				rw_unlock(&hio_remote_lock[ii]);
 			}
 		}
 		(void)cv_timedwait(&hio_guard_cond, &hio_guard_lock, timeout);


More information about the svn-src-head mailing list