Module | LDAP |
In: |
lib/activeldap/ldap.rb
lib/activeldap/schema2.rb |
ERRORS | = | [ "LDAP_SUCCESS", "LDAP_OPERATIONS_ERROR", "LDAP_PROTOCOL_ERROR", "LDAP_TIMELIMIT_EXCEEDED", "LDAP_SIZELIMIT_EXCEEDED", "LDAP_COMPARE_FALSE", "LDAP_COMPARE_TRUE", "LDAP_STRONG_AUTH_NOT_SUPPORTED", "LDAP_AUTH_METHOD_NOT_SUPPORTED", "LDAP_STRONG_AUTH_REQUIRED", "LDAP_REFERRAL", "LDAP_ADMINLIMIT_EXCEEDED", "LDAP_UNAVAILABLE_CRITICAL_EXTENSION", "LDAP_CONFIDENTIALITY_REQUIRED", "LDAP_SASL_BIND_IN_PROGRESS", "LDAP_PARTIAL_RESULTS", "LDAP_NO_SUCH_ATTRIBUTE", "LDAP_UNDEFINED_TYPE", "LDAP_INAPPROPRIATE_MATCHING", "LDAP_CONSTRAINT_VIOLATION", "LDAP_TYPE_OR_VALUE_EXISTS", "LDAP_INVALID_SYNTAX", "LDAP_NO_SUCH_OBJECT", "LDAP_ALIAS_PROBLEM", "LDAP_INVALID_DN_SYNTAX", "LDAP_IS_LEAF", "LDAP_ALIAS_DEREF_PROBLEM", "LDAP_INAPPROPRIATE_AUTH", "LDAP_INVALID_CREDENTIALS", "LDAP_INSUFFICIENT_ACCESS", "LDAP_BUSY", "LDAP_UNAVAILABLE", "LDAP_UNWILLING_TO_PERFORM", "LDAP_LOOP_DETECT", "LDAP_NAMING_VIOLATION", "LDAP_OBJECT_CLASS_VIOLATION", "LDAP_NOT_ALLOWED_ON_NONLEAF", "LDAP_NOT_ALLOWED_ON_RDN", "LDAP_ALREADY_EXISTS", "LDAP_NO_OBJECT_CLASS_MODS", "LDAP_RESULTS_TOO_LARGE", "LDAP_OTHER", "LDAP_SERVER_DOWN", "LDAP_LOCAL_ERROR", "LDAP_ENCODING_ERROR", "LDAP_DECODING_ERROR", "LDAP_TIMEOUT", "LDAP_AUTH_UNKNOWN", "LDAP_FILTER_ERROR", "LDAP_USER_CANCELLED", "LDAP_PARAM_ERROR", "LDAP_NO_MEMORY", "LDAP_CONNECT_ERROR" |
error_map | [R] |
Creates useful exceptions from @@conn.err output Returns [exception, message] based on err2string
# File lib/activeldap/ldap.rb, line 95 95: def LDAP.err2exception(errno=0) 96: need_to_rebuild = true 97: begin 98: exc = LDAP.const_get(@@error_map[errno]) 99: rescue NameError 100: if need_to_rebuild 101: generate_err2exceptions() 102: need_to_rebuild = false 103: retry 104: end 105: exc = RuntimeError 106: end 107: return [exc, err2string(errno)] 108: end
Calls err2exception() with 1...100 to pregenerate all the constants for errors. TODO: look at other support LDAP SDKs for weirdness
# File lib/activeldap/ldap.rb, line 71 71: def LDAP.generate_err2exceptions() 72: hash = {} 73: ERRORS.each do |err| 74: begin 75: val = LDAP.const_get(err) 76: # Make name into a exception 77: exc = err.gsub(/^LDAP_/, '') 78: exc = exc.split('_').collect {|w| w.capitalize }.join('') 79: # Doesn't exist :-) 80: LDAP.module_eval("class \#{exc} < LDAP::PrettyError\nend\n") 81: hash[val] = exc 82: rescue NameError 83: # next! 84: end 85: end 86: @@error_map = hash 87: end