1/*-
2 * Copyright (c) 2009-2010 The FreeBSD Foundation
3 * Copyright (c) 2010 Pawel Jakub Dawidek <pjd@FreeBSD.org>
4 * All rights reserved.
5 *
6 * This software was developed by Pawel Jakub Dawidek under sponsorship from
7 * the FreeBSD Foundation.
8 *
--- 15 unchanged lines hidden (view full) ---
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 */
30
31#include <sys/cdefs.h>
32__FBSDID("$FreeBSD: head/sbin/hastd/hastd.c 211886 2010-08-27 15:16:52Z pjd $");
33
34#include <sys/param.h>
35#include <sys/linker.h>
36#include <sys/module.h>
37#include <sys/wait.h>
38
39#include <assert.h>
40#include <err.h>
--- 16 unchanged lines hidden (view full) ---
57#include "hastd.h"
58#include "subr.h"
59
60/* Path to configuration file. */
61const char *cfgpath = HAST_CONFIG;
62/* Hastd configuration. */
63static struct hastd_config *cfg;
64/* Was SIGCHLD signal received? */
65bool sigchld_received = false;
66/* Was SIGHUP signal received? */
67bool sighup_received = false;
68/* Was SIGINT or SIGTERM signal received? */
69bool sigexit_received = false;
70/* PID file handle. */
71struct pidfh *pfh;
72
73static void
--- 110 unchanged lines hidden (view full) ---
184 if (res0->hr_role == HAST_ROLE_INIT ||
185 res0->hr_role == HAST_ROLE_SECONDARY) {
186 if (strcmp(res0->hr_remoteaddr, res1->hr_remoteaddr) != 0)
187 return (true);
188 if (res0->hr_replication != res1->hr_replication)
189 return (true);
190 if (res0->hr_timeout != res1->hr_timeout)
191 return (true);
192 if (strcmp(res0->hr_exec, res1->hr_exec) != 0)
193 return (true);
194 }
195 return (false);
196}
197
198static bool
199resource_needs_reload(const struct hast_resource *res0,
200 const struct hast_resource *res1)
201{
--- 6 unchanged lines hidden (view full) ---
208 return (false);
209
210 if (strcmp(res0->hr_remoteaddr, res1->hr_remoteaddr) != 0)
211 return (true);
212 if (res0->hr_replication != res1->hr_replication)
213 return (true);
214 if (res0->hr_timeout != res1->hr_timeout)
215 return (true);
216 if (strcmp(res0->hr_exec, res1->hr_exec) != 0)
217 return (true);
218 return (false);
219}
220
221static void
222hastd_reload(void)
223{
224 struct hastd_config *newcfg;
225 struct hast_resource *nres, *cres, *tres;
--- 505 unchanged lines hidden ---
2 * Copyright (c) 2009-2010 The FreeBSD Foundation
3 * Copyright (c) 2010 Pawel Jakub Dawidek <pjd@FreeBSD.org>
4 * All rights reserved.
5 *
6 * This software was developed by Pawel Jakub Dawidek under sponsorship from
7 * the FreeBSD Foundation.
8 *
--- 15 unchanged lines hidden (view full) ---
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 */
30
31#include <sys/cdefs.h>
32__FBSDID("$FreeBSD: head/sbin/hastd/hastd.c 211886 2010-08-27 15:16:52Z pjd $");
33
34#include <sys/param.h>
35#include <sys/linker.h>
36#include <sys/module.h>
37#include <sys/wait.h>
38
39#include <assert.h>
40#include <err.h>
--- 16 unchanged lines hidden (view full) ---
57#include "hastd.h"
58#include "subr.h"
59
60/* Path to configuration file. */
61const char *cfgpath = HAST_CONFIG;
62/* Hastd configuration. */
63static struct hastd_config *cfg;
64/* Was SIGCHLD signal received? */
65bool sigchld_received = false;
66/* Was SIGHUP signal received? */
67bool sighup_received = false;
68/* Was SIGINT or SIGTERM signal received? */
69bool sigexit_received = false;
70/* PID file handle. */
71struct pidfh *pfh;
72
73static void
--- 110 unchanged lines hidden (view full) ---
184 if (res0->hr_role == HAST_ROLE_INIT ||
185 res0->hr_role == HAST_ROLE_SECONDARY) {
186 if (strcmp(res0->hr_remoteaddr, res1->hr_remoteaddr) != 0)
187 return (true);
188 if (res0->hr_replication != res1->hr_replication)
189 return (true);
190 if (res0->hr_timeout != res1->hr_timeout)
191 return (true);
192 if (strcmp(res0->hr_exec, res1->hr_exec) != 0)
193 return (true);
194 }
195 return (false);
196}
197
198static bool
199resource_needs_reload(const struct hast_resource *res0,
200 const struct hast_resource *res1)
201{
--- 6 unchanged lines hidden (view full) ---
208 return (false);
209
210 if (strcmp(res0->hr_remoteaddr, res1->hr_remoteaddr) != 0)
211 return (true);
212 if (res0->hr_replication != res1->hr_replication)
213 return (true);
214 if (res0->hr_timeout != res1->hr_timeout)
215 return (true);
216 if (strcmp(res0->hr_exec, res1->hr_exec) != 0)
217 return (true);
218 return (false);
219}
220
221static void
222hastd_reload(void)
223{
224 struct hastd_config *newcfg;
225 struct hast_resource *nres, *cres, *tres;
--- 505 unchanged lines hidden ---