| 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