X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fsession.c;h=8deded888cd8b495005087bed17e4011e67357b6;hb=f75dc6076c0d4846d80929c40894bb4fdd678dc2;hp=f3e71fe92e13ca58aafac0142853fe975950785a;hpb=0a70ba6da785b09a4bb1a2a0db5576c157a5dae7;p=pazpar2-moved-to-github.git diff --git a/src/session.c b/src/session.c index f3e71fe..8deded8 100644 --- a/src/session.c +++ b/src/session.c @@ -1681,17 +1681,31 @@ static int check_limit_local(struct client *cl, if (!name) break; - md_field_id = conf_service_metadata_field_id(service, name); - if (md_field_id < 0) + if (!strcmp(name, "*")) { - skip_record = 1; - break; + for (md_field_id = 0; md_field_id < service->num_metadata; + md_field_id++) + { + if (match_metadata_local(record, service, md_field_id, + values, num_v)) + break; + } + if (md_field_id == service->num_metadata) + skip_record = 1; } - if (!match_metadata_local(record, service, md_field_id, - values, num_v)) + else { - skip_record = 1; - break; + md_field_id = conf_service_metadata_field_id(service, name); + if (md_field_id < 0) + { + skip_record = 1; + break; + } + if (!match_metadata_local(record, service, md_field_id, + values, num_v)) + { + skip_record = 1; + } } } nmem_destroy(nmem_tmp);