| rev | 
   line source | 
| 
bsw@1071
 | 
     1 /* This file contains error code mappings of LDAP error codes and OpenLDAP
 | 
| 
bsw@1071
 | 
     2  * error codes.
 | 
| 
bsw@1071
 | 
     3  *
 | 
| 
bsw@1071
 | 
     4  * The collection of error codes (mldap_errorcodes[]) has been derived from
 | 
| 
bsw@1071
 | 
     5  * the file ldap.h that is part of OpenLDAP Software. OpenLDAP's license
 | 
| 
bsw@1071
 | 
     6  * information is stated below:
 | 
| 
bsw@1071
 | 
     7  *
 | 
| 
bsw@1071
 | 
     8  * This work is part of OpenLDAP Software <http://www.openldap.org/>.
 | 
| 
bsw@1071
 | 
     9  * 
 | 
| 
bsw@1071
 | 
    10  * Copyright 1998-2013 The OpenLDAP Foundation.
 | 
| 
bsw@1071
 | 
    11  * All rights reserved.
 | 
| 
bsw@1071
 | 
    12  *
 | 
| 
bsw@1071
 | 
    13  * Redistribution and use in source and binary forms, with or without
 | 
| 
bsw@1071
 | 
    14  * modification, are permitted only as authorized by the OpenLDAP
 | 
| 
bsw@1071
 | 
    15  * Public License.
 | 
| 
bsw@1071
 | 
    16  *
 | 
| 
bsw@1071
 | 
    17  * A copy of this license is available below:
 | 
| 
bsw@1071
 | 
    18  *
 | 
| 
bsw@1071
 | 
    19  * The OpenLDAP Public License
 | 
| 
bsw@1071
 | 
    20  * Version 2.8, 17 August 2003
 | 
| 
bsw@1071
 | 
    21  *
 | 
| 
bsw@1071
 | 
    22  * Redistribution and use of this software and associated documentation
 | 
| 
bsw@1071
 | 
    23  * ("Software"), with or without modification, are permitted provided
 | 
| 
bsw@1071
 | 
    24  * that the following conditions are met:
 | 
| 
bsw@1071
 | 
    25  * 
 | 
| 
bsw@1071
 | 
    26  * 1. Redistributions in source form must retain copyright statements
 | 
| 
bsw@1071
 | 
    27  *    and notices,
 | 
| 
bsw@1071
 | 
    28  * 
 | 
| 
bsw@1071
 | 
    29  * 2. Redistributions in binary form must reproduce applicable copyright
 | 
| 
bsw@1071
 | 
    30  *    statements and notices, this list of conditions, and the following
 | 
| 
bsw@1071
 | 
    31  *    disclaimer in the documentation and/or other materials provided
 | 
| 
bsw@1071
 | 
    32  *    with the distribution, and
 | 
| 
bsw@1071
 | 
    33  * 
 | 
| 
bsw@1071
 | 
    34  * 3. Redistributions must contain a verbatim copy of this document.
 | 
| 
bsw@1071
 | 
    35  * 
 | 
| 
bsw@1071
 | 
    36  * The OpenLDAP Foundation may revise this license from time to time.
 | 
| 
bsw@1071
 | 
    37  * Each revision is distinguished by a version number.  You may use
 | 
| 
bsw@1071
 | 
    38  * this Software under terms of this license revision or under the
 | 
| 
bsw@1071
 | 
    39  * terms of any subsequent revision of the license.
 | 
| 
bsw@1071
 | 
    40  * 
 | 
| 
bsw@1071
 | 
    41  * THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS
 | 
| 
bsw@1071
 | 
    42  * CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
 | 
| 
bsw@1071
 | 
    43  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 | 
| 
bsw@1071
 | 
    44  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT
 | 
| 
bsw@1071
 | 
    45  * SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S)
 | 
| 
bsw@1071
 | 
    46  * OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
 | 
| 
bsw@1071
 | 
    47  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 | 
| 
bsw@1071
 | 
    48  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
| 
bsw@1071
 | 
    49  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
| 
bsw@1071
 | 
    50  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
| 
bsw@1071
 | 
    51  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 | 
| 
bsw@1071
 | 
    52  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 | 
| 
bsw@1071
 | 
    53  * POSSIBILITY OF SUCH DAMAGE.
 | 
| 
bsw@1071
 | 
    54  * 
 | 
| 
bsw@1071
 | 
    55  * The names of the authors and copyright holders must not be used in
 | 
| 
bsw@1071
 | 
    56  * advertising or otherwise to promote the sale, use or other dealing
 | 
| 
bsw@1071
 | 
    57  * in this Software without specific, written prior permission.  Title
 | 
| 
bsw@1071
 | 
    58  * to copyright in this Software shall at all times remain with copyright
 | 
| 
bsw@1071
 | 
    59  * holders.
 | 
| 
bsw@1071
 | 
    60  * 
 | 
| 
bsw@1071
 | 
    61  * OpenLDAP is a registered trademark of the OpenLDAP Foundation.
 | 
| 
bsw@1071
 | 
    62  * 
 | 
| 
bsw@1071
 | 
    63  * Copyright 1999-2003 The OpenLDAP Foundation, Redwood City,
 | 
| 
bsw@1071
 | 
    64  * California, USA.  All Rights Reserved.  Permission to copy and
 | 
| 
bsw@1071
 | 
    65  * distribute verbatim copies of this document is granted.
 | 
| 
bsw@1071
 | 
    66  *
 | 
| 
bsw@1071
 | 
    67  * End of OpenLDAP Public License
 | 
| 
bsw@1071
 | 
    68  *
 | 
| 
bsw@1071
 | 
    69  * Portions Copyright (c) 1990 Regents of the University of Michigan.
 | 
| 
bsw@1071
 | 
    70  * All rights reserved.
 | 
| 
bsw@1071
 | 
    71  *
 | 
| 
bsw@1071
 | 
    72  * Redistribution and use in source and binary forms are permitted
 | 
| 
bsw@1071
 | 
    73  * provided that this notice is preserved and that due credit is given
 | 
| 
bsw@1071
 | 
    74  * to the University of Michigan at Ann Arbor. The name of the University
 | 
| 
bsw@1071
 | 
    75  * may not be used to endorse or promote products derived from this
 | 
| 
bsw@1071
 | 
    76  * software without specific prior written permission. This software
 | 
| 
bsw@1071
 | 
    77  * is provided ``as is'' without express or implied warranty.
 | 
| 
bsw@1071
 | 
    78  *
 | 
| 
bsw@1071
 | 
    79  * End of OpenLDAP's license information
 | 
| 
bsw@1071
 | 
    80  */
 | 
