úÎZıO¼£      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢  John Goerzen,£¤£¤£¤ John Goerzen,]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!    ]   >\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ John Goerzen,]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. ]^_`aa`^_]]^_`a John Goerzen, bGThe basic type of LDAP exceptions. These are raised when an operation does not indicate success. cdNumeric error code eDescription of error fCalling function ¥gExecute the given IO action. If it raises a cb/, 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 cb. 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 bcdefcdefghij John Goerzen,"klmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ"klmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ"klmn|o}p~qrs€t‚uƒv„w…x†y‡zˆ{‰Š‹Œ"klmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ  John Goerzen,§¨©ª«¬Value coming in from C ­Check the return value. If it's something other than LDAP.Constants.ldapSuccess, 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) ¶·¸¹1Function that transforms input data into pointer #Function that frees generated data List of input data Action to run with the C array º»¼(Must be freed later with freeHSBerval! ½'Free a berval allocated from Haskell. §¬­®¯°±²³·¸¹»¼½§¬­®¯°±²³·¸¹»¼½ John Goerzen,¾¿ÀÁ0Preferred way to initialize a LDAP connection. The default port is given in LDAP.Constants.ldapPort. !Could throw IOError on failure. Host Port  New LDAP Obj Like 1, but establish network connection immediately. Host Port  New LDAP Obj Bind to the remote server.  LDAP Object DN (Distinguished Name)  Password   John Goerzen,ÂÃÄÅÆ!Get 1 result from an operation. ÇÄÅÆÄÅÆ John Goerzen,ÈÉÊËÌÍÎÏ‘’"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,Ö×ØÙ™š›Type of operation to perform œName of attribute to edit  New values LDAP connection object  DN to modify Changes to make ŸLDAP connection object  DN to add  Items to add  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. ÚÛÜ™š›œŸ ¡¢™š›œŸ ¡¢ ™š›œš›œŸ ¡¢  John Goerzen,£  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢İ   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl mmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™šš›œŸ ¡¢¢£¤¥¦§¨©ª«¬­® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä ÅÆÇÈÉ Ê Ë Ì Í Î ÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäå LDAP-0.6.5 LDAP.Data LDAP.TypesLDAP.ExceptionsLDAP.Constants LDAP.Init LDAP.Search LDAP.Modify LDAP.TypesLL LDAP.Utils LDAP.ResultLDAP LDAPModOpUnknownLDAPModOpLdapModReplace LdapModDelete LdapModAdd LDAPScopeUnknownLDAPScopeLdapScopeSubtreeLdapScopeOnelevel LdapScopeBaseLdapScopeDefaultLDAPOptionCodeUnknownLDAPOptionCode LdapOptErrorLdapOptSuccessLdapOptMatchedDnLdapOptErrorStringLdapOptErrorNumberLdapOptHostNameLdapOptApiFeatureInfoLdapOptClientControlsLdapOptServerControlsLdapOptProtocolVersionLdapOptRestartLdapOptReferralsLdapOptTimelimitLdapOptSizelimit LdapOptDeref LdapOptDescLdapOptApiInfoLDAPReturnCodeUnknownLDAPReturnCodeLdapReferralLimitExceededLdapClientLoopLdapMoreResultsToReturnLdapNoResultsReturnedLdapControlNotFoundLdapNotSupportedLdapConnectError LdapNoMemoryLdapParamErrorLdapUserCancelledLdapFilterErrorLdapAuthUnknown LdapTimeoutLdapDecodingErrorLdapEncodingErrorLdapLocalErrorLdapServerDown LdapOtherLdapAffectsMultipleDsasLdapResultsTooLargeLdapNoObjectClassModsLdapAlreadyExistsLdapNotAllowedOnRdnLdapNotAllowedOnNonleafLdapObjectClassViolationLdapNamingViolationLdapLoopDetectLdapUnwillingToPerformLdapUnavailableLdapBusyLdapInsufficientAccessLdapInvalidCredentialsLdapInappropriateAuthLdapProxyAuthzFailureLdapAliasDerefProblem LdapIsLeafLdapInvalidDnSyntaxLdapAliasProblemLdapNoSuchObjectLdapInvalidSyntaxLdapTypeOrValueExistsLdapConstraintViolationLdapInappropriateMatchingLdapUndefinedTypeLdapNoSuchAttributeLdapSaslBindInProgressLdapConfidentialityRequired LdapUnavailableCriticalExtensionLdapAdminlimitExceeded LdapReferralLdapPartialResultsLdapStrongAuthRequiredLdapStrongAuthNotSupportedLdapAuthMethodNotSupportedLdapCompareTrueLdapCompareFalseLdapSizelimitExceededLdapTimelimitExceededLdapProtocolErrorLdapOperationsError LdapSuccessBERLenBERIntBERTagLDAPInt LDAPExceptioncode descriptioncaller catchLDAP handleLDAPfailLDAP throwLDAPldapPort ldapsPortldapApiVersionldapVendorNameldapApiInfoVersionldapFeatureInfoVersionldapControlValuesreturnfilterldapControlSubentriesldapControlNoopldapControlManagedsaitldapControlProxyAuthzldapControlSortrequestldapControlSortresponseldapControlVlvrequestldapControlVlvresponseldapNoticeOfDisconnectionldapNoticeDisconnect ldapFilterAnd ldapFilterOr ldapFilterNotldapFilterEqualityldapFilterSubstrings ldapFilterGe ldapFilterLeldapFilterPresentldapFilterApprox ldapFilterExtldapFilterExtOidldapFilterExtTypeldapFilterExtValueldapFilterExtDnattrsldapSubstringAnyldapSubstringFinalldapSubstringInitialldapInitldapOpenldapSimpleBind LDAPEntrylednleattrsSearchAttributes LDAPAttrListLDAPAllUserAttrs LDAPNoAttrs ldapSearchLDAPModmodOpmodTypemodVals ldapModifyldapAdd ldapDeletelist2ldm pairs2ldmBervalCLDAPldapExceptionTcldapExceptions ldap_memfreeldap_memfree_callldap_get_optionldap_err2string ldap_unbindLDAPPtrcheckLE checkLEn1checkLEe checkNULL fromLDAPPtr withLDAPPtrmaybeWithLDAPPtrldapGetOptionIntNoEcldapGetOptionStrNoEc wrap_memfree withMStringwithCStringArr0 withAnyArr0withBervalArr0bv2str newBerval freeHSBervalldap_set_optionldap_simple_bind_s cldap_open cldap_initldap_msgfree_call ldap_result LDAPMessage CLDAPMessage ldap_1result fromldmptrldap_next_attributeldap_first_attributeldap_first_entry ldap_searchldap_value_free_lenldap_get_values_len ldap_get_dn BerElementsa2slprocSRgetattrs getnextitems getvalues procberarr ldap_add_s ldap_delete_s ldap_modify_sCLDAPMod newCLDAPMod freeCLDAPModwithCLDAPModArr0