The Normalize() API (slap_mr_normalize_func) receives a Syntax* pointing to the syntax per which it is normalizing. However, when used in conjunction with MRA filters, it might be useful to know what syntax the value that is being normalized conforms to, rather than for what syntax normalization is taking place.
Note that what syntax the normalizer is normalizing for is somehow already determined by the specific normalization function that is in use.
Also note that when the normalization of the asserted value occurs inside an MRA filter, the normalizer receives a pointer to the original syntax of the attribute rather than of the syntax it is normalizing for!
I think an easy solution would be to swap the behavior: pass the asserted syntax when normalizing the asserted value, and the attribute's syntax when normalizing the attribute value. A better solution would be to extend the API in order to pass both.
p.