| 
bsw@1071
 | 
    81 
 | 
| 
bsw@1071
 | 
    82 // type for entry in mldap_errorcodes[] array:
 | 
| 
bsw@1071
 | 
    83 struct mldap_errorcode {
 | 
| 
bsw@1071
 | 
    84   const char *ident;
 | 
| 
bsw@1071
 | 
    85   int code;
 | 
| 
bsw@1071
 | 
    86 };
 | 
| 
bsw@1071
 | 
    87 
 | 
| 
bsw@1071
 | 
    88 // NULL terminated array of error code strings with error code integers
 | 
| 
bsw@1071
 | 
    89 // derived from ldap.h (see above copyright notice):
 | 
| 
bsw@1071
 | 
    90 static const struct mldap_errorcode mldap_errorcodes[] = {
 | 
| 
bsw@1071
 | 
    91   {"operations_error", 1},
 | 
| 
bsw@1071
 | 
    92   {"protocol_error", 2},
 | 
| 
bsw@1071
 | 
    93   {"timelimit_exceeded", 3},
 | 
| 
bsw@1071
 | 
    94   {"sizelimit_exceeded", 4},
 | 
| 
bsw@1071
 | 
    95   {"compare_false", 5},
 | 
| 
bsw@1071
 | 
    96   {"compare_true", 6},
 | 
| 
bsw@1071
 | 
    97 //  {"auth_method_not_supported", 7},
 | 
| 
bsw@1071
 | 
    98   {"strong_auth_not_supported", 7},
 | 
| 
bsw@1071
 | 
    99   {"strong_auth_required", 8},
 | 
| 
bsw@1071
 | 
   100 //  {"stronger_auth_required", 8},
 | 
| 
bsw@1071
 | 
   101   {"partial_results", 9},
 | 
| 
bsw@1071
 | 
   102   {"referral", 10},
 | 
| 
bsw@1071
 | 
   103   {"adminlimit_exceeded", 11},
 | 
| 
bsw@1071
 | 
   104   {"unavailable_critical_extension", 12},
 | 
| 
bsw@1071
 | 
   105   {"confidentiality_required", 13},
 | 
| 
bsw@1071
 | 
   106   {"sasl_bind_in_progress", 14},
 | 
| 
bsw@1071
 | 
   107   {"no_such_attribute", 16},
 | 
| 
bsw@1071
 | 
   108   {"undefined_type", 17},
 | 
| 
bsw@1071
 | 
   109   {"inappropriate_matching", 18},
 | 
| 
bsw@1071
 | 
   110   {"constraint_violation", 19},
 | 
| 
bsw@1071
 | 
   111   {"type_or_value_exists", 20},
 | 
| 
bsw@1071
 | 
   112   {"invalid_syntax", 21},
 | 
| 
bsw@1071
 | 
   113   {"no_such_object", 32},
 | 
| 
bsw@1071
 | 
   114   {"alias_problem", 33},
 | 
| 
bsw@1071
 | 
   115   {"invalid_dn_syntax", 34},
 | 
| 
bsw@1071
 | 
   116   {"is_leaf", 35},
 | 
| 
bsw@1071
 | 
   117   {"alias_deref_problem", 36},
 | 
| 
bsw@1071
 | 
   118   {"x_proxy_authz_failure", 47},
 | 
| 
bsw@1071
 | 
   119   {"inappropriate_auth", 48},
 | 
| 
bsw@1071
 | 
   120   {"invalid_credentials", 49},
 | 
| 
bsw@1071
 | 
   121   {"insufficient_access", 50},
 | 
| 
bsw@1071
 | 
   122   {"busy", 51},
 | 
| 
bsw@1071
 | 
   123   {"unavailable", 52},
 | 
| 
bsw@1071
 | 
   124   {"unwilling_to_perform", 53},
 | 
| 
bsw@1071
 | 
   125   {"loop_detect", 54},
 | 
| 
bsw@1071
 | 
   126   {"naming_violation", 64},
 | 
| 
bsw@1071
 | 
   127   {"object_class_violation", 65},
 | 
| 
bsw@1071
 | 
   128   {"not_allowed_on_nonleaf", 66},
 | 
| 
bsw@1071
 | 
   129   {"not_allowed_on_rdn", 67},
 | 
| 
bsw@1071
 | 
   130   {"already_exists", 68},
 | 
| 
bsw@1071
 | 
   131   {"no_object_class_mods", 69},
 | 
| 
bsw@1071
 | 
   132   {"results_too_large", 70},
 | 
| 
bsw@1071
 | 
   133   {"affects_multiple_dsas", 71},
 | 
| 
bsw@1071
 | 
   134   {"vlv_error", 76},
 | 
| 
bsw@1071
 | 
   135   {"other", 80},
 | 
| 
bsw@1071
 | 
   136   {"cup_resources_exhausted", 113},
 | 
| 
bsw@1071
 | 
   137   {"cup_security_violation", 114},
 | 
| 
bsw@1071
 | 
   138   {"cup_invalid_data", 115},
 | 
| 
bsw@1071
 | 
   139   {"cup_unsupported_scheme", 116},
 | 
| 
bsw@1071
 | 
   140   {"cup_reload_required", 117},
 | 
| 
bsw@1071
 | 
   141   {"cancelled", 118},
 | 
| 
bsw@1071
 | 
   142   {"no_such_operation", 119},
 | 
| 
bsw@1071
 | 
   143   {"too_late", 120},
 | 
| 
bsw@1071
 | 
   144   {"cannot_cancel", 121},
 | 
| 
bsw@1071
 | 
   145   {"assertion_failed", 122},
 | 
| 
bsw@1071
 | 
   146   {"proxied_authorization_denied", 123},
 | 
| 
bsw@1071
 | 
   147   {"sync_refresh_required", 4096},
 | 
| 
bsw@1071
 | 
   148   {"x_sync_refresh_required", 16640},
 | 
| 
bsw@1071
 | 
   149   {"x_assertion_failed", 16655},
 | 
| 
bsw@1071
 | 
   150   {"x_no_operation", 16654},
 | 
| 
bsw@1071
 | 
   151   {"x_no_referrals_found", 16656},
 | 
| 
bsw@1071
 | 
   152   {"x_cannot_chain", 16657},
 | 
| 
bsw@1071
 | 
   153   {"x_invalidreference", 16658},
 | 
| 
bsw@1071
 | 
   154   {"x_txn_specify_okay", 16672},
 | 
| 
bsw@1071
 | 
   155   {"x_txn_id_invalid", 16673},
 | 
| 
bsw@1071
 | 
   156   {"server_down", (-1)},
 | 
| 
bsw@1071
 | 
   157   {"local_error", (-2)},
 | 
| 
bsw@1071
 | 
   158   {"encoding_error", (-3)},
 | 
| 
bsw@1071
 | 
   159   {"decoding_error", (-4)},
 | 
| 
bsw@1071
 | 
   160   {"timeout", (-5)},
 | 
| 
bsw@1071
 | 
   161   {"auth_unknown", (-6)},
 | 
| 
bsw@1071
 | 
   162   {"filter_error", (-7)},
 | 
| 
bsw@1071
 | 
   163   {"user_cancelled", (-8)},
 | 
| 
bsw@1071
 | 
   164   {"param_error", (-9)},
 | 
| 
bsw@1071
 | 
   165   {"no_memory", (-10)},
 | 
| 
bsw@1071
 | 
   166   {"connect_error", (-11)},
 | 
| 
bsw@1071
 | 
   167   {"not_supported", (-12)},
 | 
| 
bsw@1071
 | 
   168   {"control_not_found", (-13)},
 | 
| 
bsw@1071
 | 
   169   {"no_results_returned", (-14)},
 | 
| 
bsw@1071
 | 
   170   {"more_results_to_return", (-15)},
 | 
| 
bsw@1071
 | 
   171   {"client_loop", (-16)},
 | 
| 
bsw@1071
 | 
   172   {"referral_limit_exceeded", (-17)},
 | 
| 
bsw@1071
 | 
   173   {"x_connecting", (-18)},
 | 
| 
bsw@1071
 | 
   174   {NULL, 0}
 | 
| 
bsw@1071
 | 
   175 };
 | 
