[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: User-defined attribute options

Here is the next version of my patch for user-defined attribute options
and ranges.  Should I commit it?
Looking at the code, I'm somewhat tempted to delete it all and instead
just predefine the `x-' tagging option range...

I'll make a separate patch later which renames
AttributeDescription.ad_lang to ad_tags, and similar changes elsewhere.

Implementation note:
AttributeDescription.ad_lang previously pointed into ad_cname.
That is no longer done if ;binary is present, because ;binary
might occur in the middle of the sorted attribute options.

Description, from slapd.conf(5):

  attributeoptions [option-name]...
    Define tagging attribute options or option ranges.  Options must not
    end with `-', ranges must end with `-'.  The `lang-' tagging option
    range is predefined.  If you use the attributeoptions directive,
    `lang-' will no longer be defined and you must specify it explicitly
    if you want it defined.

    Options defined this way have no special semantics.  Option ranges
    defined this way work like the `lang-' option range: They define a
    range of tagging options starting with the range name.  That is, if
    you define the range `x-foo-', you can use the options `x-foo-bar'
    or `x-foo-bar-baz'.  Furthermore, in a search or compare, a range or
    subrange name (with a trailing `-') matches all options starting
    with that name, as well as the option with the range name sans the
    trailing `-'.  That is, `x-foo-bar-' matches `x-foo-bar' and

    RFC2251 reserves options beginning with "x-" for private
    experiments.  Other options should be registered with IANA, see
    RFC3383 section 3.4.  OpenLDAP also has the `binary' option built
    in, but this is a transfer option, not a tagging option.

    # Subtypes of "name" (e.g. "cn" and "ou") with the
    # option ";x-hidden" can be searched for/compared,
    # but are not shown.  See \fBslapd.access\fP(5).
    attributeoptions x-hidden lang-
    access to attr=name;x-hidden by * search