From 3db4e6d21ef85c3fbf1d7e0ae36bd1f039fec255 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Sun, 11 Feb 2018 17:17:08 +0800 Subject: [PATCH] service: add func for string config change check To also prepare for following commits introducing more string value change detection Signed-off-by: Yousong Zhou --- service/instance.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/service/instance.c b/service/instance.c index ecbb6ea..74c47fa 100644 --- a/service/instance.c +++ b/service/instance.c @@ -587,6 +587,11 @@ instance_restart(struct service_instance *in) uloop_timeout_set(&in->timeout, in->term_timeout * 1000); } +static bool string_changed(const char *a, const char *b) +{ + return !((!a && !b) || (a && b && !strcmp(a, b))); +} + static bool instance_config_changed(struct service_instance *in, struct service_instance *in_new) { @@ -614,14 +619,7 @@ instance_config_changed(struct service_instance *in, struct service_instance *in if (in->gid != in_new->gid) return true; - if (in->pidfile && in_new->pidfile) - if (strcmp(in->pidfile, in_new->pidfile)) - return true; - - if (in->pidfile && !in_new->pidfile) - return true; - - if (!in->pidfile && in_new->pidfile) + if (string_changed(in->pidfile, in_new->pidfile)) return true; if (in->respawn_retry != in_new->respawn_retry) -- 2.25.1