Mozilla/mozilla/directory/docs/ldapcsdk/csdk-resultcodes.sgm
richm%stanfordalumni.org dd758b072f initial import of docbook contribution from Sun
git-svn-id: svn://10.0.0.236/trunk@228382 18797224-902f-48f8-a5cc-f745e15eee43
2007-06-20 14:26:52 +00:00

1481 lines
56 KiB
Plaintext

<!--
Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
Portions copyright 1999 Netscape Communications Corporation. All
Rights Reserved.
The contents of this document are subject to the terms of the
Creative Commons Attribution-ShareAlike 2.5 license or any later
version (the "License"). You may not use this document except in
compliance with the License.
See the License for the specific language governing
permissions and limitations under the License. You can obtain
a copy of the License at
http://creativecommons.org/licenses/by-sa/2.5/legalcode.
-->
<chapter id="bdaxx"><title>&DirectorySDKForC; Result Codes</title>
<indexterm>
<primary>result codes</primary>
<see>C SDK result codes</see></indexterm><indexterm>
<primary>error codes</primary>
<see>C SDK result codes</see></indexterm><indexterm>
<primary>C SDK result codes</primary>
</indexterm><indexterm>
<primary>C SDK result codes</primary>
</indexterm><highlights>
<para>This chapter lists some of the result codes that can be returned by
functions in the &DirectorySDKForC;. For ease of use, they are first listed
in numerical order, then in alphabetical order. This chapter contains the
following sections:</para>
<itemizedlist>
<listitem><para><olink targetptr="bdaxy">Overview</olink></para></listitem>
<listitem><para><olink targetptr="bdaxz">Result Codes Summary in Numerical
Order</olink></para></listitem>
<listitem><para><olink targetptr="bdayb">Result Codes Reference in Alphabetical
Order</olink></para></listitem>
</itemizedlist>
</highlights>
<sect1 id="bdaxy"><title>Overview</title>
<para>LDAP result codes are extensible; thus, LDAP v3 extensions may define
their own error codes, and register them with the Internet Assigned Numbers
Authority (<acronym>IANA</acronym>). The IANA maintains a <ulink
url="www.iana.org/assignments/ldap-parameters" type="text_url">list of registered
LDAP parameters</ulink>, including result codes. This list includes what &DirectorySDKForC; currently
knows in terms of result codes. More information can be found in <ulink
url="http://www.ietf.org/rfc/rfc4520.txt" type="text_url">RFC 4520</ulink>, <citetitle>
Internet Assigned Numbers Authority (<acronym>IANA</acronym>) Considerations
for the Lightweight Directory Access Protocol (LDAP)</citetitle>.</para></sect1>
<sect1 id="bdaxz"><title>Result Codes Summary in Numerical Order</title>
<para><olink targetptr="csdk-numerical-rc">Table 22&ndash;1</olink> gives
the decimal and hexadecimal value of all result codes. Values missing from
the sequence are not assigned to a result code.</para>
<table frame="topbot" id="csdk-numerical-rc"><title>Numerical Listing of Result
Codes by Value</title>
<tgroup cols="3"><colspec colnum="1" colwidth="20*"><colspec colnum="2"
colwidth="20*"><colspec colnum="3" colwidth="60*">
<thead>
<row>
<entry>
<para>Decimal</para></entry>
<entry>
<para>Hexadecimal</para></entry>
<entry>
<para>Defined Name</para></entry>
</row>
</thead>
<tbody>
<row rowsep="1">
<entry>
<para>0</para></entry>
<entry>
<para>0x00</para></entry>
<entry>
<para><errorcode>LDAP_SUCCESS</errorcode></para></entry>
</row>
<row>
<entry>
<para>1</para></entry>
<entry>
<para>0x01</para></entry>
<entry>
<para><errorcode>LDAP_OPERATIONS_ERROR</errorcode></para></entry>
</row>
<row>
<entry>
<para>2</para></entry>
<entry>
<para>0x02</para></entry>
<entry>
<para><errorcode>LDAP_PROTOCOL_ERROR</errorcode></para></entry>
</row>
<row>
<entry>
<para>3</para></entry>
<entry>
<para>0x03</para></entry>
<entry>
<para><errorcode>LDAP_TIMELIMIT_EXCEEDED</errorcode></para></entry>
</row>
<row>
<entry>
<para>4</para></entry>
<entry>
<para>0x04</para></entry>
<entry>
<para><errorcode>LDAP_SIZELIMIT_EXCEEDED</errorcode></para></entry>
</row>
<row>
<entry>
<para>5</para></entry>
<entry>
<para>0x05</para></entry>
<entry>
<para><errorcode>LDAP_COMPARE_FALSE</errorcode></para></entry>
</row>
<row>
<entry>
<para>6</para></entry>
<entry>
<para>0x06</para></entry>
<entry>
<para><errorcode>LDAP_COMPARE_TRUE</errorcode></para></entry>
</row>
<row>
<entry>
<para>7</para></entry>
<entry>
<para>0x07</para></entry>
<entry>
<para><errorcode>LDAP_STRONG_AUTH_NOT_SUPPORTED</errorcode></para></entry>
</row>
<row>
<entry>
<para>8</para></entry>
<entry>
<para>0x08</para></entry>
<entry>
<para><errorcode>LDAP_STRONG_AUTH_REQUIRED</errorcode></para></entry>
</row>
<row>
<entry>
<para>9</para></entry>
<entry>
<para>0x09</para></entry>
<entry>
<para><errorcode>LDAP_PARTIAL_RESULTS</errorcode></para></entry>
</row>
<row>
<entry>
<para>10</para></entry>
<entry>
<para>0x0a</para></entry>
<entry>
<para><errorcode>LDAP_REFERRAL</errorcode></para></entry>
</row>
<row>
<entry>
<para>11</para></entry>
<entry>
<para>0x0b</para></entry>
<entry>
<para><errorcode>LDAP_ADMINLIMIT_EXCEEDED</errorcode></para></entry>
</row>
<row>
<entry>
<para>12</para></entry>
<entry>
<para>0x0c</para></entry>
<entry>
<para><errorcode>LDAP_UNAVAILABLE_CRITICAL_EXTENSION</errorcode></para></entry>
</row>
<row>
<entry>
<para>13</para></entry>
<entry>
<para>0x0d</para></entry>
<entry>
<para><errorcode>LDAP_CONFIDENTIALITY_REQUIRED</errorcode></para></entry>
</row>
<row>
<entry>
<para>14</para></entry>
<entry>
<para>0x0e</para></entry>
<entry>
<para><errorcode>LDAP_SASL_BIND_IN_PROGRESS</errorcode></para></entry>
</row>
<row>
<entry></entry>
<entry></entry>
<entry>
<para></para></entry>
</row>
<row>
<entry>
<para>16</para></entry>
<entry>
<para>0x10</para></entry>
<entry>
<para><errorcode>LDAP_NO_SUCH_ATTRIBUTE</errorcode></para></entry>
</row>
<row>
<entry>
<para>17</para></entry>
<entry>
<para>0x11</para></entry>
<entry>
<para><errorcode>LDAP_UNDEFINED_TYPE</errorcode></para></entry>
</row>
<row>
<entry>
<para>18</para></entry>
<entry>
<para>0x12</para></entry>
<entry>
<para><errorcode>LDAP_INAPPROPRIATE_MATCHING</errorcode></para></entry>
</row>
<row>
<entry>
<para>19</para></entry>
<entry>
<para>0x13</para></entry>
<entry>
<para><errorcode>LDAP_CONSTRAINT_VIOLATION</errorcode></para></entry>
</row>
<row>
<entry>
<para>20</para></entry>
<entry>
<para>0x14</para></entry>
<entry>
<para><errorcode>LDAP_TYPE_OR_VALUE_EXISTS</errorcode></para></entry>
</row>
<row>
<entry>
<para>21</para></entry>
<entry>
<para>0x15</para></entry>
<entry>
<para><errorcode>LDAP_INVALID_SYNTAX</errorcode></para></entry>
</row>
<row>
<entry></entry>
<entry></entry>
<entry>
<para></para></entry>
</row>
<row>
<entry>
<para>32</para></entry>
<entry>
<para>0x20</para></entry>
<entry>
<para><errorcode>LDAP_NO_SUCH_OBJECT</errorcode></para></entry>
</row>
<row>
<entry>
<para>33</para></entry>
<entry>
<para>0x21</para></entry>
<entry>
<para><errorcode>LDAP_ALIAS_PROBLEM</errorcode></para></entry>
</row>
<row>
<entry>
<para>34</para></entry>
<entry>
<para>0x22</para></entry>
<entry>
<para><errorcode>LDAP_INVALID_DN_SYNTAX</errorcode></para></entry>
</row>
<row>
<entry>
<para>35</para></entry>
<entry>
<para>0x23</para></entry>
<entry>
<para><errorcode>LDAP_IS_LEAF</errorcode></para></entry>
</row>
<row>
<entry>
<para>36</para></entry>
<entry>
<para>0x24</para></entry>
<entry>
<para><errorcode>LDAP_ALIAS_DEREF_PROBLEM</errorcode></para></entry>
</row>
<row>
<entry></entry>
<entry></entry>
<entry>
<para></para></entry>
</row>
<row>
<entry>
<para>48</para></entry>
<entry>
<para>0x30</para></entry>
<entry>
<para><errorcode>LDAP_INAPPROPRIATE_AUTH</errorcode></para></entry>
</row>
<row>
<entry>
<para>49</para></entry>
<entry>
<para>0x31</para></entry>
<entry>
<para><errorcode>LDAP_INVALID_CREDENTIALS</errorcode></para></entry>
</row>
<row>
<entry>
<para>50</para></entry>
<entry>
<para>0x32</para></entry>
<entry>
<para><errorcode>LDAP_INSUFFICIENT_ACCESS</errorcode></para></entry>
</row>
<row>
<entry>
<para>51</para></entry>
<entry>
<para>0x33</para></entry>
<entry>
<para><errorcode>LDAP_BUSY</errorcode></para></entry>
</row>
<row>
<entry>
<para>52</para></entry>
<entry>
<para>0x34</para></entry>
<entry>
<para><errorcode>LDAP_UNAVAILABLE</errorcode></para></entry>
</row>
<row>
<entry>
<para>53</para></entry>
<entry>
<para>0x35</para></entry>
<entry>
<para><errorcode>LDAP_UNWILLING_TO_PERFORM</errorcode></para></entry>
</row>
<row>
<entry>
<para>54</para></entry>
<entry>
<para>0x36</para></entry>
<entry>
<para><errorcode>LDAP_LOOP_DETECT</errorcode></para></entry>
</row>
<row>
<entry></entry>
<entry></entry>
<entry>
<para></para></entry>
</row>
<row>
<entry>
<para>60</para></entry>
<entry>
<para>0x3C</para></entry>
<entry>
<para><errorcode>LDAP_SORT_CONTROL_MISSING</errorcode></para></entry>
</row>
<row>
<entry>
<para>61</para></entry>
<entry>
<para>0x3D</para></entry>
<entry>
<para><errorcode>LDAP_INDEX_RANGE_ERROR</errorcode></para></entry>
</row>
<row>
<entry></entry>
<entry></entry>
<entry>
<para></para></entry>
</row>
<row>
<entry>
<para>64</para></entry>
<entry>
<para>0x40</para></entry>
<entry>
<para><errorcode>LDAP_NAMING_VIOLATION</errorcode></para></entry>
</row>
<row>
<entry>
<para>65</para></entry>
<entry>
<para>0x41</para></entry>
<entry>
<para><errorcode>LDAP_OBJECT_CLASS_VIOLATION</errorcode></para></entry>
</row>
<row>
<entry>
<para>66</para></entry>
<entry>
<para>0x42</para></entry>
<entry>
<para><errorcode>LDAP_NOT_ALLOWED_ON_NONLEAF</errorcode></para></entry>
</row>
<row>
<entry>
<para>67</para></entry>
<entry>
<para>0x43</para></entry>
<entry>
<para><errorcode>LDAP_NOT_ALLOWED_ON_RDN</errorcode></para></entry>
</row>
<row>
<entry>
<para>68</para></entry>
<entry>
<para>0x44</para></entry>
<entry>
<para><errorcode>LDAP_ALREADY_EXISTS</errorcode></para></entry>
</row>
<row>
<entry>
<para>69</para></entry>
<entry>
<para>0x45</para></entry>
<entry>
<para><errorcode>LDAP_NO_OBJECT_CLASS_MODS</errorcode></para></entry>
</row>
<row>
<entry>
<para>70</para></entry>
<entry>
<para>0x46</para></entry>
<entry>
<para><errorcode>LDAP_RESULTS_TOO_LARGE</errorcode></para></entry>
</row>
<row>
<entry>
<para>71</para></entry>
<entry>
<para>0x47</para></entry>
<entry>
<para><errorcode>LDAP_AFFECTS_MULTIPLE_DSAS</errorcode></para></entry>
</row>
<row>
<entry></entry>
<entry></entry>
<entry>
<para></para></entry>
</row>
<row>
<entry>
<para>80</para></entry>
<entry>
<para>0x50</para></entry>
<entry>
<para><errorcode>LDAP_OTHER</errorcode></para></entry>
</row>
<row>
<entry>
<para>81</para></entry>
<entry>
<para>0x51</para></entry>
<entry>
<para><errorcode>LDAP_SERVER_DOWN</errorcode></para></entry>
</row>
<row>
<entry>
<para>82</para></entry>
<entry>
<para>0x52</para></entry>
<entry>
<para><errorcode>LDAP_LOCAL_ERROR</errorcode></para></entry>
</row>
<row>
<entry>
<para>83</para></entry>
<entry>
<para>0x53</para></entry>
<entry>
<para><errorcode>LDAP_ENCODING_ERROR</errorcode></para></entry>
</row>
<row>
<entry>
<para>84</para></entry>
<entry>
<para>0x54</para></entry>
<entry>
<para><errorcode>LDAP_DECODING_ERROR</errorcode></para></entry>
</row>
<row>
<entry>
<para>85</para></entry>
<entry>
<para>0x55</para></entry>
<entry>
<para><errorcode>LDAP_TIMEOUT</errorcode></para></entry>
</row>
<row>
<entry>
<para>86</para></entry>
<entry>
<para>0x56</para></entry>
<entry>
<para><errorcode>LDAP_AUTH_UNKNOWN</errorcode></para></entry>
</row>
<row>
<entry>
<para>87</para></entry>
<entry>
<para>0x57</para></entry>
<entry>
<para><errorcode>LDAP_FILTER_ERROR</errorcode></para></entry>
</row>
<row>
<entry>
<para>88</para></entry>
<entry>
<para>0x58</para></entry>
<entry>
<para><errorcode>LDAP_USER_CANCELLED</errorcode></para></entry>
</row>
<row>
<entry>
<para>89</para></entry>
<entry>
<para>0x59</para></entry>
<entry>
<para><errorcode>LDAP_PARAM_ERROR</errorcode></para></entry>
</row>
<row>
<entry>
<para>90</para></entry>
<entry>
<para>0x5a</para></entry>
<entry>
<para><errorcode>LDAP_NO_MEMORY</errorcode></para></entry>
</row>
<row>
<entry>
<para>91</para></entry>
<entry>
<para>0x5b</para></entry>
<entry>
<para><errorcode>LDAP_CONNECT_ERROR</errorcode></para></entry>
</row>
<row>
<entry>
<para>92</para></entry>
<entry>
<para>0x5c</para></entry>
<entry>
<para><errorcode>LDAP_NOT_SUPPORTED</errorcode></para></entry>
</row>
<row>
<entry>
<para>93</para></entry>
<entry>
<para>0x5d</para></entry>
<entry>
<para><errorcode>LDAP_CONTROL_NOT_FOUND</errorcode></para></entry>
</row>
<row>
<entry>
<para>94</para></entry>
<entry>
<para>0x5e</para></entry>
<entry>
<para><errorcode>LDAP_NO_RESULTS_RETURNED</errorcode></para></entry>
</row>
<row>
<entry>
<para>95</para></entry>
<entry>
<para>0x5f</para></entry>
<entry>
<para><errorcode>LDAP_MORE_RESULTS_TO_RETURN</errorcode></para></entry>
</row>
<row>
<entry>
<para>96</para></entry>
<entry>
<para>0x60</para></entry>
<entry>
<para><errorcode>LDAP_CLIENT_LOOP</errorcode></para></entry>
</row>
<row>
<entry>
<para>97</para></entry>
<entry>
<para>0x61</para></entry>
<entry>
<para><errorcode>LDAP_REFERRAL_LIMIT_EXCEEDED</errorcode></para></entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
<sect1 id="bdayb"><title>Result Codes Reference in Alphabetical Order</title>
<indexterm>
<primary>result codes</primary>
<see>C SDK result codes</see></indexterm><indexterm>
<primary>error codes</primary>
<see>C SDK result codes</see></indexterm><indexterm>
<primary>C SDK result codes</primary>
</indexterm><indexterm>
<primary>C SDK result codes</primary>
</indexterm>
<para>The following sections contain the detailed reference information for
each result code listed in alphabetical order by code name.</para>
<msgset><simplemsgentry id="bdayc"><msgtext>
<screen>LDAP_ADMINLIMIT_EXCEEDED</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the look-through
limit on a search operation has been exceeded. The <emphasis>look-through
limit</emphasis> is the maximum number of entries that the server will check
when gathering a list of potential search result candidates.</para>
<note><para>When working with &cnDirectoryServer;, keep in mind the following:</para>
<itemizedlist>
<listitem><para>If you are bound as the root DN, the server sets an infinite
look-through limit.</para></listitem>
<listitem><para>If you are not bound as the root DN, the server sets a time
limit.</para></listitem>
</itemizedlist>
</note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_ADMINLIMIT_EXCEEDED 0x0b
/* 11 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayd"><msgtext>
<screen>LDAP_AFFECTS_MULTIPLE_DSAS</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the requested
operation needs to be performed on multiple servers, where this operation
is not permitted.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_AFFECTS_MULTIPLE_DSAS 0x47
/* 71 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdaye"><msgtext>
<screen>LDAP_ALIAS_DEREF_PROBLEM</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that a problem
occurred when dereferencing an alias.</para>
<note><para>&cnDirectoryServer; does not currently send this result code back
to LDAP clients.</para></note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_ALIAS_DEREF_PROBLEM 0x24
/* 36 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayf"><msgtext>
<screen>LDAP_ALIAS_PROBLEM</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the alias
is invalid.</para>
<note><para>&cnDirectoryServer; does not currently send this result code back
to LDAP clients.</para></note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_ALIAS_PROBLEM 0x21 /*
33 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayg"><msgtext>
<screen>LDAP_ALREADY_EXISTS</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the request
is attempting to add an entry that already exists in the directory. &cnDirectoryServer; sends
this result code back to the client in the following situations:</para>
<itemizedlist>
<listitem><para>The request is an add request, and the entry already exists
in the directory.</para></listitem>
<listitem><para>The request is a modify DN request, and the new DN of the
entry already identifies another entry.</para></listitem>
<listitem><para>The request is adding an attribute to the schema, and an attribute
with the specified name or object identifier (OID) already exists.</para>
</listitem>
</itemizedlist>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_ALREADY_EXISTS 0x44 /*
68 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayh"><msgtext>
<screen>LDAP_AUTH_UNKNOWN</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that an unknown
authentication method was specified.</para>
<note><para>&DirectorySDKForC; library sets this result code if <olink targetptr="bdaqe">ldap_bind</olink> or <olink targetptr="bdaqf">ldap_bind_s</olink> are
called and an authentication method other than <literal>LDAP_AUTH_SIMPLE</literal> is
specified. These functions only allow you to use simple authentication.</para>
</note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_AUTH_UNKNOWN 0x56 /* 86
*/</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayi"><msgtext>
<screen>LDAP_BUSY</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the server
is currently too busy to perform the requested operation.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_BUSY 0x33 /* 51 */</literal></para>
</msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayj"><msgtext>
<screen>LDAP_CLIENT_LOOP</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the LDAP
client detected a loop, for example, when following referrals.</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_CLIENT_LOOP 0x60 /* 96
*/</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayk"><msgtext>
<screen>LDAP_COMPARE_FALSE</screen>
</msgtext>
<msgexplan role="description"><para>This result code is returned after an
LDAP compare operation is completed. The result indicates that the specified
attribute value is not present in the specified entry.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_COMPARE_FALSE 0x05 /*
5 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayl"><msgtext>
<screen>LDAP_COMPARE_TRUE</screen>
</msgtext>
<msgexplan role="description"><para>This result code is returned after an
LDAP compare operation is completed. The result indicates that the specified
attribute value is present in the specified entry.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_COMPARE_TRUE 0x06 /* 6
*/</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdaym"><msgtext>
<screen>LDAP_CONFIDENTIALITY_REQUIRED</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that confidentiality
is required for the operation.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_CONFIDENTIALITY_REQUIRED
0x0d /* 13 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayn"><msgtext>
<screen>LDAP_CONNECT_ERROR</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the LDAP
client cannot establish a connection, or has lost the connection, with the
LDAP server. &DirectorySDKForC; sets this result code. If you have not
established an initial connection with the server, verify that you have specified
the correct host name and port number and that the server is running.</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_CONNECT_ERROR 0x5b /* 91
*/</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayo"><msgtext>
<screen>LDAP_CONSTRAINT_VIOLATION</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that a value
in the request does not comply with certain constraints. &cnDirectoryServer; sends
this result code back to the client in the following situations:</para>
<itemizedlist>
<listitem><para>The request adds or modifies the <literal>userpassword</literal> attribute,
and one of the following is true:</para>
<itemizedlist>
<listitem><para>The server is configured to check the password syntax, and
the length of the new password is less than the minimum password length.</para>
</listitem>
<listitem><para>The server is configured to check the password syntax, and
the new password is the same as one of the values of the <literal>uid</literal>,
<literal>cn</literal>, <literal>sn</literal>, <literal>givenname</literal>, <literal>
ou</literal>, or <literal>mail</literal> attributes.</para></listitem>
<listitem><para>The server is configured to keep a history of previous passwords,
and the new password is the same as one of the previous passwords.</para>
</listitem>
</itemizedlist>
<para>The request is a bind request, and the user is locked out of the account.
(For example, the server can be configured to lock a user out of the account
after a given number of failed attempts to bind to the server.)</para>
</listitem>
</itemizedlist>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_CONSTRAINT_VIOLATION 0x13
/* 19 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayp"><msgtext>
<screen>LDAP_CONTROL_NOT_FOUND</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that a requested
LDAP control was not found. &DirectorySDKForC; sets this result code when
parsing a server response for controls and not finding the requested controls.
For example:</para>
<itemizedlist>
<listitem><para><olink targetptr="bdauk">ldap_parse_entrychange_control</olink> is
called, but no entry change notification control is found in the server&rsquo;s
response.</para></listitem>
<listitem><para><olink targetptr="bdaup">ldap_parse_sort_control</olink> is
called, but no server-side sorting control is found in the server&rsquo;s
response.</para></listitem>
<listitem><para><olink targetptr="bdauq">ldap_parse_virtuallist_control</olink> is
called, but no virtual list view response control is found in the server&rsquo;s
response.</para></listitem>
</itemizedlist>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_CONTROL_NOT_FOUND 0x5d
/* 93 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayq"><msgtext>
<screen>LDAP_DECODING_ERROR</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the LDAP
client encountered an error when decoding the LDAP response received from
the server.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_DECODING_ERROR 0x54 /*
84 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayr"><msgtext>
<screen>LDAP_ENCODING_ERROR</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the LDAP
client encountered an error when encoding the LDAP request to be sent to the
server.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_ENCODING_ERROR 0x53 /*
83 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdays"><msgtext>
<screen>LDAP_FILTER_ERROR</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that an error
occurred when specifying the search filter. &DirectorySDKForC; sets this
result code if it cannot encode the specified search filter in an LDAP search
request.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_FILTER_ERROR 0x57 /* 87
*/</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayt"><msgtext>
<screen>LDAP_INAPPROPRIATE_AUTH</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the type
of credentials are not appropriate for the method of authentication used. &cnDirectoryServer; sends
this result code back to the client if simple authentication is used in a
bind request, but the entry has no <literal>userpassword</literal> attribute;
also, if <literal>LDAP_SASL_EXTERNAL</literal> is attempted on a non-SSL
connection.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_INAPPROPRIATE_AUTH 0x30
/* 48 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayu"><msgtext>
<screen>LDAP_INAPPROPRIATE_MATCHING</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that an extensible
match filter in a search request contained a matching rule that does not apply
to the specified attribute type.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_INAPPROPRIATE_MATCHING
0x12 /* 18 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayv"><msgtext>
<screen>LDAP_INDEX_RANGE_ERROR</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the search
results exceeded the range specified by the requested offsets. This result
code applies to search requests that contain <emphasis>virtual list view</emphasis> controls.
</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_INDEX_RANGE_ERROR 0x3D
/* 61 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayw"><msgtext>
<screen>LDAP_INSUFFICIENT_ACCESS</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the client
has insufficient access to perform the operation. Check that the user you
are authenticating as has the appropriate permissions.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_INSUFFICIENT_ACCESS 0x32
/* 50 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayx"><msgtext>
<screen>LDAP_INVALID_CREDENTIALS</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the credentials
provided in the request are invalid. &cnDirectoryServer; sends this result
code back to the client if a bind request contains the incorrect credentials
for a user or if a user&rsquo;s password has already expired.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_INVALID_CREDENTIALS 0x31
/* 49 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayy"><msgtext>
<screen>LDAP_INVALID_DN_SYNTAX</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates than an invalid
DN has been specified. &cnDirectoryServer; sends this result code back to
the client if an add request or a modify DN request specifies an invalid DN.
It also sends this code when an <literal>LDAP_SASL_EXTERNAL</literal> bind
is attempted but certification to DN mapping fails.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_INVALID_DN_SYNTAX 0x22
/* 34 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdayz"><msgtext>
<screen>LDAP_INVALID_SYNTAX</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the request
contains invalid syntax. &cnDirectoryServer; sends this result code back to
the client in the following situations:</para>
<itemizedlist>
<listitem><para>The server encounters an access control instruction (ACI)
with invalid syntax.</para></listitem>
<listitem><para>The request attempts to add or modify an <literal>aci</literal> attribute,
and the value of the attribute is an ACI with invalid syntax.</para></listitem>
<listitem><para>The request is a search request with a substring filter, and
the syntax of the filter is invalid.</para></listitem>
<listitem><para>The request is a modify request that is attempting to modify
the schema, but no values are provided (for example, the request might be
attempting to delete all values of the <literal>objectclass</literal> attribute).
</para></listitem>
</itemizedlist>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_INVALID_SYNTAX 0x15 /*
21 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdaza"><msgtext>
<screen>LDAP_IS_LEAF</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the specified
entry is a leaf entry.</para>
<note><para>&cnDirectoryServer; does not currently send this result code back
to LDAP clients.</para></note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_IS_LEAF 0x23 /* 35 */</literal></para>
</msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazb"><msgtext>
<screen>LDAP_LOCAL_ERROR</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that an error
occurred in the LDAP client, though it may also be returned by &cnDirectoryServer;.
</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_LOCAL_ERROR 0x52 /* 82
*/</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazc"><msgtext>
<screen>LDAP_LOOP_DETECT</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the server
was unable to perform the requested operation because of an internal loop.</para>
<note><para>&cnDirectoryServer; does not currently send this result code back
to LDAP clients.</para></note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_LOOP_DETECT 0x36 /* 54
*/</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazd"><msgtext>
<screen>LDAP_MORE_RESULTS_TO_RETURN</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that there
are more results in the chain of results. The &DirectorySDKForC; sets this
result code when the <olink targetptr="bdauo">ldap_parse_sasl_bind_result</olink> function
is called to retrieve the result code of an operation, and additional result
codes from the server are available in the <olink targetptr="bdakj">LDAP</olink> structure.
</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_MORE_RESULTS_TO_RETURN
0x5f /* 95 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdaze"><msgtext>
<screen>LDAP_NAMING_VIOLATION</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the request
violates the structure of the DIT.</para>
<note><para>&cnDirectoryServer; does not currently send this result code back
to LDAP clients.</para></note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_NAMING_VIOLATION 0x40
/* 64 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazf"><msgtext>
<screen>LDAP_NO_MEMORY</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that no memory
is available. &DirectorySDKForC; sets this result code if a function cannot
allocate memory (for example, when creating an LDAP request or an LDAP control).</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_NO_MEMORY 0x5a /* 90 */</literal></para>
</msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazg"><msgtext>
<screen>LDAP_NO_OBJECT_CLASS_MODS</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the request
is attempting to modify an object class that should not be modified (for example,
a structural object class).</para>
<note><para>&cnDirectoryServer; does not currently send this result code back
to LDAP clients.</para></note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_NO_OBJECT_CLASS_MODS 0x45
/* 69 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazh"><msgtext>
<screen>LDAP_NO_RESULTS_RETURNED</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that no results
were returned from the server. The &DirectorySDKForC; sets this result
code when the <olink targetptr="bdaun">ldap_parse_result</olink> function
is called but no result code is included in the server&rsquo;s response.</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_NO_RESULTS_RETURNED 0x5E
/* 94 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazi"><msgtext>
<screen>LDAP_NO_SUCH_ATTRIBUTE</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the specified
attribute does not exist in the entry. &cnDirectoryServer; might send this
result code back to the client if, for example, a modify request specifies
the modification or removal of a non-existent attribute or if a compare request
specifies a non-existent attribute.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_NO_SUCH_ATTRIBUTE 0x10
/* 16 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazj"><msgtext>
<screen>LDAP_NO_SUCH_OBJECT</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the server
cannot find an entry specified in the request. &cnDirectoryServer; sends this
result code back to the client if it cannot find a requested entry and it
cannot refer your client to another LDAP server.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_NO_SUCH_OBJECT 0x20 /*
32 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazk"><msgtext>
<screen>LDAP_NOT_ALLOWED_ON_NONLEAF</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the requested
operation is allowed only on entries that do not have child entries (<emphasis>leaf
</emphasis> entries as opposed to <emphasis>branch</emphasis> entries). &cnDirectoryServer; sends
this result code back to the client if the request is a delete request or
a modify DN request and the entry is a parent entry. You cannot delete or
move a branch of entries in a single operation.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_NOT_ALLOWED_ON_NONLEAF
0x42 /* 66 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazl"><msgtext>
<screen>LDAP_NOT_ALLOWED_ON_RDN</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the requested
operation will affect the RDN of the entry. &cnDirectoryServer; sends this
result code back to the client if the request is a modify request that deletes
attribute values from the entry that are used in the RDN of the entry. (For
example, the request removes the attribute value <literal>uid=bjensen</literal> from
the entry <literal>uid=bjensen,ou=People,dc=example,dc=com</literal>.)</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_NOT_ALLOWED_ON_RDN 0x43
/* 67 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazm"><msgtext>
<screen>LDAP_NOT_SUPPORTED</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the LDAP
client is attempting to use functionality that is not supported. &DirectorySDKForC; sets
this result code if the client identifies itself as an LDAP v2 client, and
the client is attempting to use functionality available in LDAP v3. For example:</para>
<itemizedlist>
<listitem><para>You are passing LDAP controls to a function.</para></listitem>
<listitem><para>You are calling <olink targetptr="bdaru">ldap_extended_operation</olink> , <olink targetptr="bdarv">ldap_extended_operation_s</olink>, or <olink targetptr="bdaul">
ldap_parse_extended_result</olink> to request an extended operation or to
parse an extended response.</para></listitem>
<listitem><para>You are calling <olink targetptr="bdaus">ldap_rename</olink> or <olink targetptr="bdaut">ldap_rename_s</olink>, and you are specifying a new superior
DN as an argument.</para></listitem>
<listitem><para>You are calling <olink targetptr="bdauw">ldap_sasl_bind</olink>, <olink targetptr="bdaux">ldap_sasl_bind_s</olink>, or <olink targetptr="bdauo">ldap_parse_sasl_bind_result
</olink> to request Simple Authentication and Security Layer (SASL) authentication
or to parse a SASL bind response.</para></listitem>
<listitem><para>You are calling <olink targetptr="bdauq">ldap_parse_virtuallist_control
</olink> to parse a virtual list control from the server&rsquo;s response.</para>
<para>If you want to use these features, make sure to specify that your LDAP
client is an LDAP v3 client.</para></listitem>
</itemizedlist>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_NOT_SUPPORTED 0x5c /* 92
*/</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazn"><msgtext>
<screen>LDAP_OBJECT_CLASS_VIOLATION</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the request
specifies a new entry or a change to an existing entry that does not comply
with the server&rsquo;s schema. &cnDirectoryServer; sends this result code
back to the client in the following situations:</para>
<itemizedlist>
<listitem><para>The request is an add request, and the new entry does not
comply with the schema. For example, the new entry does not have all the required
attributes, or the entry has attributes that are not allowed in the entry.</para>
</listitem>
<listitem><para>The request is a modify request, and the change will make
the entry non compliant with the schema. For example, the change removes a
required attribute or adds an attribute that is not allowed.</para><para>Check
the server error logs for more information, and the schema for the type of
entry that you are adding or modifying.</para></listitem>
</itemizedlist>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_OBJECT_CLASS_VIOLATION
0x41 /* 65 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazo"><msgtext>
<screen>LDAP_OPERATIONS_ERROR</screen>
</msgtext>
<msgexplan role="description"><para>This is a general result code indicating
that an error has occurred. &cnDirectoryServer; might send this code if, for
example, memory cannot be allocated on the server. To troubleshoot this type
of error, check the server&rsquo;s error logs. You may need to increase the
log level of the server to get additional information.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_OPERATIONS_ERROR 0x01
/* 1 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazp"><msgtext>
<screen>LDAP_OTHER</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates than an unknown
error has occurred. This error may be returned by &cnDirectoryServer; when
an error occurs that is not better described using another LDAP error code.</para>
<para>When this error occurs, check the server's error logs. You may need
to increase the log level of the server to get additional information.</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_OTHER 0x50 /* 80 */</literal></para>
</msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazq"><msgtext>
<screen>LDAP_PARAM_ERROR</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that an invalid
parameter was specified. &DirectorySDKForC; sets this result code if a
function was called and invalid parameters were specified, for example, if
the <olink targetptr="bdakj">LDAP</olink> structure is <literal>NULL</literal>.</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_PARAM_ERROR 0x59 /* 89
*/</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazr"><msgtext>
<screen>LDAP_PARTIAL_RESULTS</screen>
</msgtext>
<msgexplan role="description"><para>&cnDirectoryServer; sends this result
code to LDAP v2 clients to refer them to another LDAP server. When sending
this code to a client, the server includes a new line-delimited list of LDAP
URLs that identifies another LDAP server. If the client identifies itself
as an LDAP v3 client in the request, an <errorcode>LDAP_REFERRAL</errorcode> result
code is sent instead of this result code.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_PARTIAL_RESULTS 0x09 /*
9 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazs"><msgtext>
<screen>LDAP_PROTOCOL_ERROR</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the LDAP
client&rsquo;s request does not comply with the LDAP. &cnDirectoryServer; sends
this result code back to the client in the following situations:</para>
<itemizedlist>
<listitem><para>The server cannot parse the incoming request.</para></listitem>
<listitem><para>The request specifies an attribute type that uses a syntax
not supported by the server.</para></listitem>
<listitem><para>The request is a SASL bind request, but your client identifies
itself as an LDAP v2 client.</para></listitem>
<listitem><para>The request is a bind request that specifies an unsupported
version of the LDAP. Make sure to specify whether your LDAP client is an LDAP
v2 client or an LDAP v3 client.</para></listitem>
<listitem><para>The request is an add or a modify request that specifies the
addition of an attribute type to an entry, but no values are specified.</para>
</listitem>
<listitem><para>The request is a modify request, and one of the following
is true:</para>
<itemizedlist>
<listitem><para>An unknown modify operation is specified (an operation other
than <literal>LDAP_MOD_ADD</literal>, <literal>LDAP_MOD_DELETE</literal>,
and <literal>LDAP_MOD_REPLACE</literal>).</para></listitem>
<listitem><para>No modifications are specified.</para></listitem>
</itemizedlist>
<para>The request is a modify DN request, and one of the following is true:</para>
<itemizedlist>
<listitem><para>The new RDN is not a valid RDN.</para></listitem>
<listitem><para>A new superior DN is specified, but your client identifies
itself as an LDAP v2 client.</para></listitem>
</itemizedlist>
<para>The request is a search request, and one of the following is true:</para>
<itemizedlist>
<listitem><para>An unknown scope is specified, meaning a scope other than <literal>
LDAP_SCOPE_BASE</literal> , <literal>LDAP_SCOPE_ONELEVEL</literal>, or <literal>LDAP_SCOPE_SUBTREE
</literal>.</para></listitem>
<listitem><para>An unknown filter type is specified.</para></listitem>
<listitem><para>The filter type <literal>LDAP_FILTER_GE</literal> or <literal>LDAP_FILTER_LE
</literal> is specified, but the type of attribute contains values that cannot
be ordered. (For example, if the attribute type uses a binary syntax, the
values of the attribute contain binary data, which cannot be sorted.)</para>
</listitem>
<listitem><para>The request contains an extensible filter (a filter using
matching rules), but your client identifies itself as an LDAP v2 client.</para>
</listitem>
<listitem><para>The request contains an extensible filter (a filter using
matching rules), but the matching rule is not supported by the server.</para>
</listitem>
</itemizedlist>
<para>The request is a search request with a server-side sorting control,
and one of the following is true:</para>
<itemizedlist>
<listitem><para>The server does not have a syntax plug-in that supports the
attribute used for sorting.</para></listitem>
<listitem><para>The syntax plug-in does not have a function for comparing
values of the attribute. (This compare function is used for sorting.)</para>
</listitem>
<listitem><para>The type of attribute specified for sorting contains values
that cannot be sorted in any order. For example, if the attribute type uses
a binary syntax, the values of the attribute contain binary data, which cannot
be sorted.</para></listitem>
<listitem><para>The server encounters an error when creating the sorting response
control (the control to be sent back to the client).</para></listitem>
<listitem><para>When sorting the results, the time limit or the look-through
limit is exceeded. The look-through limit is the maximum number of entries
that the server will check when gathering a list of potential search result
candidates.</para></listitem>
</itemizedlist>
<para>The request is an extended operation request, and the server does not
support the extended operation. In &cnDirectoryServer;, extended operations
are supported through extended operation server plug-ins. Make sure that the
server is loading a plug-in that supports the extended operation. Check the
OID of the extended operation in your LDAP client to make sure that it matches
the OID of the extended operation registered in the server plug-in.</para>
</listitem>
<listitem><para>An authentication method other than <literal>LDAP_AUTH_SIMPLE</literal> or
<literal>LDAP_AUTH_SASL</literal> is specified.</para><para>To troubleshoot
this type of error, check the server&rsquo;s error logs. You may need to increase
the log level of the server to get additional information.</para><?Pub Caret1>
</listitem>
</itemizedlist>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_PROTOCOL_ERROR 0x02 /*
2 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazt"><msgtext>
<screen>LDAP_REFERRAL</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the server
is referring the client to another LDAP server. When sending this code to
a client, the server includes a list of LDAP URLs that identify another LDAP
server. This result code is part of the LDAP v3. For LDAP v2 clients, &cnDirectoryServer; sends
an <errorcode>LDAP_PARTIAL_RESULTS</errorcode> result code instead.</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_REFERRAL 0x0a /* 10 */</literal></para>
</msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazu"><msgtext>
<screen>LDAP_REFERRAL_LIMIT_EXCEEDED</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the <emphasis>
referral hop limit</emphasis> was exceeded. &DirectorySDKForC; sets this
result code, when following referrals, if the client is referred to other
servers more times than allowed by the <emphasis>referral hop limit</emphasis>.</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_REFERRAL_LIMIT_EXCEEDED
0x61 /* 97 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazv"><msgtext>
<screen>LDAP_RESULTS_TOO_LARGE</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the results
of the request are too large.</para>
<note><para>&cnDirectoryServer; does not currently send this result code back
to LDAP clients.</para></note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_RESULTS_TOO_LARGE 0x46
/* 70 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazw"><msgtext>
<screen>LDAP_SASL_BIND_IN_PROGRESS</screen>
</msgtext>
<msgexplan role="description"><para>This result code is used in multi stage
SASL bind operations. The server sends this result code back to the client
to indicate that the authentication process has not yet completed.</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_SASL_BIND_IN_PROGRESS 0x0E
/* 14 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazx"><msgtext>
<screen>LDAP_SERVER_DOWN</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that &DirectorySDKForC; cannot
establish a connection with, or lost the connection to, the LDAP server. If
you have not established an initial connection with the server, verify that
you have specified the correct host name and port number and that the server
is running.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_SERVER_DOWN 0x51 /* 81
*/</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazy"><msgtext>
<screen>LDAP_SIZELIMIT_EXCEEDED</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the maximum
number of search results to return has been exceeded. This limit is specified
in the search request. If you specify no size limit, the server will set one.
When working with &cnDirectoryServer;, keep in mind the following:</para>
<itemizedlist>
<listitem><para>If you are bound as the root DN and specify no size limit,
the server enforces no size limit at all.</para></listitem>
<listitem><para>If you are not bound as the root DN and specify no size limit,
the server sets the size limit to the value specified by the <literal>sizelimit</literal> directive
in the server&rsquo;s <literal>slapd.conf</literal> configuration file.</para>
</listitem>
<listitem><para>If the size limit that you specify exceeds the value specified
by the <literal>sizelimit</literal> directive in the server&rsquo;s <literal>slapd.conf
</literal> configuration file, the server uses the size limit specified in
the configuration file.</para></listitem>
</itemizedlist>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_SIZELIMIT_EXCEEDED 0x04
/* 4 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdazz"><msgtext>
<screen>LDAP_SORT_CONTROL_MISSING</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that server
did not receive a required server-side sorting control. &cnDirectoryServer; sends
this result code back to the client if the server receives a search request
with a <emphasis>virtual list view</emphasis> control but no server-side
sorting control as the <emphasis>virtual list view</emphasis> control requires
a server-side sorting control.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_SORT_CONTROL_MISSING 0x3C
/* 60 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdbaa"><msgtext>
<screen>LDAP_STRONG_AUTH_NOT_SUPPORTED</screen>
</msgtext>
<msgexplan role="description"><para>This result code is returned as the result
of a bind operation. It indicates that the server does not recognize or support
the specified authentication method.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_STRONG_AUTH_NOT_SUPPORTED
0x07 /* 7 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdbab"><msgtext>
<screen>LDAP_STRONG_AUTH_REQUIRED</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that a stronger
method of authentication is required to perform the operation.</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_STRONG_AUTH_REQUIRED 0x08
/* 8 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdbac"><msgtext>
<screen>LDAP_SUCCESS</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the LDAP
operation was successful.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_SUCCESS 0x00 /* 0 */</literal></para>
</msgexplan>
</simplemsgentry>
<simplemsgentry id="bdbad"><msgtext>
<screen>LDAP_TIMELIMIT_EXCEEDED</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the time
limit on a search operation has been exceeded. The time limit is specified
in the search request. If you specify no time limit, the server will set one.
When working with &cnDirectoryServer;, keep in mind the following:</para>
<itemizedlist>
<listitem><para>If you are bound as the root DN and specify no time limit,
the server enforces no limit at all.</para></listitem>
<listitem><para>If you are not bound as the root DN and specify no time limit,
the server sets the time limit.</para></listitem>
<listitem><para>If the time limit that you specify exceeds the time limit
specified for the server configuration, the server uses the time limit specified
in its configuration.</para></listitem>
</itemizedlist>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_TIMELIMIT_EXCEEDED 0x03
/* 3 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdbae"><msgtext>
<screen>LDAP_TIMEOUT</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the LDAP
client timed out while waiting for a response from the server. &DirectorySDKForC; sets
this result code in the <olink targetptr="bdakj">LDAP</olink> structure if
the time-out period (for example, in a search request) has been exceeded and
the server has not responded.</para></msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_TIMEOUT 0x55 /* 85 */</literal></para>
</msgexplan>
</simplemsgentry>
<simplemsgentry id="bdbaf"><msgtext>
<screen>LDAP_TYPE_OR_VALUE_EXISTS</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the request
attempted to add an attribute type or value that already exists. &cnDirectoryServer; sends
this result code back to the client in the following situations:</para>
<itemizedlist>
<listitem><para>The request attempts to add values that already exist in the
attribute.</para></listitem>
<listitem><para>The request is adding an attribute to the schema of the server,
but the OID of the attribute is already used by an object class in the schema.</para>
</listitem>
<listitem><para>The request is adding an object class to the schema of the
server, and one of the following occurs:</para>
<itemizedlist>
<listitem><para>The object class already exists.</para></listitem>
<listitem><para>The OID of the object class is already used by another object
class or an attribute in the schema.</para></listitem>
<listitem><para>The superior object class for this new object class does not
exist.</para></listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_TYPE_OR_VALUE_EXISTS 0x14
/* 20 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdbag"><msgtext>
<screen>LDAP_UNAVAILABLE</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the server
is unavailable to perform the requested operation.</para>
<note><para>At this point, neither &DirectorySDKForC; nor &cnDirectoryServer; return
this result code.</para></note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_UNAVAILABLE 0x34 /* 52
*/</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdbah"><msgtext>
<screen>LDAP_UNAVAILABLE_CRITICAL_EXTENSION</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the specified
control or matching rule is not supported by the server. &cnDirectoryServer; might
send back this result code if the request includes an unsupported control
or if the filter in the search request specifies an unsupported matching rule.</para>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_UNAVAILABLE_CRITICAL_EXTENSION
0x0c /* 12 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdbai"><msgtext>
<screen>LDAP_UNDEFINED_TYPE</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the request
specifies an undefined attribute type.</para>
<note><para>&cnDirectoryServer; does not currently send this result code back
to LDAP clients.</para></note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_UNDEFINED_TYPE 0x11 /*
17 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdbaj"><msgtext>
<screen>LDAP_UNWILLING_TO_PERFORM</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the server
is unwilling to perform the requested operation. &cnDirectoryServer; sends
this result code back to the client in the following situations:</para>
<itemizedlist>
<listitem><para>The client has logged in for the first time and needs to change
its password, but the client is requesting to perform other LDAP operations.
In this situation, the result code is accompanied by an expired password control.
</para></listitem>
<listitem><para>The request is a modify DN request, and a superior DN is specified.
</para></listitem>
<listitem><para>The database is in read-only mode, and the request attempts
to write to the directory.</para></listitem>
<listitem><para>The request is a delete request that attempts to delete the
root DSE.</para></listitem>
<listitem><para>The request is a modify DN request that attempts to modify
the DN of the root DSE.</para></listitem>
<listitem><para>The request is a modify request to modify the schema entry,
and one of the following occurs:</para>
<itemizedlist>
<listitem><para>The operation is <literal>LDAP_MOD_REPLACE</literal>. (The
server does not allow you to replace schema entry attributes.)</para></listitem>
<listitem><para>The request attempts to delete an object class that is the
parent of another object class.</para></listitem>
<listitem><para>The request attempts to delete a read-only object class or
attribute.</para></listitem>
</itemizedlist>
<para>The server uses a database plug-in that does not implement the operation
specified in the request. For example, if the database plug-in does not implement
the add operation, sending an add request will return this result code.</para>
</listitem>
</itemizedlist>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_UNWILLING_TO_PERFORM 0x35
/* 53 */</literal></para></msgexplan>
</simplemsgentry>
<simplemsgentry id="bdbak"><msgtext>
<screen>LDAP_USER_CANCELLED</screen>
</msgtext>
<msgexplan role="description"><para>This result code indicates that the user
cancelled the LDAP operation.</para>
<note><para>&cnDirectoryServer; does not currently send this result code back
to LDAP clients.</para></note>
</msgexplan>
<msgexplan role="none"><para><literal>#define LDAP_USER_CANCELLED 0x58 /*
88 */</literal></para></msgexplan>
</simplemsgentry>
</msgset>
</sect1>
</chapter>