| 
bsw@1071
 | 
   176 
 | 
| 
bsw@1071
 | 
   177 void mldap_set_errorcodes(lua_State *L) {
 | 
| 
bsw@1071
 | 
   178   // stores mldap_errorcodes[] mappings in the Lua table on top of the stack
 | 
| 
bsw@1071
 | 
   179   // in both directions (string mapped to integer and vice versa)
 | 
| 
bsw@1071
 | 
   180 
 | 
| 
bsw@1071
 | 
   181   const struct mldap_errorcode *errorcode;  // pointer to entry in mldap_errorcodes[] array
 | 
| 
bsw@1071
 | 
   182 
 | 
| 
bsw@1071
 | 
   183   // iterate through entries in mldap_errorcodes[] array:
 | 
| 
bsw@1071
 | 
   184   for (errorcode=mldap_errorcodes; errorcode->ident; errorcode++) {
 | 
| 
bsw@1071
 | 
   185 
 | 
| 
bsw@1071
 | 
   186     // store a mapping from the string to the integer:
 | 
| 
bsw@1071
 | 
   187     lua_pushstring(L, errorcode->ident);
 | 
| 
bsw@1071
 | 
   188     lua_pushinteger(L, errorcode->code);
 | 
| 
bsw@1071
 | 
   189     lua_settable(L, -3);
 | 
| 
bsw@1071
 | 
   190 
 | 
| 
bsw@1071
 | 
   191     // store a mapping from the integer to the string:
 | 
| 
bsw@1071
 | 
   192     lua_pushinteger(L, errorcode->code);
 | 
| 
bsw@1071
 | 
   193     lua_pushstring(L, errorcode->ident);
 | 
| 
bsw@1071
 | 
   194     lua_settable(L, -3);
 | 
| 
bsw@1071
 | 
   195 
 | 
| 
bsw@1071
 | 
   196   }
 | 
| 
bsw@1071
 | 
   197 
 | 
| 
bsw@1071
 | 
   198 }
 | 
| 
bsw@1071
 | 
   199 
 |