From owner-svn-src-all@FreeBSD.ORG Thu Aug 5 19:01:57 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D4EC01065679; Thu, 5 Aug 2010 19:01:57 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C3A2C8FC18; Thu, 5 Aug 2010 19:01:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o75J1vrb077387; Thu, 5 Aug 2010 19:01:57 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o75J1vLT077385; Thu, 5 Aug 2010 19:01:57 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201008051901.o75J1vLT077385@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Thu, 5 Aug 2010 19:01:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r210881 - head/sbin/hastd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Aug 2010 19:01:57 -0000 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);