From 9b3cd1171cd822fc8fa7c64788c8ff350d036b1b Mon Sep 17 00:00:00 2001 From: Fabiano Fidêncio Date: Jan 23 2017 17:46:37 +0000 Subject: MONITOR: Split up check_services() Let's split up check_services() function and create a check_service() function, that receives a single service name as parameter and checks whether the service is a known service or not. This new function will be used in order to check the socket activated services. Related: https://fedorahosted.org/sssd/ticket/2243 Signed-off-by: Fabiano Fidêncio Reviewed-by: Pavel Březina Reviewed-by: Jakub Hrozek Reviewed-by: Lukáš Slebodník --- diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c index c35aba7..21f3499 100644 --- a/src/monitor/monitor.c +++ b/src/monitor/monitor.c @@ -806,21 +806,29 @@ done: return ret; } -static char *check_services(char **services) +static char *check_service(char *service) { const char * const *known_services = get_known_services(); int i; - int ii; - /* Check if services we are about to start are in the list if known */ - for (i = 0; services[i]; i++) { - for (ii=0; known_services[ii]; ii++) { - if (strcasecmp(services[i], known_services[ii]) == 0) { - break; - } + for (i = 0; known_services[i] != NULL; i++) { + if (strcasecmp(service, known_services[i]) == 0) { + break; } + } + + if (known_services[i] == NULL) { + return service; + } + + return NULL; +} - if (known_services[ii] == NULL) { +static char *check_services(char **services) +{ + /* Check if services we are about to start are in the list if known */ + for (int i = 0; services[i]; i++) { + if (check_service(services[i]) != NULL) { return services[i]; } }