+
+static void
+h_svc_conf_read_start(void *dummy)
+{
+ unmark_services();
+}
+
+static void
+unmark_services(void)
+{
+ struct Client *target_p;
+ rb_dlink_node *ptr;
+
+ RB_DLINK_FOREACH(ptr, global_serv_list.head)
+ {
+ target_p = ptr->data;
+
+ target_p->flags &= ~FLAGS_SERVICE;
+ }
+}
+
+static void
+h_svc_conf_read_end(void *dummy)
+{
+ mark_services();
+}
+
+static void
+mark_services(void)
+{
+ struct Client *target_p;
+ rb_dlink_node *ptr;
+
+ RB_DLINK_FOREACH(ptr, service_list.head)
+ {
+ target_p = find_server(NULL, (const char *)ptr->data);
+
+ if (target_p)
+ target_p->flags |= FLAGS_SERVICE;
+ }
+}