db->settings = nmem_malloc(service->nmem, sizeof(struct settings*) *
settings_num(service));
+ db->num_settings = settings_num(service);
memset(db->settings, 0, sizeof(struct settings*) * settings_num(service));
idset = nmem_malloc(service->nmem, sizeof(*idset));
idset->precedence = 0;
struct conf_service *service,
struct database_criterion *c)
{
- int offset = settings_offset(service, c->name);
+ int offset = settings_lookup_offset(service, c->name);
struct database_criterion_value *v;
if (offset < 0)
}
if (!settings[offset])
return 0;
- if (c->type == PAZPAR2_STRING_MATCH)
- for (v = c->values; v; v = v->next)
+ for (v = c->values; v; v = v->next)
+ {
+ if (c->type == PAZPAR2_STRING_MATCH)
{
if (offset == PZ_ID)
{
if (!strcmp(settings[offset]->value, v->value))
break;
}
- }
- else if (c->type == PAZPAR2_SUBSTRING_MATCH)
- for (v = c->values; v; v = v->next)
+ }
+ else if (c->type == PAZPAR2_SUBSTRING_MATCH)
{
- if (offset == PZ_ID)
- {
- if (match_zurl(settings[offset]->value, v->value))
- break;
- }
- else
- {
- if (strstr(settings[offset]->value, v->value))
- break;
- }
+ if (strstr(settings[offset]->value, v->value))
+ break;
}
+ }
if (v)
return 1;
else