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

Re: Overlays: using search attributes



> Hello everyone,
>
> As mentioned before, I'm working on an overlay. And, I need to retrieve
> all
> the attributes send with the search request.
> Here is a part of my source:
>
>    AttributeDescription* patt = op->oq_search.rs_attrs->an_desc;
>    while(patt != NULL)
>    {
>      fprintf(fdebug, "attributes: %*s \n", (int) patt->ad_cname.bv_len,
> patt->ad_cname.bv_val);
>      patt = patt->ad_next;
>    }
>
> This only writes the name of the first attribute to the "fdebug" file. And
> the "patt->ad_next" is NULL (even when I've lots of attributes in my
> request).
> I tried using the AttributeName with the "an_name", but in the
> AttibuteName
> structure there is no pointer to the next AttibuteName.
> I could realy use some help! Thanks!

You're not supposed to do that.  The search attributes are stored as an
array (not a list) of AttributeName structures.  This is because a search
request may legitimately contain non-attribute values (e.g. '*', a
non-existing attribute name, attribute names with options and so.  The
array is terminated by an attribute name with an_value.bv_val == NULL.

p.