+ const char *service_id = (const char *)
+ xmlGetProp(n, (xmlChar *) "id");
+
+ struct conf_service **sp = &server->service;
+ for (; *sp; sp = &(*sp)->next)
+ if ((*sp)->id && service_id &&
+ 0 == strcmp((*sp)->id, service_id))
+ {
+ yaz_log(YLOG_FATAL, "Duplicate service: %s", service_id);
+ break;
+ }
+ else if (!(*sp)->id && !service_id)
+ {
+ yaz_log(YLOG_FATAL, "Duplicate unnamed service");
+ break;
+ }
+
+ if (*sp) /* service already exist */