If you are not an LDAP user, you may skip the rest of this message. :-)
A question has arisen about the way Exim returns multiple values for an
attribute when multiple attributes are being returned by a query. This
was changed at the re-vamp of LDAP support in release 3.20. Suppose that
attr1 has two values, "value 1" and "value 2"
attr2 has the value "value3"
If you issue an LDAP query just for attr1, the returned string is
value 1, value 2
that is, no quotes, and comma-separated. If you issue a query for both
attributes, the returned string is
attr1="value 1" attr1="value 2" attr2=value3
This maintains a rigid "name=value" pairing, but doesn't really give
access to the multiple values.
IT IS PROPOSED that a better way of handling this would be to return
attr1="value 1, value 2" attr2=value3
This would (a) give the individual value in exactly the same form as
when it is asked for on its own, and (b) have each individual attribute
name only once.
This would mean that you could not distinguish a database containing
attr1: value 1
attr1: value 2
from one that contains
attr1: value 1, value 2
but does that actually matter in practice?
A second proposal is that values following the attribute name should
always be enclosed in quotes, even if they do not contain spaces. So the
example would then read
attr1="value 1, value 2" attr2="value3"
QUESTIONS
1. Is this change going to affect many of you (the LDAP users)?
2. Do you support the change (whether or not it will affect you)?
3. Should I be worrying about commas and quotes in the data? I don't
know enough about LDAP...
IMPLEMENTATION
I'm trying hard not to make changes to Exim 3 unless they are really
necessary, so I think I would make the change only for Exim 4.
Philip
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.