_S      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  John Goerzen, Safe-Inferred John Goerzen, Safe-Inferredi  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!       >\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  John Goerzen,None]BER length type ^BER int type _BER type tag `CConvenience type so we use the correct ints for the LDAP library. aMain LDAP object type. HLDAP objects are automatically unbound (and memory freed) when they are garbage-collected by Haskell. ]^_`a]^_`aa`^_]]^_`a John Goerzen,None bGThe basic type of LDAP exceptions. These are raised when an operation does not indicate success. dNumeric error code eDescription of error fCalling function gExecute the given IO action. If it raises a b/, then execute the supplied handler and return 2its return value. Otherwise, process as normal. hLike g), with the order of arguments reversed. ;Given an Exception, return Just LDAPException if it was an  LDAPExcetion/, or Nothing otherwise. Useful with functions like catchJust. i@Catches LDAP errors, and re-raises them as IO errors with fail. Useful if you don'4t care to catch LDAP errors, but want to see a sane Herror message if one happens. One would often use this as a high-level wrapper around LDAP calls. jA utility function to throw an b. The mechanics of throwing Jsuch a thing differ between GHC 6.8.x, Hugs, and GHC 6.10. This function 4takes care of the special cases to make it simpler. OWith GHC 6.10, it is a type-restricted alias for throw. On all other systems, -it is a type-restricted alias for throwDyn. bcdefghij bcdefghij bcdefghij bcdefghij John Goerzen,None"klmnopqrstuvwxyz{|}~"klmnopqrstuvwxyz{|}~"klmn|o}p~qrstuvwxyz{"klmnopqrstuvwxyz{|}~  John Goerzen,None Value coming in from C Check the return value. If it's something other than  , raise an LDAP exception. >Raise an IOError based on errno if getting a NULL. Identical &to Foreign.C.Error.throwErrnoIfNull. 4Convert a LDAPPtr into a LDAP type. Checks it with  automatically. Use a a in a function that needs . Same as -, but uses nullPtr if the input is Nothing. Returns an int, doesn'*t raise exceptions on err (just crashes) Returns a string, doesn'*t raise exceptions on err (just crashes) (Must be freed later with freeHSBerval! 'Free a berval allocated from Haskell. 1Function that transforms input data into pointer #Function that frees generated data List of input data Action to run with the C array  John Goerzen,None0Preferred way to initialize a LDAP connection. The default port is given in  . !Could throw IOError on failure. Like 1, but establish network connection immediately. Like ", but accepts a URI (or whitespace/comma separated Flist of URIs) which can contain a schema, a host and a port. Besides Fldap, valid schemas are ldaps (LDAP over TLS), ldapi (LDAP over IPC), "and cldap (connectionless LDAP). Bind to the remote server. Host Port  New LDAP Obj Host Port  New LDAP Obj URI  New LDAP Obj  LDAP Object DN (Distinguished Name)  Password   John Goerzen,None!Get 1 result from an operation.  John Goerzen,None"Distinguished Name of this object &Mapping from attribute name to values ;Defines what attributes to return with the search result. User-specified list User attributes only No attributes LDAP connection object Base DN for search, if any Scope of the search $Filter to be used (none if Nothing) !Desired attributes in result set 6If True, exclude attribute values (return types only)    John Goerzen,NoneType of operation to perform Name of attribute to edit  New values Delete the specified DN Takes a list of name/*value points and converts them to LDAPMod ,entries. Each item will have the specified . =Similar to list2ldm, but handles pairs with only one value. LDAP connection object  DN to modify Changes to make LDAP connection object  DN to add  Items to add   John Goerzen,None  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn oopqrstuv wxyz{|}~      LDAP-0.6.9 LDAP.Data LDAP.TypesLDAP.ExceptionsLDAP.Constants LDAP.Init LDAP.Search LDAP.Modify LDAP.TypesLL LDAP.Utils ldapSuccessldapPort LDAP.ResultLDAP LDAPModOpUnknownLDAPModOpLdapModReplace LdapModDelete LdapModAdd LDAPScopeUnknownLDAPScopeLdapScopeSubtreeLdapScopeOnelevel LdapScopeBaseLdapScopeDefaultLDAPOptionCodeUnknownLDAPOptionCode LdapOptErrorLdapOptSuccessLdapOptMatchedDnLdapOptErrorStringLdapOptErrorNumberLdapOptHostNameLdapOptApiFeatureInfoLdapOptClientControlsLdapOptServerControlsLdapOptProtocolVersionLdapOptRestartLdapOptReferralsLdapOptTimelimitLdapOptSizelimit LdapOptDeref LdapOptDescLdapOptApiInfoLDAPReturnCodeUnknownLDAPReturnCodeLdapReferralLimitExceededLdapClientLoopLdapMoreResultsToReturnLdapNoResultsReturnedLdapControlNotFoundLdapNotSupportedLdapConnectError LdapNoMemoryLdapParamErrorLdapUserCancelledLdapFilterErrorLdapAuthUnknown LdapTimeoutLdapDecodingErrorLdapEncodingErrorLdapLocalErrorLdapServerDown LdapOtherLdapAffectsMultipleDsasLdapResultsTooLargeLdapNoObjectClassModsLdapAlreadyExistsLdapNotAllowedOnRdnLdapNotAllowedOnNonleafLdapObjectClassViolationLdapNamingViolationLdapLoopDetectLdapUnwillingToPerformLdapUnavailableLdapBusyLdapInsufficientAccessLdapInvalidCredentialsLdapInappropriateAuthLdapProxyAuthzFailureLdapAliasDerefProblem LdapIsLeafLdapInvalidDnSyntaxLdapAliasProblemLdapNoSuchObjectLdapInvalidSyntaxLdapTypeOrValueExistsLdapConstraintViolationLdapInappropriateMatchingLdapUndefinedTypeLdapNoSuchAttributeLdapSaslBindInProgressLdapConfidentialityRequired LdapUnavailableCriticalExtensionLdapAdminlimitExceeded LdapReferralLdapPartialResultsLdapStrongAuthRequiredLdapStrongAuthNotSupportedLdapAuthMethodNotSupportedLdapCompareTrueLdapCompareFalseLdapSizelimitExceededLdapTimelimitExceededLdapProtocolErrorLdapOperationsError LdapSuccessBERLenBERIntBERTagLDAPInt LDAPExceptioncode descriptioncaller catchLDAP handleLDAPfailLDAP throwLDAP ldapsPortldapApiVersionldapVendorNameldapApiInfoVersionldapFeatureInfoVersionldapControlValuesreturnfilterldapControlSubentriesldapControlNoopldapControlManagedsaitldapControlProxyAuthzldapControlSortrequestldapControlSortresponseldapControlVlvrequestldapControlVlvresponseldapNoticeOfDisconnectionldapNoticeDisconnect ldapFilterAnd ldapFilterOr ldapFilterNotldapFilterEqualityldapFilterSubstrings ldapFilterGe ldapFilterLeldapFilterPresentldapFilterApprox ldapFilterExtldapFilterExtOidldapFilterExtTypeldapFilterExtValueldapFilterExtDnattrsldapSubstringAnyldapSubstringFinalldapSubstringInitialldapInitldapOpenldapInitializeldapSimpleBind LDAPEntrylednleattrsSearchAttributes LDAPAttrListLDAPAllUserAttrs LDAPNoAttrs ldapSearchLDAPModmodOpmodTypemodVals ldapModifyldapAdd ldapDeletelist2ldm pairs2ldmBervalCLDAP $fEqLDAPModOp$fOrdLDAPModOp$fEnumLDAPModOp $fEqLDAPScope$fOrdLDAPScope$fEnumLDAPScope$fEqLDAPOptionCode$fOrdLDAPOptionCode$fEnumLDAPOptionCode$fEqLDAPReturnCode$fOrdLDAPReturnCode$fEnumLDAPReturnCodeldapExceptionsldapExceptionTc$fExceptionLDAPException$fTypeableLDAPException$fOrdLDAPException$fEqLDAPException$fShowLDAPExceptionLDAPPtrcheckLE checkNULL fromLDAPPtr withLDAPPtrmaybeWithLDAPPtrldapGetOptionIntNoEcldapGetOptionStrNoEc newBerval freeHSBerval ldap_memfreeldap_memfree_callldap_get_optionldap_err2string ldap_unbind checkLEn1checkLEe wrap_memfree withMStringwithCStringArr0 withAnyArr0withBervalArr0bv2strldap_set_optionldap_simple_bind_sldap_initialize cldap_open cldap_initldapSetVersion3ldapSetRestart ldap_1result LDAPMessage CLDAPMessageldap_msgfree_call ldap_result fromldmptr BerElementldap_next_attributeldap_first_attributeldap_first_entry ldap_searchldap_value_free_lenldap_get_values_len ldap_get_dnsa2slprocSRgetattrs getnextitems getvalues procberarrCLDAPMod ldap_add_s ldap_delete_s ldap_modify_s genericChange newCLDAPMod freeCLDAPModwithCLDAPModArr0