slapi_send_ldap_referral()

Processes an entry’s LDAP v3 referrals (which are found in the
entry’s ref attribute). For LDAP v3 clients, this
function sends the LDAP referrals back to the client. For LDAP v2 clients,
this function copies the referrals to an array of berval structures that you can pass to slapi_send_ldap_result() function at a later time.

Parameters

Pointer to the Slapi_Entry structure
representing the entry that you are working with.

refs

Pointer to the NULL terminated array of berval structures containing the LDAP v3 referrals
(search result references) found in the entry.

urls

Pointer to the array of berval structures
used to collect LDAP referrals for LDAP v2 clients.

Returns

This function returns 0 if successful, or -1 if an error occurs.

Description

When you call this function, the server processes the LDAP referrals
specified in the refs argument. The server processes referrals
in different ways, depending on the version of the LDAP protocol supported
by the client:

In the LDAP v3 protocol, references to other LDAP servers
(search result references) can be sent to clients as search results. (For
example, a server can send a mixture of entries found by the search and references
to other LDAP servers as the results of a search.)

When you call
the slapi_send_ldap_referral() function for LDAP v3 clients,
the server sends the referrals specified in the refs argument
back to the client as search result references. (The urls argument
is not used in this case.)

In the LDAP v2 protocol, servers can send the LDAP result
code LDAP_PARTIAL_RESULTS to refer the client to other
LDAP server.

When you call the slapi_send_ldap_referral() function
for LDAP v2 clients, the server collects the referrals specified in refs in the urls argument. No data is sent to the
LDAP v2 client.

To get the referrals to an LDAP v2 client, you
need to pass the urls argument (along with an LDAP_PARTIAL_RESULTS result code) to the slapi_send_ldap_result() function.slapi_send_ldap_result() concatenates the referrals
specified in the urls argument and sends the resulting
string to the client as part of the error message.

If you want
to define your own function for sending referrals, write a function that complies
with the type definition send_ldap_search_entry_fn_ptr_t and set the SLAPI_PLUGIN_DB_REFERRAL_FN parameter
in the parameter block to the name of your function.