[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
RE: Ignore ing
Andrew.Briscoe@icl.com writes:
> (...) LBER_SEEK_TAGS_MODE (...)
> If this new option has been used then calls to
> ber_scanf() will seek out the tags specified in the
> ber_scanf format string passively skipping those that do
> not satisfy the ber_scanf request.
>
> This seemed to be the easiest way to satisfy the
> statement in rfc2251. As it has no external impact on
> the LDAP API look and feel and it does not prejudice
> v2 LDAP functionality.
I assume this means you set the flag for ldapv3 clients but not v2
clients? That sounds quite good to me.
One detail if you are trying to get it _really_ perfect: If an
unrecognized tag occurs before the ldap version in the bindRequest, but
the version is < 3, the Really Correct behaviour is probably to return
an error. Which means you must set a flag if some elements were skipped
due to unrecognized tags. (Either in the BerElement, or by reading the
initial part of the request "by hand".)
(Actually, I wouldn't care if LDAPv2 also ignored unrecognized elements,
I'd be satisfied to assume the client wanted what he seemed to ask for.
There is almost no _correct_ use of LDAPv2 anyway; people get at least
the charset wrong. UTF-8/iso8859-1 instead of T.61.)
How do you specify the tags to skip? I imagine a format like this:
'r' Skip elements with unrecognized tags.
The argument is a ber_tag_t* which points to an array of
the recognized tags, terminated by LBER_DEFAULT.
'R' For convenience: as 'r', but takes a single ber_tag_t.
and a corresponding function
ber_skip_to_tags(BerElement *ber, const ber_tag_t *recognized_tags)
--
Hallvard