Update haddock documentation
This commit is contained in:
parent
b1ce3be2ee
commit
642ff92e4f
@ -1,17 +1,17 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Asn1.FromAsn1</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Asn1.FromAsn1</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Asn1-FromAsn1.html");};
|
window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Asn1-FromAsn1.html");};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Ldap-Asn1-FromAsn1.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Ldap.Asn1.FromAsn1</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:FromAsn1" class="def">FromAsn1</a> a <span class="keyword">where</span> <a href="src/Ldap-Asn1-FromAsn1.html#FromAsn1" class="link">Source</a></p><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:fromAsn1" class="def">fromAsn1</a> :: <a href="Ldap-Asn1-FromAsn1.html#t:Parser">Parser</a> [ASN1] a <a href="src/Ldap-Asn1-FromAsn1.html#fromAsn1" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:FromAsn1" class="caption collapser" onclick="toggleSection('i:FromAsn1')">Instances</p><div id="section.i:FromAsn1" class="show"><table><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapOid">LdapOid</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-84" class="link">Source</a></td><td class="doc"><pre>LDAPOID ::= OCTET STRING -- Constrained to <numericoid>
|
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Ldap-Asn1-FromAsn1.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Ldap.Asn1.FromAsn1</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module contains convertions from ASN.1 to LDAP types.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:parseAsn1">parseAsn1</a> :: <a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> a => [ASN1] -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> ([ASN1], a)</li><li class="src short"><span class="keyword">class</span> <a href="#t:FromAsn1">FromAsn1</a> a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:parseAsn1" class="def">parseAsn1</a> :: <a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> a => [ASN1] -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> ([ASN1], a) <a href="src/Ldap-Asn1-FromAsn1.html#parseAsn1" class="link">Source</a></p><div class="doc"><p>Convert a part of ASN.1 stream to a LDAP type returning the remainder of the stream.</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:FromAsn1" class="def">FromAsn1</a> a <a href="src/Ldap-Asn1-FromAsn1.html#FromAsn1" class="link">Source</a></p><div class="doc"><p>ASN.1 stream parsers.</p><p>When it's relevant, instances include the part of RFC describing the encoding.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src">fromAsn1</p></div><div class="subs instances"><p id="control.i:FromAsn1" class="caption collapser" onclick="toggleSection('i:FromAsn1')">Instances</p><div id="section.i:FromAsn1" class="show"><table><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapOid">LdapOid</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-89" class="link">Source</a></td><td class="doc"><pre>LDAPOID ::= OCTET STRING -- Constrained to <numericoid>
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapString">LdapString</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-72" class="link">Source</a></td><td class="doc"><pre>LDAPString ::= OCTET STRING -- UTF-8 encoded,
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapString">LdapString</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-77" class="link">Source</a></td><td class="doc"><pre>LDAPString ::= OCTET STRING -- UTF-8 encoded,
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:Uri">Uri</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-260" class="link">Source</a></td><td class="doc"><pre>URI ::= LDAPString
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:Uri">Uri</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-267" class="link">Source</a></td><td class="doc"><pre>URI ::= LDAPString
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:ReferralUris">ReferralUris</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-248" class="link">Source</a></td><td class="doc"><pre>Referral ::= SEQUENCE SIZE (1..MAX) OF uri URI
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:ReferralUris">ReferralUris</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-255" class="link">Source</a></td><td class="doc"><pre>Referral ::= SEQUENCE SIZE (1..MAX) OF uri URI
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapDn">LdapDn</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-94" class="link">Source</a></td><td class="doc"><pre>LDAPDN ::= LDAPString
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapDn">LdapDn</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-101" class="link">Source</a></td><td class="doc"><pre>LDAPDN ::= LDAPString
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:PartialAttribute">PartialAttribute</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-122" class="link">Source</a></td><td class="doc"><pre>PartialAttribute ::= SEQUENCE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:PartialAttribute">PartialAttribute</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-129" class="link">Source</a></td><td class="doc"><pre>PartialAttribute ::= SEQUENCE {
|
||||||
type AttributeDescription,
|
type AttributeDescription,
|
||||||
vals SET OF value AttributeValue }
|
vals SET OF value AttributeValue }
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeValue">AttributeValue</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-110" class="link">Source</a></td><td class="doc"><pre>AttributeValue ::= OCTET STRING
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeValue">AttributeValue</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-117" class="link">Source</a></td><td class="doc"><pre>AttributeValue ::= OCTET STRING
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeDescription">AttributeDescription</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-102" class="link">Source</a></td><td class="doc"><pre>AttributeDescription ::= LDAPString
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeDescription">AttributeDescription</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-109" class="link">Source</a></td><td class="doc"><pre>AttributeDescription ::= LDAPString
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapResult">LdapResult</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-188" class="link">Source</a></td><td class="doc"><pre>LDAPResult ::= SEQUENCE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapResult">LdapResult</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-195" class="link">Source</a></td><td class="doc"><pre>LDAPResult ::= SEQUENCE {
|
||||||
resultCode ENUMERATED {
|
resultCode ENUMERATED {
|
||||||
success (0),
|
success (0),
|
||||||
operationsError (1),
|
operationsError (1),
|
||||||
@ -63,20 +63,30 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Asn1-FromAsn1.htm
|
|||||||
matchedDN LDAPDN,
|
matchedDN LDAPDN,
|
||||||
diagnosticMessage LDAPString,
|
diagnosticMessage LDAPString,
|
||||||
referral [3] Referral OPTIONAL }
|
referral [3] Referral OPTIONAL }
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:PartialAttributeList">PartialAttributeList</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-332" class="link">Source</a></td><td class="doc"><pre>PartialAttributeList ::= SEQUENCE OF partialAttribute PartialAttribute
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:PartialAttributeList">PartialAttributeList</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-380" class="link">Source</a></td><td class="doc"><pre>PartialAttributeList ::= SEQUENCE OF partialAttribute PartialAttribute
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:ProtocolServerOp">ProtocolServerOp</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-296" class="link">Source</a></td><td class="doc"><pre>BindResponse ::= [APPLICATION 1] SEQUENCE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:ProtocolServerOp">ProtocolServerOp</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-325" class="link">Source</a></td><td class="doc"><pre>BindResponse ::= [APPLICATION 1] SEQUENCE {
|
||||||
COMPONENTS OF LDAPResult,
|
COMPONENTS OF LDAPResult,
|
||||||
serverSaslCreds [7] OCTET STRING OPTIONAL }
|
serverSaslCreds [7] OCTET STRING OPTIONAL }
|
||||||
</pre><pre>SearchResultEntry ::= [APPLICATION 4] SEQUENCE {
|
</pre><pre>SearchResultEntry ::= [APPLICATION 4] SEQUENCE {
|
||||||
objectName LDAPDN,
|
objectName LDAPDN,
|
||||||
attributes PartialAttributeList }
|
attributes PartialAttributeList }
|
||||||
|
</pre><pre>SearchResultReference ::= [APPLICATION 19] SEQUENCE
|
||||||
|
SIZE (1..MAX) OF uri URI
|
||||||
</pre><pre>SearchResultDone ::= [APPLICATION 5] LDAPResult
|
</pre><pre>SearchResultDone ::= [APPLICATION 5] LDAPResult
|
||||||
</pre><pre>ModifyResponse ::= [APPLICATION 7] LDAPResult
|
</pre><pre>ModifyResponse ::= [APPLICATION 7] LDAPResult
|
||||||
</pre><pre>AddResponse ::= [APPLICATION 9] LDAPResult
|
</pre><pre>AddResponse ::= [APPLICATION 9] LDAPResult
|
||||||
</pre><pre>DelResponse ::= [APPLICATION 11] LDAPResult
|
</pre><pre>DelResponse ::= [APPLICATION 11] LDAPResult
|
||||||
|
</pre><pre>ModifyDNResponse ::= [APPLICATION 13] LDAPResult
|
||||||
</pre><pre>CompareResponse ::= [APPLICATION 15] LDAPResult
|
</pre><pre>CompareResponse ::= [APPLICATION 15] LDAPResult
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:Id">Id</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-62" class="link">Source</a></td><td class="doc"><pre>MessageID ::= INTEGER (0 .. maxInt)
|
</pre><pre>ExtendedResponse ::= [APPLICATION 24] SEQUENCE {
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> op => <a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> (<a href="Ldap-Asn1-Type.html#t:LdapMessage">LdapMessage</a> op) <a href="src/Ldap-Asn1-FromAsn1.html#line-49" class="link">Source</a></td><td class="doc"><pre>LDAPMessage ::= SEQUENCE {
|
COMPONENTS OF LDAPResult,
|
||||||
|
responseName [10] LDAPOID OPTIONAL,
|
||||||
|
responseValue [11] OCTET STRING OPTIONAL }
|
||||||
|
</pre><pre>IntermediateResponse ::= [APPLICATION 25] SEQUENCE {
|
||||||
|
responseName [0] LDAPOID OPTIONAL,
|
||||||
|
responseValue [1] OCTET STRING OPTIONAL }
|
||||||
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> <a href="Ldap-Asn1-Type.html#t:Id">Id</a> <a href="src/Ldap-Asn1-FromAsn1.html#line-67" class="link">Source</a></td><td class="doc"><pre>MessageID ::= INTEGER (0 .. maxInt)
|
||||||
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> op => <a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> (<a href="Ldap-Asn1-Type.html#t:LdapMessage">LdapMessage</a> op) <a href="src/Ldap-Asn1-FromAsn1.html#line-54" class="link">Source</a></td><td class="doc"><pre>LDAPMessage ::= SEQUENCE {
|
||||||
messageID MessageID,
|
messageID MessageID,
|
||||||
protocolOp CHOICE {
|
protocolOp CHOICE {
|
||||||
bindRequest BindRequest,
|
bindRequest BindRequest,
|
||||||
@ -90,4 +100,4 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Asn1-FromAsn1.htm
|
|||||||
addResponse AddResponse,
|
addResponse AddResponse,
|
||||||
... },
|
... },
|
||||||
controls [0] Controls OPTIONAL }
|
controls [0] Controls OPTIONAL }
|
||||||
</pre></td></tr><tr><td class="src">(<a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> a, <a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> b) => <a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> (a, b) <a href="src/Ldap-Asn1-FromAsn1.html#line-339" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Parser" class="def">Parser</a> s a <a href="src/Ldap-Asn1-FromAsn1.html#Parser" class="link">Source</a></p><div class="subs instances"><p id="control.i:Parser" class="caption collapser" onclick="toggleSection('i:Parser')">Instances</p><div id="section.i:Parser" class="show"><table><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Control-Monad.html#t:Monad">Monad</a> (<a href="Ldap-Asn1-FromAsn1.html#t:Parser">Parser</a> s) <a href="src/Ldap-Asn1-FromAsn1.html#line-360" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Data-Functor.html#t:Functor">Functor</a> (<a href="Ldap-Asn1-FromAsn1.html#t:Parser">Parser</a> s) <a href="src/Ldap-Asn1-FromAsn1.html#line-345" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Ldap-Asn1-FromAsn1.html#t:Parser">Parser</a> s) <a href="src/Ldap-Asn1-FromAsn1.html#line-348" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Control-Applicative.html#t:Alternative">Alternative</a> (<a href="Ldap-Asn1-FromAsn1.html#t:Parser">Parser</a> s) <a href="src/Ldap-Asn1-FromAsn1.html#line-355" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Control-Monad.html#t:MonadPlus">MonadPlus</a> (<a href="Ldap-Asn1-FromAsn1.html#t:Parser">Parser</a> s) <a href="src/Ldap-Asn1-FromAsn1.html#line-366" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:parseAsn1" class="def">parseAsn1</a> :: <a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> a => [ASN1] -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> ([ASN1], a) <a href="src/Ldap-Asn1-FromAsn1.html#parseAsn1" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:parse" class="def">parse</a> :: <a href="Ldap-Asn1-FromAsn1.html#t:Parser">Parser</a> s a -> s -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> (s, a) <a href="src/Ldap-Asn1-FromAsn1.html#parse" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:next" class="def">next</a> :: <a href="Ldap-Asn1-FromAsn1.html#t:Parser">Parser</a> [s] s <a href="src/Ldap-Asn1-FromAsn1.html#next" class="link">Source</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
</pre></td></tr><tr><td class="src">(<a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> a, <a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> b) => <a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">FromAsn1</a> (a, b) <a href="src/Ldap-Asn1-FromAsn1.html#line-387" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
||||||
@ -1,43 +1,46 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Asn1.ToAsn1</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Asn1.ToAsn1</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Asn1-ToAsn1.html");};
|
window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Asn1-ToAsn1.html");};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Ldap-Asn1-ToAsn1.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Ldap.Asn1.ToAsn1</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:ToAsn1" class="def">ToAsn1</a> a <span class="keyword">where</span> <a href="src/Ldap-Asn1-ToAsn1.html#ToAsn1" class="link">Source</a></p><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:toAsn1" class="def">toAsn1</a> :: a -> <a href="http://hackage.haskell.org/package/base/docs/Data-Monoid.html#t:Endo">Endo</a> [ASN1] <a href="src/Ldap-Asn1-ToAsn1.html#toAsn1" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:ToAsn1" class="caption collapser" onclick="toggleSection('i:ToAsn1')">Instances</p><div id="section.i:ToAsn1" class="show"><table><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapOid">LdapOid</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-64" class="link">Source</a></td><td class="doc"><pre>LDAPOID ::= OCTET STRING -- Constrained to <numericoid>
|
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Ldap-Asn1-ToAsn1.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Ldap.Asn1.ToAsn1</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module contains convertions from LDAP types to ASN.1.</p><p>Various hacks are employed because "asn1-encoding" only encodes to DER, but
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapString">LdapString</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-56" class="link">Source</a></td><td class="doc"><pre>LDAPString ::= OCTET STRING -- UTF-8 encoded
|
LDAP demands BER-encoding. So, when a definition looks suspiciously different
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:RelativeLdapDn">RelativeLdapDn</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-80" class="link">Source</a></td><td class="doc"><pre>RelativeLDAPDN ::= LDAPString -- Constrained to <name-component>
|
from the spec in the comment, that's why. I hope all that will be fixed
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapDn">LdapDn</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-72" class="link">Source</a></td><td class="doc"><pre>LDAPDN ::= LDAPString -- Constrained to <distinguishedName>
|
eventually.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="#t:ToAsn1">ToAsn1</a> a <span class="keyword">where</span><ul class="subs"><li><a href="#v:toAsn1">toAsn1</a> :: a -> <a href="http://hackage.haskell.org/package/base/docs/Data-Monoid.html#t:Endo">Endo</a> [ASN1]</li></ul></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:ToAsn1" class="def">ToAsn1</a> a <span class="keyword">where</span> <a href="src/Ldap-Asn1-ToAsn1.html#ToAsn1" class="link">Source</a></p><div class="doc"><p>Convert a LDAP type to ASN.1.</p><p>When it's relevant, instances include the part of RFC describing the encoding.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:toAsn1" class="def">toAsn1</a> :: a -> <a href="http://hackage.haskell.org/package/base/docs/Data-Monoid.html#t:Endo">Endo</a> [ASN1] <a href="src/Ldap-Asn1-ToAsn1.html#toAsn1" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:ToAsn1" class="caption collapser" onclick="toggleSection('i:ToAsn1')">Instances</p><div id="section.i:ToAsn1" class="show"><table><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapOid">LdapOid</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-73" class="link">Source</a></td><td class="doc"><pre>LDAPOID ::= OCTET STRING -- Constrained to <numericoid>
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:PartialAttribute">PartialAttribute</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-125" class="link">Source</a></td><td class="doc"><pre>PartialAttribute ::= SEQUENCE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapString">LdapString</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-65" class="link">Source</a></td><td class="doc"><pre>LDAPString ::= OCTET STRING -- UTF-8 encoded
|
||||||
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:RelativeLdapDn">RelativeLdapDn</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-89" class="link">Source</a></td><td class="doc"><pre>RelativeLDAPDN ::= LDAPString -- Constrained to <name-component>
|
||||||
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:LdapDn">LdapDn</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-81" class="link">Source</a></td><td class="doc"><pre>LDAPDN ::= LDAPString -- Constrained to <distinguishedName>
|
||||||
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:PartialAttribute">PartialAttribute</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-134" class="link">Source</a></td><td class="doc"><pre>PartialAttribute ::= SEQUENCE {
|
||||||
type AttributeDescription,
|
type AttributeDescription,
|
||||||
vals SET OF value AttributeValue }
|
vals SET OF value AttributeValue }
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:Attribute">Attribute</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-135" class="link">Source</a></td><td class="doc"><pre>Attribute ::= PartialAttribute(WITH COMPONENTS {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:Attribute">Attribute</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-144" class="link">Source</a></td><td class="doc"><pre>Attribute ::= PartialAttribute(WITH COMPONENTS {
|
||||||
...,
|
...,
|
||||||
vals (SIZE(1..MAX))})
|
vals (SIZE(1..MAX))})
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AssertionValue">AssertionValue</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-114" class="link">Source</a></td><td class="doc"><pre>AssertionValue ::= OCTET STRING
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AssertionValue">AssertionValue</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-123" class="link">Source</a></td><td class="doc"><pre>AssertionValue ::= OCTET STRING
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeValueAssertion">AttributeValueAssertion</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-106" class="link">Source</a></td><td class="doc"><pre>AttributeValueAssertion ::= SEQUENCE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeValueAssertion">AttributeValueAssertion</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-115" class="link">Source</a></td><td class="doc"><pre>AttributeValueAssertion ::= SEQUENCE {
|
||||||
attributeDesc AttributeDescription,
|
attributeDesc AttributeDescription,
|
||||||
assertionValue AssertionValue }
|
assertionValue AssertionValue }
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeValue">AttributeValue</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-96" class="link">Source</a></td><td class="doc"><pre>AttributeValue ::= OCTET STRING
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeValue">AttributeValue</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-105" class="link">Source</a></td><td class="doc"><pre>AttributeValue ::= OCTET STRING
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeDescription">AttributeDescription</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-88" class="link">Source</a></td><td class="doc"><pre>AttributeDescription ::= LDAPString
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeDescription">AttributeDescription</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-97" class="link">Source</a></td><td class="doc"><pre>AttributeDescription ::= LDAPString
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:Control">Control</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-162" class="link">Source</a></td><td class="doc"><pre>Control ::= SEQUENCE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:Control">Control</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-171" class="link">Source</a></td><td class="doc"><pre>Control ::= SEQUENCE {
|
||||||
controlType LDAPOID,
|
controlType LDAPOID,
|
||||||
criticality BOOLEAN DEFAULT FALSE,
|
criticality BOOLEAN DEFAULT FALSE,
|
||||||
controlValue OCTET STRING OPTIONAL }
|
controlValue OCTET STRING OPTIONAL }
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:Controls">Controls</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-151" class="link">Source</a></td><td class="doc"><pre>Controls ::= SEQUENCE OF control Control
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:Controls">Controls</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-160" class="link">Source</a></td><td class="doc"><pre>Controls ::= SEQUENCE OF control Control
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeList">AttributeList</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-387" class="link">Source</a></td><td class="doc"><pre>AttributeList ::= SEQUENCE OF attribute Attribute
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeList">AttributeList</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-398" class="link">Source</a></td><td class="doc"><pre>AttributeList ::= SEQUENCE OF attribute Attribute
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeSelection">AttributeSelection</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-314" class="link">Source</a></td><td class="doc"><pre>AttributeSelection ::= SEQUENCE OF selector LDAPString
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AttributeSelection">AttributeSelection</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-323" class="link">Source</a></td><td class="doc"><pre>AttributeSelection ::= SEQUENCE OF selector LDAPString
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:MatchingRuleId">MatchingRuleId</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-143" class="link">Source</a></td><td class="doc"><pre>MatchingRuleId ::= LDAPString
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:MatchingRuleId">MatchingRuleId</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-152" class="link">Source</a></td><td class="doc"><pre>MatchingRuleId ::= LDAPString
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:MatchingRuleAssertion">MatchingRuleAssertion</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-374" class="link">Source</a></td><td class="doc"><pre>MatchingRuleAssertion ::= SEQUENCE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:MatchingRuleAssertion">MatchingRuleAssertion</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-383" class="link">Source</a></td><td class="doc"><pre>MatchingRuleAssertion ::= SEQUENCE {
|
||||||
matchingRule [1] MatchingRuleId OPTIONAL,
|
matchingRule [1] MatchingRuleId OPTIONAL,
|
||||||
type [2] AttributeDescription OPTIONAL,
|
type [2] AttributeDescription OPTIONAL,
|
||||||
matchValue [3] AssertionValue,
|
matchValue [3] AssertionValue,
|
||||||
dnAttributes [4] BOOLEAN DEFAULT FALSE }
|
dnAttributes [4] BOOLEAN DEFAULT FALSE }
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:SubstringFilter">SubstringFilter</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-358" class="link">Source</a></td><td class="doc"><pre>SubstringFilter ::= SEQUENCE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:SubstringFilter">SubstringFilter</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-367" class="link">Source</a></td><td class="doc"><pre>SubstringFilter ::= SEQUENCE {
|
||||||
type AttributeDescription,
|
type AttributeDescription,
|
||||||
substrings SEQUENCE SIZE (1..MAX) OF substring CHOICE {
|
substrings SEQUENCE SIZE (1..MAX) OF substring CHOICE {
|
||||||
initial [0] AssertionValue, -- can occur at most once
|
initial [0] AssertionValue, -- can occur at most once
|
||||||
any [1] AssertionValue,
|
any [1] AssertionValue,
|
||||||
final [2] AssertionValue } -- can occur at most once
|
final [2] AssertionValue } -- can occur at most once
|
||||||
}
|
}
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:Filter">Filter</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-333" class="link">Source</a></td><td class="doc"><pre>Filter ::= CHOICE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:Filter">Filter</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-342" class="link">Source</a></td><td class="doc"><pre>Filter ::= CHOICE {
|
||||||
and [0] SET SIZE (1..MAX) OF filter Filter,
|
and [0] SET SIZE (1..MAX) OF filter Filter,
|
||||||
or [1] SET SIZE (1..MAX) OF filter Filter,
|
or [1] SET SIZE (1..MAX) OF filter Filter,
|
||||||
not [2] Filter,
|
not [2] Filter,
|
||||||
@ -49,10 +52,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Asn1-ToAsn1.html"
|
|||||||
approxMatch [8] AttributeValueAssertion,
|
approxMatch [8] AttributeValueAssertion,
|
||||||
extensibleMatch [9] MatchingRuleAssertion,
|
extensibleMatch [9] MatchingRuleAssertion,
|
||||||
... }
|
... }
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AuthenticationChoice">AuthenticationChoice</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-306" class="link">Source</a></td><td class="doc"><pre>AuthenticationChoice ::= CHOICE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:AuthenticationChoice">AuthenticationChoice</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-315" class="link">Source</a></td><td class="doc"><pre>AuthenticationChoice ::= CHOICE {
|
||||||
simple [0] OCTET STRING,
|
simple [0] OCTET STRING,
|
||||||
... }
|
... }
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:ProtocolClientOp">ProtocolClientOp</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-244" class="link">Source</a></td><td class="doc"><pre>BindRequest ::= [APPLICATION 0] SEQUENCE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:ProtocolClientOp">ProtocolClientOp</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-253" class="link">Source</a></td><td class="doc"><pre>BindRequest ::= [APPLICATION 0] SEQUENCE {
|
||||||
version INTEGER (1 .. 127),
|
version INTEGER (1 .. 127),
|
||||||
name LDAPDN,
|
name LDAPDN,
|
||||||
authentication AuthenticationChoice }
|
authentication AuthenticationChoice }
|
||||||
@ -98,8 +101,8 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Asn1-ToAsn1.html"
|
|||||||
</pre><pre>ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
|
</pre><pre>ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
|
||||||
requestName [0] LDAPOID,
|
requestName [0] LDAPOID,
|
||||||
requestValue [1] OCTET STRING OPTIONAL }
|
requestValue [1] OCTET STRING OPTIONAL }
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:Id">Id</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-48" class="link">Source</a></td><td class="doc"><pre>MessageID ::= INTEGER (0 .. maxInt)
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> <a href="Ldap-Asn1-Type.html#t:Id">Id</a> <a href="src/Ldap-Asn1-ToAsn1.html#line-57" class="link">Source</a></td><td class="doc"><pre>MessageID ::= INTEGER (0 .. maxInt)
|
||||||
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> a => <a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> [a] <a href="src/Ldap-Asn1-ToAsn1.html#line-390" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> a => <a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> (<a href="Ldap-Client.html#t:NonEmpty">NonEmpty</a> a) <a href="src/Ldap-Asn1-ToAsn1.html#line-393" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> op => <a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> (<a href="Ldap-Asn1-Type.html#t:LdapMessage">LdapMessage</a> op) <a href="src/Ldap-Asn1-ToAsn1.html#line-39" class="link">Source</a></td><td class="doc"><pre>LDAPMessage ::= SEQUENCE {
|
</pre></td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> a => <a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> [a] <a href="src/Ldap-Asn1-ToAsn1.html#line-401" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> a => <a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> (<a href="Ldap-Client.html#t:NonEmpty">NonEmpty</a> a) <a href="src/Ldap-Asn1-ToAsn1.html#line-404" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> op => <a href="Ldap-Asn1-ToAsn1.html#t:ToAsn1">ToAsn1</a> (<a href="Ldap-Asn1-Type.html#t:LdapMessage">LdapMessage</a> op) <a href="src/Ldap-Asn1-ToAsn1.html#line-48" class="link">Source</a></td><td class="doc"><pre>LDAPMessage ::= SEQUENCE {
|
||||||
messageID MessageID,
|
messageID MessageID,
|
||||||
protocolOp CHOICE {
|
protocolOp CHOICE {
|
||||||
bindRequest BindRequest,
|
bindRequest BindRequest,
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,8 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Client.Compare</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Client.Compare</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Client-Compare.html");};
|
window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Client-Compare.html");};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Ldap-Client-Compare.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Ldap.Client.Compare</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:compare" class="def">compare</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a> <a href="src/Ldap-Client-Compare.html#compare" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:compareEither" class="def">compareEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a>) <a href="src/Ldap-Client-Compare.html#compareEither" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:compareAsync" class="def">compareAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a>) <a href="src/Ldap-Client-Compare.html#compareAsync" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:compareAsyncSTM" class="def">compareAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a>) <a href="src/Ldap-Client-Compare.html#compareAsyncSTM" class="link">Source</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Ldap-Client-Compare.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Ldap.Client.Compare</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p><a href="https://tools.ietf.org/html/rfc4511#section-4.10">Compare</a> operation.</p><p>This operation comes in four flavours:</p><ul><li>synchronous, exception throwing (<code><a href="Ldap-Client-Compare.html#v:compare">compare</a></code>)</li><li>synchronous, returning <code><a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a></code> <code><a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a></code> <code>()</code> (<code><a href="Ldap-Client-Compare.html#v:compareEither">compareEither</a></code>)</li><li>asynchronous, <code><a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a></code> based (<code><a href="Ldap-Client-Compare.html#v:compareAsync">compareAsync</a></code>)</li><li>asynchronous, <code><a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a></code> based (<code><a href="Ldap-Client-Compare.html#v:compareAsyncSTM">compareAsyncSTM</a></code>)</li></ul><p>Of those, the first one (<code><a href="Ldap-Client-Compare.html#v:compare">compare</a></code>) is probably the most useful for the
|
||||||
|
typical usecase.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:compare">compare</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:compareEither">compareEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a>)</li><li class="src short"><a href="#v:compareAsync">compareAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a>)</li><li class="src short"><a href="#v:compareAsyncSTM">compareAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a> -> <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a>)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:compare" class="def">compare</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a> <a href="src/Ldap-Client-Compare.html#compare" class="link">Source</a></p><div class="doc"><p>Perform the Compare operation synchronously. Raises <code><a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a></code> on failures.</p></div></div><div class="top"><p class="src"><a name="v:compareEither" class="def">compareEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a>) <a href="src/Ldap-Client-Compare.html#compareEither" class="link">Source</a></p><div class="doc"><p>Perform the Compare operation synchronously. Returns <code>Left e</code> where
|
||||||
|
<code>e</code> is a <code><a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a></code> on failures.</p></div></div><div class="top"><p class="src"><a name="v:compareAsync" class="def">compareAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a>) <a href="src/Ldap-Client-Compare.html#compareAsync" class="link">Source</a></p><div class="doc"><p>Perform the Compare operation asynchronously. Call <code><a href="Ldap-Client.html#v:wait">wait</a></code> to wait
|
||||||
|
for its completion.</p></div></div><div class="top"><p class="src"><a name="v:compareAsyncSTM" class="def">compareAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a> -> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a> -> <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a>) <a href="src/Ldap-Client-Compare.html#compareAsyncSTM" class="link">Source</a></p><div class="doc"><p>Perform the Compare operation asynchronously.</p><p>Don't wait for its completion (with <code><a href="Ldap-Client.html#v:waitSTM">waitSTM</a></code>) in the
|
||||||
|
same transaction you've performed it in.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
||||||
@ -1,4 +1,7 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Client.Delete</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Client.Delete</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Client-Delete.html");};
|
window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Client-Delete.html");};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Ldap-Client-Delete.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Ldap.Client.Delete</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:delete" class="def">delete</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> () <a href="src/Ldap-Client-Delete.html#delete" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:deleteEither" class="def">deleteEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> ()) <a href="src/Ldap-Client-Delete.html#deleteEither" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:deleteAsync" class="def">deleteAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> ()) <a href="src/Ldap-Client-Delete.html#deleteAsync" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:deleteAsyncSTM" class="def">deleteAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> ()) <a href="src/Ldap-Client-Delete.html#deleteAsyncSTM" class="link">Source</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Ldap-Client-Delete.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Ldap.Client.Delete</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p><a href="https://tools.ietf.org/html/rfc4511#section-4.8">Delete</a> operation.</p><p>This operation comes in four flavours:</p><ul><li>synchronous, exception throwing (<code><a href="Ldap-Client-Delete.html#v:delete">delete</a></code>)</li><li>synchronous, returning <code><a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a></code> <code><a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a></code> <code>()</code> (<code><a href="Ldap-Client-Delete.html#v:deleteEither">deleteEither</a></code>)</li><li>asynchronous, <code><a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a></code> based (<code><a href="Ldap-Client-Delete.html#v:deleteAsync">deleteAsync</a></code>)</li><li>asynchronous, <code><a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a></code> based (<code><a href="Ldap-Client-Delete.html#v:deleteAsyncSTM">deleteAsyncSTM</a></code>)</li></ul><p>Of those, the first one (<code><a href="Ldap-Client-Delete.html#v:delete">delete</a></code>) is probably the most useful for the typical usecase.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:delete">delete</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:deleteEither">deleteEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> ())</li><li class="src short"><a href="#v:deleteAsync">deleteAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> ())</li><li class="src short"><a href="#v:deleteAsyncSTM">deleteAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> ())</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:delete" class="def">delete</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> () <a href="src/Ldap-Client-Delete.html#delete" class="link">Source</a></p><div class="doc"><p>Perform the Delete operation synchronously. Raises <code><a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a></code> on failures.</p></div></div><div class="top"><p class="src"><a name="v:deleteEither" class="def">deleteEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> ()) <a href="src/Ldap-Client-Delete.html#deleteEither" class="link">Source</a></p><div class="doc"><p>Perform the Delete operation synchronously. Returns <code>Left e</code> where
|
||||||
|
<code>e</code> is a <code><a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a></code> on failures.</p></div></div><div class="top"><p class="src"><a name="v:deleteAsync" class="def">deleteAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> ()) <a href="src/Ldap-Client-Delete.html#deleteAsync" class="link">Source</a></p><div class="doc"><p>Perform the Delete operation asynchronously. Call <code><a href="Ldap-Client.html#v:wait">wait</a></code> to wait
|
||||||
|
for its completion.</p></div></div><div class="top"><p class="src"><a name="v:deleteAsyncSTM" class="def">deleteAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -> <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Internal.html#t:Async">Async</a> ()) <a href="src/Ldap-Client-Delete.html#deleteAsyncSTM" class="link">Source</a></p><div class="doc"><p>Perform the Delete operation asynchronously.</p><p>Don't wait for its completion (with <code><a href="Ldap-Client.html#v:waitSTM">waitSTM</a></code>) in the
|
||||||
|
same transaction you've performed it in.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - D)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - D)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();};
|
window.onload = function () {pageLoad();};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - D</p><table><tr><td class="src">Delete</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Delete">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Client-Modify.html#v:Delete">Ldap.Client.Modify</a>, <a href="Ldap-Client.html#v:Delete">Ldap.Client</a></td></tr><tr><td class="src">delete</td><td class="module"><a href="Ldap-Client-Delete.html#v:delete">Ldap.Client.Delete</a>, <a href="Ldap-Client.html#v:delete">Ldap.Client</a></td></tr><tr><td class="src">deleteAsync</td><td class="module"><a href="Ldap-Client-Delete.html#v:deleteAsync">Ldap.Client.Delete</a></td></tr><tr><td class="src">deleteAsyncSTM</td><td class="module"><a href="Ldap-Client-Delete.html#v:deleteAsyncSTM">Ldap.Client.Delete</a></td></tr><tr><td class="src">deleteEither</td><td class="module"><a href="Ldap-Client-Delete.html#v:deleteEither">Ldap.Client.Delete</a></td></tr><tr><td class="src">DeleteRequest</td><td class="module"><a href="Ldap-Asn1-Type.html#v:DeleteRequest">Ldap.Asn1.Type</a></td></tr><tr><td class="src">DeleteResponse</td><td class="module"><a href="Ldap-Asn1-Type.html#v:DeleteResponse">Ldap.Asn1.Type</a></td></tr><tr><td class="src">DerefAliases</td><td class="module"><a href="Ldap-Asn1-Type.html#t:DerefAliases">Ldap.Asn1.Type</a></td></tr><tr><td class="src">derefAliases</td><td class="module"><a href="Ldap-Client-Search.html#v:derefAliases">Ldap.Client.Search</a>, <a href="Ldap-Client.html#v:derefAliases">Ldap.Client</a></td></tr><tr><td class="src">DerefAlways</td><td class="module"><a href="Ldap-Asn1-Type.html#v:DerefAlways">Ldap.Asn1.Type</a></td></tr><tr><td class="src">DerefFindingBaseObject</td><td class="module"><a href="Ldap-Asn1-Type.html#v:DerefFindingBaseObject">Ldap.Asn1.Type</a></td></tr><tr><td class="src">DerefInSearching</td><td class="module"><a href="Ldap-Asn1-Type.html#v:DerefInSearching">Ldap.Asn1.Type</a></td></tr><tr><td class="src">Dn</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Client-Internal.html#t:Dn">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#t:Dn">Ldap.Client</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Client-Internal.html#v:Dn">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:Dn">Ldap.Client</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - D</p><table><tr><td class="src">Delete</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Delete">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Client-Modify.html#v:Delete">Ldap.Client.Modify</a>, <a href="Ldap-Client.html#v:Delete">Ldap.Client</a></td></tr><tr><td class="src">delete</td><td class="module"><a href="Ldap-Client-Delete.html#v:delete">Ldap.Client.Delete</a>, <a href="Ldap-Client.html#v:delete">Ldap.Client</a></td></tr><tr><td class="src">deleteAsync</td><td class="module"><a href="Ldap-Client-Delete.html#v:deleteAsync">Ldap.Client.Delete</a></td></tr><tr><td class="src">deleteAsyncSTM</td><td class="module"><a href="Ldap-Client-Delete.html#v:deleteAsyncSTM">Ldap.Client.Delete</a></td></tr><tr><td class="src">deleteEither</td><td class="module"><a href="Ldap-Client-Delete.html#v:deleteEither">Ldap.Client.Delete</a></td></tr><tr><td class="src">DeleteRequest</td><td class="module"><a href="Ldap-Asn1-Type.html#v:DeleteRequest">Ldap.Asn1.Type</a></td></tr><tr><td class="src">DeleteResponse</td><td class="module"><a href="Ldap-Asn1-Type.html#v:DeleteResponse">Ldap.Asn1.Type</a></td></tr><tr><td class="src">DerefAliases</td><td class="module"><a href="Ldap-Asn1-Type.html#t:DerefAliases">Ldap.Asn1.Type</a></td></tr><tr><td class="src">derefAliases</td><td class="module"><a href="Ldap-Client-Search.html#v:derefAliases">Ldap.Client.Search</a>, <a href="Ldap-Client.html#v:derefAliases">Ldap.Client</a></td></tr><tr><td class="src">DerefAlways</td><td class="module"><a href="Ldap-Asn1-Type.html#v:DerefAlways">Ldap.Asn1.Type</a></td></tr><tr><td class="src">DerefFindingBaseObject</td><td class="module"><a href="Ldap-Asn1-Type.html#v:DerefFindingBaseObject">Ldap.Asn1.Type</a></td></tr><tr><td class="src">DerefInSearching</td><td class="module"><a href="Ldap-Asn1-Type.html#v:DerefInSearching">Ldap.Asn1.Type</a></td></tr><tr><td class="src">DisconnectError</td><td class="module"><a href="Ldap-Client.html#v:DisconnectError">Ldap.Client</a></td></tr><tr><td class="src">Dn</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Client-Internal.html#t:Dn">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#t:Dn">Ldap.Client</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Client-Internal.html#v:Dn">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:Dn">Ldap.Client</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - F)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - F)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();};
|
window.onload = function () {pageLoad();};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - F</p><table><tr><td class="src">Filter</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Asn1-Type.html#t:Filter">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Type/Class)</td><td class="module"><a href="Ldap-Client-Search.html#t:Filter">Ldap.Client.Search</a>, <a href="Ldap-Client.html#t:Filter">Ldap.Client</a></td></tr><tr><td class="src">Final</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Final">Ldap.Asn1.Type</a></td></tr><tr><td class="src">FromAsn1</td><td class="module"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">Ldap.Asn1.FromAsn1</a></td></tr><tr><td class="src">fromAsn1</td><td class="module"><a href="Ldap-Asn1-FromAsn1.html#v:fromAsn1">Ldap.Asn1.FromAsn1</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - F</p><table><tr><td class="src">Filter</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Asn1-Type.html#t:Filter">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Type/Class)</td><td class="module"><a href="Ldap-Client-Search.html#t:Filter">Ldap.Client.Search</a>, <a href="Ldap-Client.html#t:Filter">Ldap.Client</a></td></tr><tr><td class="src">Final</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Final">Ldap.Asn1.Type</a></td></tr><tr><td class="src">FromAsn1</td><td class="module"><a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1">Ldap.Asn1.FromAsn1</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - I)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - I)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();};
|
window.onload = function () {pageLoad();};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - I</p><table><tr><td class="src">Id</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Asn1-Type.html#t:Id">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Id">Ldap.Asn1.Type</a></td></tr><tr><td class="src">InappropriateAuthentication</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InappropriateAuthentication">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InappropriateAuthentication">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InappropriateAuthentication">Ldap.Client</a></td></tr><tr><td class="src">InappropriateMatching</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InappropriateMatching">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InappropriateMatching">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InappropriateMatching">Ldap.Client</a></td></tr><tr><td class="src">Initial</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Initial">Ldap.Asn1.Type</a></td></tr><tr><td class="src">Insecure</td><td class="module"><a href="Ldap-Client-Internal.html#v:Insecure">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:Insecure">Ldap.Client</a></td></tr><tr><td class="src">InsufficientAccessRights</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InsufficientAccessRights">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InsufficientAccessRights">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InsufficientAccessRights">Ldap.Client</a></td></tr><tr><td class="src">InvalidAttributeSyntax</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InvalidAttributeSyntax">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InvalidAttributeSyntax">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InvalidAttributeSyntax">Ldap.Client</a></td></tr><tr><td class="src">InvalidCredentials</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InvalidCredentials">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InvalidCredentials">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InvalidCredentials">Ldap.Client</a></td></tr><tr><td class="src">InvalidDNSyntax</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InvalidDNSyntax">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InvalidDNSyntax">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InvalidDNSyntax">Ldap.Client</a></td></tr><tr><td class="src">IOError</td><td class="module"><a href="Ldap-Client.html#v:IOError">Ldap.Client</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - I</p><table><tr><td class="src">Id</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Asn1-Type.html#t:Id">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Id">Ldap.Asn1.Type</a></td></tr><tr><td class="src">InappropriateAuthentication</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InappropriateAuthentication">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InappropriateAuthentication">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InappropriateAuthentication">Ldap.Client</a></td></tr><tr><td class="src">InappropriateMatching</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InappropriateMatching">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InappropriateMatching">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InappropriateMatching">Ldap.Client</a></td></tr><tr><td class="src">Initial</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Initial">Ldap.Asn1.Type</a></td></tr><tr><td class="src">Insecure</td><td class="module"><a href="Ldap-Client-Internal.html#v:Insecure">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:Insecure">Ldap.Client</a></td></tr><tr><td class="src">InsufficientAccessRights</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InsufficientAccessRights">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InsufficientAccessRights">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InsufficientAccessRights">Ldap.Client</a></td></tr><tr><td class="src">IntermediateResponse</td><td class="module"><a href="Ldap-Asn1-Type.html#v:IntermediateResponse">Ldap.Asn1.Type</a></td></tr><tr><td class="src">InvalidAttributeSyntax</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InvalidAttributeSyntax">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InvalidAttributeSyntax">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InvalidAttributeSyntax">Ldap.Client</a></td></tr><tr><td class="src">InvalidCredentials</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InvalidCredentials">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InvalidCredentials">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InvalidCredentials">Ldap.Client</a></td></tr><tr><td class="src">InvalidDNSyntax</td><td class="module"><a href="Ldap-Asn1-Type.html#v:InvalidDNSyntax">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:InvalidDNSyntax">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:InvalidDNSyntax">Ldap.Client</a></td></tr><tr><td class="src">IOError</td><td class="module"><a href="Ldap-Client.html#v:IOError">Ldap.Client</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - N)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - N)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();};
|
window.onload = function () {pageLoad();};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - N</p><table><tr><td class="src">NamingViolation</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NamingViolation">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:NamingViolation">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:NamingViolation">Ldap.Client</a></td></tr><tr><td class="src">NeverDerefAliases</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NeverDerefAliases">Ldap.Asn1.Type</a></td></tr><tr><td class="src">New</td><td class="module"><a href="Ldap-Client-Internal.html#v:New">Ldap.Client.Internal</a></td></tr><tr><td class="src">next</td><td class="module"><a href="Ldap-Asn1-FromAsn1.html#v:next">Ldap.Asn1.FromAsn1</a></td></tr><tr><td class="src">NonEmpty</td><td class="module"><a href="Ldap-Client.html#t:NonEmpty">Ldap.Client</a></td></tr><tr><td class="src">NoSuchAttribute</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NoSuchAttribute">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:NoSuchAttribute">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:NoSuchAttribute">Ldap.Client</a></td></tr><tr><td class="src">NoSuchObject</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NoSuchObject">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:NoSuchObject">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:NoSuchObject">Ldap.Client</a></td></tr><tr><td class="src">Not</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Not">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Client-Search.html#v:Not">Ldap.Client.Search</a>, <a href="Ldap-Client.html#v:Not">Ldap.Client</a></td></tr><tr><td class="src">NotAllowedOnNonLeaf</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NotAllowedOnNonLeaf">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:NotAllowedOnNonLeaf">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:NotAllowedOnNonLeaf">Ldap.Client</a></td></tr><tr><td class="src">NotAllowedOnRDN</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NotAllowedOnRDN">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:NotAllowedOnRDN">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:NotAllowedOnRDN">Ldap.Client</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - N</p><table><tr><td class="src">NamingViolation</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NamingViolation">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:NamingViolation">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:NamingViolation">Ldap.Client</a></td></tr><tr><td class="src">NeverDerefAliases</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NeverDerefAliases">Ldap.Asn1.Type</a></td></tr><tr><td class="src">New</td><td class="module"><a href="Ldap-Client-Internal.html#v:New">Ldap.Client.Internal</a></td></tr><tr><td class="src">NonEmpty</td><td class="module"><a href="Ldap-Client.html#t:NonEmpty">Ldap.Client</a></td></tr><tr><td class="src">NoSuchAttribute</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NoSuchAttribute">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:NoSuchAttribute">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:NoSuchAttribute">Ldap.Client</a></td></tr><tr><td class="src">NoSuchObject</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NoSuchObject">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:NoSuchObject">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:NoSuchObject">Ldap.Client</a></td></tr><tr><td class="src">Not</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Not">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Client-Search.html#v:Not">Ldap.Client.Search</a>, <a href="Ldap-Client.html#v:Not">Ldap.Client</a></td></tr><tr><td class="src">NotAllowedOnNonLeaf</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NotAllowedOnNonLeaf">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:NotAllowedOnNonLeaf">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:NotAllowedOnNonLeaf">Ldap.Client</a></td></tr><tr><td class="src">NotAllowedOnRDN</td><td class="module"><a href="Ldap-Asn1-Type.html#v:NotAllowedOnRDN">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:NotAllowedOnRDN">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:NotAllowedOnRDN">Ldap.Client</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - P)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - P)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();};
|
window.onload = function () {pageLoad();};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - P</p><table><tr><td class="src">parse</td><td class="module"><a href="Ldap-Asn1-FromAsn1.html#v:parse">Ldap.Asn1.FromAsn1</a></td></tr><tr><td class="src">parseAsn1</td><td class="module"><a href="Ldap-Asn1-FromAsn1.html#v:parseAsn1">Ldap.Asn1.FromAsn1</a></td></tr><tr><td class="src">ParseError</td><td class="module"><a href="Ldap-Client.html#v:ParseError">Ldap.Client</a></td></tr><tr><td class="src">Parser</td><td class="module"><a href="Ldap-Asn1-FromAsn1.html#t:Parser">Ldap.Asn1.FromAsn1</a></td></tr><tr><td class="src">PartialAttribute</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Asn1-Type.html#t:PartialAttribute">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:PartialAttribute">Ldap.Asn1.Type</a></td></tr><tr><td class="src">PartialAttributeList</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Asn1-Type.html#t:PartialAttributeList">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:PartialAttributeList">Ldap.Asn1.Type</a></td></tr><tr><td class="src">Password</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Client-Internal.html#t:Password">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#t:Password">Ldap.Client</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Client-Internal.html#v:Password">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:Password">Ldap.Client</a></td></tr><tr><td class="src">Plain</td><td class="module"><a href="Ldap-Client-Internal.html#v:Plain">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:Plain">Ldap.Client</a></td></tr><tr><td class="src">PortNumber</td><td class="module"><a href="Ldap-Client-Internal.html#t:PortNumber">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#t:PortNumber">Ldap.Client</a></td></tr><tr><td class="src">Present</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Present">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Client-Search.html#v:Present">Ldap.Client.Search</a>, <a href="Ldap-Client.html#v:Present">Ldap.Client</a></td></tr><tr><td class="src">ProtocolClientOp</td><td class="module"><a href="Ldap-Asn1-Type.html#t:ProtocolClientOp">Ldap.Asn1.Type</a></td></tr><tr><td class="src">ProtocolError</td><td class="module"><a href="Ldap-Asn1-Type.html#v:ProtocolError">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:ProtocolError">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:ProtocolError">Ldap.Client</a></td></tr><tr><td class="src">ProtocolServerOp</td><td class="module"><a href="Ldap-Asn1-Type.html#t:ProtocolServerOp">Ldap.Asn1.Type</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - P</p><table><tr><td class="src">parseAsn1</td><td class="module"><a href="Ldap-Asn1-FromAsn1.html#v:parseAsn1">Ldap.Asn1.FromAsn1</a></td></tr><tr><td class="src">ParseError</td><td class="module"><a href="Ldap-Client.html#v:ParseError">Ldap.Client</a></td></tr><tr><td class="src">PartialAttribute</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Asn1-Type.html#t:PartialAttribute">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:PartialAttribute">Ldap.Asn1.Type</a></td></tr><tr><td class="src">PartialAttributeList</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Asn1-Type.html#t:PartialAttributeList">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:PartialAttributeList">Ldap.Asn1.Type</a></td></tr><tr><td class="src">Password</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Client-Internal.html#t:Password">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#t:Password">Ldap.Client</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Client-Internal.html#v:Password">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:Password">Ldap.Client</a></td></tr><tr><td class="src">Plain</td><td class="module"><a href="Ldap-Client-Internal.html#v:Plain">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:Plain">Ldap.Client</a></td></tr><tr><td class="src">PortNumber</td><td class="module"><a href="Ldap-Client-Internal.html#t:PortNumber">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#t:PortNumber">Ldap.Client</a></td></tr><tr><td class="src">Present</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Present">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Client-Search.html#v:Present">Ldap.Client.Search</a>, <a href="Ldap-Client.html#v:Present">Ldap.Client</a></td></tr><tr><td class="src">ProtocolClientOp</td><td class="module"><a href="Ldap-Asn1-Type.html#t:ProtocolClientOp">Ldap.Asn1.Type</a></td></tr><tr><td class="src">ProtocolError</td><td class="module"><a href="Ldap-Asn1-Type.html#v:ProtocolError">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:ProtocolError">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:ProtocolError">Ldap.Client</a></td></tr><tr><td class="src">ProtocolServerOp</td><td class="module"><a href="Ldap-Asn1-Type.html#t:ProtocolServerOp">Ldap.Asn1.Type</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - U)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ldap-client-0.1.0: Pure Haskell LDAP Client Library (Index - U)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();};
|
window.onload = function () {pageLoad();};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - U</p><table><tr><td class="src">unAttr</td><td class="module"><a href="Ldap-Client-Internal.html#v:unAttr">Ldap.Client.Internal</a></td></tr><tr><td class="src">Unavailable</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Unavailable">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:Unavailable">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:Unavailable">Ldap.Client</a></td></tr><tr><td class="src">UnavailableCriticalExtension</td><td class="module"><a href="Ldap-Asn1-Type.html#v:UnavailableCriticalExtension">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:UnavailableCriticalExtension">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:UnavailableCriticalExtension">Ldap.Client</a></td></tr><tr><td class="src">unbindAsync</td><td class="module"><a href="Ldap-Client-Bind.html#v:unbindAsync">Ldap.Client.Bind</a></td></tr><tr><td class="src">unbindAsyncSTM</td><td class="module"><a href="Ldap-Client-Bind.html#v:unbindAsyncSTM">Ldap.Client.Bind</a></td></tr><tr><td class="src">UnbindRequest</td><td class="module"><a href="Ldap-Asn1-Type.html#v:UnbindRequest">Ldap.Asn1.Type</a></td></tr><tr><td class="src">UndefinedAttributeType</td><td class="module"><a href="Ldap-Asn1-Type.html#v:UndefinedAttributeType">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:UndefinedAttributeType">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:UndefinedAttributeType">Ldap.Client</a></td></tr><tr><td class="src">unId</td><td class="module"><a href="Ldap-Asn1-Type.html#v:unId">Ldap.Asn1.Type</a></td></tr><tr><td class="src">UnwillingToPerform</td><td class="module"><a href="Ldap-Asn1-Type.html#v:UnwillingToPerform">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:UnwillingToPerform">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:UnwillingToPerform">Ldap.Client</a></td></tr><tr><td class="src">Uri</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Asn1-Type.html#t:Uri">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Uri">Ldap.Asn1.Type</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-58.html">:</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - U</p><table><tr><td class="src">unAttr</td><td class="module"><a href="Ldap-Client-Internal.html#v:unAttr">Ldap.Client.Internal</a></td></tr><tr><td class="src">Unavailable</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Unavailable">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:Unavailable">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:Unavailable">Ldap.Client</a></td></tr><tr><td class="src">UnavailableCriticalExtension</td><td class="module"><a href="Ldap-Asn1-Type.html#v:UnavailableCriticalExtension">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:UnavailableCriticalExtension">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:UnavailableCriticalExtension">Ldap.Client</a></td></tr><tr><td class="src">unbindAsync</td><td class="module"><a href="Ldap-Client-Internal.html#v:unbindAsync">Ldap.Client.Internal</a></td></tr><tr><td class="src">unbindAsyncSTM</td><td class="module"><a href="Ldap-Client-Internal.html#v:unbindAsyncSTM">Ldap.Client.Internal</a></td></tr><tr><td class="src">UnbindRequest</td><td class="module"><a href="Ldap-Asn1-Type.html#v:UnbindRequest">Ldap.Asn1.Type</a></td></tr><tr><td class="src">UndefinedAttributeType</td><td class="module"><a href="Ldap-Asn1-Type.html#v:UndefinedAttributeType">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:UndefinedAttributeType">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:UndefinedAttributeType">Ldap.Client</a></td></tr><tr><td class="src">unId</td><td class="module"><a href="Ldap-Asn1-Type.html#v:unId">Ldap.Asn1.Type</a></td></tr><tr><td class="src">UnwillingToPerform</td><td class="module"><a href="Ldap-Asn1-Type.html#v:UnwillingToPerform">Ldap.Asn1.Type</a>, <a href="Ldap-Client-Internal.html#v:UnwillingToPerform">Ldap.Client.Internal</a>, <a href="Ldap-Client.html#v:UnwillingToPerform">Ldap.Client</a></td></tr><tr><td class="src">Uri</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Ldap-Asn1-Type.html#t:Uri">Ldap.Asn1.Type</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Ldap-Asn1-Type.html#v:Uri">Ldap.Asn1.Type</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>
|
||||||
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Asn1.FromAsn1</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Asn1.FromAsn1</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();};
|
window.onload = function () {pageLoad();};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body id="mini"><div id="module-header"><p class="caption">Ldap.Asn1.FromAsn1</p></div><div id="interface"><div class="top"><p class="src"><span class="keyword">class</span> <a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1" target="main">FromAsn1</a> a</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Asn1-FromAsn1.html#t:Parser" target="main">Parser</a> s a</p></div><div class="top"><p class="src"><a href="Ldap-Asn1-FromAsn1.html#v:parseAsn1" target="main">parseAsn1</a></p></div><div class="top"><p class="src"><a href="Ldap-Asn1-FromAsn1.html#v:parse" target="main">parse</a></p></div><div class="top"><p class="src"><a href="Ldap-Asn1-FromAsn1.html#v:next" target="main">next</a></p></div></div></body></html>
|
</script></head><body id="mini"><div id="module-header"><p class="caption">Ldap.Asn1.FromAsn1</p></div><div id="interface"><div class="top"><p class="src"><a href="Ldap-Asn1-FromAsn1.html#v:parseAsn1" target="main">parseAsn1</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Ldap-Asn1-FromAsn1.html#t:FromAsn1" target="main">FromAsn1</a> a</p></div></div></body></html>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Client.Bind</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Client.Bind</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();};
|
window.onload = function () {pageLoad();};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body id="mini"><div id="module-header"><p class="caption">Ldap.Client.Bind</p></div><div id="interface"><div class="top"><p class="src"><a href="Ldap-Client-Bind.html#v:bind" target="main">bind</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Bind.html#v:bindEither" target="main">bindEither</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Bind.html#v:bindAsync" target="main">bindAsync</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Bind.html#v:bindAsyncSTM" target="main">bindAsyncSTM</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Bind.html#v:unbindAsync" target="main">unbindAsync</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Bind.html#v:unbindAsyncSTM" target="main">unbindAsyncSTM</a></p></div></div></body></html>
|
</script></head><body id="mini"><div id="module-header"><p class="caption">Ldap.Client.Bind</p></div><div id="interface"><div class="top"><p class="src"><a href="Ldap-Client-Bind.html#v:bind" target="main">bind</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Bind.html#v:bindEither" target="main">bindEither</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Bind.html#v:bindAsync" target="main">bindAsync</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Bind.html#v:bindAsyncSTM" target="main">bindAsyncSTM</a></p></div></div></body></html>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Client.Internal</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Client.Internal</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();};
|
window.onload = function () {pageLoad();};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body id="mini"><div id="module-header"><p class="caption">Ldap.Client.Internal</p></div><div id="interface"><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Host" target="main">Host</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:PortNumber" target="main">PortNumber</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Ldap" target="main">Ldap</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:ClientMessage" target="main">ClientMessage</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:ResultCode" target="main">ResultCode</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Async" target="main">Async</a> a</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Oid" target="main">Oid</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a href="Ldap-Client-Internal.html#t:AttrList" target="main">AttrList</a> f</p></div><h1>Waiting for Request Completion</h1><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:wait" target="main">wait</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:waitSTM" target="main">waitSTM</a></p></div><h1>Misc</h1><div class="top"><p class="src"><span class="keyword">type</span> <a href="Ldap-Client-Internal.html#t:Response" target="main">Response</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:ResponseError" target="main">ResponseError</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a href="Ldap-Client-Internal.html#t:Request" target="main">Request</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:raise" target="main">raise</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:sendRequest" target="main">sendRequest</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Dn" target="main">Dn</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:RelativeDn" target="main">RelativeDn</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Password" target="main">Password</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Attr" target="main">Attr</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:unAttr" target="main">unAttr</a></p></div></div></body></html>
|
</script></head><body id="mini"><div id="module-header"><p class="caption">Ldap.Client.Internal</p></div><div id="interface"><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Host" target="main">Host</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:PortNumber" target="main">PortNumber</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Ldap" target="main">Ldap</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:ClientMessage" target="main">ClientMessage</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:ResultCode" target="main">ResultCode</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Async" target="main">Async</a> a</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Oid" target="main">Oid</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a href="Ldap-Client-Internal.html#t:AttrList" target="main">AttrList</a> f</p></div><h1>Waiting for Request Completion</h1><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:wait" target="main">wait</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:waitSTM" target="main">waitSTM</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:unbindAsync" target="main">unbindAsync</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:unbindAsyncSTM" target="main">unbindAsyncSTM</a></p></div><h1>Misc</h1><div class="top"><p class="src"><span class="keyword">type</span> <a href="Ldap-Client-Internal.html#t:Response" target="main">Response</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:ResponseError" target="main">ResponseError</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a href="Ldap-Client-Internal.html#t:Request" target="main">Request</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:raise" target="main">raise</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:sendRequest" target="main">sendRequest</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Dn" target="main">Dn</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:RelativeDn" target="main">RelativeDn</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Password" target="main">Password</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client-Internal.html#t:Attr" target="main">Attr</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a href="Ldap-Client-Internal.html#t:AttrValue" target="main">AttrValue</a></p></div><div class="top"><p class="src"><a href="Ldap-Client-Internal.html#v:unAttr" target="main">unAttr</a></p></div></div></body></html>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Client</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Client</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
|
||||||
window.onload = function () {pageLoad();};
|
window.onload = function () {pageLoad();};
|
||||||
//]]>
|
//]]>
|
||||||
</script></head><body id="mini"><div id="module-header"><p class="caption">Ldap.Client</p></div><div id="interface"><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Host" target="main">Host</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Ldap" target="main">Ldap</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:LdapError" target="main">LdapError</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:ResponseError" target="main">ResponseError</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:ResultCode" target="main">ResultCode</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Async" target="main">Async</a> a</p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:with" target="main">with</a></p></div><h1>Bind</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:bind" target="main">bind</a></p></div><h1>Search</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:search" target="main">search</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:SearchEntry" target="main">SearchEntry</a></p></div><h2>Search modifiers</h2><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Search" target="main">Search</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Mod" target="main">Mod</a> a</p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:scope" target="main">scope</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Scope" target="main">Scope</a></p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:size" target="main">size</a></p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:time" target="main">time</a></p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:typesOnly" target="main">typesOnly</a></p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:derefAliases" target="main">derefAliases</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Filter" target="main">Filter</a></p></div><h1>Modify</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:modify" target="main">modify</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Operation" target="main">Operation</a></p></div><h1>Add</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:add" target="main">add</a></p></div><h1>Delete</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:delete" target="main">delete</a></p></div><h1>ModifyDn</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:modifyDn" target="main">modifyDn</a></p></div><h1>Compare</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:compare" target="main">compare</a></p></div><h1>Extended</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:extended" target="main">extended</a></p></div><h1>Waiting for completion</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:wait" target="main">wait</a></p></div><h1>Miscellanous</h1><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Dn" target="main">Dn</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:RelativeDn" target="main">RelativeDn</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Oid" target="main">Oid</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Password" target="main">Password</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a href="Ldap-Client.html#t:AttrList" target="main">AttrList</a> f</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Attr" target="main">Attr</a></p></div><h1>Re-exports</h1><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:NonEmpty" target="main">NonEmpty</a> a</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:PortNumber" target="main">PortNumber</a></p></div></div></body></html>
|
</script></head><body id="mini"><div id="module-header"><p class="caption">Ldap.Client</p></div><div id="interface"><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Host" target="main">Host</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Ldap" target="main">Ldap</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:LdapError" target="main">LdapError</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:ResponseError" target="main">ResponseError</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:ResultCode" target="main">ResultCode</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Async" target="main">Async</a> a</p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:with" target="main">with</a></p></div><h1>Bind</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:bind" target="main">bind</a></p></div><h1>Search</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:search" target="main">search</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:SearchEntry" target="main">SearchEntry</a></p></div><h2>Search modifiers</h2><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Search" target="main">Search</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Mod" target="main">Mod</a> a</p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:scope" target="main">scope</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Scope" target="main">Scope</a></p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:size" target="main">size</a></p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:time" target="main">time</a></p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:typesOnly" target="main">typesOnly</a></p></div><div class="top"><p class="src"><a href="Ldap-Client.html#v:derefAliases" target="main">derefAliases</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Filter" target="main">Filter</a></p></div><h1>Modify</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:modify" target="main">modify</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Operation" target="main">Operation</a></p></div><h1>Add</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:add" target="main">add</a></p></div><h1>Delete</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:delete" target="main">delete</a></p></div><h1>ModifyDn</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:modifyDn" target="main">modifyDn</a></p></div><h1>Compare</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:compare" target="main">compare</a></p></div><h1>Extended</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:extended" target="main">extended</a></p></div><h1>Waiting for completion</h1><div class="top"><p class="src"><a href="Ldap-Client.html#v:wait" target="main">wait</a></p></div><h1>Miscellanous</h1><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Dn" target="main">Dn</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:RelativeDn" target="main">RelativeDn</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Oid" target="main">Oid</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Password" target="main">Password</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a href="Ldap-Client.html#t:AttrList" target="main">AttrList</a> f</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:Attr" target="main">Attr</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a href="Ldap-Client.html#t:AttrValue" target="main">AttrValue</a></p></div><h1>Re-exports</h1><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:NonEmpty" target="main">NonEmpty</a> a</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a href="Ldap-Client.html#t:PortNumber" target="main">PortNumber</a></p></div></div></body></html>
|
||||||
@ -8,382 +8,427 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<pre><a name="line-1"></a><span class='hs-comment'>{-# LANGUAGE CPP #-}</span>
|
<pre><a name="line-1"></a><span class='hs-comment'>{-# LANGUAGE CPP #-}</span>
|
||||||
<a name="line-2"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>FromAsn1</span>
|
<a name="line-2"></a><span class='hs-comment'>-- | This module contains convertions from ASN.1 to LDAP types.</span>
|
||||||
<a name="line-3"></a> <span class='hs-layout'>(</span> <span class='hs-conid'>FromAsn1</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-3"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>FromAsn1</span>
|
||||||
<a name="line-4"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Parser</span>
|
<a name="line-4"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>parseAsn1</span>
|
||||||
<a name="line-5"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>parseAsn1</span>
|
<a name="line-5"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>FromAsn1</span>
|
||||||
<a name="line-6"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>parse</span>
|
<a name="line-6"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-7"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>next</span>
|
<a name="line-7"></a>
|
||||||
<a name="line-8"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-8"></a><span class='hs-cpp'>#if __GLASGOW_HASKELL__ >= 710</span>
|
||||||
<a name="line-9"></a>
|
<a name="line-9"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Applicative</span> <span class='hs-layout'>(</span><span class='hs-conid'>Alternative</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>liftA2</span><span class='hs-layout'>,</span> <span class='hs-varid'>optional</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-10"></a><span class='hs-cpp'>#if __GLASGOW_HASKELL__ >= 710</span>
|
<a name="line-10"></a><span class='hs-cpp'>#else</span>
|
||||||
<a name="line-11"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Applicative</span> <span class='hs-layout'>(</span><span class='hs-conid'>Alternative</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>liftA2</span><span class='hs-layout'>,</span> <span class='hs-varid'>optional</span><span class='hs-layout'>)</span>
|
<a name="line-11"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Applicative</span> <span class='hs-layout'>(</span><span class='hs-conid'>Applicative</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-conid'>Alternative</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>liftA2</span><span class='hs-layout'>,</span> <span class='hs-varid'>optional</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-12"></a><span class='hs-cpp'>#else</span>
|
<a name="line-12"></a><span class='hs-cpp'>#endif</span>
|
||||||
<a name="line-13"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Applicative</span> <span class='hs-layout'>(</span><span class='hs-conid'>Applicative</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-conid'>Alternative</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>liftA2</span><span class='hs-layout'>,</span> <span class='hs-varid'>optional</span><span class='hs-layout'>)</span>
|
<a name="line-13"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-conid'>MonadPlus</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-layout'>(</span><span class='hs-varop'>>=></span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>guard</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-14"></a><span class='hs-cpp'>#endif</span>
|
<a name="line-14"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span> <span class='hs-layout'>(</span><span class='hs-conid'>ASN1</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-15"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-conid'>MonadPlus</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-layout'>(</span><span class='hs-varop'>>=></span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>guard</span><span class='hs-layout'>)</span>
|
<a name="line-15"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Asn1</span>
|
||||||
<a name="line-16"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span> <span class='hs-layout'>(</span><span class='hs-conid'>ASN1</span><span class='hs-layout'>)</span>
|
<a name="line-16"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Foldable</span> <span class='hs-layout'>(</span><span class='hs-varid'>asum</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-17"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Asn1</span>
|
<a name="line-17"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-varid'>some1</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-18"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Foldable</span> <span class='hs-layout'>(</span><span class='hs-varid'>asum</span><span class='hs-layout'>)</span>
|
<a name="line-18"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Encoding</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Text</span>
|
||||||
<a name="line-19"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-varid'>some1</span><span class='hs-layout'>)</span>
|
<a name="line-19"></a>
|
||||||
<a name="line-20"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Encoding</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Text</span>
|
<a name="line-20"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span>
|
||||||
<a name="line-21"></a>
|
<a name="line-21"></a>
|
||||||
<a name="line-22"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span>
|
<a name="line-22"></a><span class='hs-comment'>{-# ANN module "HLint: ignore Use const" #-}</span>
|
||||||
<a name="line-23"></a>
|
<a name="line-23"></a><span class='hs-comment'>{-# ANN module "HLint: ignore Avoid lambda" #-}</span>
|
||||||
<a name="line-24"></a><span class='hs-comment'>{-# ANN module "HLint: ignore Use const" #-}</span>
|
<a name="line-24"></a>
|
||||||
<a name="line-25"></a><span class='hs-comment'>{-# ANN module "HLint: ignore Avoid lambda" #-}</span>
|
<a name="line-25"></a>
|
||||||
<a name="line-26"></a>
|
<a name="line-26"></a><a name="parseAsn1"></a><span class='hs-comment'>-- | Convert a part of ASN.1 stream to a LDAP type returning the remainder of the stream.</span>
|
||||||
<a name="line-27"></a>
|
<a name="line-27"></a><span class='hs-definition'>parseAsn1</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>,</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-28"></a><a name="FromAsn1"></a><span class='hs-keyword'>class</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>where</span>
|
<a name="line-28"></a><span class='hs-definition'>parseAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>parse</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-29"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Parser</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-varid'>a</span>
|
<a name="line-29"></a>
|
||||||
<a name="line-30"></a>
|
<a name="line-30"></a><a name="FromAsn1"></a><span class='hs-comment'>-- | ASN.1 stream parsers.</span>
|
||||||
<a name="line-31"></a><a name="instance%20FromAsn1%20(LdapMessage%20op)"></a><span class='hs-comment'>{- |
|
<a name="line-31"></a><a name="FromAsn1"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-32"></a>@
|
<a name="line-32"></a><a name="FromAsn1"></a><span class='hs-comment'>-- When it's relevant, instances include the part of RFC describing the encoding.</span>
|
||||||
<a name="line-33"></a>LDAPMessage ::= SEQUENCE {
|
<a name="line-33"></a><a name="FromAsn1"></a><span class='hs-keyword'>class</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-34"></a> messageID MessageID,
|
<a name="line-34"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Parser</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-varid'>a</span>
|
||||||
<a name="line-35"></a> protocolOp CHOICE {
|
<a name="line-35"></a>
|
||||||
<a name="line-36"></a> bindRequest BindRequest,
|
<a name="line-36"></a><a name="instance%20FromAsn1%20(LdapMessage%20op)"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-37"></a> bindResponse BindResponse,
|
<a name="line-37"></a>@
|
||||||
<a name="line-38"></a> unbindRequest UnbindRequest,
|
<a name="line-38"></a>LDAPMessage ::= SEQUENCE {
|
||||||
<a name="line-39"></a> searchRequest SearchRequest,
|
<a name="line-39"></a> messageID MessageID,
|
||||||
<a name="line-40"></a> searchResEntry SearchResultEntry,
|
<a name="line-40"></a> protocolOp CHOICE {
|
||||||
<a name="line-41"></a> searchResDone SearchResultDone,
|
<a name="line-41"></a> bindRequest BindRequest,
|
||||||
<a name="line-42"></a> searchResRef SearchResultReference,
|
<a name="line-42"></a> bindResponse BindResponse,
|
||||||
<a name="line-43"></a> addRequest AddRequest,
|
<a name="line-43"></a> unbindRequest UnbindRequest,
|
||||||
<a name="line-44"></a> addResponse AddResponse,
|
<a name="line-44"></a> searchRequest SearchRequest,
|
||||||
<a name="line-45"></a> ... },
|
<a name="line-45"></a> searchResEntry SearchResultEntry,
|
||||||
<a name="line-46"></a> controls [0] Controls OPTIONAL }
|
<a name="line-46"></a> searchResDone SearchResultDone,
|
||||||
<a name="line-47"></a>@
|
<a name="line-47"></a> searchResRef SearchResultReference,
|
||||||
<a name="line-48"></a>-}</span>
|
<a name="line-48"></a> addRequest AddRequest,
|
||||||
<a name="line-49"></a><a name="instance%20FromAsn1%20(LdapMessage%20op)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>op</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>FromAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>op</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-49"></a> addResponse AddResponse,
|
||||||
<a name="line-50"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
<a name="line-50"></a> ... },
|
||||||
<a name="line-51"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-51"></a> controls [0] Controls OPTIONAL }
|
||||||
<a name="line-52"></a> <span class='hs-varid'>i</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-52"></a>@
|
||||||
<a name="line-53"></a> <span class='hs-varid'>op</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-53"></a>-}</span>
|
||||||
<a name="line-54"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-54"></a><a name="instance%20FromAsn1%20(LdapMessage%20op)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>op</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>FromAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>op</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-55"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>i</span> <span class='hs-varid'>op</span> <span class='hs-conid'>Nothing</span><span class='hs-layout'>)</span>
|
<a name="line-55"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-56"></a>
|
<a name="line-56"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-57"></a><a name="instance%20FromAsn1%20Id"></a><span class='hs-comment'>{- |
|
<a name="line-57"></a> <span class='hs-varid'>i</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-58"></a>@
|
<a name="line-58"></a> <span class='hs-varid'>op</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-59"></a>MessageID ::= INTEGER (0 .. maxInt)
|
<a name="line-59"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-60"></a>@
|
<a name="line-60"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>i</span> <span class='hs-varid'>op</span> <span class='hs-conid'>Nothing</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-61"></a>-}</span>
|
<a name="line-61"></a>
|
||||||
<a name="line-62"></a><a name="instance%20FromAsn1%20Id"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>Id</span> <span class='hs-keyword'>where</span>
|
<a name="line-62"></a><a name="instance%20FromAsn1%20Id"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-63"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
<a name="line-63"></a>@
|
||||||
<a name="line-64"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>IntVal</span> <span class='hs-varid'>i</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-64"></a>MessageID ::= INTEGER (0 .. maxInt)
|
||||||
<a name="line-65"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Id</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-65"></a>@
|
||||||
<a name="line-66"></a>
|
<a name="line-66"></a>-}</span>
|
||||||
<a name="line-67"></a><a name="instance%20FromAsn1%20LdapString"></a><span class='hs-comment'>{- |
|
<a name="line-67"></a><a name="instance%20FromAsn1%20Id"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>Id</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-68"></a>@
|
<a name="line-68"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-69"></a>LDAPString ::= OCTET STRING -- UTF-8 encoded,
|
<a name="line-69"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>IntVal</span> <span class='hs-varid'>i</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-70"></a>@
|
<a name="line-70"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Id</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-71"></a>-}</span>
|
<a name="line-71"></a>
|
||||||
<a name="line-72"></a><a name="instance%20FromAsn1%20LdapString"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>LdapString</span> <span class='hs-keyword'>where</span>
|
<a name="line-72"></a><a name="instance%20FromAsn1%20LdapString"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-73"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
<a name="line-73"></a>@
|
||||||
<a name="line-74"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-74"></a>LDAPString ::= OCTET STRING -- UTF-8 encoded,
|
||||||
<a name="line-75"></a> <span class='hs-keyword'>case</span> <span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>decodeUtf8'</span> <span class='hs-varid'>s</span> <span class='hs-keyword'>of</span>
|
<a name="line-75"></a>@
|
||||||
<a name="line-76"></a> <span class='hs-conid'>Right</span> <span class='hs-varid'>t</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>t</span><span class='hs-layout'>)</span>
|
<a name="line-76"></a>-}</span>
|
||||||
<a name="line-77"></a> <span class='hs-conid'>Left</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>empty</span>
|
<a name="line-77"></a><a name="instance%20FromAsn1%20LdapString"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>LdapString</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-78"></a>
|
<a name="line-78"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-79"></a><a name="instance%20FromAsn1%20LdapOid"></a><span class='hs-comment'>{- |
|
<a name="line-79"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-80"></a>@
|
<a name="line-80"></a> <span class='hs-keyword'>case</span> <span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>decodeUtf8'</span> <span class='hs-varid'>s</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-81"></a>LDAPOID ::= OCTET STRING -- Constrained to \<numericoid\>
|
<a name="line-81"></a> <span class='hs-conid'>Right</span> <span class='hs-varid'>t</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>t</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-82"></a>@
|
<a name="line-82"></a> <span class='hs-conid'>Left</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>empty</span>
|
||||||
<a name="line-83"></a>-}</span>
|
<a name="line-83"></a>
|
||||||
<a name="line-84"></a><a name="instance%20FromAsn1%20LdapOid"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>LdapOid</span> <span class='hs-keyword'>where</span>
|
<a name="line-84"></a><a name="instance%20FromAsn1%20LdapOid"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-85"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
<a name="line-85"></a>@
|
||||||
<a name="line-86"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-86"></a>LDAPOID ::= OCTET STRING -- Constrained to \<numericoid\>
|
||||||
<a name="line-87"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapOid</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
<a name="line-87"></a>@
|
||||||
<a name="line-88"></a>
|
<a name="line-88"></a>-}</span>
|
||||||
<a name="line-89"></a><a name="instance%20FromAsn1%20LdapDn"></a><span class='hs-comment'>{- |
|
<a name="line-89"></a><a name="instance%20FromAsn1%20LdapOid"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>LdapOid</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-90"></a>@
|
<a name="line-90"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-91"></a>LDAPDN ::= LDAPString
|
<a name="line-91"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-92"></a>@
|
<a name="line-92"></a> <span class='hs-keyword'>case</span> <span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>decodeUtf8'</span> <span class='hs-varid'>s</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-93"></a>-}</span>
|
<a name="line-93"></a> <span class='hs-conid'>Right</span> <span class='hs-varid'>t</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapOid</span> <span class='hs-varid'>t</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-94"></a><a name="instance%20FromAsn1%20LdapDn"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>LdapDn</span> <span class='hs-keyword'>where</span>
|
<a name="line-94"></a> <span class='hs-conid'>Left</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>empty</span>
|
||||||
<a name="line-95"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>LdapDn</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-95"></a>
|
||||||
<a name="line-96"></a>
|
<a name="line-96"></a><a name="instance%20FromAsn1%20LdapDn"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-97"></a><a name="instance%20FromAsn1%20AttributeDescription"></a><span class='hs-comment'>{- |
|
<a name="line-97"></a>@
|
||||||
<a name="line-98"></a>@
|
<a name="line-98"></a>LDAPDN ::= LDAPString
|
||||||
<a name="line-99"></a>AttributeDescription ::= LDAPString
|
<a name="line-99"></a>@
|
||||||
<a name="line-100"></a>@
|
<a name="line-100"></a>-}</span>
|
||||||
<a name="line-101"></a>-}</span>
|
<a name="line-101"></a><a name="instance%20FromAsn1%20LdapDn"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>LdapDn</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-102"></a><a name="instance%20FromAsn1%20AttributeDescription"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-keyword'>where</span>
|
<a name="line-102"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>LdapDn</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-103"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-103"></a>
|
||||||
<a name="line-104"></a>
|
<a name="line-104"></a><a name="instance%20FromAsn1%20AttributeDescription"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-105"></a><a name="instance%20FromAsn1%20AttributeValue"></a><span class='hs-comment'>{- |
|
<a name="line-105"></a>@
|
||||||
<a name="line-106"></a>@
|
<a name="line-106"></a>AttributeDescription ::= LDAPString
|
||||||
<a name="line-107"></a>AttributeValue ::= OCTET STRING
|
<a name="line-107"></a>@
|
||||||
<a name="line-108"></a>@
|
<a name="line-108"></a>-}</span>
|
||||||
<a name="line-109"></a>-}</span>
|
<a name="line-109"></a><a name="instance%20FromAsn1%20AttributeDescription"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-110"></a><a name="instance%20FromAsn1%20AttributeValue"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>AttributeValue</span> <span class='hs-keyword'>where</span>
|
<a name="line-110"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-111"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
<a name="line-111"></a>
|
||||||
<a name="line-112"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-112"></a><a name="instance%20FromAsn1%20AttributeValue"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-113"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
<a name="line-113"></a>@
|
||||||
<a name="line-114"></a>
|
<a name="line-114"></a>AttributeValue ::= OCTET STRING
|
||||||
<a name="line-115"></a><a name="instance%20FromAsn1%20PartialAttribute"></a><span class='hs-comment'>{- |
|
<a name="line-115"></a>@
|
||||||
<a name="line-116"></a>@
|
<a name="line-116"></a>-}</span>
|
||||||
<a name="line-117"></a>PartialAttribute ::= SEQUENCE {
|
<a name="line-117"></a><a name="instance%20FromAsn1%20AttributeValue"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>AttributeValue</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-118"></a> type AttributeDescription,
|
<a name="line-118"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-119"></a> vals SET OF value AttributeValue }
|
<a name="line-119"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-120"></a>@
|
<a name="line-120"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-121"></a>-}</span>
|
<a name="line-121"></a>
|
||||||
<a name="line-122"></a><a name="instance%20FromAsn1%20PartialAttribute"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>PartialAttribute</span> <span class='hs-keyword'>where</span>
|
<a name="line-122"></a><a name="instance%20FromAsn1%20PartialAttribute"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-123"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
<a name="line-123"></a>@
|
||||||
<a name="line-124"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-124"></a>PartialAttribute ::= SEQUENCE {
|
||||||
<a name="line-125"></a> <span class='hs-varid'>d</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-125"></a> type AttributeDescription,
|
||||||
<a name="line-126"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Set</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-126"></a> vals SET OF value AttributeValue }
|
||||||
<a name="line-127"></a> <span class='hs-varid'>vs</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>many</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-127"></a>@
|
||||||
<a name="line-128"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Set</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-128"></a>-}</span>
|
||||||
<a name="line-129"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-129"></a><a name="instance%20FromAsn1%20PartialAttribute"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>PartialAttribute</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-130"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-varid'>d</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span>
|
<a name="line-130"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-131"></a>
|
<a name="line-131"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-132"></a><a name="instance%20FromAsn1%20LdapResult"></a><span class='hs-comment'>{- |
|
<a name="line-132"></a> <span class='hs-varid'>d</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-133"></a>@
|
<a name="line-133"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Set</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-134"></a>LDAPResult ::= SEQUENCE {
|
<a name="line-134"></a> <span class='hs-varid'>vs</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>many</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-135"></a> resultCode ENUMERATED {
|
<a name="line-135"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Set</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-136"></a> success (0),
|
<a name="line-136"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-137"></a> operationsError (1),
|
<a name="line-137"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-varid'>d</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-138"></a> protocolError (2),
|
<a name="line-138"></a>
|
||||||
<a name="line-139"></a> timeLimitExceeded (3),
|
<a name="line-139"></a><a name="instance%20FromAsn1%20LdapResult"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-140"></a> sizeLimitExceeded (4),
|
<a name="line-140"></a>@
|
||||||
<a name="line-141"></a> compareFalse (5),
|
<a name="line-141"></a>LDAPResult ::= SEQUENCE {
|
||||||
<a name="line-142"></a> compareTrue (6),
|
<a name="line-142"></a> resultCode ENUMERATED {
|
||||||
<a name="line-143"></a> authMethodNotSupported (7),
|
<a name="line-143"></a> success (0),
|
||||||
<a name="line-144"></a> strongerAuthRequired (8),
|
<a name="line-144"></a> operationsError (1),
|
||||||
<a name="line-145"></a> -- 9 reserved --
|
<a name="line-145"></a> protocolError (2),
|
||||||
<a name="line-146"></a> referral (10),
|
<a name="line-146"></a> timeLimitExceeded (3),
|
||||||
<a name="line-147"></a> adminLimitExceeded (11),
|
<a name="line-147"></a> sizeLimitExceeded (4),
|
||||||
<a name="line-148"></a> unavailableCriticalExtension (12),
|
<a name="line-148"></a> compareFalse (5),
|
||||||
<a name="line-149"></a> confidentialityRequired (13),
|
<a name="line-149"></a> compareTrue (6),
|
||||||
<a name="line-150"></a> saslBindInProgress (14),
|
<a name="line-150"></a> authMethodNotSupported (7),
|
||||||
<a name="line-151"></a> noSuchAttribute (16),
|
<a name="line-151"></a> strongerAuthRequired (8),
|
||||||
<a name="line-152"></a> undefinedAttributeType (17),
|
<a name="line-152"></a> -- 9 reserved --
|
||||||
<a name="line-153"></a> inappropriateMatching (18),
|
<a name="line-153"></a> referral (10),
|
||||||
<a name="line-154"></a> constraintViolation (19),
|
<a name="line-154"></a> adminLimitExceeded (11),
|
||||||
<a name="line-155"></a> attributeOrValueExists (20),
|
<a name="line-155"></a> unavailableCriticalExtension (12),
|
||||||
<a name="line-156"></a> invalidAttributeSyntax (21),
|
<a name="line-156"></a> confidentialityRequired (13),
|
||||||
<a name="line-157"></a> -- 22-31 unused --
|
<a name="line-157"></a> saslBindInProgress (14),
|
||||||
<a name="line-158"></a> noSuchObject (32),
|
<a name="line-158"></a> noSuchAttribute (16),
|
||||||
<a name="line-159"></a> aliasProblem (33),
|
<a name="line-159"></a> undefinedAttributeType (17),
|
||||||
<a name="line-160"></a> invalidDNSyntax (34),
|
<a name="line-160"></a> inappropriateMatching (18),
|
||||||
<a name="line-161"></a> -- 35 reserved for undefined isLeaf --
|
<a name="line-161"></a> constraintViolation (19),
|
||||||
<a name="line-162"></a> aliasDereferencingProblem (36),
|
<a name="line-162"></a> attributeOrValueExists (20),
|
||||||
<a name="line-163"></a> -- 37-47 unused --
|
<a name="line-163"></a> invalidAttributeSyntax (21),
|
||||||
<a name="line-164"></a> inappropriateAuthentication (48),
|
<a name="line-164"></a> -- 22-31 unused --
|
||||||
<a name="line-165"></a> invalidCredentials (49),
|
<a name="line-165"></a> noSuchObject (32),
|
||||||
<a name="line-166"></a> insufficientAccessRights (50),
|
<a name="line-166"></a> aliasProblem (33),
|
||||||
<a name="line-167"></a> busy (51),
|
<a name="line-167"></a> invalidDNSyntax (34),
|
||||||
<a name="line-168"></a> unavailable (52),
|
<a name="line-168"></a> -- 35 reserved for undefined isLeaf --
|
||||||
<a name="line-169"></a> unwillingToPerform (53),
|
<a name="line-169"></a> aliasDereferencingProblem (36),
|
||||||
<a name="line-170"></a> loopDetect (54),
|
<a name="line-170"></a> -- 37-47 unused --
|
||||||
<a name="line-171"></a> -- 55-63 unused --
|
<a name="line-171"></a> inappropriateAuthentication (48),
|
||||||
<a name="line-172"></a> namingViolation (64),
|
<a name="line-172"></a> invalidCredentials (49),
|
||||||
<a name="line-173"></a> objectClassViolation (65),
|
<a name="line-173"></a> insufficientAccessRights (50),
|
||||||
<a name="line-174"></a> notAllowedOnNonLeaf (66),
|
<a name="line-174"></a> busy (51),
|
||||||
<a name="line-175"></a> notAllowedOnRDN (67),
|
<a name="line-175"></a> unavailable (52),
|
||||||
<a name="line-176"></a> entryAlreadyExists (68),
|
<a name="line-176"></a> unwillingToPerform (53),
|
||||||
<a name="line-177"></a> objectClassModsProhibited (69),
|
<a name="line-177"></a> loopDetect (54),
|
||||||
<a name="line-178"></a> -- 70 reserved for CLDAP --
|
<a name="line-178"></a> -- 55-63 unused --
|
||||||
<a name="line-179"></a> affectsMultipleDSAs (71),
|
<a name="line-179"></a> namingViolation (64),
|
||||||
<a name="line-180"></a> -- 72-79 unused --
|
<a name="line-180"></a> objectClassViolation (65),
|
||||||
<a name="line-181"></a> other (80),
|
<a name="line-181"></a> notAllowedOnNonLeaf (66),
|
||||||
<a name="line-182"></a> ... },
|
<a name="line-182"></a> notAllowedOnRDN (67),
|
||||||
<a name="line-183"></a> matchedDN LDAPDN,
|
<a name="line-183"></a> entryAlreadyExists (68),
|
||||||
<a name="line-184"></a> diagnosticMessage LDAPString,
|
<a name="line-184"></a> objectClassModsProhibited (69),
|
||||||
<a name="line-185"></a> referral [3] Referral OPTIONAL }
|
<a name="line-185"></a> -- 70 reserved for CLDAP --
|
||||||
<a name="line-186"></a>@
|
<a name="line-186"></a> affectsMultipleDSAs (71),
|
||||||
<a name="line-187"></a>-}</span>
|
<a name="line-187"></a> -- 72-79 unused --
|
||||||
<a name="line-188"></a><a name="instance%20FromAsn1%20LdapResult"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>LdapResult</span> <span class='hs-keyword'>where</span>
|
<a name="line-188"></a> other (80),
|
||||||
<a name="line-189"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
<a name="line-189"></a> ... },
|
||||||
<a name="line-190"></a> <span class='hs-varid'>resultCode</span> <span class='hs-keyglyph'><-</span> <span class='hs-keyword'>do</span>
|
<a name="line-190"></a> matchedDN LDAPDN,
|
||||||
<a name="line-191"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Enumerated</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-191"></a> diagnosticMessage LDAPString,
|
||||||
<a name="line-192"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>of</span>
|
<a name="line-192"></a> referral [3] Referral OPTIONAL }
|
||||||
<a name="line-193"></a> <span class='hs-num'>0</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>Success</span>
|
<a name="line-193"></a>@
|
||||||
<a name="line-194"></a> <span class='hs-num'>1</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>OperationError</span>
|
<a name="line-194"></a>-}</span>
|
||||||
<a name="line-195"></a> <span class='hs-num'>2</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>ProtocolError</span>
|
<a name="line-195"></a><a name="instance%20FromAsn1%20LdapResult"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>LdapResult</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-196"></a> <span class='hs-num'>3</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>TimeLimitExceeded</span>
|
<a name="line-196"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-197"></a> <span class='hs-num'>4</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>SizeLimitExceeded</span>
|
<a name="line-197"></a> <span class='hs-varid'>resultCode</span> <span class='hs-keyglyph'><-</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-198"></a> <span class='hs-num'>5</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>CompareFalse</span>
|
<a name="line-198"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Enumerated</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-199"></a> <span class='hs-num'>6</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>CompareTrue</span>
|
<a name="line-199"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-200"></a> <span class='hs-num'>7</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AuthMethodNotSupported</span>
|
<a name="line-200"></a> <span class='hs-num'>0</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>Success</span>
|
||||||
<a name="line-201"></a> <span class='hs-num'>8</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>StrongerAuthRequired</span>
|
<a name="line-201"></a> <span class='hs-num'>1</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>OperationError</span>
|
||||||
<a name="line-202"></a> <span class='hs-num'>10</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>Referral</span>
|
<a name="line-202"></a> <span class='hs-num'>2</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>ProtocolError</span>
|
||||||
<a name="line-203"></a> <span class='hs-num'>11</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AdminLimitExceeded</span>
|
<a name="line-203"></a> <span class='hs-num'>3</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>TimeLimitExceeded</span>
|
||||||
<a name="line-204"></a> <span class='hs-num'>12</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>UnavailableCriticalExtension</span>
|
<a name="line-204"></a> <span class='hs-num'>4</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>SizeLimitExceeded</span>
|
||||||
<a name="line-205"></a> <span class='hs-num'>13</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>ConfidentialityRequired</span>
|
<a name="line-205"></a> <span class='hs-num'>5</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>CompareFalse</span>
|
||||||
<a name="line-206"></a> <span class='hs-num'>14</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>SaslBindInProgress</span>
|
<a name="line-206"></a> <span class='hs-num'>6</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>CompareTrue</span>
|
||||||
<a name="line-207"></a> <span class='hs-num'>16</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>NoSuchAttribute</span>
|
<a name="line-207"></a> <span class='hs-num'>7</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AuthMethodNotSupported</span>
|
||||||
<a name="line-208"></a> <span class='hs-num'>17</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>UndefinedAttributeType</span>
|
<a name="line-208"></a> <span class='hs-num'>8</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>StrongerAuthRequired</span>
|
||||||
<a name="line-209"></a> <span class='hs-num'>18</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InappropriateMatching</span>
|
<a name="line-209"></a> <span class='hs-num'>10</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>Referral</span>
|
||||||
<a name="line-210"></a> <span class='hs-num'>19</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>ConstraintViolation</span>
|
<a name="line-210"></a> <span class='hs-num'>11</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AdminLimitExceeded</span>
|
||||||
<a name="line-211"></a> <span class='hs-num'>20</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AttributeOrValueExists</span>
|
<a name="line-211"></a> <span class='hs-num'>12</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>UnavailableCriticalExtension</span>
|
||||||
<a name="line-212"></a> <span class='hs-num'>21</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InvalidAttributeSyntax</span>
|
<a name="line-212"></a> <span class='hs-num'>13</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>ConfidentialityRequired</span>
|
||||||
<a name="line-213"></a> <span class='hs-num'>32</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>NoSuchObject</span>
|
<a name="line-213"></a> <span class='hs-num'>14</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>SaslBindInProgress</span>
|
||||||
<a name="line-214"></a> <span class='hs-num'>33</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AliasProblem</span>
|
<a name="line-214"></a> <span class='hs-num'>16</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>NoSuchAttribute</span>
|
||||||
<a name="line-215"></a> <span class='hs-num'>34</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InvalidDNSyntax</span>
|
<a name="line-215"></a> <span class='hs-num'>17</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>UndefinedAttributeType</span>
|
||||||
<a name="line-216"></a> <span class='hs-num'>36</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AliasDereferencingProblem</span>
|
<a name="line-216"></a> <span class='hs-num'>18</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InappropriateMatching</span>
|
||||||
<a name="line-217"></a> <span class='hs-num'>48</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InappropriateAuthentication</span>
|
<a name="line-217"></a> <span class='hs-num'>19</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>ConstraintViolation</span>
|
||||||
<a name="line-218"></a> <span class='hs-num'>49</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InvalidCredentials</span>
|
<a name="line-218"></a> <span class='hs-num'>20</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AttributeOrValueExists</span>
|
||||||
<a name="line-219"></a> <span class='hs-num'>50</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InsufficientAccessRights</span>
|
<a name="line-219"></a> <span class='hs-num'>21</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InvalidAttributeSyntax</span>
|
||||||
<a name="line-220"></a> <span class='hs-num'>51</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>Busy</span>
|
<a name="line-220"></a> <span class='hs-num'>32</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>NoSuchObject</span>
|
||||||
<a name="line-221"></a> <span class='hs-num'>52</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>Unavailable</span>
|
<a name="line-221"></a> <span class='hs-num'>33</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AliasProblem</span>
|
||||||
<a name="line-222"></a> <span class='hs-num'>53</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>UnwillingToPerform</span>
|
<a name="line-222"></a> <span class='hs-num'>34</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InvalidDNSyntax</span>
|
||||||
<a name="line-223"></a> <span class='hs-num'>54</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>LoopDetect</span>
|
<a name="line-223"></a> <span class='hs-num'>36</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AliasDereferencingProblem</span>
|
||||||
<a name="line-224"></a> <span class='hs-num'>64</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>NamingViolation</span>
|
<a name="line-224"></a> <span class='hs-num'>48</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InappropriateAuthentication</span>
|
||||||
<a name="line-225"></a> <span class='hs-num'>65</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>ObjectClassViolation</span>
|
<a name="line-225"></a> <span class='hs-num'>49</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InvalidCredentials</span>
|
||||||
<a name="line-226"></a> <span class='hs-num'>66</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>NotAllowedOnNonLeaf</span>
|
<a name="line-226"></a> <span class='hs-num'>50</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>InsufficientAccessRights</span>
|
||||||
<a name="line-227"></a> <span class='hs-num'>67</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>NotAllowedOnRDN</span>
|
<a name="line-227"></a> <span class='hs-num'>51</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>Busy</span>
|
||||||
<a name="line-228"></a> <span class='hs-num'>68</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>EntryAlreadyExists</span>
|
<a name="line-228"></a> <span class='hs-num'>52</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>Unavailable</span>
|
||||||
<a name="line-229"></a> <span class='hs-num'>69</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>ObjectClassModsProhibited</span>
|
<a name="line-229"></a> <span class='hs-num'>53</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>UnwillingToPerform</span>
|
||||||
<a name="line-230"></a> <span class='hs-num'>71</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AffectsMultipleDSAs</span>
|
<a name="line-230"></a> <span class='hs-num'>54</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>LoopDetect</span>
|
||||||
<a name="line-231"></a> <span class='hs-num'>80</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>Other</span>
|
<a name="line-231"></a> <span class='hs-num'>64</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>NamingViolation</span>
|
||||||
<a name="line-232"></a> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>empty</span>
|
<a name="line-232"></a> <span class='hs-num'>65</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>ObjectClassViolation</span>
|
||||||
<a name="line-233"></a> <span class='hs-varid'>matchedDn</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-233"></a> <span class='hs-num'>66</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>NotAllowedOnNonLeaf</span>
|
||||||
<a name="line-234"></a> <span class='hs-varid'>diagnosticMessage</span>
|
<a name="line-234"></a> <span class='hs-num'>67</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>NotAllowedOnRDN</span>
|
||||||
<a name="line-235"></a> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-235"></a> <span class='hs-num'>68</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>EntryAlreadyExists</span>
|
||||||
<a name="line-236"></a> <span class='hs-varid'>referral</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>optional</span> <span class='hs-varop'>$</span> <span class='hs-keyword'>do</span>
|
<a name="line-236"></a> <span class='hs-num'>69</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>ObjectClassModsProhibited</span>
|
||||||
<a name="line-237"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-237"></a> <span class='hs-num'>71</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>AffectsMultipleDSAs</span>
|
||||||
<a name="line-238"></a> <span class='hs-varid'>x</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-238"></a> <span class='hs-num'>80</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-conid'>Other</span>
|
||||||
<a name="line-239"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-239"></a> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>empty</span>
|
||||||
<a name="line-240"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>x</span>
|
<a name="line-240"></a> <span class='hs-varid'>matchedDn</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-241"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>resultCode</span> <span class='hs-varid'>matchedDn</span> <span class='hs-varid'>diagnosticMessage</span> <span class='hs-varid'>referral</span><span class='hs-layout'>)</span>
|
<a name="line-241"></a> <span class='hs-varid'>diagnosticMessage</span>
|
||||||
<a name="line-242"></a>
|
<a name="line-242"></a> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-243"></a><a name="instance%20FromAsn1%20ReferralUris"></a><span class='hs-comment'>{- |
|
<a name="line-243"></a> <span class='hs-varid'>referral</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>optional</span> <span class='hs-varop'>$</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-244"></a>@
|
<a name="line-244"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-245"></a>Referral ::= SEQUENCE SIZE (1..MAX) OF uri URI
|
<a name="line-245"></a> <span class='hs-varid'>x</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-246"></a>@
|
<a name="line-246"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-247"></a>-}</span>
|
<a name="line-247"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>x</span>
|
||||||
<a name="line-248"></a><a name="instance%20FromAsn1%20ReferralUris"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>ReferralUris</span> <span class='hs-keyword'>where</span>
|
<a name="line-248"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>resultCode</span> <span class='hs-varid'>matchedDn</span> <span class='hs-varid'>diagnosticMessage</span> <span class='hs-varid'>referral</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-249"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
<a name="line-249"></a>
|
||||||
<a name="line-250"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-250"></a><a name="instance%20FromAsn1%20ReferralUris"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-251"></a> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>some1</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-251"></a>@
|
||||||
<a name="line-252"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-252"></a>Referral ::= SEQUENCE SIZE (1..MAX) OF uri URI
|
||||||
<a name="line-253"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>ReferralUris</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-253"></a>@
|
||||||
<a name="line-254"></a>
|
<a name="line-254"></a>-}</span>
|
||||||
<a name="line-255"></a><a name="instance%20FromAsn1%20Uri"></a><span class='hs-comment'>{- |
|
<a name="line-255"></a><a name="instance%20FromAsn1%20ReferralUris"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>ReferralUris</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-256"></a>@
|
<a name="line-256"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-257"></a>URI ::= LDAPString
|
<a name="line-257"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-258"></a>@
|
<a name="line-258"></a> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>some1</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-259"></a>-}</span>
|
<a name="line-259"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-260"></a><a name="instance%20FromAsn1%20Uri"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>Uri</span> <span class='hs-keyword'>where</span>
|
<a name="line-260"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>ReferralUris</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-261"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>Uri</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-261"></a>
|
||||||
<a name="line-262"></a>
|
<a name="line-262"></a><a name="instance%20FromAsn1%20Uri"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-263"></a><a name="instance%20FromAsn1%20ProtocolServerOp"></a><span class='hs-comment'>{- |
|
<a name="line-263"></a>@
|
||||||
<a name="line-264"></a>@
|
<a name="line-264"></a>URI ::= LDAPString
|
||||||
<a name="line-265"></a>BindResponse ::= [APPLICATION 1] SEQUENCE {
|
<a name="line-265"></a>@
|
||||||
<a name="line-266"></a> COMPONENTS OF LDAPResult,
|
<a name="line-266"></a>-}</span>
|
||||||
<a name="line-267"></a> serverSaslCreds [7] OCTET STRING OPTIONAL }
|
<a name="line-267"></a><a name="instance%20FromAsn1%20Uri"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>Uri</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-268"></a>@
|
<a name="line-268"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>Uri</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-269"></a>
|
<a name="line-269"></a>
|
||||||
<a name="line-270"></a>@
|
<a name="line-270"></a><a name="instance%20FromAsn1%20ProtocolServerOp"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-271"></a>SearchResultEntry ::= [APPLICATION 4] SEQUENCE {
|
<a name="line-271"></a>@
|
||||||
<a name="line-272"></a> objectName LDAPDN,
|
<a name="line-272"></a>BindResponse ::= [APPLICATION 1] SEQUENCE {
|
||||||
<a name="line-273"></a> attributes PartialAttributeList }
|
<a name="line-273"></a> COMPONENTS OF LDAPResult,
|
||||||
<a name="line-274"></a>@
|
<a name="line-274"></a> serverSaslCreds [7] OCTET STRING OPTIONAL }
|
||||||
<a name="line-275"></a>
|
<a name="line-275"></a>@
|
||||||
<a name="line-276"></a>@
|
<a name="line-276"></a>
|
||||||
<a name="line-277"></a>SearchResultDone ::= [APPLICATION 5] LDAPResult
|
<a name="line-277"></a>@
|
||||||
<a name="line-278"></a>@
|
<a name="line-278"></a>SearchResultEntry ::= [APPLICATION 4] SEQUENCE {
|
||||||
<a name="line-279"></a>
|
<a name="line-279"></a> objectName LDAPDN,
|
||||||
<a name="line-280"></a>@
|
<a name="line-280"></a> attributes PartialAttributeList }
|
||||||
<a name="line-281"></a>ModifyResponse ::= [APPLICATION 7] LDAPResult
|
<a name="line-281"></a>@
|
||||||
<a name="line-282"></a>@
|
<a name="line-282"></a>
|
||||||
<a name="line-283"></a>
|
<a name="line-283"></a>@
|
||||||
<a name="line-284"></a>@
|
<a name="line-284"></a>SearchResultReference ::= [APPLICATION 19] SEQUENCE
|
||||||
<a name="line-285"></a>AddResponse ::= [APPLICATION 9] LDAPResult
|
<a name="line-285"></a> SIZE (1..MAX) OF uri URI
|
||||||
<a name="line-286"></a>@
|
<a name="line-286"></a>@
|
||||||
<a name="line-287"></a>
|
<a name="line-287"></a>
|
||||||
<a name="line-288"></a>@
|
<a name="line-288"></a>@
|
||||||
<a name="line-289"></a>DelResponse ::= [APPLICATION 11] LDAPResult
|
<a name="line-289"></a>SearchResultDone ::= [APPLICATION 5] LDAPResult
|
||||||
<a name="line-290"></a>@
|
<a name="line-290"></a>@
|
||||||
<a name="line-291"></a>
|
<a name="line-291"></a>
|
||||||
<a name="line-292"></a>@
|
<a name="line-292"></a>@
|
||||||
<a name="line-293"></a>CompareResponse ::= [APPLICATION 15] LDAPResult
|
<a name="line-293"></a>ModifyResponse ::= [APPLICATION 7] LDAPResult
|
||||||
<a name="line-294"></a>@
|
<a name="line-294"></a>@
|
||||||
<a name="line-295"></a>-}</span>
|
<a name="line-295"></a>
|
||||||
<a name="line-296"></a><a name="instance%20FromAsn1%20ProtocolServerOp"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>ProtocolServerOp</span> <span class='hs-keyword'>where</span>
|
<a name="line-296"></a>@
|
||||||
<a name="line-297"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>asum</span>
|
<a name="line-297"></a>AddResponse ::= [APPLICATION 9] LDAPResult
|
||||||
<a name="line-298"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>res</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>BindResponse</span> <span class='hs-varid'>res</span> <span class='hs-conid'>Nothing</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span>
|
<a name="line-298"></a>@
|
||||||
<a name="line-299"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-varid'>uncurry</span> <span class='hs-conid'>SearchResultEntry</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>4</span><span class='hs-layout'>)</span>
|
<a name="line-299"></a>
|
||||||
<a name="line-300"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>SearchResultDone</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>5</span><span class='hs-layout'>)</span>
|
<a name="line-300"></a>@
|
||||||
<a name="line-301"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>ModifyResponse</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>7</span><span class='hs-layout'>)</span>
|
<a name="line-301"></a>DelResponse ::= [APPLICATION 11] LDAPResult
|
||||||
<a name="line-302"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>AddResponse</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>9</span><span class='hs-layout'>)</span>
|
<a name="line-302"></a>@
|
||||||
<a name="line-303"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>DeleteResponse</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>11</span><span class='hs-layout'>)</span>
|
<a name="line-303"></a>
|
||||||
<a name="line-304"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>ModifyDnResponse</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>13</span><span class='hs-layout'>)</span>
|
<a name="line-304"></a>@
|
||||||
<a name="line-305"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>CompareResponse</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>15</span><span class='hs-layout'>)</span>
|
<a name="line-305"></a>ModifyDNResponse ::= [APPLICATION 13] LDAPResult
|
||||||
<a name="line-306"></a> <span class='hs-layout'>,</span> <span class='hs-keyword'>do</span>
|
<a name="line-306"></a>@
|
||||||
<a name="line-307"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>24</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-307"></a>
|
||||||
<a name="line-308"></a> <span class='hs-varid'>res</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-308"></a>@
|
||||||
<a name="line-309"></a> <span class='hs-varid'>name</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>optional</span> <span class='hs-varop'>$</span> <span class='hs-keyword'>do</span>
|
<a name="line-309"></a>CompareResponse ::= [APPLICATION 15] LDAPResult
|
||||||
<a name="line-310"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-310"></a>@
|
||||||
<a name="line-311"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>s</span>
|
<a name="line-311"></a>
|
||||||
<a name="line-312"></a> <span class='hs-varid'>value</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>optional</span> <span class='hs-varop'>$</span> <span class='hs-keyword'>do</span>
|
<a name="line-312"></a>@
|
||||||
<a name="line-313"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>1</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-313"></a>ExtendedResponse ::= [APPLICATION 24] SEQUENCE {
|
||||||
<a name="line-314"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>s</span>
|
<a name="line-314"></a> COMPONENTS OF LDAPResult,
|
||||||
<a name="line-315"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>24</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-315"></a> responseName [10] LDAPOID OPTIONAL,
|
||||||
<a name="line-316"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>ExtendedResponse</span> <span class='hs-varid'>res</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-conid'>LdapOid</span> <span class='hs-varid'>name</span><span class='hs-layout'>)</span> <span class='hs-varid'>value</span><span class='hs-layout'>)</span>
|
<a name="line-316"></a> responseValue [11] OCTET STRING OPTIONAL }
|
||||||
<a name="line-317"></a> <span class='hs-keyglyph'>]</span>
|
<a name="line-317"></a>@
|
||||||
<a name="line-318"></a> <span class='hs-keyword'>where</span>
|
<a name="line-318"></a>
|
||||||
<a name="line-319"></a> <span class='hs-varid'>app</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
<a name="line-319"></a>@
|
||||||
<a name="line-320"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-320"></a>IntermediateResponse ::= [APPLICATION 25] SEQUENCE {
|
||||||
<a name="line-321"></a> <span class='hs-varid'>guard</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-varid'>l</span><span class='hs-layout'>)</span>
|
<a name="line-321"></a> responseName [0] LDAPOID OPTIONAL,
|
||||||
<a name="line-322"></a> <span class='hs-varid'>res</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-322"></a> responseValue [1] OCTET STRING OPTIONAL }
|
||||||
<a name="line-323"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-323"></a>@
|
||||||
<a name="line-324"></a> <span class='hs-varid'>guard</span> <span class='hs-layout'>(</span><span class='hs-varid'>y</span> <span class='hs-varop'>==</span> <span class='hs-varid'>l</span><span class='hs-layout'>)</span>
|
<a name="line-324"></a>-}</span>
|
||||||
<a name="line-325"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>res</span>
|
<a name="line-325"></a><a name="instance%20FromAsn1%20ProtocolServerOp"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>ProtocolServerOp</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-326"></a>
|
<a name="line-326"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>asum</span>
|
||||||
<a name="line-327"></a><a name="instance%20FromAsn1%20PartialAttributeList"></a><span class='hs-comment'>{- |
|
<a name="line-327"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>res</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>BindResponse</span> <span class='hs-varid'>res</span> <span class='hs-conid'>Nothing</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-328"></a>@
|
<a name="line-328"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-varid'>uncurry</span> <span class='hs-conid'>SearchResultEntry</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>4</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-329"></a>PartialAttributeList ::= SEQUENCE OF partialAttribute PartialAttribute
|
<a name="line-329"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>SearchResultDone</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>5</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-330"></a>@
|
<a name="line-330"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>ModifyResponse</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>7</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-331"></a>-}</span>
|
<a name="line-331"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>AddResponse</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>9</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-332"></a><a name="instance%20FromAsn1%20PartialAttributeList"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>PartialAttributeList</span> <span class='hs-keyword'>where</span>
|
<a name="line-332"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>DeleteResponse</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>11</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-333"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
<a name="line-333"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>ModifyDnResponse</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>13</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-334"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-334"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-conid'>CompareResponse</span> <span class='hs-layout'>(</span><span class='hs-varid'>app</span> <span class='hs-num'>15</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-335"></a> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>many</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-335"></a>
|
||||||
<a name="line-336"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
<a name="line-336"></a> <span class='hs-layout'>,</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-337"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>PartialAttributeList</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-337"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>19</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-338"></a>
|
<a name="line-338"></a> <span class='hs-varid'>uris</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>some1</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-339"></a><a name="instance%20FromAsn1%20(a,%20b)"></a><span class='hs-keyword'>instance</span> <span class='hs-layout'>(</span><span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>a</span><span class='hs-layout'>,</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>b</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>FromAsn1</span> <span class='hs-layout'>(</span><span class='hs-varid'>a</span><span class='hs-layout'>,</span> <span class='hs-varid'>b</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-339"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>19</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-340"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>liftA2</span> <span class='hs-conid'>(,)</span> <span class='hs-varid'>fromAsn1</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-340"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>SearchResultReference</span> <span class='hs-varid'>uris</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-341"></a>
|
<a name="line-341"></a>
|
||||||
<a name="line-342"></a>
|
<a name="line-342"></a> <span class='hs-layout'>,</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-343"></a><a name="Parser"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>{</span> <span class='hs-varid'>unParser</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>s</span><span class='hs-layout'>,</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-layout'>}</span>
|
<a name="line-343"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>24</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-344"></a>
|
<a name="line-344"></a> <span class='hs-varid'>res</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-345"></a><a name="instance%20Functor%20(Parser%20s)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Functor</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-345"></a> <span class='hs-varid'>utf8Name</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>optional</span> <span class='hs-varop'>$</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-346"></a> <span class='hs-varid'>fmap</span> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>g</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span> <span class='hs-varop'>.</span> <span class='hs-varid'>g</span><span class='hs-layout'>)</span>
|
<a name="line-346"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>10</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-347"></a>
|
<a name="line-347"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>s</span>
|
||||||
<a name="line-348"></a><a name="instance%20Applicative%20(Parser%20s)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Applicative</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-348"></a> <span class='hs-varid'>name</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-conid'>Nothing</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>n</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>case</span> <span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>decodeUtf8'</span> <span class='hs-varid'>n</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-349"></a> <span class='hs-varid'>pure</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-layout'>(</span><span class='hs-varid'>s</span><span class='hs-layout'>,</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-349"></a> <span class='hs-conid'>Left</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>empty</span>
|
||||||
<a name="line-350"></a> <span class='hs-conid'>Parser</span> <span class='hs-varid'>mf</span> <span class='hs-varop'><*></span> <span class='hs-conid'>Parser</span> <span class='hs-varid'>mx</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
<a name="line-350"></a> <span class='hs-conid'>Right</span> <span class='hs-varid'>name</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>name</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varid'>utf8Name</span>
|
||||||
<a name="line-351"></a> <span class='hs-layout'>(</span><span class='hs-varid'>s'</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>mf</span> <span class='hs-varid'>s</span>
|
<a name="line-351"></a> <span class='hs-varid'>value</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>optional</span> <span class='hs-varop'>$</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-352"></a> <span class='hs-layout'>(</span><span class='hs-varid'>s''</span><span class='hs-layout'>,</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>mx</span> <span class='hs-varid'>s'</span>
|
<a name="line-352"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>11</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-353"></a> <span class='hs-varid'>pure</span> <span class='hs-layout'>(</span><span class='hs-varid'>s''</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
<a name="line-353"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>s</span>
|
||||||
<a name="line-354"></a>
|
<a name="line-354"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>24</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-355"></a><a name="instance%20Alternative%20(Parser%20s)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Alternative</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-355"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>ExtendedResponse</span> <span class='hs-varid'>res</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-conid'>LdapOid</span> <span class='hs-varid'>name</span><span class='hs-layout'>)</span> <span class='hs-varid'>value</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-356"></a> <span class='hs-varid'>empty</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>empty</span><span class='hs-layout'>)</span>
|
<a name="line-356"></a>
|
||||||
<a name="line-357"></a> <span class='hs-conid'>Parser</span> <span class='hs-varid'>ma</span> <span class='hs-varop'><|></span> <span class='hs-conid'>Parser</span> <span class='hs-varid'>mb</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-357"></a> <span class='hs-layout'>,</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-358"></a> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>ma</span> <span class='hs-varid'>s</span> <span class='hs-varop'><|></span> <span class='hs-varid'>mb</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
<a name="line-358"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>25</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-359"></a>
|
<a name="line-359"></a> <span class='hs-varid'>name</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>optional</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-360"></a><a name="instance%20Monad%20(Parser%20s)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-360"></a> <span class='hs-varid'>value</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>optional</span> <span class='hs-varop'>$</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-361"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>s</span><span class='hs-layout'>,</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-361"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-362"></a> <span class='hs-conid'>Parser</span> <span class='hs-varid'>mx</span> <span class='hs-varop'>>>=</span> <span class='hs-varid'>k</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-362"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>s</span>
|
||||||
<a name="line-363"></a> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-varid'>mx</span> <span class='hs-varop'>>=></span> <span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-varid'>s'</span><span class='hs-layout'>,</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>unParser</span> <span class='hs-layout'>(</span><span class='hs-varid'>k</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-varid'>s'</span><span class='hs-layout'>)</span>
|
<a name="line-363"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>25</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-364"></a> <span class='hs-varid'>fail</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>empty</span>
|
<a name="line-364"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>IntermediateResponse</span> <span class='hs-varid'>name</span> <span class='hs-varid'>value</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-365"></a>
|
<a name="line-365"></a> <span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-366"></a><a name="instance%20MonadPlus%20(Parser%20s)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>MonadPlus</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-366"></a> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-367"></a> <span class='hs-varid'>mzero</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>mzero</span><span class='hs-layout'>)</span>
|
<a name="line-367"></a> <span class='hs-varid'>app</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-368"></a> <span class='hs-conid'>Parser</span> <span class='hs-varid'>ma</span> <span class='hs-varop'>`mplus`</span> <span class='hs-conid'>Parser</span> <span class='hs-varid'>mb</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-368"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-369"></a> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>ma</span> <span class='hs-varid'>s</span> <span class='hs-varop'>`mplus`</span> <span class='hs-varid'>mb</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
<a name="line-369"></a> <span class='hs-varid'>guard</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span> <span class='hs-varop'>==</span> <span class='hs-varid'>l</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-370"></a>
|
<a name="line-370"></a> <span class='hs-varid'>res</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
<a name="line-371"></a><a name="parseAsn1"></a><span class='hs-definition'>parseAsn1</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>,</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
<a name="line-371"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
<a name="line-372"></a><span class='hs-definition'>parseAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>parse</span> <span class='hs-varid'>fromAsn1</span>
|
<a name="line-372"></a> <span class='hs-varid'>guard</span> <span class='hs-layout'>(</span><span class='hs-varid'>y</span> <span class='hs-varop'>==</span> <span class='hs-varid'>l</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-373"></a>
|
<a name="line-373"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>res</span>
|
||||||
<a name="line-374"></a><a name="parse"></a><span class='hs-definition'>parse</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>s</span><span class='hs-layout'>,</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
<a name="line-374"></a>
|
||||||
<a name="line-375"></a><span class='hs-definition'>parse</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>unParser</span>
|
<a name="line-375"></a><a name="instance%20FromAsn1%20PartialAttributeList"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-376"></a>
|
<a name="line-376"></a>@
|
||||||
<a name="line-377"></a><a name="next"></a><span class='hs-definition'>next</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Parser</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>s</span><span class='hs-keyglyph'>]</span> <span class='hs-varid'>s</span>
|
<a name="line-377"></a>PartialAttributeList ::= SEQUENCE OF partialAttribute PartialAttribute
|
||||||
<a name="line-378"></a><span class='hs-definition'>next</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>case</span> <span class='hs-varid'>s</span> <span class='hs-keyword'>of</span> <span class='hs-conid'>[]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Nothing</span><span class='hs-layout'>;</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:</span> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-varid'>xs</span><span class='hs-layout'>,</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-378"></a>@
|
||||||
|
<a name="line-379"></a>-}</span>
|
||||||
|
<a name="line-380"></a><a name="instance%20FromAsn1%20PartialAttributeList"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-conid'>PartialAttributeList</span> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-381"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
||||||
|
<a name="line-382"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
|
<a name="line-383"></a> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>many</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
|
<a name="line-384"></a> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>next</span>
|
||||||
|
<a name="line-385"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>PartialAttributeList</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-386"></a>
|
||||||
|
<a name="line-387"></a><a name="instance%20FromAsn1%20(a,%20b)"></a><span class='hs-keyword'>instance</span> <span class='hs-layout'>(</span><span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>a</span><span class='hs-layout'>,</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>b</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>FromAsn1</span> <span class='hs-layout'>(</span><span class='hs-varid'>a</span><span class='hs-layout'>,</span> <span class='hs-varid'>b</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-388"></a> <span class='hs-varid'>fromAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>liftA2</span> <span class='hs-conid'>(,)</span> <span class='hs-varid'>fromAsn1</span> <span class='hs-varid'>fromAsn1</span>
|
||||||
|
<a name="line-389"></a>
|
||||||
|
<a name="line-390"></a>
|
||||||
|
<a name="line-391"></a><a name="Parser"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>{</span> <span class='hs-varid'>unParser</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>s</span><span class='hs-layout'>,</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-layout'>}</span>
|
||||||
|
<a name="line-392"></a>
|
||||||
|
<a name="line-393"></a><a name="instance%20Functor%20(Parser%20s)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Functor</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-394"></a> <span class='hs-varid'>fmap</span> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>g</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span> <span class='hs-varop'>.</span> <span class='hs-varid'>g</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-395"></a>
|
||||||
|
<a name="line-396"></a><a name="instance%20Applicative%20(Parser%20s)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Applicative</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-397"></a> <span class='hs-varid'>pure</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>pure</span> <span class='hs-layout'>(</span><span class='hs-varid'>s</span><span class='hs-layout'>,</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-398"></a> <span class='hs-conid'>Parser</span> <span class='hs-varid'>mf</span> <span class='hs-varop'><*></span> <span class='hs-conid'>Parser</span> <span class='hs-varid'>mx</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
||||||
|
<a name="line-399"></a> <span class='hs-layout'>(</span><span class='hs-varid'>s'</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>mf</span> <span class='hs-varid'>s</span>
|
||||||
|
<a name="line-400"></a> <span class='hs-layout'>(</span><span class='hs-varid'>s''</span><span class='hs-layout'>,</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>mx</span> <span class='hs-varid'>s'</span>
|
||||||
|
<a name="line-401"></a> <span class='hs-varid'>pure</span> <span class='hs-layout'>(</span><span class='hs-varid'>s''</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-402"></a>
|
||||||
|
<a name="line-403"></a><a name="instance%20Alternative%20(Parser%20s)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Alternative</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-404"></a> <span class='hs-varid'>empty</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>empty</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-405"></a> <span class='hs-conid'>Parser</span> <span class='hs-varid'>ma</span> <span class='hs-varop'><|></span> <span class='hs-conid'>Parser</span> <span class='hs-varid'>mb</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-406"></a> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>ma</span> <span class='hs-varid'>s</span> <span class='hs-varop'><|></span> <span class='hs-varid'>mb</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-407"></a>
|
||||||
|
<a name="line-408"></a><a name="instance%20Monad%20(Parser%20s)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-409"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>s</span><span class='hs-layout'>,</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-410"></a> <span class='hs-conid'>Parser</span> <span class='hs-varid'>mx</span> <span class='hs-varop'>>>=</span> <span class='hs-varid'>k</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-411"></a> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-varid'>mx</span> <span class='hs-varop'>>=></span> <span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-varid'>s'</span><span class='hs-layout'>,</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>unParser</span> <span class='hs-layout'>(</span><span class='hs-varid'>k</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-varid'>s'</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-412"></a> <span class='hs-varid'>fail</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>empty</span>
|
||||||
|
<a name="line-413"></a>
|
||||||
|
<a name="line-414"></a><a name="instance%20MonadPlus%20(Parser%20s)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>MonadPlus</span> <span class='hs-layout'>(</span><span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-415"></a> <span class='hs-varid'>mzero</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>mzero</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-416"></a> <span class='hs-conid'>Parser</span> <span class='hs-varid'>ma</span> <span class='hs-varop'>`mplus`</span> <span class='hs-conid'>Parser</span> <span class='hs-varid'>mb</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-417"></a> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>ma</span> <span class='hs-varid'>s</span> <span class='hs-varop'>`mplus`</span> <span class='hs-varid'>mb</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-418"></a>
|
||||||
|
<a name="line-419"></a><a name="parse"></a><span class='hs-definition'>parse</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Parser</span> <span class='hs-varid'>s</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>s</span><span class='hs-layout'>,</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-420"></a><span class='hs-definition'>parse</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>unParser</span>
|
||||||
|
<a name="line-421"></a>
|
||||||
|
<a name="line-422"></a><a name="next"></a><span class='hs-definition'>next</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Parser</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>s</span><span class='hs-keyglyph'>]</span> <span class='hs-varid'>s</span>
|
||||||
|
<a name="line-423"></a><span class='hs-definition'>next</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Parser</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>case</span> <span class='hs-varid'>s</span> <span class='hs-keyword'>of</span> <span class='hs-conid'>[]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Nothing</span><span class='hs-layout'>;</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:</span> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-varid'>xs</span><span class='hs-layout'>,</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -7,426 +7,434 @@
|
|||||||
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<pre><a name="line-1"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>ToAsn1</span>
|
<pre><a name="line-1"></a><span class='hs-comment'>-- | This module contains convertions from LDAP types to ASN.1.</span>
|
||||||
<a name="line-2"></a> <span class='hs-layout'>(</span> <span class='hs-conid'>ToAsn1</span><span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span><span class='hs-layout'>)</span>
|
<a name="line-2"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-3"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-3"></a><span class='hs-comment'>-- Various hacks are employed because "asn1-encoding" only encodes to DER, but</span>
|
||||||
<a name="line-4"></a>
|
<a name="line-4"></a><span class='hs-comment'>-- LDAP demands BER-encoding. So, when a definition looks suspiciously different</span>
|
||||||
<a name="line-5"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span> <span class='hs-layout'>(</span><span class='hs-conid'>ASN1</span><span class='hs-layout'>,</span> <span class='hs-conid'>ASN1Class</span><span class='hs-layout'>,</span> <span class='hs-conid'>ASN1Tag</span><span class='hs-layout'>,</span> <span class='hs-conid'>ASN1ConstructionType</span><span class='hs-layout'>)</span>
|
<a name="line-5"></a><span class='hs-comment'>-- from the spec in the comment, that's why. I hope all that will be fixed</span>
|
||||||
<a name="line-6"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Asn1</span>
|
<a name="line-6"></a><span class='hs-comment'>-- eventually.</span>
|
||||||
<a name="line-7"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span> <span class='hs-layout'>(</span><span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
<a name="line-7"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>ToAsn1</span>
|
||||||
<a name="line-8"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Foldable</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span><span class='hs-layout'>,</span> <span class='hs-varid'>foldMap</span><span class='hs-layout'>)</span>
|
<a name="line-8"></a> <span class='hs-layout'>(</span> <span class='hs-conid'>ToAsn1</span><span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-9"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>)</span>
|
<a name="line-9"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-10"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span><span class='hs-layout'>,</span> <span class='hs-varid'>maybe</span><span class='hs-layout'>)</span>
|
<a name="line-10"></a>
|
||||||
<a name="line-11"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Monoid</span> <span class='hs-layout'>(</span><span class='hs-conid'>Endo</span><span class='hs-layout'>(</span><span class='hs-conid'>Endo</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-layout'>(</span><span class='hs-varop'><></span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>mempty</span><span class='hs-layout'>)</span>
|
<a name="line-11"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span> <span class='hs-layout'>(</span><span class='hs-conid'>ASN1</span><span class='hs-layout'>,</span> <span class='hs-conid'>ASN1Class</span><span class='hs-layout'>,</span> <span class='hs-conid'>ASN1Tag</span><span class='hs-layout'>,</span> <span class='hs-conid'>ASN1ConstructionType</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-12"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Encoding</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Text</span>
|
<a name="line-12"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Asn1</span>
|
||||||
<a name="line-13"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-layout'>(</span><span class='hs-conid'>Integer</span><span class='hs-layout'>,</span> <span class='hs-layout'>(</span><span class='hs-varop'>.</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span>
|
<a name="line-13"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span> <span class='hs-layout'>(</span><span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-14"></a>
|
<a name="line-14"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Foldable</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span><span class='hs-layout'>,</span> <span class='hs-varid'>foldMap</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-15"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span>
|
<a name="line-15"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-16"></a>
|
<a name="line-16"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>maybe</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-17"></a>
|
<a name="line-17"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Monoid</span> <span class='hs-layout'>(</span><span class='hs-conid'>Endo</span><span class='hs-layout'>(</span><span class='hs-conid'>Endo</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-layout'>(</span><span class='hs-varop'><></span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>mempty</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-18"></a><a name="ToAsn1"></a><span class='hs-keyword'>class</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>where</span>
|
<a name="line-18"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Encoding</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Text</span>
|
||||||
<a name="line-19"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
<a name="line-19"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-layout'>(</span><span class='hs-conid'>Integer</span><span class='hs-layout'>,</span> <span class='hs-layout'>(</span><span class='hs-varop'>.</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-20"></a>
|
<a name="line-20"></a>
|
||||||
<a name="line-21"></a><a name="instance%20ToAsn1%20(LdapMessage%20op)"></a><span class='hs-comment'>{- |
|
<a name="line-21"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span>
|
||||||
<a name="line-22"></a>@
|
<a name="line-22"></a>
|
||||||
<a name="line-23"></a>LDAPMessage ::= SEQUENCE {
|
<a name="line-23"></a>
|
||||||
<a name="line-24"></a> messageID MessageID,
|
<a name="line-24"></a><a name="ToAsn1"></a><span class='hs-comment'>-- | Convert a LDAP type to ASN.1.</span>
|
||||||
<a name="line-25"></a> protocolOp CHOICE {
|
<a name="line-25"></a><a name="ToAsn1"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-26"></a> bindRequest BindRequest,
|
<a name="line-26"></a><a name="ToAsn1"></a><span class='hs-comment'>-- When it's relevant, instances include the part of RFC describing the encoding.</span>
|
||||||
<a name="line-27"></a> bindResponse BindResponse,
|
<a name="line-27"></a><a name="ToAsn1"></a><span class='hs-keyword'>class</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-28"></a> unbindRequest UnbindRequest,
|
<a name="line-28"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-29"></a> searchRequest SearchRequest,
|
<a name="line-29"></a>
|
||||||
<a name="line-30"></a> searchResEntry SearchResultEntry,
|
<a name="line-30"></a><a name="instance%20ToAsn1%20(LdapMessage%20op)"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-31"></a> searchResDone SearchResultDone,
|
<a name="line-31"></a>@
|
||||||
<a name="line-32"></a> searchResRef SearchResultReference,
|
<a name="line-32"></a>LDAPMessage ::= SEQUENCE {
|
||||||
<a name="line-33"></a> addRequest AddRequest,
|
<a name="line-33"></a> messageID MessageID,
|
||||||
<a name="line-34"></a> addResponse AddResponse,
|
<a name="line-34"></a> protocolOp CHOICE {
|
||||||
<a name="line-35"></a> ... },
|
<a name="line-35"></a> bindRequest BindRequest,
|
||||||
<a name="line-36"></a> controls [0] Controls OPTIONAL }
|
<a name="line-36"></a> bindResponse BindResponse,
|
||||||
<a name="line-37"></a>@
|
<a name="line-37"></a> unbindRequest UnbindRequest,
|
||||||
<a name="line-38"></a>-}</span>
|
<a name="line-38"></a> searchRequest SearchRequest,
|
||||||
<a name="line-39"></a><a name="instance%20ToAsn1%20(LdapMessage%20op)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-varid'>op</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>ToAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>op</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-39"></a> searchResEntry SearchResultEntry,
|
||||||
<a name="line-40"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>i</span> <span class='hs-varid'>op</span> <span class='hs-varid'>mc</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-40"></a> searchResDone SearchResultDone,
|
||||||
<a name="line-41"></a> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>i</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>op</span> <span class='hs-varop'><></span> <span class='hs-varid'>maybe</span> <span class='hs-varid'>mempty</span> <span class='hs-layout'>(</span><span class='hs-varid'>context</span> <span class='hs-num'>0</span> <span class='hs-varop'>.</span> <span class='hs-varid'>toAsn1</span><span class='hs-layout'>)</span> <span class='hs-varid'>mc</span><span class='hs-layout'>)</span>
|
<a name="line-41"></a> searchResRef SearchResultReference,
|
||||||
<a name="line-42"></a>
|
<a name="line-42"></a> addRequest AddRequest,
|
||||||
<a name="line-43"></a><a name="instance%20ToAsn1%20Id"></a><span class='hs-comment'>{- |
|
<a name="line-43"></a> addResponse AddResponse,
|
||||||
<a name="line-44"></a>@
|
<a name="line-44"></a> ... },
|
||||||
<a name="line-45"></a>MessageID ::= INTEGER (0 .. maxInt)
|
<a name="line-45"></a> controls [0] Controls OPTIONAL }
|
||||||
<a name="line-46"></a>@
|
<a name="line-46"></a>@
|
||||||
<a name="line-47"></a>-}</span>
|
<a name="line-47"></a>-}</span>
|
||||||
<a name="line-48"></a><a name="instance%20ToAsn1%20Id"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>Id</span> <span class='hs-keyword'>where</span>
|
<a name="line-48"></a><a name="instance%20ToAsn1%20(LdapMessage%20op)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-varid'>op</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>ToAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>op</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-49"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>Id</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>IntVal</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-49"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>i</span> <span class='hs-varid'>op</span> <span class='hs-varid'>mc</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-50"></a>
|
<a name="line-50"></a> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>i</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>op</span> <span class='hs-varop'><></span> <span class='hs-varid'>maybe</span> <span class='hs-varid'>mempty</span> <span class='hs-layout'>(</span><span class='hs-varid'>context</span> <span class='hs-num'>0</span> <span class='hs-varop'>.</span> <span class='hs-varid'>toAsn1</span><span class='hs-layout'>)</span> <span class='hs-varid'>mc</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-51"></a><a name="instance%20ToAsn1%20LdapString"></a><span class='hs-comment'>{- |
|
<a name="line-51"></a>
|
||||||
<a name="line-52"></a>@
|
<a name="line-52"></a><a name="instance%20ToAsn1%20Id"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-53"></a>LDAPString ::= OCTET STRING -- UTF-8 encoded
|
<a name="line-53"></a>@
|
||||||
<a name="line-54"></a>@
|
<a name="line-54"></a>MessageID ::= INTEGER (0 .. maxInt)
|
||||||
<a name="line-55"></a>-}</span>
|
<a name="line-55"></a>@
|
||||||
<a name="line-56"></a><a name="instance%20ToAsn1%20LdapString"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>LdapString</span> <span class='hs-keyword'>where</span>
|
<a name="line-56"></a>-}</span>
|
||||||
<a name="line-57"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-57"></a><a name="instance%20ToAsn1%20Id"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>Id</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-58"></a>
|
<a name="line-58"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>Id</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>IntVal</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-59"></a><a name="instance%20ToAsn1%20LdapOid"></a><span class='hs-comment'>{- |
|
<a name="line-59"></a>
|
||||||
<a name="line-60"></a>@
|
<a name="line-60"></a><a name="instance%20ToAsn1%20LdapString"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-61"></a>LDAPOID ::= OCTET STRING -- Constrained to \<numericoid\>
|
<a name="line-61"></a>@
|
||||||
<a name="line-62"></a>@
|
<a name="line-62"></a>LDAPString ::= OCTET STRING -- UTF-8 encoded
|
||||||
<a name="line-63"></a>-}</span>
|
<a name="line-63"></a>@
|
||||||
<a name="line-64"></a><a name="instance%20ToAsn1%20LdapOid"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>LdapOid</span> <span class='hs-keyword'>where</span>
|
<a name="line-64"></a>-}</span>
|
||||||
<a name="line-65"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapOid</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
<a name="line-65"></a><a name="instance%20ToAsn1%20LdapString"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>LdapString</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-66"></a>
|
<a name="line-66"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-67"></a><a name="instance%20ToAsn1%20LdapDn"></a><span class='hs-comment'>{- |
|
<a name="line-67"></a>
|
||||||
<a name="line-68"></a>@
|
<a name="line-68"></a><a name="instance%20ToAsn1%20LdapOid"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-69"></a>LDAPDN ::= LDAPString -- Constrained to \<distinguishedName\>
|
<a name="line-69"></a>@
|
||||||
<a name="line-70"></a>@
|
<a name="line-70"></a>LDAPOID ::= OCTET STRING -- Constrained to \<numericoid\>
|
||||||
<a name="line-71"></a>-}</span>
|
<a name="line-71"></a>@
|
||||||
<a name="line-72"></a><a name="instance%20ToAsn1%20LdapDn"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>LdapDn</span> <span class='hs-keyword'>where</span>
|
<a name="line-72"></a>-}</span>
|
||||||
<a name="line-73"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapDn</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>s</span>
|
<a name="line-73"></a><a name="instance%20ToAsn1%20LdapOid"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>LdapOid</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-74"></a>
|
<a name="line-74"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapOid</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-75"></a><a name="instance%20ToAsn1%20RelativeLdapDn"></a><span class='hs-comment'>{- |
|
<a name="line-75"></a>
|
||||||
<a name="line-76"></a>@
|
<a name="line-76"></a><a name="instance%20ToAsn1%20LdapDn"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-77"></a>RelativeLDAPDN ::= LDAPString -- Constrained to \<name-component\>
|
<a name="line-77"></a>@
|
||||||
<a name="line-78"></a>@
|
<a name="line-78"></a>LDAPDN ::= LDAPString -- Constrained to \<distinguishedName\>
|
||||||
<a name="line-79"></a>-}</span>
|
<a name="line-79"></a>@
|
||||||
<a name="line-80"></a><a name="instance%20ToAsn1%20RelativeLdapDn"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>RelativeLdapDn</span> <span class='hs-keyword'>where</span>
|
<a name="line-80"></a>-}</span>
|
||||||
<a name="line-81"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>RelativeLdapDn</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>s</span>
|
<a name="line-81"></a><a name="instance%20ToAsn1%20LdapDn"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>LdapDn</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-82"></a>
|
<a name="line-82"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapDn</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>s</span>
|
||||||
<a name="line-83"></a><a name="instance%20ToAsn1%20AttributeDescription"></a><span class='hs-comment'>{- |
|
<a name="line-83"></a>
|
||||||
<a name="line-84"></a>@
|
<a name="line-84"></a><a name="instance%20ToAsn1%20RelativeLdapDn"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-85"></a>AttributeDescription ::= LDAPString
|
<a name="line-85"></a>@
|
||||||
<a name="line-86"></a>@
|
<a name="line-86"></a>RelativeLDAPDN ::= LDAPString -- Constrained to \<name-component\>
|
||||||
<a name="line-87"></a>-}</span>
|
<a name="line-87"></a>@
|
||||||
<a name="line-88"></a><a name="instance%20ToAsn1%20AttributeDescription"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-keyword'>where</span>
|
<a name="line-88"></a>-}</span>
|
||||||
<a name="line-89"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>s</span>
|
<a name="line-89"></a><a name="instance%20ToAsn1%20RelativeLdapDn"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>RelativeLdapDn</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-90"></a>
|
<a name="line-90"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>RelativeLdapDn</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>s</span>
|
||||||
<a name="line-91"></a><a name="instance%20ToAsn1%20AttributeValue"></a><span class='hs-comment'>{- |
|
<a name="line-91"></a>
|
||||||
<a name="line-92"></a>@
|
<a name="line-92"></a><a name="instance%20ToAsn1%20AttributeDescription"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-93"></a>AttributeValue ::= OCTET STRING
|
<a name="line-93"></a>@
|
||||||
<a name="line-94"></a>@
|
<a name="line-94"></a>AttributeDescription ::= LDAPString
|
||||||
<a name="line-95"></a>-}</span>
|
<a name="line-95"></a>@
|
||||||
<a name="line-96"></a><a name="instance%20ToAsn1%20AttributeValue"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AttributeValue</span> <span class='hs-keyword'>where</span>
|
<a name="line-96"></a>-}</span>
|
||||||
<a name="line-97"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
<a name="line-97"></a><a name="instance%20ToAsn1%20AttributeDescription"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-98"></a>
|
<a name="line-98"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>s</span>
|
||||||
<a name="line-99"></a><a name="instance%20ToAsn1%20AttributeValueAssertion"></a><span class='hs-comment'>{- |
|
<a name="line-99"></a>
|
||||||
<a name="line-100"></a>@
|
<a name="line-100"></a><a name="instance%20ToAsn1%20AttributeValue"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-101"></a>AttributeValueAssertion ::= SEQUENCE {
|
<a name="line-101"></a>@
|
||||||
<a name="line-102"></a> attributeDesc AttributeDescription,
|
<a name="line-102"></a>AttributeValue ::= OCTET STRING
|
||||||
<a name="line-103"></a> assertionValue AssertionValue }
|
<a name="line-103"></a>@
|
||||||
<a name="line-104"></a>@
|
<a name="line-104"></a>-}</span>
|
||||||
<a name="line-105"></a>-}</span>
|
<a name="line-105"></a><a name="instance%20ToAsn1%20AttributeValue"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AttributeValue</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-106"></a><a name="instance%20ToAsn1%20AttributeValueAssertion"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-keyword'>where</span>
|
<a name="line-106"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-107"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-varid'>d</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>d</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>v</span>
|
<a name="line-107"></a>
|
||||||
<a name="line-108"></a>
|
<a name="line-108"></a><a name="instance%20ToAsn1%20AttributeValueAssertion"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-109"></a><a name="instance%20ToAsn1%20AssertionValue"></a><span class='hs-comment'>{- |
|
<a name="line-109"></a>@
|
||||||
<a name="line-110"></a>@
|
<a name="line-110"></a>AttributeValueAssertion ::= SEQUENCE {
|
||||||
<a name="line-111"></a>AssertionValue ::= OCTET STRING
|
<a name="line-111"></a> attributeDesc AttributeDescription,
|
||||||
<a name="line-112"></a>@
|
<a name="line-112"></a> assertionValue AssertionValue }
|
||||||
<a name="line-113"></a>-}</span>
|
<a name="line-113"></a>@
|
||||||
<a name="line-114"></a><a name="instance%20ToAsn1%20AssertionValue"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AssertionValue</span> <span class='hs-keyword'>where</span>
|
<a name="line-114"></a>-}</span>
|
||||||
<a name="line-115"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
<a name="line-115"></a><a name="instance%20ToAsn1%20AttributeValueAssertion"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-116"></a>
|
<a name="line-116"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-varid'>d</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>d</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>v</span>
|
||||||
<a name="line-117"></a>
|
<a name="line-117"></a>
|
||||||
<a name="line-118"></a><a name="instance%20ToAsn1%20PartialAttribute"></a><span class='hs-comment'>{- |
|
<a name="line-118"></a><a name="instance%20ToAsn1%20AssertionValue"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-119"></a>@
|
<a name="line-119"></a>@
|
||||||
<a name="line-120"></a>PartialAttribute ::= SEQUENCE {
|
<a name="line-120"></a>AssertionValue ::= OCTET STRING
|
||||||
<a name="line-121"></a> type AttributeDescription,
|
<a name="line-121"></a>@
|
||||||
<a name="line-122"></a> vals SET OF value AttributeValue }
|
<a name="line-122"></a>-}</span>
|
||||||
<a name="line-123"></a>@
|
<a name="line-123"></a><a name="instance%20ToAsn1%20AssertionValue"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AssertionValue</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-124"></a>-}</span>
|
<a name="line-124"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-125"></a><a name="instance%20ToAsn1%20PartialAttribute"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>PartialAttribute</span> <span class='hs-keyword'>where</span>
|
<a name="line-125"></a>
|
||||||
<a name="line-126"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-varid'>d</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>d</span> <span class='hs-varop'><></span> <span class='hs-varid'>set</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-126"></a>
|
||||||
<a name="line-127"></a>
|
<a name="line-127"></a><a name="instance%20ToAsn1%20PartialAttribute"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-128"></a><a name="instance%20ToAsn1%20Attribute"></a><span class='hs-comment'>{- |
|
<a name="line-128"></a>@
|
||||||
<a name="line-129"></a>@
|
<a name="line-129"></a>PartialAttribute ::= SEQUENCE {
|
||||||
<a name="line-130"></a>Attribute ::= PartialAttribute(WITH COMPONENTS {
|
<a name="line-130"></a> type AttributeDescription,
|
||||||
<a name="line-131"></a> ...,
|
<a name="line-131"></a> vals SET OF value AttributeValue }
|
||||||
<a name="line-132"></a> vals (SIZE(1..MAX))})
|
<a name="line-132"></a>@
|
||||||
<a name="line-133"></a>@
|
<a name="line-133"></a>-}</span>
|
||||||
<a name="line-134"></a>-}</span>
|
<a name="line-134"></a><a name="instance%20ToAsn1%20PartialAttribute"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>PartialAttribute</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-135"></a><a name="instance%20ToAsn1%20Attribute"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>Attribute</span> <span class='hs-keyword'>where</span>
|
<a name="line-135"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-varid'>d</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>d</span> <span class='hs-varop'><></span> <span class='hs-varid'>set</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-136"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attribute</span> <span class='hs-varid'>d</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>d</span> <span class='hs-varop'><></span> <span class='hs-varid'>set</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-136"></a>
|
||||||
<a name="line-137"></a>
|
<a name="line-137"></a><a name="instance%20ToAsn1%20Attribute"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-138"></a><a name="instance%20ToAsn1%20MatchingRuleId"></a><span class='hs-comment'>{- |
|
<a name="line-138"></a>@
|
||||||
<a name="line-139"></a>@
|
<a name="line-139"></a>Attribute ::= PartialAttribute(WITH COMPONENTS {
|
||||||
<a name="line-140"></a>MatchingRuleId ::= LDAPString
|
<a name="line-140"></a> ...,
|
||||||
<a name="line-141"></a>@
|
<a name="line-141"></a> vals (SIZE(1..MAX))})
|
||||||
<a name="line-142"></a>-}</span>
|
<a name="line-142"></a>@
|
||||||
<a name="line-143"></a><a name="instance%20ToAsn1%20MatchingRuleId"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>MatchingRuleId</span> <span class='hs-keyword'>where</span>
|
<a name="line-143"></a>-}</span>
|
||||||
<a name="line-144"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>MatchingRuleId</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>s</span>
|
<a name="line-144"></a><a name="instance%20ToAsn1%20Attribute"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>Attribute</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-145"></a>
|
<a name="line-145"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attribute</span> <span class='hs-varid'>d</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>d</span> <span class='hs-varop'><></span> <span class='hs-varid'>set</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-146"></a><a name="instance%20ToAsn1%20Controls"></a><span class='hs-comment'>{- |
|
<a name="line-146"></a>
|
||||||
<a name="line-147"></a>@
|
<a name="line-147"></a><a name="instance%20ToAsn1%20MatchingRuleId"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-148"></a>Controls ::= SEQUENCE OF control Control
|
<a name="line-148"></a>@
|
||||||
<a name="line-149"></a>@
|
<a name="line-149"></a>MatchingRuleId ::= LDAPString
|
||||||
<a name="line-150"></a>-}</span>
|
<a name="line-150"></a>@
|
||||||
<a name="line-151"></a><a name="instance%20ToAsn1%20Controls"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>Controls</span> <span class='hs-keyword'>where</span>
|
<a name="line-151"></a>-}</span>
|
||||||
<a name="line-152"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>Controls</span> <span class='hs-varid'>cs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>cs</span><span class='hs-layout'>)</span>
|
<a name="line-152"></a><a name="instance%20ToAsn1%20MatchingRuleId"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>MatchingRuleId</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-153"></a>
|
<a name="line-153"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>MatchingRuleId</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>s</span>
|
||||||
<a name="line-154"></a><a name="instance%20ToAsn1%20Control"></a><span class='hs-comment'>{- |
|
<a name="line-154"></a>
|
||||||
<a name="line-155"></a>@
|
<a name="line-155"></a><a name="instance%20ToAsn1%20Controls"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-156"></a>Control ::= SEQUENCE {
|
<a name="line-156"></a>@
|
||||||
<a name="line-157"></a> controlType LDAPOID,
|
<a name="line-157"></a>Controls ::= SEQUENCE OF control Control
|
||||||
<a name="line-158"></a> criticality BOOLEAN DEFAULT FALSE,
|
<a name="line-158"></a>@
|
||||||
<a name="line-159"></a> controlValue OCTET STRING OPTIONAL }
|
<a name="line-159"></a>-}</span>
|
||||||
<a name="line-160"></a>@
|
<a name="line-160"></a><a name="instance%20ToAsn1%20Controls"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>Controls</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-161"></a>-}</span>
|
<a name="line-161"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>Controls</span> <span class='hs-varid'>cs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>cs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-162"></a><a name="instance%20ToAsn1%20Control"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>Control</span> <span class='hs-keyword'>where</span>
|
<a name="line-162"></a>
|
||||||
<a name="line-163"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>Control</span> <span class='hs-varid'>t</span> <span class='hs-varid'>c</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-163"></a><a name="instance%20ToAsn1%20Control"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-164"></a> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span>
|
<a name="line-164"></a>@
|
||||||
<a name="line-165"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>t</span>
|
<a name="line-165"></a>Control ::= SEQUENCE {
|
||||||
<a name="line-166"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Boolean</span> <span class='hs-varid'>c</span><span class='hs-layout'>)</span>
|
<a name="line-166"></a> controlType LDAPOID,
|
||||||
<a name="line-167"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>maybe</span> <span class='hs-varid'>mempty</span> <span class='hs-layout'>(</span><span class='hs-varid'>single</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span><span class='hs-layout'>)</span> <span class='hs-varid'>v</span>
|
<a name="line-167"></a> criticality BOOLEAN DEFAULT FALSE,
|
||||||
<a name="line-168"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
<a name="line-168"></a> controlValue OCTET STRING OPTIONAL }
|
||||||
<a name="line-169"></a>
|
<a name="line-169"></a>@
|
||||||
<a name="line-170"></a><a name="instance%20ToAsn1%20ProtocolClientOp"></a><span class='hs-comment'>{- |
|
<a name="line-170"></a>-}</span>
|
||||||
<a name="line-171"></a>@
|
<a name="line-171"></a><a name="instance%20ToAsn1%20Control"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>Control</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-172"></a>BindRequest ::= [APPLICATION 0] SEQUENCE {
|
<a name="line-172"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>Control</span> <span class='hs-varid'>t</span> <span class='hs-varid'>c</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-173"></a> version INTEGER (1 .. 127),
|
<a name="line-173"></a> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span>
|
||||||
<a name="line-174"></a> name LDAPDN,
|
<a name="line-174"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>t</span>
|
||||||
<a name="line-175"></a> authentication AuthenticationChoice }
|
<a name="line-175"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Boolean</span> <span class='hs-varid'>c</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-176"></a>@
|
<a name="line-176"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>maybe</span> <span class='hs-varid'>mempty</span> <span class='hs-layout'>(</span><span class='hs-varid'>single</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>OctetString</span><span class='hs-layout'>)</span> <span class='hs-varid'>v</span>
|
||||||
<a name="line-177"></a>
|
<a name="line-177"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-178"></a>@
|
<a name="line-178"></a>
|
||||||
<a name="line-179"></a>UnbindRequest ::= [APPLICATION 2] NULL
|
<a name="line-179"></a><a name="instance%20ToAsn1%20ProtocolClientOp"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-180"></a>@
|
<a name="line-180"></a>@
|
||||||
<a name="line-181"></a>
|
<a name="line-181"></a>BindRequest ::= [APPLICATION 0] SEQUENCE {
|
||||||
<a name="line-182"></a>@
|
<a name="line-182"></a> version INTEGER (1 .. 127),
|
||||||
<a name="line-183"></a>SearchRequest ::= [APPLICATION 3] SEQUENCE {
|
<a name="line-183"></a> name LDAPDN,
|
||||||
<a name="line-184"></a> baseObject LDAPDN,
|
<a name="line-184"></a> authentication AuthenticationChoice }
|
||||||
<a name="line-185"></a> scope ENUMERATED {
|
<a name="line-185"></a>@
|
||||||
<a name="line-186"></a> baseObject (0),
|
<a name="line-186"></a>
|
||||||
<a name="line-187"></a> singleLevel (1),
|
<a name="line-187"></a>@
|
||||||
<a name="line-188"></a> wholeSubtree (2),
|
<a name="line-188"></a>UnbindRequest ::= [APPLICATION 2] NULL
|
||||||
<a name="line-189"></a> ... },
|
<a name="line-189"></a>@
|
||||||
<a name="line-190"></a> derefAliases ENUMERATED {
|
<a name="line-190"></a>
|
||||||
<a name="line-191"></a> neverDerefAliases (0),
|
<a name="line-191"></a>@
|
||||||
<a name="line-192"></a> derefInSearching (1),
|
<a name="line-192"></a>SearchRequest ::= [APPLICATION 3] SEQUENCE {
|
||||||
<a name="line-193"></a> derefFindingBaseObj (2),
|
<a name="line-193"></a> baseObject LDAPDN,
|
||||||
<a name="line-194"></a> derefAlways (3) },
|
<a name="line-194"></a> scope ENUMERATED {
|
||||||
<a name="line-195"></a> sizeLimit INTEGER (0 .. maxInt),
|
<a name="line-195"></a> baseObject (0),
|
||||||
<a name="line-196"></a> timeLimit INTEGER (0 .. maxInt),
|
<a name="line-196"></a> singleLevel (1),
|
||||||
<a name="line-197"></a> typesOnly BOOLEAN,
|
<a name="line-197"></a> wholeSubtree (2),
|
||||||
<a name="line-198"></a> filter Filter,
|
<a name="line-198"></a> ... },
|
||||||
<a name="line-199"></a> attributes AttributeSelection }
|
<a name="line-199"></a> derefAliases ENUMERATED {
|
||||||
<a name="line-200"></a>@
|
<a name="line-200"></a> neverDerefAliases (0),
|
||||||
<a name="line-201"></a>
|
<a name="line-201"></a> derefInSearching (1),
|
||||||
<a name="line-202"></a>@
|
<a name="line-202"></a> derefFindingBaseObj (2),
|
||||||
<a name="line-203"></a>ModifyRequest ::= [APPLICATION 6] SEQUENCE {
|
<a name="line-203"></a> derefAlways (3) },
|
||||||
<a name="line-204"></a> object LDAPDN,
|
<a name="line-204"></a> sizeLimit INTEGER (0 .. maxInt),
|
||||||
<a name="line-205"></a> changes SEQUENCE OF change SEQUENCE {
|
<a name="line-205"></a> timeLimit INTEGER (0 .. maxInt),
|
||||||
<a name="line-206"></a> operation ENUMERATED {
|
<a name="line-206"></a> typesOnly BOOLEAN,
|
||||||
<a name="line-207"></a> add (0),
|
<a name="line-207"></a> filter Filter,
|
||||||
<a name="line-208"></a> delete (1),
|
<a name="line-208"></a> attributes AttributeSelection }
|
||||||
<a name="line-209"></a> replace (2),
|
<a name="line-209"></a>@
|
||||||
<a name="line-210"></a> ... },
|
<a name="line-210"></a>
|
||||||
<a name="line-211"></a> modification PartialAttribute } }
|
<a name="line-211"></a>@
|
||||||
<a name="line-212"></a>@
|
<a name="line-212"></a>ModifyRequest ::= [APPLICATION 6] SEQUENCE {
|
||||||
<a name="line-213"></a>
|
<a name="line-213"></a> object LDAPDN,
|
||||||
<a name="line-214"></a>@
|
<a name="line-214"></a> changes SEQUENCE OF change SEQUENCE {
|
||||||
<a name="line-215"></a>AddRequest ::= [APPLICATION 8] SEQUENCE {
|
<a name="line-215"></a> operation ENUMERATED {
|
||||||
<a name="line-216"></a> entry LDAPDN,
|
<a name="line-216"></a> add (0),
|
||||||
<a name="line-217"></a> attributes AttributeList }
|
<a name="line-217"></a> delete (1),
|
||||||
<a name="line-218"></a>@
|
<a name="line-218"></a> replace (2),
|
||||||
<a name="line-219"></a>
|
<a name="line-219"></a> ... },
|
||||||
<a name="line-220"></a>@
|
<a name="line-220"></a> modification PartialAttribute } }
|
||||||
<a name="line-221"></a>DelRequest ::= [APPLICATION 10] LDAPDN
|
<a name="line-221"></a>@
|
||||||
<a name="line-222"></a>@
|
<a name="line-222"></a>
|
||||||
<a name="line-223"></a>
|
<a name="line-223"></a>@
|
||||||
<a name="line-224"></a>@
|
<a name="line-224"></a>AddRequest ::= [APPLICATION 8] SEQUENCE {
|
||||||
<a name="line-225"></a>ModifyDNRequest ::= [APPLICATION 12] SEQUENCE {
|
<a name="line-225"></a> entry LDAPDN,
|
||||||
<a name="line-226"></a> entry LDAPDN,
|
<a name="line-226"></a> attributes AttributeList }
|
||||||
<a name="line-227"></a> newrdn RelativeLDAPDN,
|
<a name="line-227"></a>@
|
||||||
<a name="line-228"></a> deleteoldrdn BOOLEAN,
|
<a name="line-228"></a>
|
||||||
<a name="line-229"></a> newSuperior [0] LDAPDN OPTIONAL }
|
<a name="line-229"></a>@
|
||||||
<a name="line-230"></a>@
|
<a name="line-230"></a>DelRequest ::= [APPLICATION 10] LDAPDN
|
||||||
<a name="line-231"></a>
|
<a name="line-231"></a>@
|
||||||
<a name="line-232"></a>@
|
<a name="line-232"></a>
|
||||||
<a name="line-233"></a>CompareRequest ::= [APPLICATION 14] SEQUENCE {
|
<a name="line-233"></a>@
|
||||||
<a name="line-234"></a> entry LDAPDN,
|
<a name="line-234"></a>ModifyDNRequest ::= [APPLICATION 12] SEQUENCE {
|
||||||
<a name="line-235"></a> ava AttributeValueAssertion }
|
<a name="line-235"></a> entry LDAPDN,
|
||||||
<a name="line-236"></a>@
|
<a name="line-236"></a> newrdn RelativeLDAPDN,
|
||||||
<a name="line-237"></a>
|
<a name="line-237"></a> deleteoldrdn BOOLEAN,
|
||||||
<a name="line-238"></a>@
|
<a name="line-238"></a> newSuperior [0] LDAPDN OPTIONAL }
|
||||||
<a name="line-239"></a>ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
|
<a name="line-239"></a>@
|
||||||
<a name="line-240"></a> requestName [0] LDAPOID,
|
<a name="line-240"></a>
|
||||||
<a name="line-241"></a> requestValue [1] OCTET STRING OPTIONAL }
|
<a name="line-241"></a>@
|
||||||
<a name="line-242"></a>@
|
<a name="line-242"></a>CompareRequest ::= [APPLICATION 14] SEQUENCE {
|
||||||
<a name="line-243"></a>-}</span>
|
<a name="line-243"></a> entry LDAPDN,
|
||||||
<a name="line-244"></a><a name="instance%20ToAsn1%20ProtocolClientOp"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>ProtocolClientOp</span> <span class='hs-keyword'>where</span>
|
<a name="line-244"></a> ava AttributeValueAssertion }
|
||||||
<a name="line-245"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>BindRequest</span> <span class='hs-varid'>v</span> <span class='hs-varid'>n</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-245"></a>@
|
||||||
<a name="line-246"></a> <span class='hs-varid'>application</span> <span class='hs-num'>0</span> <span class='hs-layout'>(</span><span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>IntVal</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>n</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
<a name="line-246"></a>
|
||||||
<a name="line-247"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-conid'>UnbindRequest</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-247"></a>@
|
||||||
<a name="line-248"></a> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>2</span> <span class='hs-varid'>mempty</span>
|
<a name="line-248"></a>ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
|
||||||
<a name="line-249"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>SearchRequest</span> <span class='hs-varid'>bo</span> <span class='hs-varid'>s</span> <span class='hs-varid'>da</span> <span class='hs-varid'>sl</span> <span class='hs-varid'>tl</span> <span class='hs-varid'>to</span> <span class='hs-varid'>f</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-249"></a> requestName [0] LDAPOID,
|
||||||
<a name="line-250"></a> <span class='hs-varid'>application</span> <span class='hs-num'>3</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span>
|
<a name="line-250"></a> requestValue [1] OCTET STRING OPTIONAL }
|
||||||
<a name="line-251"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>bo</span>
|
<a name="line-251"></a>@
|
||||||
<a name="line-252"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>enum</span> <span class='hs-varid'>s'</span>
|
<a name="line-252"></a>-}</span>
|
||||||
<a name="line-253"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>enum</span> <span class='hs-varid'>da'</span>
|
<a name="line-253"></a><a name="instance%20ToAsn1%20ProtocolClientOp"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>ProtocolClientOp</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-254"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>IntVal</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>sl</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-254"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>BindRequest</span> <span class='hs-varid'>v</span> <span class='hs-varid'>n</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-255"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>IntVal</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>tl</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-255"></a> <span class='hs-varid'>application</span> <span class='hs-num'>0</span> <span class='hs-layout'>(</span><span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>IntVal</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>n</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-256"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Boolean</span> <span class='hs-varid'>to</span><span class='hs-layout'>)</span>
|
<a name="line-256"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-conid'>UnbindRequest</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-257"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>f</span>
|
<a name="line-257"></a> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>2</span> <span class='hs-varid'>mempty</span>
|
||||||
<a name="line-258"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>a</span>
|
<a name="line-258"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>SearchRequest</span> <span class='hs-varid'>bo</span> <span class='hs-varid'>s</span> <span class='hs-varid'>da</span> <span class='hs-varid'>sl</span> <span class='hs-varid'>tl</span> <span class='hs-varid'>to</span> <span class='hs-varid'>f</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-259"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
<a name="line-259"></a> <span class='hs-varid'>application</span> <span class='hs-num'>3</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span>
|
||||||
<a name="line-260"></a> <span class='hs-keyword'>where</span>
|
<a name="line-260"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>bo</span>
|
||||||
<a name="line-261"></a> <span class='hs-varid'>s'</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>s</span> <span class='hs-keyword'>of</span>
|
<a name="line-261"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>enum</span> <span class='hs-varid'>s'</span>
|
||||||
<a name="line-262"></a> <span class='hs-conid'>BaseObject</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>0</span>
|
<a name="line-262"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>enum</span> <span class='hs-varid'>da'</span>
|
||||||
<a name="line-263"></a> <span class='hs-conid'>SingleLevel</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>1</span>
|
<a name="line-263"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>IntVal</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>sl</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-264"></a> <span class='hs-conid'>WholeSubtree</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>2</span>
|
<a name="line-264"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>IntVal</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>tl</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-265"></a> <span class='hs-varid'>da'</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>da</span> <span class='hs-keyword'>of</span>
|
<a name="line-265"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Boolean</span> <span class='hs-varid'>to</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-266"></a> <span class='hs-conid'>NeverDerefAliases</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>0</span>
|
<a name="line-266"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>f</span>
|
||||||
<a name="line-267"></a> <span class='hs-conid'>DerefInSearching</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>1</span>
|
<a name="line-267"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>a</span>
|
||||||
<a name="line-268"></a> <span class='hs-conid'>DerefFindingBaseObject</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>2</span>
|
<a name="line-268"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-269"></a> <span class='hs-conid'>DerefAlways</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>3</span>
|
<a name="line-269"></a> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-270"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>ModifyRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-270"></a> <span class='hs-varid'>s'</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>s</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-271"></a> <span class='hs-varid'>application</span> <span class='hs-num'>6</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span>
|
<a name="line-271"></a> <span class='hs-conid'>BaseObject</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>0</span>
|
||||||
<a name="line-272"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>dn</span>
|
<a name="line-272"></a> <span class='hs-conid'>SingleLevel</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>1</span>
|
||||||
<a name="line-273"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>foldMap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-varid'>op</span><span class='hs-layout'>,</span> <span class='hs-varid'>pa</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>enum</span> <span class='hs-layout'>(</span><span class='hs-keyword'>case</span> <span class='hs-varid'>op</span> <span class='hs-keyword'>of</span>
|
<a name="line-273"></a> <span class='hs-conid'>WholeSubtree</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>2</span>
|
||||||
<a name="line-274"></a> <span class='hs-conid'>Add</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>0</span>
|
<a name="line-274"></a> <span class='hs-varid'>da'</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>da</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-275"></a> <span class='hs-conid'>Delete</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>1</span>
|
<a name="line-275"></a> <span class='hs-conid'>NeverDerefAliases</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>0</span>
|
||||||
<a name="line-276"></a> <span class='hs-conid'>Replace</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>2</span><span class='hs-layout'>)</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>pa</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-276"></a> <span class='hs-conid'>DerefInSearching</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>1</span>
|
||||||
<a name="line-277"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
<a name="line-277"></a> <span class='hs-conid'>DerefFindingBaseObject</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>2</span>
|
||||||
<a name="line-278"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AddRequest</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-278"></a> <span class='hs-conid'>DerefAlways</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>3</span>
|
||||||
<a name="line-279"></a> <span class='hs-varid'>application</span> <span class='hs-num'>8</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>dn</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span>
|
<a name="line-279"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>ModifyRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-280"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>DeleteRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-280"></a> <span class='hs-varid'>application</span> <span class='hs-num'>6</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span>
|
||||||
<a name="line-281"></a> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>10</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span>
|
<a name="line-281"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>dn</span>
|
||||||
<a name="line-282"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>ModifyDnRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-282"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>foldMap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-varid'>op</span><span class='hs-layout'>,</span> <span class='hs-varid'>pa</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>enum</span> <span class='hs-layout'>(</span><span class='hs-keyword'>case</span> <span class='hs-varid'>op</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-283"></a> <span class='hs-varid'>application</span> <span class='hs-num'>12</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span>
|
<a name="line-283"></a> <span class='hs-conid'>Add</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>0</span>
|
||||||
<a name="line-284"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>dn</span>
|
<a name="line-284"></a> <span class='hs-conid'>Delete</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>1</span>
|
||||||
<a name="line-285"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>rdn</span>
|
<a name="line-285"></a> <span class='hs-conid'>Replace</span> <span class='hs-keyglyph'>-></span> <span class='hs-num'>2</span><span class='hs-layout'>)</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>pa</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-286"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Boolean</span> <span class='hs-varid'>del</span><span class='hs-layout'>)</span>
|
<a name="line-286"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-287"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>maybe</span> <span class='hs-varid'>mempty</span>
|
<a name="line-287"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AddRequest</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-288"></a> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-288"></a> <span class='hs-varid'>application</span> <span class='hs-num'>8</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>dn</span> <span class='hs-varop'><></span> <span class='hs-varid'>toAsn1</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-289"></a> <span class='hs-varid'>new</span>
|
<a name="line-289"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>DeleteRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-290"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
<a name="line-290"></a> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span> <span class='hs-num'>10</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-291"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>CompareRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>av</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-291"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>ModifyDnRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-292"></a> <span class='hs-varid'>application</span> <span class='hs-num'>14</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>dn</span> <span class='hs-varop'><></span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>av</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-292"></a> <span class='hs-varid'>application</span> <span class='hs-num'>12</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span>
|
||||||
<a name="line-293"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>ExtendedRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapOid</span> <span class='hs-varid'>oid</span><span class='hs-layout'>)</span> <span class='hs-varid'>mv</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-293"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>dn</span>
|
||||||
<a name="line-294"></a> <span class='hs-varid'>application</span> <span class='hs-num'>23</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span>
|
<a name="line-294"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>rdn</span>
|
||||||
<a name="line-295"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span> <span class='hs-varid'>oid</span>
|
<a name="line-295"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Boolean</span> <span class='hs-varid'>del</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-296"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>maybe</span> <span class='hs-varid'>mempty</span> <span class='hs-layout'>(</span><span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span> <span class='hs-varid'>mv</span>
|
<a name="line-296"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>maybe</span> <span class='hs-varid'>mempty</span>
|
||||||
<a name="line-297"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
<a name="line-297"></a> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-298"></a>
|
<a name="line-298"></a> <span class='hs-varid'>new</span>
|
||||||
<a name="line-299"></a><a name="instance%20ToAsn1%20AuthenticationChoice"></a><span class='hs-comment'>{- |
|
<a name="line-299"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-300"></a>@
|
<a name="line-300"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>CompareRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>av</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-301"></a>AuthenticationChoice ::= CHOICE {
|
<a name="line-301"></a> <span class='hs-varid'>application</span> <span class='hs-num'>14</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>dn</span> <span class='hs-varop'><></span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>av</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-302"></a> simple [0] OCTET STRING,
|
<a name="line-302"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>ExtendedRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapOid</span> <span class='hs-varid'>oid</span><span class='hs-layout'>)</span> <span class='hs-varid'>mv</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-303"></a> ... }
|
<a name="line-303"></a> <span class='hs-varid'>application</span> <span class='hs-num'>23</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span>
|
||||||
<a name="line-304"></a>@
|
<a name="line-304"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>oid</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-305"></a>-}</span>
|
<a name="line-305"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>maybe</span> <span class='hs-varid'>mempty</span> <span class='hs-layout'>(</span><span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span> <span class='hs-varid'>mv</span>
|
||||||
<a name="line-306"></a><a name="instance%20ToAsn1%20AuthenticationChoice"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AuthenticationChoice</span> <span class='hs-keyword'>where</span>
|
<a name="line-306"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-307"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>Simple</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span> <span class='hs-varid'>s</span>
|
<a name="line-307"></a>
|
||||||
<a name="line-308"></a>
|
<a name="line-308"></a><a name="instance%20ToAsn1%20AuthenticationChoice"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-309"></a><a name="instance%20ToAsn1%20AttributeSelection"></a><span class='hs-comment'>{- |
|
<a name="line-309"></a>@
|
||||||
<a name="line-310"></a>@
|
<a name="line-310"></a>AuthenticationChoice ::= CHOICE {
|
||||||
<a name="line-311"></a>AttributeSelection ::= SEQUENCE OF selector LDAPString
|
<a name="line-311"></a> simple [0] OCTET STRING,
|
||||||
<a name="line-312"></a>@
|
<a name="line-312"></a> ... }
|
||||||
<a name="line-313"></a>-}</span>
|
<a name="line-313"></a>@
|
||||||
<a name="line-314"></a><a name="instance%20ToAsn1%20AttributeSelection"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AttributeSelection</span> <span class='hs-keyword'>where</span>
|
<a name="line-314"></a>-}</span>
|
||||||
<a name="line-315"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeSelection</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span>
|
<a name="line-315"></a><a name="instance%20ToAsn1%20AuthenticationChoice"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AuthenticationChoice</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-316"></a>
|
<a name="line-316"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>Simple</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span> <span class='hs-varid'>s</span>
|
||||||
<a name="line-317"></a><a name="instance%20ToAsn1%20Filter"></a><span class='hs-comment'>{- |
|
<a name="line-317"></a>
|
||||||
<a name="line-318"></a>@
|
<a name="line-318"></a><a name="instance%20ToAsn1%20AttributeSelection"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-319"></a>Filter ::= CHOICE {
|
<a name="line-319"></a>@
|
||||||
<a name="line-320"></a> and [0] SET SIZE (1..MAX) OF filter Filter,
|
<a name="line-320"></a>AttributeSelection ::= SEQUENCE OF selector LDAPString
|
||||||
<a name="line-321"></a> or [1] SET SIZE (1..MAX) OF filter Filter,
|
<a name="line-321"></a>@
|
||||||
<a name="line-322"></a> not [2] Filter,
|
<a name="line-322"></a>-}</span>
|
||||||
<a name="line-323"></a> equalityMatch [3] AttributeValueAssertion,
|
<a name="line-323"></a><a name="instance%20ToAsn1%20AttributeSelection"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AttributeSelection</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-324"></a> substrings [4] SubstringFilter,
|
<a name="line-324"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeSelection</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-325"></a> greaterOrEqual [5] AttributeValueAssertion,
|
<a name="line-325"></a>
|
||||||
<a name="line-326"></a> lessOrEqual [6] AttributeValueAssertion,
|
<a name="line-326"></a><a name="instance%20ToAsn1%20Filter"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-327"></a> present [7] AttributeDescription,
|
<a name="line-327"></a>@
|
||||||
<a name="line-328"></a> approxMatch [8] AttributeValueAssertion,
|
<a name="line-328"></a>Filter ::= CHOICE {
|
||||||
<a name="line-329"></a> extensibleMatch [9] MatchingRuleAssertion,
|
<a name="line-329"></a> and [0] SET SIZE (1..MAX) OF filter Filter,
|
||||||
<a name="line-330"></a> ... }
|
<a name="line-330"></a> or [1] SET SIZE (1..MAX) OF filter Filter,
|
||||||
<a name="line-331"></a>@
|
<a name="line-331"></a> not [2] Filter,
|
||||||
<a name="line-332"></a>-}</span>
|
<a name="line-332"></a> equalityMatch [3] AttributeValueAssertion,
|
||||||
<a name="line-333"></a><a name="instance%20ToAsn1%20Filter"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>Filter</span> <span class='hs-keyword'>where</span>
|
<a name="line-333"></a> substrings [4] SubstringFilter,
|
||||||
<a name="line-334"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>f</span> <span class='hs-keyword'>of</span>
|
<a name="line-334"></a> greaterOrEqual [5] AttributeValueAssertion,
|
||||||
<a name="line-335"></a> <span class='hs-conid'>And</span> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>0</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-335"></a> lessOrEqual [6] AttributeValueAssertion,
|
||||||
<a name="line-336"></a> <span class='hs-conid'>Or</span> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>1</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-336"></a> present [7] AttributeDescription,
|
||||||
<a name="line-337"></a> <span class='hs-conid'>Not</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>2</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
<a name="line-337"></a> approxMatch [8] AttributeValueAssertion,
|
||||||
<a name="line-338"></a> <span class='hs-conid'>EqualityMatch</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>3</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
<a name="line-338"></a> extensibleMatch [9] MatchingRuleAssertion,
|
||||||
<a name="line-339"></a> <span class='hs-conid'>Substrings</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>4</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
<a name="line-339"></a> ... }
|
||||||
<a name="line-340"></a> <span class='hs-conid'>GreaterOrEqual</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>5</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
<a name="line-340"></a>@
|
||||||
<a name="line-341"></a> <span class='hs-conid'>LessOrEqual</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>6</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
<a name="line-341"></a>-}</span>
|
||||||
<a name="line-342"></a> <span class='hs-conid'>Present</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-342"></a><a name="instance%20ToAsn1%20Filter"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>Filter</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-343"></a> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>7</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
<a name="line-343"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>f</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-344"></a> <span class='hs-conid'>ApproxMatch</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>8</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
<a name="line-344"></a> <span class='hs-conid'>And</span> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>0</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-345"></a> <span class='hs-conid'>ExtensibleMatch</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>9</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
<a name="line-345"></a> <span class='hs-conid'>Or</span> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>1</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-346"></a>
|
<a name="line-346"></a> <span class='hs-conid'>Not</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>2</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-347"></a><a name="instance%20ToAsn1%20SubstringFilter"></a><span class='hs-comment'>{- |
|
<a name="line-347"></a> <span class='hs-conid'>EqualityMatch</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>3</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-348"></a>@
|
<a name="line-348"></a> <span class='hs-conid'>Substrings</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>4</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-349"></a>SubstringFilter ::= SEQUENCE {
|
<a name="line-349"></a> <span class='hs-conid'>GreaterOrEqual</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>5</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-350"></a> type AttributeDescription,
|
<a name="line-350"></a> <span class='hs-conid'>LessOrEqual</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>6</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-351"></a> substrings SEQUENCE SIZE (1..MAX) OF substring CHOICE {
|
<a name="line-351"></a> <span class='hs-conid'>Present</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-352"></a> initial [0] AssertionValue, -- can occur at most once
|
<a name="line-352"></a> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>7</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-353"></a> any [1] AssertionValue,
|
<a name="line-353"></a> <span class='hs-conid'>ApproxMatch</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>8</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-354"></a> final [2] AssertionValue } -- can occur at most once
|
<a name="line-354"></a> <span class='hs-conid'>ExtensibleMatch</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>context</span> <span class='hs-num'>9</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-355"></a> }
|
<a name="line-355"></a>
|
||||||
<a name="line-356"></a>@
|
<a name="line-356"></a><a name="instance%20ToAsn1%20SubstringFilter"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-357"></a>-}</span>
|
<a name="line-357"></a>@
|
||||||
<a name="line-358"></a><a name="instance%20ToAsn1%20SubstringFilter"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>SubstringFilter</span> <span class='hs-keyword'>where</span>
|
<a name="line-358"></a>SubstringFilter ::= SEQUENCE {
|
||||||
<a name="line-359"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>SubstringFilter</span> <span class='hs-varid'>ad</span> <span class='hs-varid'>ss</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-359"></a> type AttributeDescription,
|
||||||
<a name="line-360"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>ad</span> <span class='hs-varop'><></span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>foldMap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>case</span> <span class='hs-varid'>s</span> <span class='hs-keyword'>of</span>
|
<a name="line-360"></a> substrings SEQUENCE SIZE (1..MAX) OF substring CHOICE {
|
||||||
<a name="line-361"></a> <span class='hs-conid'>Initial</span> <span class='hs-layout'>(</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span> <span class='hs-varid'>v</span>
|
<a name="line-361"></a> initial [0] AssertionValue, -- can occur at most once
|
||||||
<a name="line-362"></a> <span class='hs-conid'>Any</span> <span class='hs-layout'>(</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>1</span> <span class='hs-varid'>v</span>
|
<a name="line-362"></a> any [1] AssertionValue,
|
||||||
<a name="line-363"></a> <span class='hs-conid'>Final</span> <span class='hs-layout'>(</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>2</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-varid'>ss</span><span class='hs-layout'>)</span>
|
<a name="line-363"></a> final [2] AssertionValue } -- can occur at most once
|
||||||
<a name="line-364"></a>
|
<a name="line-364"></a> }
|
||||||
<a name="line-365"></a><a name="instance%20ToAsn1%20MatchingRuleAssertion"></a><span class='hs-comment'>{- |
|
<a name="line-365"></a>@
|
||||||
<a name="line-366"></a>@
|
<a name="line-366"></a>-}</span>
|
||||||
<a name="line-367"></a>MatchingRuleAssertion ::= SEQUENCE {
|
<a name="line-367"></a><a name="instance%20ToAsn1%20SubstringFilter"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>SubstringFilter</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-368"></a> matchingRule [1] MatchingRuleId OPTIONAL,
|
<a name="line-368"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>SubstringFilter</span> <span class='hs-varid'>ad</span> <span class='hs-varid'>ss</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-369"></a> type [2] AttributeDescription OPTIONAL,
|
<a name="line-369"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-varid'>ad</span> <span class='hs-varop'><></span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>foldMap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>s</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>case</span> <span class='hs-varid'>s</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-370"></a> matchValue [3] AssertionValue,
|
<a name="line-370"></a> <span class='hs-conid'>Initial</span> <span class='hs-layout'>(</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>0</span> <span class='hs-varid'>v</span>
|
||||||
<a name="line-371"></a> dnAttributes [4] BOOLEAN DEFAULT FALSE }
|
<a name="line-371"></a> <span class='hs-conid'>Any</span> <span class='hs-layout'>(</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>1</span> <span class='hs-varid'>v</span>
|
||||||
<a name="line-372"></a>@
|
<a name="line-372"></a> <span class='hs-conid'>Final</span> <span class='hs-layout'>(</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>2</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-varid'>ss</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-373"></a>-}</span>
|
<a name="line-373"></a>
|
||||||
<a name="line-374"></a><a name="instance%20ToAsn1%20MatchingRuleAssertion"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>MatchingRuleAssertion</span> <span class='hs-keyword'>where</span>
|
<a name="line-374"></a><a name="instance%20ToAsn1%20MatchingRuleAssertion"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-375"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>MatchingRuleAssertion</span> <span class='hs-varid'>mmr</span> <span class='hs-varid'>mad</span> <span class='hs-varid'>av</span> <span class='hs-varid'>b</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>fold</span>
|
<a name="line-375"></a>@
|
||||||
<a name="line-376"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>context</span> <span class='hs-num'>1</span> <span class='hs-layout'>(</span><span class='hs-varid'>optional</span> <span class='hs-varid'>mmr</span><span class='hs-layout'>)</span>
|
<a name="line-376"></a>MatchingRuleAssertion ::= SEQUENCE {
|
||||||
<a name="line-377"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>context</span> <span class='hs-num'>2</span> <span class='hs-layout'>(</span><span class='hs-varid'>optional</span> <span class='hs-varid'>mad</span><span class='hs-layout'>)</span>
|
<a name="line-377"></a> matchingRule [1] MatchingRuleId OPTIONAL,
|
||||||
<a name="line-378"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>context</span> <span class='hs-num'>3</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>av</span><span class='hs-layout'>)</span>
|
<a name="line-378"></a> type [2] AttributeDescription OPTIONAL,
|
||||||
<a name="line-379"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>context</span> <span class='hs-num'>4</span> <span class='hs-layout'>(</span><span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Boolean</span> <span class='hs-varid'>b</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-379"></a> matchValue [3] AssertionValue,
|
||||||
<a name="line-380"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
<a name="line-380"></a> dnAttributes [4] BOOLEAN DEFAULT FALSE }
|
||||||
<a name="line-381"></a>
|
<a name="line-381"></a>@
|
||||||
<a name="line-382"></a><a name="instance%20ToAsn1%20AttributeList"></a><span class='hs-comment'>{- |
|
<a name="line-382"></a>-}</span>
|
||||||
<a name="line-383"></a>@
|
<a name="line-383"></a><a name="instance%20ToAsn1%20MatchingRuleAssertion"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>MatchingRuleAssertion</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-384"></a>AttributeList ::= SEQUENCE OF attribute Attribute
|
<a name="line-384"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>MatchingRuleAssertion</span> <span class='hs-varid'>mmr</span> <span class='hs-varid'>mad</span> <span class='hs-layout'>(</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>av</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fold</span>
|
||||||
<a name="line-385"></a>@
|
<a name="line-385"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>maybe</span> <span class='hs-varid'>mempty</span> <span class='hs-varid'>f</span> <span class='hs-varid'>mmr</span>
|
||||||
<a name="line-386"></a>-}</span>
|
<a name="line-386"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>maybe</span> <span class='hs-varid'>mempty</span> <span class='hs-varid'>g</span> <span class='hs-varid'>mad</span>
|
||||||
<a name="line-387"></a><a name="instance%20ToAsn1%20AttributeList"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AttributeList</span> <span class='hs-keyword'>where</span>
|
<a name="line-387"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>3</span> <span class='hs-varid'>av</span>
|
||||||
<a name="line-388"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeList</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-388"></a> <span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-389"></a>
|
<a name="line-389"></a> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-390"></a><a name="instance%20ToAsn1%20%5ba%5d"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>ToAsn1</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyword'>where</span>
|
<a name="line-390"></a> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>MatchingRuleId</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>1</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-391"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>foldMap</span> <span class='hs-varid'>toAsn1</span>
|
<a name="line-391"></a> <span class='hs-varid'>g</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>other</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span> <span class='hs-num'>2</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeUtf8</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-392"></a>
|
<a name="line-392"></a>
|
||||||
<a name="line-393"></a><a name="instance%20ToAsn1%20(NonEmpty%20a)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>ToAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-393"></a><a name="instance%20ToAsn1%20AttributeList"></a><span class='hs-comment'>{- |
|
||||||
<a name="line-394"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>foldMap</span> <span class='hs-varid'>toAsn1</span>
|
<a name="line-394"></a>@
|
||||||
<a name="line-395"></a>
|
<a name="line-395"></a>AttributeList ::= SEQUENCE OF attribute Attribute
|
||||||
<a name="line-396"></a><a name="sequence"></a><span class='hs-definition'>sequence</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
<a name="line-396"></a>@
|
||||||
<a name="line-397"></a><span class='hs-definition'>sequence</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>construction</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span>
|
<a name="line-397"></a>-}</span>
|
||||||
<a name="line-398"></a>
|
<a name="line-398"></a><a name="instance%20ToAsn1%20AttributeList"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-conid'>AttributeList</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-399"></a><a name="set"></a><span class='hs-definition'>set</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
<a name="line-399"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttributeList</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>sequence</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-400"></a><span class='hs-definition'>set</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>construction</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Set</span>
|
<a name="line-400"></a>
|
||||||
<a name="line-401"></a>
|
<a name="line-401"></a><a name="instance%20ToAsn1%20%5ba%5d"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>ToAsn1</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-402"></a><a name="application"></a><span class='hs-definition'>application</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ASN1Tag</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
<a name="line-402"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>foldMap</span> <span class='hs-varid'>toAsn1</span>
|
||||||
<a name="line-403"></a><span class='hs-definition'>application</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>construction</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span>
|
<a name="line-403"></a>
|
||||||
<a name="line-404"></a>
|
<a name="line-404"></a><a name="instance%20ToAsn1%20(NonEmpty%20a)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>ToAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-405"></a><a name="context"></a><span class='hs-definition'>context</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ASN1Tag</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
<a name="line-405"></a> <span class='hs-varid'>toAsn1</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>foldMap</span> <span class='hs-varid'>toAsn1</span>
|
||||||
<a name="line-406"></a><span class='hs-definition'>context</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>construction</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span>
|
<a name="line-406"></a>
|
||||||
<a name="line-407"></a>
|
<a name="line-407"></a><a name="sequence"></a><span class='hs-definition'>sequence</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-408"></a><a name="construction"></a><span class='hs-definition'>construction</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ASN1ConstructionType</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
<a name="line-408"></a><span class='hs-definition'>sequence</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>construction</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Sequence</span>
|
||||||
<a name="line-409"></a><span class='hs-definition'>construction</span> <span class='hs-varid'>t</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-varid'>t</span><span class='hs-layout'>)</span> <span class='hs-varop'><></span> <span class='hs-varid'>x</span> <span class='hs-varop'><></span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-varid'>t</span><span class='hs-layout'>)</span>
|
<a name="line-409"></a>
|
||||||
<a name="line-410"></a>
|
<a name="line-410"></a><a name="set"></a><span class='hs-definition'>set</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-411"></a><a name="other"></a><span class='hs-definition'>other</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ASN1Class</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>ASN1Tag</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
<a name="line-411"></a><span class='hs-definition'>set</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>construction</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Set</span>
|
||||||
<a name="line-412"></a><span class='hs-definition'>other</span> <span class='hs-varid'>c</span> <span class='hs-varid'>t</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Other</span> <span class='hs-varid'>c</span> <span class='hs-varid'>t</span>
|
<a name="line-412"></a>
|
||||||
<a name="line-413"></a>
|
<a name="line-413"></a><a name="application"></a><span class='hs-definition'>application</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ASN1Tag</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-414"></a><a name="optional"></a><span class='hs-definition'>optional</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>Maybe</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
<a name="line-414"></a><span class='hs-definition'>application</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>construction</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Application</span>
|
||||||
<a name="line-415"></a><span class='hs-definition'>optional</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>maybe</span> <span class='hs-varid'>mempty</span> <span class='hs-varid'>toAsn1</span>
|
<a name="line-415"></a>
|
||||||
<a name="line-416"></a>
|
<a name="line-416"></a><a name="context"></a><span class='hs-definition'>context</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ASN1Tag</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-417"></a><a name="enum"></a><span class='hs-definition'>enum</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Integer</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
<a name="line-417"></a><span class='hs-definition'>context</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>construction</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Container</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Context</span>
|
||||||
<a name="line-418"></a><span class='hs-definition'>enum</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Enumerated</span>
|
<a name="line-418"></a>
|
||||||
<a name="line-419"></a>
|
<a name="line-419"></a><a name="construction"></a><span class='hs-definition'>construction</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ASN1ConstructionType</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-420"></a><a name="single"></a><span class='hs-definition'>single</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span>
|
<a name="line-420"></a><span class='hs-definition'>construction</span> <span class='hs-varid'>t</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Start</span> <span class='hs-varid'>t</span><span class='hs-layout'>)</span> <span class='hs-varop'><></span> <span class='hs-varid'>x</span> <span class='hs-varop'><></span> <span class='hs-varid'>single</span> <span class='hs-layout'>(</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>End</span> <span class='hs-varid'>t</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-421"></a><span class='hs-definition'>single</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Endo</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span> <span class='hs-conop'>:</span><span class='hs-layout'>)</span>
|
<a name="line-421"></a>
|
||||||
|
<a name="line-422"></a><a name="other"></a><span class='hs-definition'>other</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ASN1Class</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>ASN1Tag</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
||||||
|
<a name="line-423"></a><span class='hs-definition'>other</span> <span class='hs-varid'>c</span> <span class='hs-varid'>t</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Other</span> <span class='hs-varid'>c</span> <span class='hs-varid'>t</span>
|
||||||
|
<a name="line-424"></a>
|
||||||
|
<a name="line-425"></a><a name="enum"></a><span class='hs-definition'>enum</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Integer</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ASN1</span><span class='hs-keyglyph'>]</span>
|
||||||
|
<a name="line-426"></a><span class='hs-definition'>enum</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>single</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Enumerated</span>
|
||||||
|
<a name="line-427"></a>
|
||||||
|
<a name="line-428"></a><a name="single"></a><span class='hs-definition'>single</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Endo</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span>
|
||||||
|
<a name="line-429"></a><span class='hs-definition'>single</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Endo</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span> <span class='hs-conop'>:</span><span class='hs-layout'>)</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -15,188 +15,211 @@
|
|||||||
<a name="line-6"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-layout'>)</span>
|
<a name="line-6"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-7"></a>
|
<a name="line-7"></a>
|
||||||
<a name="line-8"></a>
|
<a name="line-8"></a>
|
||||||
<a name="line-9"></a><a name="LdapMessage"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>op</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LdapMessage</span>
|
<a name="line-9"></a><a name="LdapMessage"></a><span class='hs-comment'>-- | Message envelope. (Section 4.1.1.)</span>
|
||||||
<a name="line-10"></a> <span class='hs-layout'>{</span> <span class='hs-varid'>ldapMessageId</span> <span class='hs-keyglyph'>::</span> <span class='hs-varop'>!</span><span class='hs-conid'>Id</span>
|
<a name="line-10"></a><a name="LdapMessage"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>op</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LdapMessage</span>
|
||||||
<a name="line-11"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>ldapMessageOp</span> <span class='hs-keyglyph'>::</span> <span class='hs-varop'>!</span><span class='hs-varid'>op</span>
|
<a name="line-11"></a> <span class='hs-layout'>{</span> <span class='hs-varid'>ldapMessageId</span> <span class='hs-keyglyph'>::</span> <span class='hs-varop'>!</span><span class='hs-conid'>Id</span>
|
||||||
<a name="line-12"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>ldapMessageControls</span> <span class='hs-keyglyph'>::</span> <span class='hs-varop'>!</span><span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>Controls</span><span class='hs-layout'>)</span>
|
<a name="line-12"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>ldapMessageOp</span> <span class='hs-keyglyph'>::</span> <span class='hs-varop'>!</span><span class='hs-varid'>op</span>
|
||||||
<a name="line-13"></a> <span class='hs-layout'>}</span> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-13"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>ldapMessageControls</span> <span class='hs-keyglyph'>::</span> <span class='hs-varop'>!</span><span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>Controls</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-14"></a>
|
<a name="line-14"></a> <span class='hs-layout'>}</span> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-15"></a><a name="Id"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Id</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Id</span> <span class='hs-layout'>{</span> <span class='hs-varid'>unId</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int32</span> <span class='hs-layout'>}</span>
|
<a name="line-15"></a>
|
||||||
<a name="line-16"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-16"></a><a name="Id"></a><span class='hs-comment'>-- | Every message being processed has a unique non-zero integer ID. (Section 4.1.1.1.)</span>
|
||||||
<a name="line-17"></a>
|
<a name="line-17"></a><a name="Id"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Id</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Id</span> <span class='hs-layout'>{</span> <span class='hs-varid'>unId</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int32</span> <span class='hs-layout'>}</span>
|
||||||
<a name="line-18"></a><a name="ProtocolClientOp"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>ProtocolClientOp</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-18"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-19"></a> <span class='hs-conid'>BindRequest</span> <span class='hs-conid'>Int8</span> <span class='hs-conid'>LdapDn</span> <span class='hs-conid'>AuthenticationChoice</span>
|
<a name="line-19"></a>
|
||||||
<a name="line-20"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>UnbindRequest</span>
|
<a name="line-20"></a><a name="ProtocolClientOp"></a><span class='hs-comment'>-- | Client requests. The RFC doesn't make a difference between 'ProtocolClientOp'</span>
|
||||||
<a name="line-21"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SearchRequest</span> <span class='hs-conid'>LdapDn</span> <span class='hs-conid'>Scope</span> <span class='hs-conid'>DerefAliases</span> <span class='hs-conid'>Int32</span> <span class='hs-conid'>Int32</span> <span class='hs-conid'>Bool</span> <span class='hs-conid'>Filter</span> <span class='hs-conid'>AttributeSelection</span>
|
<a name="line-21"></a><a name="ProtocolClientOp"></a><span class='hs-comment'>-- and 'ProtocolServerOp' but it's useful to distinguish between them in Haskell.</span>
|
||||||
<a name="line-22"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ModifyRequest</span> <span class='hs-conid'>LdapDn</span> <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-conid'>Operation</span><span class='hs-layout'>,</span> <span class='hs-conid'>PartialAttribute</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span>
|
<a name="line-22"></a><a name="ProtocolClientOp"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>ProtocolClientOp</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-23"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AddRequest</span> <span class='hs-conid'>LdapDn</span> <span class='hs-conid'>AttributeList</span>
|
<a name="line-23"></a> <span class='hs-conid'>BindRequest</span> <span class='hs-varop'>!</span><span class='hs-conid'>Int8</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapDn</span> <span class='hs-varop'>!</span><span class='hs-conid'>AuthenticationChoice</span>
|
||||||
<a name="line-24"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>DeleteRequest</span> <span class='hs-conid'>LdapDn</span>
|
<a name="line-24"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>UnbindRequest</span>
|
||||||
<a name="line-25"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ModifyDnRequest</span> <span class='hs-conid'>LdapDn</span> <span class='hs-conid'>RelativeLdapDn</span> <span class='hs-conid'>Bool</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>LdapDn</span><span class='hs-layout'>)</span>
|
<a name="line-25"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SearchRequest</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapDn</span> <span class='hs-varop'>!</span><span class='hs-conid'>Scope</span> <span class='hs-varop'>!</span><span class='hs-conid'>DerefAliases</span> <span class='hs-varop'>!</span><span class='hs-conid'>Int32</span> <span class='hs-varop'>!</span><span class='hs-conid'>Int32</span> <span class='hs-varop'>!</span><span class='hs-conid'>Bool</span> <span class='hs-varop'>!</span><span class='hs-conid'>Filter</span> <span class='hs-varop'>!</span><span class='hs-conid'>AttributeSelection</span>
|
||||||
<a name="line-26"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>CompareRequest</span> <span class='hs-conid'>LdapDn</span> <span class='hs-conid'>AttributeValueAssertion</span>
|
<a name="line-26"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ModifyRequest</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapDn</span> <span class='hs-varop'>!</span><span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-conid'>Operation</span><span class='hs-layout'>,</span> <span class='hs-conid'>PartialAttribute</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-27"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ExtendedRequest</span> <span class='hs-conid'>LdapOid</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
<a name="line-27"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AddRequest</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapDn</span> <span class='hs-varop'>!</span><span class='hs-conid'>AttributeList</span>
|
||||||
<a name="line-28"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-28"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>DeleteRequest</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapDn</span>
|
||||||
<a name="line-29"></a>
|
<a name="line-29"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ModifyDnRequest</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapDn</span> <span class='hs-varop'>!</span><span class='hs-conid'>RelativeLdapDn</span> <span class='hs-varop'>!</span><span class='hs-conid'>Bool</span> <span class='hs-varop'>!</span><span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>LdapDn</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-30"></a><a name="ProtocolServerOp"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>ProtocolServerOp</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-30"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>CompareRequest</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapDn</span> <span class='hs-varop'>!</span><span class='hs-conid'>AttributeValueAssertion</span>
|
||||||
<a name="line-31"></a> <span class='hs-conid'>BindResponse</span> <span class='hs-conid'>LdapResult</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
<a name="line-31"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ExtendedRequest</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapOid</span> <span class='hs-varop'>!</span><span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-32"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SearchResultEntry</span> <span class='hs-conid'>LdapDn</span> <span class='hs-conid'>PartialAttributeList</span>
|
<a name="line-32"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-33"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SearchResultReference</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Uri</span><span class='hs-layout'>)</span>
|
<a name="line-33"></a>
|
||||||
<a name="line-34"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SearchResultDone</span> <span class='hs-layout'>(</span><span class='hs-conid'>LdapResult</span><span class='hs-layout'>)</span>
|
<a name="line-34"></a><a name="ProtocolServerOp"></a><span class='hs-comment'>-- | Server responses. The RFC doesn't make a difference between 'ProtocolClientOp'</span>
|
||||||
<a name="line-35"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ModifyResponse</span> <span class='hs-conid'>LdapResult</span>
|
<a name="line-35"></a><a name="ProtocolServerOp"></a><span class='hs-comment'>-- and 'ProtocolServerOp' but it's useful to distinguish between them in Haskell.</span>
|
||||||
<a name="line-36"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AddResponse</span> <span class='hs-conid'>LdapResult</span>
|
<a name="line-36"></a><a name="ProtocolServerOp"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>ProtocolServerOp</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-37"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>DeleteResponse</span> <span class='hs-conid'>LdapResult</span>
|
<a name="line-37"></a> <span class='hs-conid'>BindResponse</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapResult</span> <span class='hs-varop'>!</span><span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-38"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ModifyDnResponse</span> <span class='hs-conid'>LdapResult</span>
|
<a name="line-38"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SearchResultEntry</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapDn</span> <span class='hs-varop'>!</span><span class='hs-conid'>PartialAttributeList</span>
|
||||||
<a name="line-39"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>CompareResponse</span> <span class='hs-conid'>LdapResult</span>
|
<a name="line-39"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SearchResultReference</span> <span class='hs-varop'>!</span><span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Uri</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-40"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ExtendedResponse</span> <span class='hs-conid'>LdapResult</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>LdapOid</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
<a name="line-40"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SearchResultDone</span> <span class='hs-varop'>!</span><span class='hs-layout'>(</span><span class='hs-conid'>LdapResult</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-41"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-41"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ModifyResponse</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapResult</span>
|
||||||
<a name="line-42"></a>
|
<a name="line-42"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AddResponse</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapResult</span>
|
||||||
<a name="line-43"></a><a name="AuthenticationChoice"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>AuthenticationChoice</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Simple</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-43"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>DeleteResponse</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapResult</span>
|
||||||
<a name="line-44"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-44"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ModifyDnResponse</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapResult</span>
|
||||||
<a name="line-45"></a>
|
<a name="line-45"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>CompareResponse</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapResult</span>
|
||||||
<a name="line-46"></a><a name="Scope"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Scope</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-46"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ExtendedResponse</span> <span class='hs-varop'>!</span><span class='hs-conid'>LdapResult</span> <span class='hs-varop'>!</span><span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>LdapOid</span><span class='hs-layout'>)</span> <span class='hs-varop'>!</span><span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-47"></a> <span class='hs-conid'>BaseObject</span>
|
<a name="line-47"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>IntermediateResponse</span> <span class='hs-varop'>!</span><span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>LdapOid</span><span class='hs-layout'>)</span> <span class='hs-varop'>!</span><span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-48"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SingleLevel</span>
|
<a name="line-48"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-49"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>WholeSubtree</span>
|
<a name="line-49"></a>
|
||||||
<a name="line-50"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-50"></a><a name="AuthenticationChoice"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>AuthenticationChoice</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Simple</span> <span class='hs-conid'>ByteString</span>
|
||||||
<a name="line-51"></a>
|
<a name="line-51"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-52"></a><a name="DerefAliases"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>DerefAliases</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-52"></a>
|
||||||
<a name="line-53"></a> <span class='hs-conid'>NeverDerefAliases</span>
|
<a name="line-53"></a><a name="Scope"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Scope</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-54"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>DerefInSearching</span>
|
<a name="line-54"></a> <span class='hs-conid'>BaseObject</span>
|
||||||
<a name="line-55"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>DerefFindingBaseObject</span>
|
<a name="line-55"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SingleLevel</span>
|
||||||
<a name="line-56"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>DerefAlways</span>
|
<a name="line-56"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>WholeSubtree</span>
|
||||||
<a name="line-57"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-57"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-58"></a>
|
<a name="line-58"></a>
|
||||||
<a name="line-59"></a><a name="Filter"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Filter</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-59"></a><a name="DerefAliases"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>DerefAliases</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-60"></a> <span class='hs-conid'>And</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>)</span>
|
<a name="line-60"></a> <span class='hs-conid'>NeverDerefAliases</span>
|
||||||
<a name="line-61"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Or</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>)</span>
|
<a name="line-61"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>DerefInSearching</span>
|
||||||
<a name="line-62"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Not</span> <span class='hs-conid'>Filter</span>
|
<a name="line-62"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>DerefFindingBaseObject</span>
|
||||||
<a name="line-63"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>EqualityMatch</span> <span class='hs-conid'>AttributeValueAssertion</span>
|
<a name="line-63"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>DerefAlways</span>
|
||||||
<a name="line-64"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Substrings</span> <span class='hs-conid'>SubstringFilter</span>
|
<a name="line-64"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-65"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>GreaterOrEqual</span> <span class='hs-conid'>AttributeValueAssertion</span>
|
<a name="line-65"></a>
|
||||||
<a name="line-66"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>LessOrEqual</span> <span class='hs-conid'>AttributeValueAssertion</span>
|
<a name="line-66"></a><a name="Filter"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Filter</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-67"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Present</span> <span class='hs-conid'>AttributeDescription</span>
|
<a name="line-67"></a> <span class='hs-conid'>And</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-68"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ApproxMatch</span> <span class='hs-conid'>AttributeValueAssertion</span>
|
<a name="line-68"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Or</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-69"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ExtensibleMatch</span> <span class='hs-conid'>MatchingRuleAssertion</span>
|
<a name="line-69"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Not</span> <span class='hs-conid'>Filter</span>
|
||||||
<a name="line-70"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-70"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>EqualityMatch</span> <span class='hs-conid'>AttributeValueAssertion</span>
|
||||||
<a name="line-71"></a>
|
<a name="line-71"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Substrings</span> <span class='hs-conid'>SubstringFilter</span>
|
||||||
<a name="line-72"></a><a name="SubstringFilter"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>SubstringFilter</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>SubstringFilter</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Substring</span><span class='hs-layout'>)</span>
|
<a name="line-72"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>GreaterOrEqual</span> <span class='hs-conid'>AttributeValueAssertion</span>
|
||||||
<a name="line-73"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-73"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>LessOrEqual</span> <span class='hs-conid'>AttributeValueAssertion</span>
|
||||||
<a name="line-74"></a>
|
<a name="line-74"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Present</span> <span class='hs-conid'>AttributeDescription</span>
|
||||||
<a name="line-75"></a><a name="Substring"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Substring</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-75"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ApproxMatch</span> <span class='hs-conid'>AttributeValueAssertion</span>
|
||||||
<a name="line-76"></a> <span class='hs-conid'>Initial</span> <span class='hs-conid'>AssertionValue</span>
|
<a name="line-76"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ExtensibleMatch</span> <span class='hs-conid'>MatchingRuleAssertion</span>
|
||||||
<a name="line-77"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Any</span> <span class='hs-conid'>AssertionValue</span>
|
<a name="line-77"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-78"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Final</span> <span class='hs-conid'>AssertionValue</span>
|
<a name="line-78"></a>
|
||||||
<a name="line-79"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-79"></a><a name="SubstringFilter"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>SubstringFilter</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>SubstringFilter</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Substring</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-80"></a>
|
<a name="line-80"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-81"></a><a name="MatchingRuleAssertion"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>MatchingRuleAssertion</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>MatchingRuleAssertion</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>MatchingRuleId</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>AttributeDescription</span><span class='hs-layout'>)</span> <span class='hs-conid'>AssertionValue</span> <span class='hs-conid'>Bool</span>
|
<a name="line-81"></a>
|
||||||
<a name="line-82"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-82"></a><a name="Substring"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Substring</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-83"></a>
|
<a name="line-83"></a> <span class='hs-conid'>Initial</span> <span class='hs-conid'>AssertionValue</span>
|
||||||
<a name="line-84"></a><a name="MatchingRuleId"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>MatchingRuleId</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>MatchingRuleId</span> <span class='hs-conid'>LdapString</span>
|
<a name="line-84"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Any</span> <span class='hs-conid'>AssertionValue</span>
|
||||||
<a name="line-85"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-85"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Final</span> <span class='hs-conid'>AssertionValue</span>
|
||||||
<a name="line-86"></a>
|
<a name="line-86"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-87"></a><a name="AttributeSelection"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>AttributeSelection</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AttributeSelection</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>LdapString</span><span class='hs-keyglyph'>]</span>
|
<a name="line-87"></a>
|
||||||
<a name="line-88"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-88"></a><a name="MatchingRuleAssertion"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>MatchingRuleAssertion</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>MatchingRuleAssertion</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>MatchingRuleId</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>AttributeDescription</span><span class='hs-layout'>)</span> <span class='hs-conid'>AssertionValue</span> <span class='hs-conid'>Bool</span>
|
||||||
<a name="line-89"></a>
|
<a name="line-89"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-90"></a><a name="AttributeList"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>AttributeList</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AttributeList</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attribute</span><span class='hs-keyglyph'>]</span>
|
<a name="line-90"></a>
|
||||||
<a name="line-91"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-91"></a><a name="MatchingRuleId"></a><span class='hs-comment'>-- | Matching rules are defined in Section 4.1.3 of [RFC4512]. A matching</span>
|
||||||
<a name="line-92"></a>
|
<a name="line-92"></a><a name="MatchingRuleId"></a><span class='hs-comment'>-- rule is identified in the protocol by the printable representation of</span>
|
||||||
<a name="line-93"></a><a name="PartialAttributeList"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>PartialAttributeList</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>PartialAttributeList</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>PartialAttribute</span><span class='hs-keyglyph'>]</span>
|
<a name="line-93"></a><a name="MatchingRuleId"></a><span class='hs-comment'>-- either its <numericoid> or one of its short name descriptors</span>
|
||||||
<a name="line-94"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-94"></a><a name="MatchingRuleId"></a><span class='hs-comment'>-- [RFC4512], e.g., 'caseIgnoreMatch' or '2.5.13.2'. (Section 4.1.8.)</span>
|
||||||
<a name="line-95"></a>
|
<a name="line-95"></a><a name="MatchingRuleId"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>MatchingRuleId</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>MatchingRuleId</span> <span class='hs-conid'>LdapString</span>
|
||||||
<a name="line-96"></a><a name="Controls"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Controls</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Controls</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Control</span><span class='hs-keyglyph'>]</span>
|
<a name="line-96"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-97"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-97"></a>
|
||||||
<a name="line-98"></a>
|
<a name="line-98"></a><a name="AttributeSelection"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>AttributeSelection</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AttributeSelection</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>LdapString</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-99"></a><a name="Control"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Control</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Control</span> <span class='hs-conid'>LdapOid</span> <span class='hs-conid'>Bool</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
<a name="line-99"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-100"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-100"></a>
|
||||||
<a name="line-101"></a>
|
<a name="line-101"></a><a name="AttributeList"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>AttributeList</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AttributeList</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attribute</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-102"></a><a name="LdapResult"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>LdapResult</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LdapResult</span> <span class='hs-conid'>ResultCode</span> <span class='hs-conid'>LdapDn</span> <span class='hs-conid'>LdapString</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ReferralUris</span><span class='hs-layout'>)</span>
|
<a name="line-102"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-103"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-103"></a>
|
||||||
<a name="line-104"></a>
|
<a name="line-104"></a><a name="PartialAttributeList"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>PartialAttributeList</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>PartialAttributeList</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>PartialAttribute</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-105"></a><a name="ResultCode"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>ResultCode</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-105"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-106"></a> <span class='hs-conid'>Success</span>
|
<a name="line-106"></a>
|
||||||
<a name="line-107"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>OperationError</span>
|
<a name="line-107"></a><a name="Controls"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Controls</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Controls</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Control</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-108"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ProtocolError</span>
|
<a name="line-108"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-109"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>TimeLimitExceeded</span>
|
<a name="line-109"></a>
|
||||||
<a name="line-110"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SizeLimitExceeded</span>
|
<a name="line-110"></a><a name="Control"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Control</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Control</span> <span class='hs-conid'>LdapOid</span> <span class='hs-conid'>Bool</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-111"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>CompareFalse</span>
|
<a name="line-111"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-112"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>CompareTrue</span>
|
<a name="line-112"></a>
|
||||||
<a name="line-113"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AuthMethodNotSupported</span>
|
<a name="line-113"></a><a name="LdapResult"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>LdapResult</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LdapResult</span> <span class='hs-conid'>ResultCode</span> <span class='hs-conid'>LdapDn</span> <span class='hs-conid'>LdapString</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ReferralUris</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-114"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>StrongerAuthRequired</span>
|
<a name="line-114"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-115"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Referral</span>
|
<a name="line-115"></a>
|
||||||
<a name="line-116"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AdminLimitExceeded</span>
|
<a name="line-116"></a><a name="ResultCode"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>ResultCode</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-117"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>UnavailableCriticalExtension</span>
|
<a name="line-117"></a> <span class='hs-conid'>Success</span>
|
||||||
<a name="line-118"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ConfidentialityRequired</span>
|
<a name="line-118"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>OperationError</span>
|
||||||
<a name="line-119"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SaslBindInProgress</span>
|
<a name="line-119"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ProtocolError</span>
|
||||||
<a name="line-120"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>NoSuchAttribute</span>
|
<a name="line-120"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>TimeLimitExceeded</span>
|
||||||
<a name="line-121"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>UndefinedAttributeType</span>
|
<a name="line-121"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SizeLimitExceeded</span>
|
||||||
<a name="line-122"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InappropriateMatching</span>
|
<a name="line-122"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>CompareFalse</span>
|
||||||
<a name="line-123"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ConstraintViolation</span>
|
<a name="line-123"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>CompareTrue</span>
|
||||||
<a name="line-124"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AttributeOrValueExists</span>
|
<a name="line-124"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AuthMethodNotSupported</span>
|
||||||
<a name="line-125"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InvalidAttributeSyntax</span>
|
<a name="line-125"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>StrongerAuthRequired</span>
|
||||||
<a name="line-126"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>NoSuchObject</span>
|
<a name="line-126"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Referral</span>
|
||||||
<a name="line-127"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AliasProblem</span>
|
<a name="line-127"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AdminLimitExceeded</span>
|
||||||
<a name="line-128"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InvalidDNSyntax</span>
|
<a name="line-128"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>UnavailableCriticalExtension</span>
|
||||||
<a name="line-129"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AliasDereferencingProblem</span>
|
<a name="line-129"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ConfidentialityRequired</span>
|
||||||
<a name="line-130"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InappropriateAuthentication</span>
|
<a name="line-130"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>SaslBindInProgress</span>
|
||||||
<a name="line-131"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InvalidCredentials</span>
|
<a name="line-131"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>NoSuchAttribute</span>
|
||||||
<a name="line-132"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InsufficientAccessRights</span>
|
<a name="line-132"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>UndefinedAttributeType</span>
|
||||||
<a name="line-133"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Busy</span>
|
<a name="line-133"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InappropriateMatching</span>
|
||||||
<a name="line-134"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Unavailable</span>
|
<a name="line-134"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ConstraintViolation</span>
|
||||||
<a name="line-135"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>UnwillingToPerform</span>
|
<a name="line-135"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AttributeOrValueExists</span>
|
||||||
<a name="line-136"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>LoopDetect</span>
|
<a name="line-136"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InvalidAttributeSyntax</span>
|
||||||
<a name="line-137"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>NamingViolation</span>
|
<a name="line-137"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>NoSuchObject</span>
|
||||||
<a name="line-138"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ObjectClassViolation</span>
|
<a name="line-138"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AliasProblem</span>
|
||||||
<a name="line-139"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>NotAllowedOnNonLeaf</span>
|
<a name="line-139"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InvalidDNSyntax</span>
|
||||||
<a name="line-140"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>NotAllowedOnRDN</span>
|
<a name="line-140"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AliasDereferencingProblem</span>
|
||||||
<a name="line-141"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>EntryAlreadyExists</span>
|
<a name="line-141"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InappropriateAuthentication</span>
|
||||||
<a name="line-142"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ObjectClassModsProhibited</span>
|
<a name="line-142"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InvalidCredentials</span>
|
||||||
<a name="line-143"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AffectsMultipleDSAs</span>
|
<a name="line-143"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>InsufficientAccessRights</span>
|
||||||
<a name="line-144"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Other</span>
|
<a name="line-144"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Busy</span>
|
||||||
<a name="line-145"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-145"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Unavailable</span>
|
||||||
<a name="line-146"></a>
|
<a name="line-146"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>UnwillingToPerform</span>
|
||||||
<a name="line-147"></a><a name="AttributeDescription"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-conid'>LdapString</span>
|
<a name="line-147"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>LoopDetect</span>
|
||||||
<a name="line-148"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-148"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>NamingViolation</span>
|
||||||
<a name="line-149"></a>
|
<a name="line-149"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ObjectClassViolation</span>
|
||||||
<a name="line-150"></a><a name="AttributeValue"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>AttributeValue</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AttributeValue</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-150"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>NotAllowedOnNonLeaf</span>
|
||||||
<a name="line-151"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-151"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>NotAllowedOnRDN</span>
|
||||||
<a name="line-152"></a>
|
<a name="line-152"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>EntryAlreadyExists</span>
|
||||||
<a name="line-153"></a><a name="AttributeValueAssertion"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-conid'>AssertionValue</span>
|
<a name="line-153"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ObjectClassModsProhibited</span>
|
||||||
<a name="line-154"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-154"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>AffectsMultipleDSAs</span>
|
||||||
<a name="line-155"></a>
|
<a name="line-155"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Other</span>
|
||||||
<a name="line-156"></a><a name="AssertionValue"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>AssertionValue</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AssertionValue</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-156"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-157"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-157"></a>
|
||||||
<a name="line-158"></a>
|
<a name="line-158"></a><a name="AttributeDescription"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-conid'>LdapString</span>
|
||||||
<a name="line-159"></a><a name="Attribute"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Attribute</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Attribute</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>AttributeValue</span><span class='hs-layout'>)</span>
|
<a name="line-159"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-160"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-160"></a>
|
||||||
<a name="line-161"></a>
|
<a name="line-161"></a><a name="AttributeValue"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>AttributeValue</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AttributeValue</span> <span class='hs-conid'>ByteString</span>
|
||||||
<a name="line-162"></a><a name="PartialAttribute"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>PartialAttribute</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>PartialAttribute</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>AttributeValue</span><span class='hs-keyglyph'>]</span>
|
<a name="line-162"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-163"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-163"></a>
|
||||||
<a name="line-164"></a>
|
<a name="line-164"></a><a name="AttributeValueAssertion"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-conid'>AssertionValue</span>
|
||||||
<a name="line-165"></a><a name="LdapDn"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>LdapDn</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LdapDn</span> <span class='hs-conid'>LdapString</span>
|
<a name="line-165"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-166"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-166"></a>
|
||||||
<a name="line-167"></a>
|
<a name="line-167"></a><a name="AssertionValue"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>AssertionValue</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>AssertionValue</span> <span class='hs-conid'>ByteString</span>
|
||||||
<a name="line-168"></a><a name="RelativeLdapDn"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>RelativeLdapDn</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>RelativeLdapDn</span> <span class='hs-conid'>LdapString</span>
|
<a name="line-168"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-169"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-169"></a>
|
||||||
<a name="line-170"></a>
|
<a name="line-170"></a><a name="Attribute"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Attribute</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Attribute</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>AttributeValue</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-171"></a><a name="ReferralUris"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>ReferralUris</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>ReferralUris</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Uri</span><span class='hs-layout'>)</span>
|
<a name="line-171"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-172"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-172"></a>
|
||||||
<a name="line-173"></a>
|
<a name="line-173"></a><a name="PartialAttribute"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>PartialAttribute</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>PartialAttribute</span> <span class='hs-conid'>AttributeDescription</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>AttributeValue</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-174"></a><a name="Uri"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Uri</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Uri</span> <span class='hs-conid'>LdapString</span>
|
<a name="line-174"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-175"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-175"></a>
|
||||||
<a name="line-176"></a>
|
<a name="line-176"></a>
|
||||||
<a name="line-177"></a><a name="Operation"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Operation</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-177"></a>
|
||||||
<a name="line-178"></a> <span class='hs-conid'>Add</span>
|
<a name="line-178"></a><a name="LdapDn"></a><span class='hs-comment'>-- | An LDAPDN is defined to be the representation of a Distinguished Name</span>
|
||||||
<a name="line-179"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Delete</span>
|
<a name="line-179"></a><a name="LdapDn"></a><span class='hs-comment'>-- (DN) after encoding according to the specification in [RFC4514].</span>
|
||||||
<a name="line-180"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Replace</span>
|
<a name="line-180"></a><a name="LdapDn"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>LdapDn</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LdapDn</span> <span class='hs-conid'>LdapString</span>
|
||||||
<a name="line-181"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-181"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-182"></a>
|
<a name="line-182"></a>
|
||||||
<a name="line-183"></a><a name="LdapString"></a><span class='hs-comment'>-- | The LDAPString is a notational convenience to indicate that, although</span>
|
<a name="line-183"></a><a name="RelativeLdapDn"></a><span class='hs-comment'>-- | A RelativeLDAPDN is defined to be the representation of a Relative</span>
|
||||||
<a name="line-184"></a><a name="LdapString"></a><span class='hs-comment'>-- strings of LDAPString type encode as ASN.1 OCTET STRING types, the</span>
|
<a name="line-184"></a><a name="RelativeLdapDn"></a><span class='hs-comment'>-- Distinguished Name (RDN) after encoding according to the</span>
|
||||||
<a name="line-185"></a><a name="LdapString"></a><span class='hs-comment'>-- [ISO10646] character set (a superset of [Unicode]) is used, encoded</span>
|
<a name="line-185"></a><a name="RelativeLdapDn"></a><span class='hs-comment'>-- specification in [RFC4514].</span>
|
||||||
<a name="line-186"></a><a name="LdapString"></a><span class='hs-comment'>-- following the UTF-8 [RFC3629] algorithm.</span>
|
<a name="line-186"></a><a name="RelativeLdapDn"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>RelativeLdapDn</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>RelativeLdapDn</span> <span class='hs-conid'>LdapString</span>
|
||||||
<a name="line-187"></a><a name="LdapString"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>LdapString</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LdapString</span> <span class='hs-conid'>Text</span>
|
<a name="line-187"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-188"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-188"></a>
|
||||||
<a name="line-189"></a>
|
<a name="line-189"></a><a name="ReferralUris"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>ReferralUris</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>ReferralUris</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Uri</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-190"></a><a name="LdapOid"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>LdapOid</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LdapOid</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-190"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-191"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-191"></a>
|
||||||
|
<a name="line-192"></a><a name="Uri"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Uri</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Uri</span> <span class='hs-conid'>LdapString</span>
|
||||||
|
<a name="line-193"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-194"></a>
|
||||||
|
<a name="line-195"></a><a name="Operation"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Operation</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-196"></a> <span class='hs-conid'>Add</span>
|
||||||
|
<a name="line-197"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Delete</span>
|
||||||
|
<a name="line-198"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Replace</span>
|
||||||
|
<a name="line-199"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-200"></a>
|
||||||
|
<a name="line-201"></a><a name="LdapString"></a><span class='hs-comment'>-- | The LDAPString is a notational convenience to indicate that, although</span>
|
||||||
|
<a name="line-202"></a><a name="LdapString"></a><span class='hs-comment'>-- strings of LDAPString type encode as ASN.1 OCTET STRING types, the</span>
|
||||||
|
<a name="line-203"></a><a name="LdapString"></a><span class='hs-comment'>-- [ISO10646] character set (a superset of [Unicode]) is used, encoded</span>
|
||||||
|
<a name="line-204"></a><a name="LdapString"></a><span class='hs-comment'>-- following the UTF-8 [RFC3629] algorithm. (Section 4.1.2.)</span>
|
||||||
|
<a name="line-205"></a><a name="LdapString"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>LdapString</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LdapString</span> <span class='hs-conid'>Text</span>
|
||||||
|
<a name="line-206"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-207"></a>
|
||||||
|
<a name="line-208"></a><a name="LdapOid"></a><span class='hs-comment'>-- | The LDAPOID is a notational convenience to indicate that the</span>
|
||||||
|
<a name="line-209"></a><a name="LdapOid"></a><span class='hs-comment'>-- permitted value of this string is a (UTF-8 encoded) dotted-decimal</span>
|
||||||
|
<a name="line-210"></a><a name="LdapOid"></a><span class='hs-comment'>-- representation of an OBJECT IDENTIFIER. Although an LDAPOID is</span>
|
||||||
|
<a name="line-211"></a><a name="LdapOid"></a><span class='hs-comment'>-- encoded as an OCTET STRING, values are limited to the definition of</span>
|
||||||
|
<a name="line-212"></a><a name="LdapOid"></a><span class='hs-comment'>-- \<numericoid\> given in Section 1.4 of [RFC4512].</span>
|
||||||
|
<a name="line-213"></a><a name="LdapOid"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>LdapOid</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LdapOid</span> <span class='hs-conid'>Text</span>
|
||||||
|
<a name="line-214"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -7,49 +7,71 @@
|
|||||||
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<pre><a name="line-1"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Add</span>
|
<pre><a name="line-1"></a><span class='hs-comment'>-- | <https://tools.ietf.org/html/rfc4511#section-4.7 Add> operation.</span>
|
||||||
<a name="line-2"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>add</span>
|
<a name="line-2"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-3"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>addEither</span>
|
<a name="line-3"></a><span class='hs-comment'>-- This operation comes in four flavours:</span>
|
||||||
<a name="line-4"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>addAsync</span>
|
<a name="line-4"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-5"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>addAsyncSTM</span>
|
<a name="line-5"></a><span class='hs-comment'>-- * synchronous, exception throwing ('add')</span>
|
||||||
<a name="line-6"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-6"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-7"></a>
|
<a name="line-7"></a><span class='hs-comment'>-- * synchronous, returning 'Either' 'ResponseError' @()@ ('addEither')</span>
|
||||||
<a name="line-8"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
<a name="line-8"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-9"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-9"></a><span class='hs-comment'>-- * asynchronous, 'IO' based ('addAsync')</span>
|
||||||
<a name="line-10"></a>
|
<a name="line-10"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-11"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
<a name="line-11"></a><span class='hs-comment'>-- * asynchronous, 'STM' based ('addAsyncSTM')</span>
|
||||||
<a name="line-12"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
<a name="line-12"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-13"></a>
|
<a name="line-13"></a><span class='hs-comment'>-- Of those, the first one ('add') is probably the most useful for the typical usecase.</span>
|
||||||
<a name="line-14"></a>
|
<a name="line-14"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Add</span>
|
||||||
<a name="line-15"></a><a name="add"></a><span class='hs-definition'>add</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrList</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
<a name="line-15"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>add</span>
|
||||||
<a name="line-16"></a><span class='hs-definition'>add</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-16"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>addEither</span>
|
||||||
<a name="line-17"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>addEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span>
|
<a name="line-17"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>addAsync</span>
|
||||||
<a name="line-18"></a>
|
<a name="line-18"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>addAsyncSTM</span>
|
||||||
<a name="line-19"></a><a name="addEither"></a><span class='hs-definition'>addEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrList</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-19"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-20"></a><span class='hs-definition'>addEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-20"></a>
|
||||||
<a name="line-21"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>addAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span>
|
<a name="line-21"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-22"></a>
|
<a name="line-22"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-23"></a><a name="addAsync"></a><span class='hs-definition'>addAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrList</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-23"></a>
|
||||||
<a name="line-24"></a><span class='hs-definition'>addAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-24"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
||||||
<a name="line-25"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>addAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span>
|
<a name="line-25"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
||||||
<a name="line-26"></a>
|
<a name="line-26"></a>
|
||||||
<a name="line-27"></a><a name="addAsyncSTM"></a><span class='hs-definition'>addAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrList</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-27"></a>
|
||||||
<a name="line-28"></a><span class='hs-definition'>addAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-28"></a><a name="add"></a><span class='hs-comment'>-- | Perform the Add operation synchronously. Raises 'ResponseError' on failures.</span>
|
||||||
<a name="line-29"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>addRequest</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>addResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
<a name="line-29"></a><span class='hs-definition'>add</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrList</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
||||||
<a name="line-30"></a>
|
<a name="line-30"></a><span class='hs-definition'>add</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-31"></a><a name="addRequest"></a><span class='hs-definition'>addRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrList</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
<a name="line-31"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>addEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span>
|
||||||
<a name="line-32"></a><span class='hs-definition'>addRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-32"></a>
|
||||||
<a name="line-33"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AddRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-33"></a><a name="addEither"></a><span class='hs-comment'>-- | Perform the Add operation synchronously. Returns @Left e@ where</span>
|
||||||
<a name="line-34"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeList</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>f</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-34"></a><span class='hs-comment'>-- @e@ is a 'ResponseError' on failures.</span>
|
||||||
<a name="line-35"></a> <span class='hs-keyword'>where</span>
|
<a name="line-35"></a><span class='hs-definition'>addEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrList</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-36"></a> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span><span class='hs-layout'>,</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Attribute</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-36"></a><span class='hs-definition'>addEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-37"></a> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-37"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>addAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span>
|
||||||
<a name="line-38"></a>
|
<a name="line-38"></a>
|
||||||
<a name="line-39"></a><a name="addResult"></a><span class='hs-definition'>addResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
<a name="line-39"></a><a name="addAsync"></a><span class='hs-comment'>-- | Perform the Add operation asynchronously. Call 'Ldap.Client.wait' to wait</span>
|
||||||
<a name="line-40"></a><span class='hs-definition'>addResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AddResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-40"></a><span class='hs-comment'>-- for its completion.</span>
|
||||||
<a name="line-41"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
<a name="line-41"></a><span class='hs-definition'>addAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrList</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-42"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
<a name="line-42"></a><span class='hs-definition'>addAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-43"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
<a name="line-43"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>addAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-44"></a><span class='hs-definition'>addResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
<a name="line-44"></a>
|
||||||
|
<a name="line-45"></a><a name="addAsyncSTM"></a><span class='hs-comment'>-- | Perform the Add operation asynchronously.</span>
|
||||||
|
<a name="line-46"></a><span class='hs-comment'>--</span>
|
||||||
|
<a name="line-47"></a><span class='hs-comment'>-- Don't wait for its completion (with 'Ldap.Client.waitSTM') in the</span>
|
||||||
|
<a name="line-48"></a><span class='hs-comment'>-- same transaction you've performed it in.</span>
|
||||||
|
<a name="line-49"></a><span class='hs-definition'>addAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrList</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-50"></a><span class='hs-definition'>addAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-51"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>addRequest</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>addResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-52"></a>
|
||||||
|
<a name="line-53"></a><a name="addRequest"></a><span class='hs-definition'>addRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrList</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
||||||
|
<a name="line-54"></a><span class='hs-definition'>addRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-55"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AddRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-56"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeList</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>f</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-57"></a> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-58"></a> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span><span class='hs-layout'>,</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Attribute</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-59"></a> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-60"></a>
|
||||||
|
<a name="line-61"></a><a name="addResult"></a><span class='hs-definition'>addResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
||||||
|
<a name="line-62"></a><span class='hs-definition'>addResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AddResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-63"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-64"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
||||||
|
<a name="line-65"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-66"></a><span class='hs-definition'>addResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -7,71 +7,71 @@
|
|||||||
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<pre><a name="line-1"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Bind</span>
|
<pre><a name="line-1"></a><span class='hs-comment'>-- | <https://tools.ietf.org/html/rfc4511#section-4.2 Bind> operation.</span>
|
||||||
<a name="line-2"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>bind</span>
|
<a name="line-2"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-3"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>bindEither</span>
|
<a name="line-3"></a><span class='hs-comment'>-- This operation comes in four flavours:</span>
|
||||||
<a name="line-4"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>bindAsync</span>
|
<a name="line-4"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-5"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>bindAsyncSTM</span>
|
<a name="line-5"></a><span class='hs-comment'>-- * synchronous, exception throwing ('bind')</span>
|
||||||
<a name="line-6"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>unbindAsync</span>
|
<a name="line-6"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-7"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>unbindAsyncSTM</span>
|
<a name="line-7"></a><span class='hs-comment'>-- * synchronous, returning 'Either' 'ResponseError' @()@ ('bindEither')</span>
|
||||||
<a name="line-8"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-8"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-9"></a>
|
<a name="line-9"></a><span class='hs-comment'>-- * asynchronous, 'IO' based ('bindAsync')</span>
|
||||||
<a name="line-10"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-varid'>void</span><span class='hs-layout'>)</span>
|
<a name="line-10"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-11"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
<a name="line-11"></a><span class='hs-comment'>-- * asynchronous, 'STM' based ('bindAsyncSTM')</span>
|
||||||
<a name="line-12"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-12"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-13"></a>
|
<a name="line-13"></a><span class='hs-comment'>-- Of those, the first one ('bind') is probably the most useful for the typical usecase.</span>
|
||||||
<a name="line-14"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
<a name="line-14"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Bind</span>
|
||||||
<a name="line-15"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
<a name="line-15"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>bind</span>
|
||||||
<a name="line-16"></a>
|
<a name="line-16"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>bindEither</span>
|
||||||
<a name="line-17"></a>
|
<a name="line-17"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>bindAsync</span>
|
||||||
<a name="line-18"></a><a name="bind"></a><span class='hs-definition'>bind</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
<a name="line-18"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>bindAsyncSTM</span>
|
||||||
<a name="line-19"></a><span class='hs-definition'>bind</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-19"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-20"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>bindEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span>
|
<a name="line-20"></a>
|
||||||
<a name="line-21"></a>
|
<a name="line-21"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-22"></a><a name="bindEither"></a><span class='hs-definition'>bindEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-22"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-23"></a><span class='hs-definition'>bindEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-23"></a>
|
||||||
<a name="line-24"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>bindAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span>
|
<a name="line-24"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
||||||
<a name="line-25"></a>
|
<a name="line-25"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
||||||
<a name="line-26"></a><a name="bindAsync"></a><span class='hs-definition'>bindAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-26"></a>
|
||||||
<a name="line-27"></a><span class='hs-definition'>bindAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-27"></a>
|
||||||
<a name="line-28"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>bindAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span><span class='hs-layout'>)</span>
|
<a name="line-28"></a><a name="bind"></a><span class='hs-comment'>-- | Perform the Bind operation synchronously. Raises 'ResponseError' on failures.</span>
|
||||||
<a name="line-29"></a>
|
<a name="line-29"></a><span class='hs-definition'>bind</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
||||||
<a name="line-30"></a><a name="bindAsyncSTM"></a><span class='hs-definition'>bindAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-30"></a><span class='hs-definition'>bind</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-31"></a><span class='hs-definition'>bindAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-31"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>bindEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span>
|
||||||
<a name="line-32"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>bindRequest</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>bindResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
<a name="line-32"></a>
|
||||||
<a name="line-33"></a>
|
<a name="line-33"></a><a name="bindEither"></a><span class='hs-comment'>-- | Perform the Bind operation synchronously. Returns @Left e@ where</span>
|
||||||
<a name="line-34"></a><a name="bindRequest"></a><span class='hs-definition'>bindRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
<a name="line-34"></a><span class='hs-comment'>-- @e@ is a 'ResponseError' on failures.</span>
|
||||||
<a name="line-35"></a><span class='hs-definition'>bindRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>username</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Password</span> <span class='hs-varid'>password</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-35"></a><span class='hs-definition'>bindEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-36"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>BindRequest</span> <span class='hs-varid'>ldapVersion</span>
|
<a name="line-36"></a><span class='hs-definition'>bindEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-37"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>username</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-37"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>bindAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span>
|
||||||
<a name="line-38"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Simple</span> <span class='hs-varid'>password</span><span class='hs-layout'>)</span>
|
<a name="line-38"></a>
|
||||||
<a name="line-39"></a> <span class='hs-keyword'>where</span>
|
<a name="line-39"></a><a name="bindAsync"></a><span class='hs-comment'>-- | Perform the Bind operation asynchronously. Call 'Ldap.Client.wait' to wait</span>
|
||||||
<a name="line-40"></a> <span class='hs-varid'>ldapVersion</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>3</span>
|
<a name="line-40"></a><span class='hs-comment'>-- for its completion.</span>
|
||||||
<a name="line-41"></a>
|
<a name="line-41"></a><span class='hs-definition'>bindAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-42"></a><a name="bindResult"></a><span class='hs-definition'>bindResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
<a name="line-42"></a><span class='hs-definition'>bindAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-43"></a><span class='hs-definition'>bindResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>BindResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-43"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>bindAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-44"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
<a name="line-44"></a>
|
||||||
<a name="line-45"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
<a name="line-45"></a><a name="bindAsyncSTM"></a><span class='hs-comment'>-- | Perform the Bind operation asynchronously.</span>
|
||||||
<a name="line-46"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
<a name="line-46"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-47"></a><span class='hs-definition'>bindResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
<a name="line-47"></a><span class='hs-comment'>-- Don't wait for its completion (with 'Ldap.Client.waitSTM') in the</span>
|
||||||
<a name="line-48"></a>
|
<a name="line-48"></a><span class='hs-comment'>-- same transaction you've performed it in.</span>
|
||||||
<a name="line-49"></a>
|
<a name="line-49"></a><span class='hs-definition'>bindAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-50"></a><a name="unbindAsync"></a><span class='hs-comment'>-- | Note that 'unbindAsync' does not return an 'Async',</span>
|
<a name="line-50"></a><span class='hs-definition'>bindAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-51"></a><span class='hs-comment'>-- because LDAP server never responds to @UnbindRequest@s, hence</span>
|
<a name="line-51"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>bindRequest</span> <span class='hs-varid'>username</span> <span class='hs-varid'>password</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>bindResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
||||||
<a name="line-52"></a><span class='hs-comment'>-- a call to 'wait' on a hypothetical 'Async' would have resulted</span>
|
<a name="line-52"></a>
|
||||||
<a name="line-53"></a><span class='hs-comment'>-- in an exception anyway.</span>
|
<a name="line-53"></a><a name="bindRequest"></a><span class='hs-definition'>bindRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
||||||
<a name="line-54"></a><span class='hs-definition'>unbindAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
<a name="line-54"></a><span class='hs-definition'>bindRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>username</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Password</span> <span class='hs-varid'>password</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-55"></a><span class='hs-definition'>unbindAsync</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-55"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>BindRequest</span> <span class='hs-varid'>ldapVersion</span>
|
||||||
<a name="line-56"></a> <span class='hs-varid'>atomically</span> <span class='hs-varop'>.</span> <span class='hs-varid'>unbindAsyncSTM</span>
|
<a name="line-56"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>username</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-57"></a>
|
<a name="line-57"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Simple</span> <span class='hs-varid'>password</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-58"></a><a name="unbindAsyncSTM"></a><span class='hs-comment'>-- | Note that 'unbindAsyncSTM' does not return an 'Async',</span>
|
<a name="line-58"></a> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-59"></a><span class='hs-comment'>-- because LDAP server never responds to @UnbindRequest@s, hence</span>
|
<a name="line-59"></a> <span class='hs-varid'>ldapVersion</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>3</span>
|
||||||
<a name="line-60"></a><span class='hs-comment'>-- a call to 'wait' on a hypothetical 'Async' would have resulted</span>
|
<a name="line-60"></a>
|
||||||
<a name="line-61"></a><span class='hs-comment'>-- in an exception anyway.</span>
|
<a name="line-61"></a><a name="bindResult"></a><span class='hs-definition'>bindResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
||||||
<a name="line-62"></a><span class='hs-definition'>unbindAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-conid'>()</span>
|
<a name="line-62"></a><span class='hs-definition'>bindResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>BindResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-63"></a><span class='hs-definition'>unbindAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-63"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-64"></a> <span class='hs-varid'>void</span> <span class='hs-layout'>(</span><span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-varid'>die</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>UnbindRequest</span><span class='hs-layout'>)</span>
|
<a name="line-64"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
||||||
<a name="line-65"></a> <span class='hs-keyword'>where</span>
|
<a name="line-65"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-66"></a> <span class='hs-varid'>die</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>error</span> <span class='hs-str'>"Ldap.Client: do not wait for the response to UnbindRequest"</span>
|
<a name="line-66"></a><span class='hs-definition'>bindResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -7,51 +7,73 @@
|
|||||||
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<pre><a name="line-1"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Compare</span>
|
<pre><a name="line-1"></a><span class='hs-comment'>-- | <https://tools.ietf.org/html/rfc4511#section-4.10 Compare> operation.</span>
|
||||||
<a name="line-2"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>compare</span>
|
<a name="line-2"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-3"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>compareEither</span>
|
<a name="line-3"></a><span class='hs-comment'>-- This operation comes in four flavours:</span>
|
||||||
<a name="line-4"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>compareAsync</span>
|
<a name="line-4"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-5"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>compareAsyncSTM</span>
|
<a name="line-5"></a><span class='hs-comment'>-- * synchronous, exception throwing ('compare')</span>
|
||||||
<a name="line-6"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-6"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-7"></a>
|
<a name="line-7"></a><span class='hs-comment'>-- * synchronous, returning 'Either' 'ResponseError' @()@ ('compareEither')</span>
|
||||||
<a name="line-8"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
<a name="line-8"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-9"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span> <span class='hs-layout'>(</span><span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
<a name="line-9"></a><span class='hs-comment'>-- * asynchronous, 'IO' based ('compareAsync')</span>
|
||||||
<a name="line-10"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-10"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-11"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span><span class='hs-varid'>compare</span><span class='hs-layout'>)</span>
|
<a name="line-11"></a><span class='hs-comment'>-- * asynchronous, 'STM' based ('compareAsyncSTM')</span>
|
||||||
<a name="line-12"></a>
|
<a name="line-12"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-13"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
<a name="line-13"></a><span class='hs-comment'>-- Of those, the first one ('compare') is probably the most useful for the</span>
|
||||||
<a name="line-14"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
<a name="line-14"></a><span class='hs-comment'>-- typical usecase.</span>
|
||||||
<a name="line-15"></a>
|
<a name="line-15"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Compare</span>
|
||||||
<a name="line-16"></a>
|
<a name="line-16"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>compare</span>
|
||||||
<a name="line-17"></a><a name="compare"></a><span class='hs-definition'>compare</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Bool</span>
|
<a name="line-17"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>compareEither</span>
|
||||||
<a name="line-18"></a><span class='hs-definition'>compare</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-18"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>compareAsync</span>
|
||||||
<a name="line-19"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>compareEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span>
|
<a name="line-19"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>compareAsyncSTM</span>
|
||||||
<a name="line-20"></a>
|
<a name="line-20"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-21"></a><a name="compareEither"></a><span class='hs-definition'>compareEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span>
|
<a name="line-21"></a>
|
||||||
<a name="line-22"></a><span class='hs-definition'>compareEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-22"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-23"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>compareAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span>
|
<a name="line-23"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-24"></a>
|
<a name="line-24"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span><span class='hs-varid'>compare</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-25"></a><a name="compareAsync"></a><span class='hs-definition'>compareAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span>
|
<a name="line-25"></a>
|
||||||
<a name="line-26"></a><span class='hs-definition'>compareAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-26"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
||||||
<a name="line-27"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>compareAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span>
|
<a name="line-27"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
||||||
<a name="line-28"></a>
|
<a name="line-28"></a>
|
||||||
<a name="line-29"></a><a name="compareAsyncSTM"></a><span class='hs-definition'>compareAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span>
|
<a name="line-29"></a>
|
||||||
<a name="line-30"></a><span class='hs-definition'>compareAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-30"></a><a name="compare"></a><span class='hs-comment'>-- | Perform the Compare operation synchronously. Raises 'ResponseError' on failures.</span>
|
||||||
<a name="line-31"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compareRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>compareResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
<a name="line-31"></a><span class='hs-definition'>compare</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrValue</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Bool</span>
|
||||||
<a name="line-32"></a>
|
<a name="line-32"></a><span class='hs-definition'>compare</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-33"></a><a name="compareRequest"></a><span class='hs-definition'>compareRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
<a name="line-33"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>compareEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span>
|
||||||
<a name="line-34"></a><span class='hs-definition'>compareRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-34"></a>
|
||||||
<a name="line-35"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>CompareRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-35"></a><a name="compareEither"></a><span class='hs-comment'>-- | Perform the Compare operation synchronously. Returns @Left e@ where</span>
|
||||||
<a name="line-36"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValueAssertion</span>
|
<a name="line-36"></a><span class='hs-comment'>-- @e@ is a 'ResponseError' on failures.</span>
|
||||||
<a name="line-37"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-37"></a><span class='hs-definition'>compareEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrValue</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-38"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-38"></a><span class='hs-definition'>compareEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-39"></a>
|
<a name="line-39"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>compareAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span>
|
||||||
<a name="line-40"></a><a name="compareResult"></a><span class='hs-definition'>compareResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>Bool</span>
|
<a name="line-40"></a>
|
||||||
<a name="line-41"></a><span class='hs-definition'>compareResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>CompareResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-41"></a><a name="compareAsync"></a><span class='hs-comment'>-- | Perform the Compare operation asynchronously. Call 'Ldap.Client.wait' to wait</span>
|
||||||
<a name="line-42"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
<a name="line-42"></a><span class='hs-comment'>-- for its completion.</span>
|
||||||
<a name="line-43"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>CompareTrue</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>True</span>
|
<a name="line-43"></a><span class='hs-definition'>compareAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrValue</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-44"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>CompareFalse</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>False</span>
|
<a name="line-44"></a><span class='hs-definition'>compareAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-45"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
<a name="line-45"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>compareAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-46"></a><span class='hs-definition'>compareResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
<a name="line-46"></a>
|
||||||
|
<a name="line-47"></a><a name="compareAsyncSTM"></a><span class='hs-comment'>-- | Perform the Compare operation asynchronously.</span>
|
||||||
|
<a name="line-48"></a><span class='hs-comment'>--</span>
|
||||||
|
<a name="line-49"></a><span class='hs-comment'>-- Don't wait for its completion (with 'Ldap.Client.waitSTM') in the</span>
|
||||||
|
<a name="line-50"></a><span class='hs-comment'>-- same transaction you've performed it in.</span>
|
||||||
|
<a name="line-51"></a><span class='hs-definition'>compareAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrValue</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-52"></a><span class='hs-definition'>compareAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-53"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compareRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>compareResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-54"></a>
|
||||||
|
<a name="line-55"></a><a name="compareRequest"></a><span class='hs-definition'>compareRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>AttrValue</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
||||||
|
<a name="line-56"></a><span class='hs-definition'>compareRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-57"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>CompareRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-58"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValueAssertion</span>
|
||||||
|
<a name="line-59"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-60"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-61"></a>
|
||||||
|
<a name="line-62"></a><a name="compareResult"></a><span class='hs-definition'>compareResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>Bool</span>
|
||||||
|
<a name="line-63"></a><span class='hs-definition'>compareResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>CompareResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-64"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-65"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>CompareTrue</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>True</span>
|
||||||
|
<a name="line-66"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>CompareFalse</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>False</span>
|
||||||
|
<a name="line-67"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-68"></a><span class='hs-definition'>compareResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -7,45 +7,67 @@
|
|||||||
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<pre><a name="line-1"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Delete</span>
|
<pre><a name="line-1"></a><span class='hs-comment'>-- | <https://tools.ietf.org/html/rfc4511#section-4.8 Delete> operation.</span>
|
||||||
<a name="line-2"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>delete</span>
|
<a name="line-2"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-3"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>deleteEither</span>
|
<a name="line-3"></a><span class='hs-comment'>-- This operation comes in four flavours:</span>
|
||||||
<a name="line-4"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>deleteAsync</span>
|
<a name="line-4"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-5"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>deleteAsyncSTM</span>
|
<a name="line-5"></a><span class='hs-comment'>-- * synchronous, exception throwing ('delete')</span>
|
||||||
<a name="line-6"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-6"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-7"></a>
|
<a name="line-7"></a><span class='hs-comment'>-- * synchronous, returning 'Either' 'ResponseError' @()@ ('deleteEither')</span>
|
||||||
<a name="line-8"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
<a name="line-8"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-9"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-9"></a><span class='hs-comment'>-- * asynchronous, 'IO' based ('deleteAsync')</span>
|
||||||
<a name="line-10"></a>
|
<a name="line-10"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-11"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
<a name="line-11"></a><span class='hs-comment'>-- * asynchronous, 'STM' based ('deleteAsyncSTM')</span>
|
||||||
<a name="line-12"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
<a name="line-12"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-13"></a>
|
<a name="line-13"></a><span class='hs-comment'>-- Of those, the first one ('delete') is probably the most useful for the typical usecase.</span>
|
||||||
<a name="line-14"></a>
|
<a name="line-14"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Delete</span>
|
||||||
<a name="line-15"></a><a name="delete"></a><span class='hs-definition'>delete</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
<a name="line-15"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>delete</span>
|
||||||
<a name="line-16"></a><span class='hs-definition'>delete</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-16"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>deleteEither</span>
|
||||||
<a name="line-17"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>deleteEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span>
|
<a name="line-17"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>deleteAsync</span>
|
||||||
<a name="line-18"></a>
|
<a name="line-18"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>deleteAsyncSTM</span>
|
||||||
<a name="line-19"></a><a name="deleteEither"></a><span class='hs-definition'>deleteEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-19"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-20"></a><span class='hs-definition'>deleteEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-20"></a>
|
||||||
<a name="line-21"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>deleteAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span>
|
<a name="line-21"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-22"></a>
|
<a name="line-22"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-23"></a><a name="deleteAsync"></a><span class='hs-definition'>deleteAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-23"></a>
|
||||||
<a name="line-24"></a><span class='hs-definition'>deleteAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-24"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
||||||
<a name="line-25"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>deleteAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span>
|
<a name="line-25"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
||||||
<a name="line-26"></a>
|
<a name="line-26"></a>
|
||||||
<a name="line-27"></a><a name="deleteAsyncSTM"></a><span class='hs-definition'>deleteAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-27"></a>
|
||||||
<a name="line-28"></a><span class='hs-definition'>deleteAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-28"></a><a name="delete"></a><span class='hs-comment'>-- | Perform the Delete operation synchronously. Raises 'ResponseError' on failures.</span>
|
||||||
<a name="line-29"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>deleteRequest</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>deleteResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
<a name="line-29"></a><span class='hs-definition'>delete</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
||||||
<a name="line-30"></a>
|
<a name="line-30"></a><span class='hs-definition'>delete</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-31"></a><a name="deleteRequest"></a><span class='hs-definition'>deleteRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
<a name="line-31"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>deleteEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span>
|
||||||
<a name="line-32"></a><span class='hs-definition'>deleteRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-32"></a>
|
||||||
<a name="line-33"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>DeleteRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-33"></a><a name="deleteEither"></a><span class='hs-comment'>-- | Perform the Delete operation synchronously. Returns @Left e@ where</span>
|
||||||
<a name="line-34"></a>
|
<a name="line-34"></a><span class='hs-comment'>-- @e@ is a 'ResponseError' on failures.</span>
|
||||||
<a name="line-35"></a><a name="deleteResult"></a><span class='hs-definition'>deleteResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
<a name="line-35"></a><span class='hs-definition'>deleteEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-36"></a><span class='hs-definition'>deleteResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>DeleteResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-36"></a><span class='hs-definition'>deleteEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-37"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
<a name="line-37"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>deleteAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span>
|
||||||
<a name="line-38"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
<a name="line-38"></a>
|
||||||
<a name="line-39"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
<a name="line-39"></a><a name="deleteAsync"></a><span class='hs-comment'>-- | Perform the Delete operation asynchronously. Call 'Ldap.Client.wait' to wait</span>
|
||||||
<a name="line-40"></a><span class='hs-definition'>deleteResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
<a name="line-40"></a><span class='hs-comment'>-- for its completion.</span>
|
||||||
|
<a name="line-41"></a><span class='hs-definition'>deleteAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-42"></a><span class='hs-definition'>deleteAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-43"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>deleteAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-44"></a>
|
||||||
|
<a name="line-45"></a><a name="deleteAsyncSTM"></a><span class='hs-comment'>-- | Perform the Delete operation asynchronously.</span>
|
||||||
|
<a name="line-46"></a><span class='hs-comment'>--</span>
|
||||||
|
<a name="line-47"></a><span class='hs-comment'>-- Don't wait for its completion (with 'Ldap.Client.waitSTM') in the</span>
|
||||||
|
<a name="line-48"></a><span class='hs-comment'>-- same transaction you've performed it in.</span>
|
||||||
|
<a name="line-49"></a><span class='hs-definition'>deleteAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-50"></a><span class='hs-definition'>deleteAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-51"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>deleteRequest</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>deleteResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-52"></a>
|
||||||
|
<a name="line-53"></a><a name="deleteRequest"></a><span class='hs-definition'>deleteRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
||||||
|
<a name="line-54"></a><span class='hs-definition'>deleteRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-55"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>DeleteRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-56"></a>
|
||||||
|
<a name="line-57"></a><a name="deleteResult"></a><span class='hs-definition'>deleteResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
||||||
|
<a name="line-58"></a><span class='hs-definition'>deleteResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>DeleteResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-59"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-60"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
||||||
|
<a name="line-61"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-62"></a><span class='hs-definition'>deleteResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -8,68 +8,90 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<pre><a name="line-1"></a><span class='hs-comment'>{-# LANGUAGE OverloadedStrings #-}</span>
|
<pre><a name="line-1"></a><span class='hs-comment'>{-# LANGUAGE OverloadedStrings #-}</span>
|
||||||
<a name="line-2"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Extended</span>
|
<a name="line-2"></a><span class='hs-comment'>-- | <https://tools.ietf.org/html/rfc4511#section-4.12 Extended> operation.</span>
|
||||||
<a name="line-3"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>extended</span>
|
<a name="line-3"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-4"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>extendedEither</span>
|
<a name="line-4"></a><span class='hs-comment'>-- This operation comes in four flavours:</span>
|
||||||
<a name="line-5"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>extendedAsync</span>
|
<a name="line-5"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-6"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>extendedAsyncSTM</span>
|
<a name="line-6"></a><span class='hs-comment'>-- * synchronous, exception throwing ('extended')</span>
|
||||||
<a name="line-7"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>startTls</span>
|
<a name="line-7"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-8"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>startTlsEither</span>
|
<a name="line-8"></a><span class='hs-comment'>-- * synchronous, returning 'Either' 'ResponseError' @()@ ('extendedEither')</span>
|
||||||
<a name="line-9"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>startTlsAsync</span>
|
<a name="line-9"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-10"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>startTlsAsyncSTM</span>
|
<a name="line-10"></a><span class='hs-comment'>-- * asynchronous, 'IO' based ('extendedAsync')</span>
|
||||||
<a name="line-11"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-11"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-12"></a>
|
<a name="line-12"></a><span class='hs-comment'>-- * asynchronous, 'STM' based ('extendedAsyncSTM')</span>
|
||||||
<a name="line-13"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varop'><=<</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-13"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-14"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
<a name="line-14"></a><span class='hs-comment'>-- Of those, the first one ('extended') is probably the most useful for the typical usecase.</span>
|
||||||
<a name="line-15"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span> <span class='hs-layout'>(</span><span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
<a name="line-15"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Extended</span>
|
||||||
<a name="line-16"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-16"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>extended</span>
|
||||||
<a name="line-17"></a>
|
<a name="line-17"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>extendedEither</span>
|
||||||
<a name="line-18"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
<a name="line-18"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>extendedAsync</span>
|
||||||
<a name="line-19"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
<a name="line-19"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>extendedAsyncSTM</span>
|
||||||
<a name="line-20"></a>
|
<a name="line-20"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>startTls</span>
|
||||||
<a name="line-21"></a>
|
<a name="line-21"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>startTlsEither</span>
|
||||||
<a name="line-22"></a><a name="extended"></a><span class='hs-definition'>extended</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
<a name="line-22"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>startTlsAsync</span>
|
||||||
<a name="line-23"></a><span class='hs-definition'>extended</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-23"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>startTlsAsyncSTM</span>
|
||||||
<a name="line-24"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>extendedEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span>
|
<a name="line-24"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-25"></a>
|
<a name="line-25"></a>
|
||||||
<a name="line-26"></a><a name="extendedEither"></a><span class='hs-definition'>extendedEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-26"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varop'><=<</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-27"></a><span class='hs-definition'>extendedEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-27"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-28"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>extendedAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span>
|
<a name="line-28"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span> <span class='hs-layout'>(</span><span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-29"></a>
|
<a name="line-29"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-30"></a><a name="extendedAsync"></a><span class='hs-definition'>extendedAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-30"></a>
|
||||||
<a name="line-31"></a><span class='hs-definition'>extendedAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-31"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
||||||
<a name="line-32"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>extendedAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span><span class='hs-layout'>)</span>
|
<a name="line-32"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
||||||
<a name="line-33"></a>
|
<a name="line-33"></a>
|
||||||
<a name="line-34"></a><a name="extendedAsyncSTM"></a><span class='hs-definition'>extendedAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-34"></a>
|
||||||
<a name="line-35"></a><span class='hs-definition'>extendedAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-35"></a><a name="extended"></a><span class='hs-comment'>-- | Perform the Extended operation synchronously. Raises 'ResponseError' on failures.</span>
|
||||||
<a name="line-36"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>extendedRequest</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>extendedResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
<a name="line-36"></a><span class='hs-definition'>extended</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
||||||
<a name="line-37"></a>
|
<a name="line-37"></a><span class='hs-definition'>extended</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-38"></a><a name="extendedRequest"></a><span class='hs-definition'>extendedRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
<a name="line-38"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>extendedEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span>
|
||||||
<a name="line-39"></a><span class='hs-definition'>extendedRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Oid</span> <span class='hs-varid'>oid</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-39"></a>
|
||||||
<a name="line-40"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ExtendedRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapOid</span> <span class='hs-varid'>oid</span><span class='hs-layout'>)</span>
|
<a name="line-40"></a><a name="extendedEither"></a><span class='hs-comment'>-- | Perform the Extended operation synchronously. Returns @Left e@ where</span>
|
||||||
<a name="line-41"></a>
|
<a name="line-41"></a><span class='hs-comment'>-- @e@ is a 'ResponseError' on failures.</span>
|
||||||
<a name="line-42"></a><a name="extendedResult"></a><span class='hs-definition'>extendedResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
<a name="line-42"></a><span class='hs-definition'>extendedEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-43"></a><span class='hs-definition'>extendedResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ExtendedResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-43"></a><span class='hs-definition'>extendedEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-44"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
<a name="line-44"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>extendedAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span>
|
||||||
<a name="line-45"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
<a name="line-45"></a>
|
||||||
<a name="line-46"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
<a name="line-46"></a><a name="extendedAsync"></a><span class='hs-comment'>-- | Perform the Extended operation asynchronously. Call 'Ldap.Client.wait' to wait</span>
|
||||||
<a name="line-47"></a><span class='hs-definition'>extendedResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
<a name="line-47"></a><span class='hs-comment'>-- for its completion.</span>
|
||||||
<a name="line-48"></a>
|
<a name="line-48"></a><span class='hs-definition'>extendedAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-49"></a>
|
<a name="line-49"></a><span class='hs-definition'>extendedAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-50"></a><a name="startTls"></a><span class='hs-definition'>startTls</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
<a name="line-50"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>extendedAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-51"></a><span class='hs-definition'>startTls</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-51"></a>
|
||||||
<a name="line-52"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'><=<</span> <span class='hs-varid'>startTlsEither</span>
|
<a name="line-52"></a><a name="extendedAsyncSTM"></a><span class='hs-comment'>-- | Perform the Extended operation asynchronously.</span>
|
||||||
<a name="line-53"></a>
|
<a name="line-53"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-54"></a><a name="startTlsEither"></a><span class='hs-definition'>startTlsEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-54"></a><span class='hs-comment'>-- Don't wait for its completion (with 'Ldap.Client.waitSTM') in the</span>
|
||||||
<a name="line-55"></a><span class='hs-definition'>startTlsEither</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-55"></a><span class='hs-comment'>-- same transaction you've performed it in.</span>
|
||||||
<a name="line-56"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'><=<</span> <span class='hs-varid'>startTlsAsync</span>
|
<a name="line-56"></a><span class='hs-definition'>extendedAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-57"></a>
|
<a name="line-57"></a><span class='hs-definition'>extendedAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-58"></a><a name="startTlsAsync"></a><span class='hs-definition'>startTlsAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-58"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>extendedRequest</span> <span class='hs-varid'>oid</span> <span class='hs-varid'>mv</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>extendedResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
||||||
<a name="line-59"></a><span class='hs-definition'>startTlsAsync</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-59"></a>
|
||||||
<a name="line-60"></a> <span class='hs-varid'>atomically</span> <span class='hs-varop'>.</span> <span class='hs-varid'>startTlsAsyncSTM</span>
|
<a name="line-60"></a><a name="extendedRequest"></a><span class='hs-definition'>extendedRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
||||||
<a name="line-61"></a>
|
<a name="line-61"></a><span class='hs-definition'>extendedRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Oid</span> <span class='hs-varid'>oid</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-62"></a><a name="startTlsAsyncSTM"></a><span class='hs-definition'>startTlsAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-62"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ExtendedRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapOid</span> <span class='hs-varid'>oid</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-63"></a><span class='hs-definition'>startTlsAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-63"></a>
|
||||||
<a name="line-64"></a> <span class='hs-varid'>extendedAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-conid'>Oid</span> <span class='hs-str'>"1.3.6.1.4.1.1466.20037"</span><span class='hs-layout'>)</span> <span class='hs-conid'>Nothing</span>
|
<a name="line-64"></a><a name="extendedResult"></a><span class='hs-definition'>extendedResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
||||||
|
<a name="line-65"></a><span class='hs-definition'>extendedResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ExtendedResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-66"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-67"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
||||||
|
<a name="line-68"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-69"></a><span class='hs-definition'>extendedResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-70"></a>
|
||||||
|
<a name="line-71"></a>
|
||||||
|
<a name="line-72"></a><a name="startTls"></a><span class='hs-definition'>startTls</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
||||||
|
<a name="line-73"></a><span class='hs-definition'>startTls</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-74"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'><=<</span> <span class='hs-varid'>startTlsEither</span>
|
||||||
|
<a name="line-75"></a>
|
||||||
|
<a name="line-76"></a><a name="startTlsEither"></a><span class='hs-definition'>startTlsEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-77"></a><span class='hs-definition'>startTlsEither</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-78"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'><=<</span> <span class='hs-varid'>startTlsAsync</span>
|
||||||
|
<a name="line-79"></a>
|
||||||
|
<a name="line-80"></a><a name="startTlsAsync"></a><span class='hs-definition'>startTlsAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-81"></a><span class='hs-definition'>startTlsAsync</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-82"></a> <span class='hs-varid'>atomically</span> <span class='hs-varop'>.</span> <span class='hs-varid'>startTlsAsyncSTM</span>
|
||||||
|
<a name="line-83"></a>
|
||||||
|
<a name="line-84"></a><a name="startTlsAsyncSTM"></a><span class='hs-definition'>startTlsAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-85"></a><span class='hs-definition'>startTlsAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-86"></a> <span class='hs-varid'>extendedAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-conid'>Oid</span> <span class='hs-str'>"1.3.6.1.4.1.1466.20037"</span><span class='hs-layout'>)</span> <span class='hs-conid'>Nothing</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -21,92 +21,92 @@
|
|||||||
<a name="line-12"></a> <span class='hs-comment'>-- * Waiting for Request Completion</span>
|
<a name="line-12"></a> <span class='hs-comment'>-- * Waiting for Request Completion</span>
|
||||||
<a name="line-13"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>wait</span>
|
<a name="line-13"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>wait</span>
|
||||||
<a name="line-14"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>waitSTM</span>
|
<a name="line-14"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>waitSTM</span>
|
||||||
<a name="line-15"></a> <span class='hs-comment'>-- * Misc</span>
|
<a name="line-15"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>unbindAsync</span>
|
||||||
<a name="line-16"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Response</span>
|
<a name="line-16"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>unbindAsyncSTM</span>
|
||||||
<a name="line-17"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>ResponseError</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-17"></a> <span class='hs-comment'>-- * Misc</span>
|
||||||
<a name="line-18"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Request</span>
|
<a name="line-18"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Response</span>
|
||||||
<a name="line-19"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>raise</span>
|
<a name="line-19"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>ResponseError</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-20"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>sendRequest</span>
|
<a name="line-20"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Request</span>
|
||||||
<a name="line-21"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Dn</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-21"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>raise</span>
|
||||||
<a name="line-22"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>RelativeDn</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-22"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>sendRequest</span>
|
||||||
<a name="line-23"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Password</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-23"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Dn</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-24"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Attr</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-24"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>RelativeDn</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-25"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>unAttr</span>
|
<a name="line-25"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Password</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-26"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-26"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Attr</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-27"></a>
|
<a name="line-27"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>AttrValue</span>
|
||||||
<a name="line-28"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
<a name="line-28"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>unAttr</span>
|
||||||
<a name="line-29"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span><span class='hs-varop'>.</span><span class='hs-conid'>TMVar</span> <span class='hs-layout'>(</span><span class='hs-conid'>TMVar</span><span class='hs-layout'>,</span> <span class='hs-varid'>newEmptyTMVar</span><span class='hs-layout'>,</span> <span class='hs-varid'>readTMVar</span><span class='hs-layout'>)</span>
|
<a name="line-29"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-30"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span><span class='hs-varop'>.</span><span class='hs-conid'>TQueue</span> <span class='hs-layout'>(</span><span class='hs-conid'>TQueue</span><span class='hs-layout'>,</span> <span class='hs-varid'>writeTQueue</span><span class='hs-layout'>)</span>
|
<a name="line-30"></a>
|
||||||
<a name="line-31"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Exception</span> <span class='hs-layout'>(</span><span class='hs-conid'>Exception</span><span class='hs-layout'>,</span> <span class='hs-varid'>throwIO</span><span class='hs-layout'>)</span>
|
<a name="line-31"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-32"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span> <span class='hs-layout'>(</span><span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
<a name="line-32"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span><span class='hs-varop'>.</span><span class='hs-conid'>TMVar</span> <span class='hs-layout'>(</span><span class='hs-conid'>TMVar</span><span class='hs-layout'>,</span> <span class='hs-varid'>newEmptyTMVar</span><span class='hs-layout'>,</span> <span class='hs-varid'>readTMVar</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-33"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>)</span>
|
<a name="line-33"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span><span class='hs-varop'>.</span><span class='hs-conid'>TQueue</span> <span class='hs-layout'>(</span><span class='hs-conid'>TQueue</span><span class='hs-layout'>,</span> <span class='hs-varid'>writeTQueue</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-34"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-layout'>)</span>
|
<a name="line-34"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Exception</span> <span class='hs-layout'>(</span><span class='hs-conid'>Exception</span><span class='hs-layout'>,</span> <span class='hs-varid'>throwIO</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-35"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Typeable</span> <span class='hs-layout'>(</span><span class='hs-conid'>Typeable</span><span class='hs-layout'>)</span>
|
<a name="line-35"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-varid'>void</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-36"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Network</span> <span class='hs-layout'>(</span><span class='hs-conid'>PortNumber</span><span class='hs-layout'>)</span>
|
<a name="line-36"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span> <span class='hs-layout'>(</span><span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-37"></a>
|
<a name="line-37"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-38"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
<a name="line-38"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-39"></a>
|
<a name="line-39"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Typeable</span> <span class='hs-layout'>(</span><span class='hs-conid'>Typeable</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-40"></a>
|
<a name="line-40"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Network</span> <span class='hs-layout'>(</span><span class='hs-conid'>PortNumber</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-41"></a><a name="Host"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Host</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-41"></a>
|
||||||
<a name="line-42"></a> <span class='hs-conid'>Plain</span> <span class='hs-conid'>String</span>
|
<a name="line-42"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
||||||
<a name="line-43"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Secure</span> <span class='hs-conid'>String</span>
|
<a name="line-43"></a>
|
||||||
<a name="line-44"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Insecure</span> <span class='hs-conid'>String</span>
|
<a name="line-44"></a>
|
||||||
<a name="line-45"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
<a name="line-45"></a><a name="Host"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Host</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-46"></a>
|
<a name="line-46"></a> <span class='hs-conid'>Plain</span> <span class='hs-conid'>String</span>
|
||||||
<a name="line-47"></a><a name="Ldap"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Ldap</span>
|
<a name="line-47"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Secure</span> <span class='hs-conid'>String</span>
|
||||||
<a name="line-48"></a> <span class='hs-layout'>{</span> <span class='hs-varid'>client</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TQueue</span> <span class='hs-conid'>ClientMessage</span>
|
<a name="line-48"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Insecure</span> <span class='hs-conid'>String</span>
|
||||||
<a name="line-49"></a> <span class='hs-layout'>}</span> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
<a name="line-49"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Ord</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-50"></a>
|
<a name="line-50"></a>
|
||||||
<a name="line-51"></a><a name="ClientMessage"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>ClientMessage</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>New</span> <span class='hs-conid'>Request</span> <span class='hs-layout'>(</span><span class='hs-conid'>TMVar</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ProtocolServerOp</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-51"></a><a name="Ldap"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Ldap</span>
|
||||||
<a name="line-52"></a><a name="Request"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ProtocolClientOp</span>
|
<a name="line-52"></a> <span class='hs-layout'>{</span> <span class='hs-varid'>client</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TQueue</span> <span class='hs-conid'>ClientMessage</span>
|
||||||
<a name="line-53"></a><a name="InMessage"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>InMessage</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ProtocolServerOp</span>
|
<a name="line-53"></a> <span class='hs-layout'>}</span> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-54"></a><a name="Response"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>InMessage</span>
|
<a name="line-54"></a>
|
||||||
<a name="line-55"></a>
|
<a name="line-55"></a><a name="ClientMessage"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>ClientMessage</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>New</span> <span class='hs-conid'>Request</span> <span class='hs-layout'>(</span><span class='hs-conid'>TMVar</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ProtocolServerOp</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-56"></a><a name="Async"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Async</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Async</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-56"></a><a name="Request"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ProtocolClientOp</span>
|
||||||
<a name="line-57"></a>
|
<a name="line-57"></a><a name="InMessage"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>InMessage</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ProtocolServerOp</span>
|
||||||
<a name="line-58"></a><a name="instance%20Functor%20Async"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Functor</span> <span class='hs-conid'>Async</span> <span class='hs-keyword'>where</span>
|
<a name="line-58"></a><a name="Response"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>InMessage</span>
|
||||||
<a name="line-59"></a> <span class='hs-varid'>fmap</span> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-varid'>stm</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Async</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span> <span class='hs-varid'>stm</span><span class='hs-layout'>)</span>
|
<a name="line-59"></a>
|
||||||
<a name="line-60"></a>
|
<a name="line-60"></a><a name="Async"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Async</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Async</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-61"></a>
|
<a name="line-61"></a>
|
||||||
<a name="line-62"></a><a name="Dn"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Dn</span> <span class='hs-conid'>Text</span>
|
<a name="line-62"></a><a name="instance%20Functor%20Async"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Functor</span> <span class='hs-conid'>Async</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-63"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
<a name="line-63"></a> <span class='hs-varid'>fmap</span> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-varid'>stm</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Async</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span> <span class='hs-varid'>stm</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-64"></a>
|
<a name="line-64"></a>
|
||||||
<a name="line-65"></a><a name="RelativeDn"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>RelativeDn</span> <span class='hs-conid'>Text</span>
|
<a name="line-65"></a><a name="Dn"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Dn</span> <span class='hs-conid'>Text</span>
|
||||||
<a name="line-66"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
<a name="line-66"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-67"></a>
|
<a name="line-67"></a>
|
||||||
<a name="line-68"></a><a name="Oid"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Oid</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-68"></a><a name="RelativeDn"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>RelativeDn</span> <span class='hs-conid'>Text</span>
|
||||||
<a name="line-69"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
<a name="line-69"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-70"></a>
|
<a name="line-70"></a>
|
||||||
<a name="line-71"></a><a name="Password"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Password</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-71"></a><a name="Oid"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Oid</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Oid</span> <span class='hs-conid'>Text</span>
|
||||||
<a name="line-72"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
<a name="line-72"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-73"></a>
|
<a name="line-73"></a>
|
||||||
<a name="line-74"></a>
|
<a name="line-74"></a><a name="Password"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Password</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Password</span> <span class='hs-conid'>ByteString</span>
|
||||||
<a name="line-75"></a><a name="ResponseError"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>ResponseError</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-75"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-76"></a> <span class='hs-conid'>ResponseInvalid</span> <span class='hs-conid'>Request</span> <span class='hs-conid'>Response</span>
|
<a name="line-76"></a>
|
||||||
<a name="line-77"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ResponseErrorCode</span> <span class='hs-conid'>Request</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ResultCode</span> <span class='hs-conid'>Dn</span> <span class='hs-conid'>Text</span>
|
<a name="line-77"></a><a name="ResponseError"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>ResponseError</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-78"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Typeable</span><span class='hs-layout'>)</span>
|
<a name="line-78"></a> <span class='hs-conid'>ResponseInvalid</span> <span class='hs-conid'>Request</span> <span class='hs-conid'>Response</span>
|
||||||
<a name="line-79"></a>
|
<a name="line-79"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ResponseErrorCode</span> <span class='hs-conid'>Request</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ResultCode</span> <span class='hs-conid'>Dn</span> <span class='hs-conid'>Text</span>
|
||||||
<a name="line-80"></a><a name="instance%20Either%20e%20a%20-%3e%20IO%20a%20raise%20=%20either%20throwIO%20return"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Exception</span> <span class='hs-conid'>ResponseError</span>
|
<a name="line-80"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Typeable</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-81"></a>
|
<a name="line-81"></a>
|
||||||
<a name="line-82"></a>
|
<a name="line-82"></a><a name="instance%20Either%20e%20a%20-%3e%20IO%20a%20raise%20=%20either%20throwIO%20return%20--%20%7c%20Note%20that%20'unbindAsync'%20does%20not%20return%20an%20'Async',%20--%20because%20LDAP%20server%20never%20responds%20to%20@UnbindRequest@s,%20hence%20--%20a%20call%20to%20'wait'%20on%20a%20hypothetical%20'Async'%20would%20have%20resulted%20--%20in%20an%20exception%20anyway.%20unbindAsync%20::%20Ldap%20-%3e%20IO%20()%20unbindAsync%20=%20atomically%20.%20unbindAsyncSTM%20--%20%7c%20Note%20that%20'unbindAsyncSTM'%20does%20not%20return%20an%20'Async',%20--%20because%20LDAP%20server%20never%20responds%20to%20@UnbindRequest@s,%20hence%20--%20a%20call%20to%20'wait'%20on%20a%20hypothetical%20'Async'%20would%20have%20resulted%20--%20in%20an%20exception%20anyway.%20unbindAsyncSTM%20::%20Ldap%20-%3e%20STM%20()%20unbindAsyncSTM%20l%20=%20void%20(sendRequest%20l%20die%20Type.UnbindRequest)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Exception</span> <span class='hs-conid'>ResponseError</span>
|
||||||
<a name="line-83"></a>
|
<a name="line-83"></a>
|
||||||
<a name="line-84"></a><a name="Attr"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Attr</span> <span class='hs-conid'>Text</span>
|
<a name="line-84"></a><a name="Attr"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Attr</span> <span class='hs-conid'>Text</span>
|
||||||
<a name="line-85"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
<a name="line-85"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-86"></a>
|
<a name="line-86"></a>
|
||||||
<a name="line-87"></a><a name="AttrList"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>AttrList</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-conid'>Attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span>
|
<a name="line-87"></a><a name="AttrValue"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>AttrValue</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>ByteString</span>
|
||||||
<a name="line-88"></a>
|
<a name="line-88"></a>
|
||||||
<a name="line-89"></a><a name="unAttr"></a><span class='hs-comment'>-- 'Attr' unwrapper. This is a separate function not to turn 'Attr''s</span>
|
<a name="line-89"></a><a name="AttrList"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>AttrList</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-conid'>Attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span> <span class='hs-conid'>AttrValue</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-90"></a><span class='hs-comment'>-- 'Show' instance into complete and utter shit.</span>
|
<a name="line-90"></a>
|
||||||
<a name="line-91"></a><span class='hs-definition'>unAttr</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Text</span>
|
<a name="line-91"></a><a name="unAttr"></a><span class='hs-comment'>-- 'Attr' unwrapper. This is a separate function not to turn 'Attr''s</span>
|
||||||
<a name="line-92"></a><span class='hs-definition'>unAttr</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>a</span>
|
<a name="line-92"></a><span class='hs-comment'>-- 'Show' instance into complete and utter shit.</span>
|
||||||
<a name="line-93"></a>
|
<a name="line-93"></a><span class='hs-definition'>unAttr</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Text</span>
|
||||||
<a name="line-94"></a>
|
<a name="line-94"></a><span class='hs-definition'>unAttr</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>a</span>
|
||||||
<a name="line-95"></a><a name="wait"></a><span class='hs-definition'>wait</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Async</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
<a name="line-95"></a>
|
||||||
<a name="line-96"></a><span class='hs-definition'>wait</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>atomically</span> <span class='hs-varop'>.</span> <span class='hs-varid'>waitSTM</span>
|
<a name="line-96"></a><a name="wait"></a><span class='hs-definition'>wait</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Async</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-97"></a>
|
<a name="line-97"></a><span class='hs-definition'>wait</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>atomically</span> <span class='hs-varop'>.</span> <span class='hs-varid'>waitSTM</span>
|
||||||
<a name="line-98"></a><a name="waitSTM"></a><span class='hs-definition'>waitSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Async</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
<a name="line-98"></a>
|
||||||
<a name="line-99"></a><span class='hs-definition'>waitSTM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-varid'>stm</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>stm</span>
|
<a name="line-99"></a><a name="waitSTM"></a><span class='hs-definition'>waitSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Async</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-100"></a>
|
<a name="line-100"></a><span class='hs-definition'>waitSTM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-varid'>stm</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>stm</span>
|
||||||
<a name="line-101"></a>
|
<a name="line-101"></a>
|
||||||
<a name="line-102"></a><a name="sendRequest"></a><span class='hs-definition'>sendRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-layout'>(</span><span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
<a name="line-102"></a><a name="sendRequest"></a><span class='hs-definition'>sendRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-layout'>(</span><span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-103"></a><span class='hs-definition'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-varid'>p</span> <span class='hs-varid'>msg</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-103"></a><span class='hs-definition'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-varid'>p</span> <span class='hs-varid'>msg</span> <span class='hs-keyglyph'>=</span>
|
||||||
@ -119,5 +119,24 @@
|
|||||||
<a name="line-110"></a>
|
<a name="line-110"></a>
|
||||||
<a name="line-111"></a><a name="raise"></a><span class='hs-definition'>raise</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Exception</span> <span class='hs-varid'>e</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>Either</span> <span class='hs-varid'>e</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-varid'>a</span>
|
<a name="line-111"></a><a name="raise"></a><span class='hs-definition'>raise</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Exception</span> <span class='hs-varid'>e</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>Either</span> <span class='hs-varid'>e</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-varid'>a</span>
|
||||||
<a name="line-112"></a><span class='hs-definition'>raise</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>either</span> <span class='hs-varid'>throwIO</span> <span class='hs-varid'>return</span>
|
<a name="line-112"></a><span class='hs-definition'>raise</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>either</span> <span class='hs-varid'>throwIO</span> <span class='hs-varid'>return</span>
|
||||||
|
<a name="line-113"></a>
|
||||||
|
<a name="line-114"></a>
|
||||||
|
<a name="line-115"></a><a name="unbindAsync"></a><span class='hs-comment'>-- | Note that 'unbindAsync' does not return an 'Async',</span>
|
||||||
|
<a name="line-116"></a><span class='hs-comment'>-- because LDAP server never responds to @UnbindRequest@s, hence</span>
|
||||||
|
<a name="line-117"></a><span class='hs-comment'>-- a call to 'wait' on a hypothetical 'Async' would have resulted</span>
|
||||||
|
<a name="line-118"></a><span class='hs-comment'>-- in an exception anyway.</span>
|
||||||
|
<a name="line-119"></a><span class='hs-definition'>unbindAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
||||||
|
<a name="line-120"></a><span class='hs-definition'>unbindAsync</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-121"></a> <span class='hs-varid'>atomically</span> <span class='hs-varop'>.</span> <span class='hs-varid'>unbindAsyncSTM</span>
|
||||||
|
<a name="line-122"></a>
|
||||||
|
<a name="line-123"></a><a name="unbindAsyncSTM"></a><span class='hs-comment'>-- | Note that 'unbindAsyncSTM' does not return an 'Async',</span>
|
||||||
|
<a name="line-124"></a><span class='hs-comment'>-- because LDAP server never responds to @UnbindRequest@s, hence</span>
|
||||||
|
<a name="line-125"></a><span class='hs-comment'>-- a call to 'wait' on a hypothetical 'Async' would have resulted</span>
|
||||||
|
<a name="line-126"></a><span class='hs-comment'>-- in an exception anyway.</span>
|
||||||
|
<a name="line-127"></a><span class='hs-definition'>unbindAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-conid'>()</span>
|
||||||
|
<a name="line-128"></a><span class='hs-definition'>unbindAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-129"></a> <span class='hs-varid'>void</span> <span class='hs-layout'>(</span><span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-varid'>die</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>UnbindRequest</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-130"></a> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-131"></a> <span class='hs-varid'>die</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>error</span> <span class='hs-str'>"Ldap.Client: do not wait for the response to UnbindRequest"</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -7,96 +7,130 @@
|
|||||||
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
<link type='text/css' rel='stylesheet' href='hscolour.css' />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<pre><a name="line-1"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Modify</span>
|
<pre><a name="line-1"></a><span class='hs-comment'>-- | <https://tools.ietf.org/html/rfc4511#section-4.6 Modify> and</span>
|
||||||
<a name="line-2"></a> <span class='hs-layout'>(</span> <span class='hs-conid'>Operation</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-2"></a><span class='hs-comment'>-- <https://tools.ietf.org/html/rfc4511#section-4.9 Modify DN> operations.</span>
|
||||||
<a name="line-3"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modify</span>
|
<a name="line-3"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-4"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyEither</span>
|
<a name="line-4"></a><span class='hs-comment'>-- These operations come in four flavours:</span>
|
||||||
<a name="line-5"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyAsync</span>
|
<a name="line-5"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-6"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyAsyncSTM</span>
|
<a name="line-6"></a><span class='hs-comment'>-- * synchronous, exception throwing ('modify' / 'modifyDn')</span>
|
||||||
<a name="line-7"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyDn</span>
|
<a name="line-7"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-8"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyDnEither</span>
|
<a name="line-8"></a><span class='hs-comment'>-- * synchronous, returning 'Either' 'ResponseError' @()@</span>
|
||||||
<a name="line-9"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyDnAsync</span>
|
<a name="line-9"></a><span class='hs-comment'>-- ('modifyEither' / 'modifyDnEither')</span>
|
||||||
<a name="line-10"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyDnAsyncSTM</span>
|
<a name="line-10"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-11"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-11"></a><span class='hs-comment'>-- * asynchronous, 'IO' based ('modifyAsync' / 'modifyDnAsync')</span>
|
||||||
<a name="line-12"></a>
|
<a name="line-12"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-13"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
<a name="line-13"></a><span class='hs-comment'>-- * asynchronous, 'STM' based ('modifyAsyncSTM' / 'modifyDnAsyncSTM')</span>
|
||||||
<a name="line-14"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span> <span class='hs-layout'>(</span><span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
<a name="line-14"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-15"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-15"></a><span class='hs-comment'>-- Of those, the first one ('modify' / 'modifyDn') is probably the most</span>
|
||||||
<a name="line-16"></a>
|
<a name="line-16"></a><span class='hs-comment'>-- useful for the typical usecase.</span>
|
||||||
<a name="line-17"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
<a name="line-17"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Modify</span>
|
||||||
<a name="line-18"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
<a name="line-18"></a> <span class='hs-layout'>(</span> <span class='hs-conid'>Operation</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-19"></a>
|
<a name="line-19"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modify</span>
|
||||||
<a name="line-20"></a>
|
<a name="line-20"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyEither</span>
|
||||||
<a name="line-21"></a><a name="Operation"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Operation</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-21"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyAsync</span>
|
||||||
<a name="line-22"></a> <span class='hs-conid'>Delete</span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ByteString</span><span class='hs-keyglyph'>]</span>
|
<a name="line-22"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyAsyncSTM</span>
|
||||||
<a name="line-23"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Add</span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ByteString</span><span class='hs-keyglyph'>]</span>
|
<a name="line-23"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyDn</span>
|
||||||
<a name="line-24"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Replace</span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ByteString</span><span class='hs-keyglyph'>]</span>
|
<a name="line-24"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyDnEither</span>
|
||||||
<a name="line-25"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
<a name="line-25"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyDnAsync</span>
|
||||||
<a name="line-26"></a>
|
<a name="line-26"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyDnAsyncSTM</span>
|
||||||
<a name="line-27"></a><a name="modify"></a><span class='hs-definition'>modify</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Operation</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
<a name="line-27"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-28"></a><span class='hs-definition'>modify</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-28"></a>
|
||||||
<a name="line-29"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>modifyEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span>
|
<a name="line-29"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-30"></a>
|
<a name="line-30"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-31"></a><a name="modifyEither"></a><span class='hs-definition'>modifyEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Operation</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-31"></a>
|
||||||
<a name="line-32"></a><span class='hs-definition'>modifyEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-32"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
||||||
<a name="line-33"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>modifyAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span>
|
<a name="line-33"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
||||||
<a name="line-34"></a>
|
<a name="line-34"></a>
|
||||||
<a name="line-35"></a><a name="modifyAsync"></a><span class='hs-definition'>modifyAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Operation</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-35"></a>
|
||||||
<a name="line-36"></a><span class='hs-definition'>modifyAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-36"></a><a name="Operation"></a><span class='hs-comment'>-- | Type of modification being performed.</span>
|
||||||
<a name="line-37"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>modifyAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span>
|
<a name="line-37"></a><a name="Operation"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Operation</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-38"></a>
|
<a name="line-38"></a> <span class='hs-conid'>Delete</span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>AttrValue</span><span class='hs-keyglyph'>]</span> <span class='hs-comment'>-- ^ Delete values from the attribute. Deletes the attribute if the list is empty or all current values are listed.</span>
|
||||||
<a name="line-39"></a><a name="modifyAsyncSTM"></a><span class='hs-definition'>modifyAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Operation</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-39"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Add</span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>AttrValue</span><span class='hs-keyglyph'>]</span> <span class='hs-comment'>-- ^ Add values to the attribute, creating it if necessary.</span>
|
||||||
<a name="line-40"></a><span class='hs-definition'>modifyAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-40"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Replace</span> <span class='hs-conid'>Attr</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>AttrValue</span><span class='hs-keyglyph'>]</span> <span class='hs-comment'>-- ^ Replace all existing values of the attribute with the new list. Deletes the attribute if the list is empty.</span>
|
||||||
<a name="line-41"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>modifyRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>xs</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>modifyResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
<a name="line-41"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-42"></a>
|
<a name="line-42"></a>
|
||||||
<a name="line-43"></a><a name="modifyRequest"></a><span class='hs-definition'>modifyRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Operation</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
<a name="line-43"></a><a name="modify"></a><span class='hs-comment'>-- | Perform the Modify operation synchronously. Raises 'ResponseError' on failures.</span>
|
||||||
<a name="line-44"></a><span class='hs-definition'>modifyRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-44"></a><span class='hs-definition'>modify</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Operation</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
||||||
<a name="line-45"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ModifyRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>f</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-45"></a><span class='hs-definition'>modify</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-46"></a> <span class='hs-keyword'>where</span>
|
<a name="line-46"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>modifyEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span>
|
||||||
<a name="line-47"></a> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Delete</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-47"></a>
|
||||||
<a name="line-48"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Delete</span><span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-48"></a><a name="modifyEither"></a><span class='hs-comment'>-- | Perform the Modify operation synchronously. Returns @Left e@ where</span>
|
||||||
<a name="line-49"></a> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-49"></a><span class='hs-comment'>-- @e@ is a 'ResponseError' on failures.</span>
|
||||||
<a name="line-50"></a> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Add</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-50"></a><span class='hs-definition'>modifyEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Operation</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-51"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Add</span><span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-51"></a><span class='hs-definition'>modifyEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-52"></a> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-52"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>modifyAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span>
|
||||||
<a name="line-53"></a> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Replace</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-53"></a>
|
||||||
<a name="line-54"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Replace</span><span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-54"></a><a name="modifyAsync"></a><span class='hs-comment'>-- | Perform the Modify operation asynchronously. Call 'Ldap.Client.wait' to wait</span>
|
||||||
<a name="line-55"></a> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-55"></a><span class='hs-comment'>-- for its completion.</span>
|
||||||
<a name="line-56"></a>
|
<a name="line-56"></a><span class='hs-definition'>modifyAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Operation</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-57"></a><a name="modifyResult"></a><span class='hs-definition'>modifyResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
<a name="line-57"></a><span class='hs-definition'>modifyAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-58"></a><span class='hs-definition'>modifyResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ModifyResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
<a name="line-58"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>modifyAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-keyword'>as</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-59"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
<a name="line-59"></a>
|
||||||
<a name="line-60"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
<a name="line-60"></a><a name="modifyAsyncSTM"></a><span class='hs-comment'>-- | Perform the Modify operation asynchronously.</span>
|
||||||
<a name="line-61"></a><span class='hs-definition'>modifyResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
<a name="line-61"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-62"></a>
|
<a name="line-62"></a><span class='hs-comment'>-- Don't wait for its completion (with 'Ldap.Client.waitSTM') in the</span>
|
||||||
<a name="line-63"></a>
|
<a name="line-63"></a><span class='hs-comment'>-- same transaction you've performed it in.</span>
|
||||||
<a name="line-64"></a><a name="modifyDn"></a><span class='hs-definition'>modifyDn</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
<a name="line-64"></a><span class='hs-definition'>modifyAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Operation</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-65"></a><span class='hs-definition'>modifyDn</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-65"></a><span class='hs-definition'>modifyAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-66"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>modifyDnEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span>
|
<a name="line-66"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>modifyRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>xs</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>modifyResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
||||||
<a name="line-67"></a>
|
<a name="line-67"></a>
|
||||||
<a name="line-68"></a><a name="modifyDnEither"></a><span class='hs-definition'>modifyDnEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-68"></a><a name="modifyRequest"></a><span class='hs-definition'>modifyRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Operation</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
||||||
<a name="line-69"></a><span class='hs-definition'>modifyDnEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-69"></a><span class='hs-definition'>modifyRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>xs</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-70"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>modifyDnAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span>
|
<a name="line-70"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ModifyRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>f</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-71"></a>
|
<a name="line-71"></a> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-72"></a><a name="modifyDnAsync"></a><span class='hs-definition'>modifyDnAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-72"></a> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Delete</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-73"></a><span class='hs-definition'>modifyDnAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-73"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Delete</span><span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-74"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>modifyDnAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span><span class='hs-layout'>)</span>
|
<a name="line-74"></a> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-75"></a>
|
<a name="line-75"></a> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Add</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-76"></a><a name="modifyDnAsyncSTM"></a><span class='hs-definition'>modifyDnAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
<a name="line-76"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Add</span><span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-77"></a><span class='hs-definition'>modifyDnAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-77"></a> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-78"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>modifyDnRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>modifyDnResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
<a name="line-78"></a> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>Replace</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-79"></a>
|
<a name="line-79"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Replace</span><span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-80"></a><a name="modifyDnRequest"></a><span class='hs-definition'>modifyDnRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
<a name="line-80"></a> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>vs</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-81"></a><span class='hs-definition'>modifyDnRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>RelativeDn</span> <span class='hs-varid'>rdn</span><span class='hs-layout'>)</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-81"></a>
|
||||||
<a name="line-82"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ModifyDnRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-82"></a><a name="modifyResult"></a><span class='hs-definition'>modifyResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
||||||
<a name="line-83"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>RelativeLdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>rdn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-83"></a><span class='hs-definition'>modifyResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ModifyResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-84"></a> <span class='hs-varid'>del</span>
|
<a name="line-84"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
||||||
<a name="line-85"></a> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varid'>new</span><span class='hs-layout'>)</span>
|
<a name="line-85"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-86"></a>
|
<a name="line-86"></a><span class='hs-definition'>modifyResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-87"></a><a name="modifyDnResult"></a><span class='hs-definition'>modifyDnResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
<a name="line-87"></a>
|
||||||
<a name="line-88"></a><span class='hs-definition'>modifyDnResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ModifyDnResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
<a name="line-88"></a>
|
||||||
<a name="line-89"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
<a name="line-89"></a><a name="modifyDn"></a><span class='hs-comment'>-- | Perform the Modify DN operation synchronously. Raises 'ResponseError' on failures.</span>
|
||||||
<a name="line-90"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
<a name="line-90"></a><span class='hs-definition'>modifyDn</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
|
||||||
<a name="line-91"></a><span class='hs-definition'>modifyDnResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
<a name="line-91"></a><span class='hs-definition'>modifyDn</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-92"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>modifyDnEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span>
|
||||||
|
<a name="line-93"></a>
|
||||||
|
<a name="line-94"></a><a name="modifyDnEither"></a><span class='hs-comment'>-- | Perform the Modify DN operation synchronously. Returns @Left e@ where</span>
|
||||||
|
<a name="line-95"></a><span class='hs-comment'>-- @e@ is a 'ResponseError' on failures.</span>
|
||||||
|
<a name="line-96"></a><span class='hs-definition'>modifyDnEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-97"></a><span class='hs-definition'>modifyDnEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-98"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>modifyDnAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span>
|
||||||
|
<a name="line-99"></a>
|
||||||
|
<a name="line-100"></a><a name="modifyDnAsync"></a><span class='hs-comment'>-- | Perform the Modify DN operation asynchronously. Call 'Ldap.Client.wait' to wait</span>
|
||||||
|
<a name="line-101"></a><span class='hs-comment'>-- for its completion.</span>
|
||||||
|
<a name="line-102"></a><span class='hs-definition'>modifyDnAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-103"></a><span class='hs-definition'>modifyDnAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-104"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>modifyDnAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-105"></a>
|
||||||
|
<a name="line-106"></a><a name="modifyDnAsyncSTM"></a><span class='hs-comment'>-- | Perform the Modify DN operation asynchronously.</span>
|
||||||
|
<a name="line-107"></a><span class='hs-comment'>--</span>
|
||||||
|
<a name="line-108"></a><span class='hs-comment'>-- Don't wait for its completion (with 'Ldap.Client.waitSTM') in the</span>
|
||||||
|
<a name="line-109"></a><span class='hs-comment'>-- same transaction you've performed it in.</span>
|
||||||
|
<a name="line-110"></a><span class='hs-definition'>modifyDnAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-111"></a><span class='hs-definition'>modifyDnAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-112"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>modifyDnRequest</span> <span class='hs-varid'>dn</span> <span class='hs-varid'>rdn</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>modifyDnResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-113"></a>
|
||||||
|
<a name="line-114"></a><a name="modifyDnRequest"></a><span class='hs-definition'>modifyDnRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>RelativeDn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
||||||
|
<a name="line-115"></a><span class='hs-definition'>modifyDnRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>RelativeDn</span> <span class='hs-varid'>rdn</span><span class='hs-layout'>)</span> <span class='hs-varid'>del</span> <span class='hs-varid'>new</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-116"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ModifyDnRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-117"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>RelativeLdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>rdn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-118"></a> <span class='hs-varid'>del</span>
|
||||||
|
<a name="line-119"></a> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varid'>new</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-120"></a>
|
||||||
|
<a name="line-121"></a><a name="modifyDnResult"></a><span class='hs-definition'>modifyDnResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>()</span>
|
||||||
|
<a name="line-122"></a><span class='hs-definition'>modifyDnResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ModifyDnResponse</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-123"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-conid'>()</span>
|
||||||
|
<a name="line-124"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-125"></a><span class='hs-definition'>modifyDnResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -9,181 +9,208 @@
|
|||||||
<body>
|
<body>
|
||||||
<pre><a name="line-1"></a><span class='hs-comment'>{-# LANGUAGE CPP #-}</span>
|
<pre><a name="line-1"></a><span class='hs-comment'>{-# LANGUAGE CPP #-}</span>
|
||||||
<a name="line-2"></a><span class='hs-comment'>{-# LANGUAGE NamedFieldPuns #-}</span>
|
<a name="line-2"></a><span class='hs-comment'>{-# LANGUAGE NamedFieldPuns #-}</span>
|
||||||
<a name="line-3"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Search</span>
|
<a name="line-3"></a><span class='hs-comment'>-- | <https://tools.ietf.org/html/rfc4511#section-4.5 Search> operation.</span>
|
||||||
<a name="line-4"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>search</span>
|
<a name="line-4"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-5"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>searchEither</span>
|
<a name="line-5"></a><span class='hs-comment'>-- This operation comes in four flavours:</span>
|
||||||
<a name="line-6"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>searchAsync</span>
|
<a name="line-6"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-7"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>searchAsyncSTM</span>
|
<a name="line-7"></a><span class='hs-comment'>-- * synchronous, exception throwing ('search')</span>
|
||||||
<a name="line-8"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Search</span>
|
<a name="line-8"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-9"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Mod</span>
|
<a name="line-9"></a><span class='hs-comment'>-- * synchronous, returning 'Either' 'ResponseError' @()@ ('searchEither')</span>
|
||||||
<a name="line-10"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Scope</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-10"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-11"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>scope</span>
|
<a name="line-11"></a><span class='hs-comment'>-- * asynchronous, 'IO' based ('searchAsync')</span>
|
||||||
<a name="line-12"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>size</span>
|
<a name="line-12"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-13"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>time</span>
|
<a name="line-13"></a><span class='hs-comment'>-- * asynchronous, 'STM' based ('searchAsyncSTM')</span>
|
||||||
<a name="line-14"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>typesOnly</span>
|
<a name="line-14"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-15"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>derefAliases</span>
|
<a name="line-15"></a><span class='hs-comment'>-- Of those, the first one ('search') is probably the most useful for the typical usecase.</span>
|
||||||
<a name="line-16"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-16"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Search</span>
|
||||||
<a name="line-17"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>SearchEntry</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-17"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>search</span>
|
||||||
<a name="line-18"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-18"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>searchEither</span>
|
||||||
<a name="line-19"></a>
|
<a name="line-19"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>searchAsync</span>
|
||||||
<a name="line-20"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
<a name="line-20"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>searchAsyncSTM</span>
|
||||||
<a name="line-21"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span> <span class='hs-layout'>(</span><span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
<a name="line-21"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-22"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Int</span> <span class='hs-layout'>(</span><span class='hs-conid'>Int32</span><span class='hs-layout'>)</span>
|
<a name="line-22"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Mod</span>
|
||||||
<a name="line-23"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-23"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Scope</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-24"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>NonEmpty</span>
|
<a name="line-24"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>scope</span>
|
||||||
<a name="line-25"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>mapMaybe</span><span class='hs-layout'>)</span>
|
<a name="line-25"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>size</span>
|
||||||
<a name="line-26"></a><span class='hs-cpp'>#if __GLASGOW_HASKELL__ >= 710</span>
|
<a name="line-26"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>time</span>
|
||||||
<a name="line-27"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Semigroup</span> <span class='hs-layout'>(</span><span class='hs-conid'>Semigroup</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-27"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>typesOnly</span>
|
||||||
<a name="line-28"></a><span class='hs-cpp'>#else</span>
|
<a name="line-28"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>derefAliases</span>
|
||||||
<a name="line-29"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Semigroup</span> <span class='hs-layout'>(</span><span class='hs-conid'>Semigroup</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-conid'>Monoid</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-29"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-30"></a><span class='hs-cpp'>#endif</span>
|
<a name="line-30"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>SearchEntry</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-31"></a>
|
<a name="line-31"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-32"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
<a name="line-32"></a>
|
||||||
<a name="line-33"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
<a name="line-33"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>STM</span><span class='hs-layout'>,</span> <span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-34"></a>
|
<a name="line-34"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Int</span> <span class='hs-layout'>(</span><span class='hs-conid'>Int32</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-35"></a>
|
<a name="line-35"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-36"></a><a name="search"></a><span class='hs-definition'>search</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Filter</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attr</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>SearchEntry</span><span class='hs-keyglyph'>]</span>
|
<a name="line-36"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>NonEmpty</span>
|
||||||
<a name="line-37"></a><span class='hs-definition'>search</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-37"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>mapMaybe</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-38"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>searchEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span>
|
<a name="line-38"></a><span class='hs-cpp'>#if __GLASGOW_HASKELL__ >= 710</span>
|
||||||
<a name="line-39"></a>
|
<a name="line-39"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Semigroup</span> <span class='hs-layout'>(</span><span class='hs-conid'>Semigroup</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-40"></a><a name="searchEither"></a><span class='hs-definition'>searchEither</span>
|
<a name="line-40"></a><span class='hs-cpp'>#else</span>
|
||||||
<a name="line-41"></a> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span>
|
<a name="line-41"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Semigroup</span> <span class='hs-layout'>(</span><span class='hs-conid'>Semigroup</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-conid'>Monoid</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-42"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span>
|
<a name="line-42"></a><span class='hs-cpp'>#endif</span>
|
||||||
<a name="line-43"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
<a name="line-43"></a>
|
||||||
<a name="line-44"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Filter</span>
|
<a name="line-44"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
||||||
<a name="line-45"></a> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attr</span><span class='hs-keyglyph'>]</span>
|
<a name="line-45"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
||||||
<a name="line-46"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>SearchEntry</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
<a name="line-46"></a>
|
||||||
<a name="line-47"></a><span class='hs-definition'>searchEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-47"></a>
|
||||||
<a name="line-48"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>searchAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span>
|
<a name="line-48"></a><a name="search"></a><span class='hs-comment'>-- | Perform the Search operation synchronously. Raises 'ResponseError' on failures.</span>
|
||||||
<a name="line-49"></a>
|
<a name="line-49"></a><span class='hs-definition'>search</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Filter</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attr</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>SearchEntry</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-50"></a><a name="searchAsync"></a><span class='hs-definition'>searchAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Filter</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attr</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>SearchEntry</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
<a name="line-50"></a><span class='hs-definition'>search</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-51"></a><span class='hs-definition'>searchAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-51"></a> <span class='hs-varid'>raise</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>searchEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span>
|
||||||
<a name="line-52"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>searchAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span><span class='hs-layout'>)</span>
|
<a name="line-52"></a>
|
||||||
<a name="line-53"></a>
|
<a name="line-53"></a><a name="searchEither"></a><span class='hs-comment'>-- | Perform the Search operation synchronously. Returns @Left e@ where</span>
|
||||||
<a name="line-54"></a><a name="searchAsyncSTM"></a><span class='hs-definition'>searchAsyncSTM</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Filter</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attr</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>SearchEntry</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
<a name="line-54"></a><span class='hs-comment'>-- @e@ is a 'ResponseError' on failures.</span>
|
||||||
<a name="line-55"></a><span class='hs-definition'>searchAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-55"></a><span class='hs-definition'>searchEither</span>
|
||||||
<a name="line-56"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>searchRequest</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>searchResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
<a name="line-56"></a> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span>
|
||||||
<a name="line-57"></a>
|
<a name="line-57"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span>
|
||||||
<a name="line-58"></a><a name="searchRequest"></a><span class='hs-definition'>searchRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Filter</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attr</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
<a name="line-58"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-59"></a><span class='hs-definition'>searchRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>base</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Mod</span> <span class='hs-varid'>m</span><span class='hs-layout'>)</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-59"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Filter</span>
|
||||||
<a name="line-60"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>base</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-60"></a> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attr</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-61"></a> <span class='hs-sel'>_scope</span>
|
<a name="line-61"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>SearchEntry</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-62"></a> <span class='hs-sel'>_derefAliases</span>
|
<a name="line-62"></a><span class='hs-definition'>searchEither</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-63"></a> <span class='hs-sel'>_size</span>
|
<a name="line-63"></a> <span class='hs-varid'>wait</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>searchAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span>
|
||||||
<a name="line-64"></a> <span class='hs-sel'>_time</span>
|
<a name="line-64"></a>
|
||||||
<a name="line-65"></a> <span class='hs-sel'>_typesOnly</span>
|
<a name="line-65"></a><a name="searchAsync"></a><span class='hs-comment'>-- | Perform the Search operation asynchronously. Call 'Ldap.Client.wait' to wait</span>
|
||||||
<a name="line-66"></a> <span class='hs-layout'>(</span><span class='hs-varid'>fromFilter</span> <span class='hs-varid'>flt</span><span class='hs-layout'>)</span>
|
<a name="line-66"></a><span class='hs-comment'>-- for its completion.</span>
|
||||||
<a name="line-67"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeSelection</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varop'>.</span> <span class='hs-varid'>unAttr</span><span class='hs-layout'>)</span> <span class='hs-varid'>attributes</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-67"></a><span class='hs-definition'>searchAsync</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Filter</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attr</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>SearchEntry</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-68"></a> <span class='hs-keyword'>where</span>
|
<a name="line-68"></a><span class='hs-definition'>searchAsync</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-69"></a> <span class='hs-conid'>Search</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_scope</span><span class='hs-layout'>,</span> <span class='hs-sel'>_derefAliases</span><span class='hs-layout'>,</span> <span class='hs-sel'>_size</span><span class='hs-layout'>,</span> <span class='hs-sel'>_time</span><span class='hs-layout'>,</span> <span class='hs-sel'>_typesOnly</span> <span class='hs-layout'>}</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-69"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>searchAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-70"></a> <span class='hs-varid'>m</span> <span class='hs-varid'>defaultSearch</span>
|
<a name="line-70"></a>
|
||||||
<a name="line-71"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Not</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Not</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromFilter</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
<a name="line-71"></a><a name="searchAsyncSTM"></a><span class='hs-comment'>-- | Perform the Search operation asynchronously.</span>
|
||||||
<a name="line-72"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>And</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>And</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-varid'>fromFilter</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-72"></a><span class='hs-comment'>--</span>
|
||||||
<a name="line-73"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Or</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Or</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-varid'>fromFilter</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-73"></a><span class='hs-comment'>-- Don't wait for its completion (with 'Ldap.Client.waitSTM') in the</span>
|
||||||
<a name="line-74"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Present</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-74"></a><span class='hs-comment'>-- same transaction you've performed it in.</span>
|
||||||
<a name="line-75"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Present</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-75"></a><span class='hs-definition'>searchAsyncSTM</span>
|
||||||
<a name="line-76"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:=</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-76"></a> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span>
|
||||||
<a name="line-77"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>EqualityMatch</span>
|
<a name="line-77"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Dn</span>
|
||||||
<a name="line-78"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-78"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-79"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-79"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Filter</span>
|
||||||
<a name="line-80"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:>=</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-80"></a> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attr</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-81"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>GreaterOrEqual</span>
|
<a name="line-81"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>SearchEntry</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-82"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-82"></a><span class='hs-definition'>searchAsyncSTM</span> <span class='hs-varid'>l</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-83"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-83"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>searchRequest</span> <span class='hs-varid'>base</span> <span class='hs-varid'>opts</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyword'>in</span> <span class='hs-varid'>sendRequest</span> <span class='hs-varid'>l</span> <span class='hs-layout'>(</span><span class='hs-varid'>searchResult</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span>
|
||||||
<a name="line-84"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:<=</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-84"></a>
|
||||||
<a name="line-85"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LessOrEqual</span>
|
<a name="line-85"></a><a name="searchRequest"></a><span class='hs-definition'>searchRequest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Dn</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Filter</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Attr</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Request</span>
|
||||||
<a name="line-86"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-86"></a><span class='hs-definition'>searchRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>base</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Mod</span> <span class='hs-varid'>m</span><span class='hs-layout'>)</span> <span class='hs-varid'>flt</span> <span class='hs-varid'>attributes</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-87"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-87"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchRequest</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>base</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-88"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:~=</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-88"></a> <span class='hs-sel'>_scope</span>
|
||||||
<a name="line-89"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ApproxMatch</span>
|
<a name="line-89"></a> <span class='hs-sel'>_derefAliases</span>
|
||||||
<a name="line-90"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-90"></a> <span class='hs-sel'>_size</span>
|
||||||
<a name="line-91"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-91"></a> <span class='hs-sel'>_time</span>
|
||||||
<a name="line-92"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:=*</span> <span class='hs-layout'>(</span><span class='hs-varid'>mi</span><span class='hs-layout'>,</span> <span class='hs-varid'>xs</span><span class='hs-layout'>,</span> <span class='hs-varid'>mf</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-92"></a> <span class='hs-sel'>_typesOnly</span>
|
||||||
<a name="line-93"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Substrings</span>
|
<a name="line-93"></a> <span class='hs-layout'>(</span><span class='hs-varid'>fromFilter</span> <span class='hs-varid'>flt</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-94"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SubstringFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-94"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeSelection</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varop'>.</span> <span class='hs-varid'>unAttr</span><span class='hs-layout'>)</span> <span class='hs-varid'>attributes</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-95"></a> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-varop'>.</span><span class='hs-varid'>fromList</span> <span class='hs-layout'>(</span><span class='hs-varid'>concat</span>
|
<a name="line-95"></a> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-96"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>maybe</span> <span class='hs-conid'>[]</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>i</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Initial</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span> <span class='hs-varid'>mi</span>
|
<a name="line-96"></a> <span class='hs-conid'>Search</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_scope</span><span class='hs-layout'>,</span> <span class='hs-sel'>_derefAliases</span><span class='hs-layout'>,</span> <span class='hs-sel'>_size</span><span class='hs-layout'>,</span> <span class='hs-sel'>_time</span><span class='hs-layout'>,</span> <span class='hs-sel'>_typesOnly</span> <span class='hs-layout'>}</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-97"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Any</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span><span class='hs-layout'>)</span> <span class='hs-varid'>xs</span>
|
<a name="line-97"></a> <span class='hs-varid'>m</span> <span class='hs-varid'>defaultSearch</span>
|
||||||
<a name="line-98"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>maybe</span> <span class='hs-conid'>[]</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>f</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Final</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span> <span class='hs-varid'>mf</span>
|
<a name="line-98"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Not</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Not</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromFilter</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-99"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-99"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>And</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>And</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-varid'>fromFilter</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-100"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>mx</span><span class='hs-layout'>,</span> <span class='hs-varid'>mr</span><span class='hs-layout'>,</span> <span class='hs-varid'>b</span><span class='hs-layout'>)</span> <span class='hs-conop'>::=</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-100"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Or</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Or</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-varid'>fromFilter</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-101"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ExtensibleMatch</span>
|
<a name="line-101"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Present</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-102"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>MatchingRuleAssertion</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>r</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>MatchingRuleId</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>r</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varid'>mr</span><span class='hs-layout'>)</span>
|
<a name="line-102"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Present</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-103"></a> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varid'>mx</span><span class='hs-layout'>)</span>
|
<a name="line-103"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:=</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-104"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span>
|
<a name="line-104"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>EqualityMatch</span>
|
||||||
<a name="line-105"></a> <span class='hs-varid'>b</span><span class='hs-layout'>)</span>
|
<a name="line-105"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-106"></a>
|
<a name="line-106"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-107"></a><a name="searchResult"></a><span class='hs-definition'>searchResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>SearchEntry</span><span class='hs-keyglyph'>]</span>
|
<a name="line-107"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:>=</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-108"></a><span class='hs-definition'>searchResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchResultDone</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-108"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>GreaterOrEqual</span>
|
||||||
<a name="line-109"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-109"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-110"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-layout'>(</span><span class='hs-varid'>mapMaybe</span> <span class='hs-varid'>g</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-110"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-111"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AdminLimitExceeded</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-layout'>(</span><span class='hs-varid'>mapMaybe</span> <span class='hs-varid'>g</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-111"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:<=</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-112"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SizeLimitExceeded</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-layout'>(</span><span class='hs-varid'>mapMaybe</span> <span class='hs-varid'>g</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
<a name="line-112"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LessOrEqual</span>
|
||||||
<a name="line-113"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
<a name="line-113"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-114"></a> <span class='hs-keyword'>where</span>
|
<a name="line-114"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-115"></a> <span class='hs-varid'>g</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchResultEntry</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-115"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:~=</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-116"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>PartialAttributeList</span> <span class='hs-varid'>ys</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-116"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ApproxMatch</span>
|
||||||
<a name="line-117"></a> <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-conid'>SearchEntry</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>h</span> <span class='hs-varid'>ys</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-117"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValueAssertion</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-118"></a> <span class='hs-varid'>g</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Nothing</span>
|
<a name="line-118"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-119"></a> <span class='hs-varid'>h</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-119"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span> <span class='hs-conop'>:=*</span> <span class='hs-layout'>(</span><span class='hs-varid'>mi</span><span class='hs-layout'>,</span> <span class='hs-varid'>xs</span><span class='hs-layout'>,</span> <span class='hs-varid'>mf</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-120"></a> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span><span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-varid'>j</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span>
|
<a name="line-120"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Substrings</span>
|
||||||
<a name="line-121"></a> <span class='hs-varid'>j</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span>
|
<a name="line-121"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SubstringFilter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-122"></a><span class='hs-definition'>searchResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
<a name="line-122"></a> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-varop'>.</span><span class='hs-varid'>fromList</span> <span class='hs-layout'>(</span><span class='hs-varid'>concat</span>
|
||||||
<a name="line-123"></a>
|
<a name="line-123"></a> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>maybe</span> <span class='hs-conid'>[]</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>i</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Initial</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span> <span class='hs-varid'>mi</span>
|
||||||
<a name="line-124"></a><a name="Search"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Search</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Search</span>
|
<a name="line-124"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Any</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span><span class='hs-layout'>)</span> <span class='hs-varid'>xs</span>
|
||||||
<a name="line-125"></a> <span class='hs-layout'>{</span> <span class='hs-sel'>_scope</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Scope</span>
|
<a name="line-125"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>maybe</span> <span class='hs-conid'>[]</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>f</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Final</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span> <span class='hs-varid'>mf</span>
|
||||||
<a name="line-126"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_derefAliases</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>DerefAliases</span>
|
<a name="line-126"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-127"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_size</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int32</span>
|
<a name="line-127"></a> <span class='hs-varid'>fromFilter</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>mx</span><span class='hs-layout'>,</span> <span class='hs-varid'>mr</span><span class='hs-layout'>,</span> <span class='hs-varid'>b</span><span class='hs-layout'>)</span> <span class='hs-conop'>::=</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-128"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_time</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int32</span>
|
<a name="line-128"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ExtensibleMatch</span>
|
||||||
<a name="line-129"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_typesOnly</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span>
|
<a name="line-129"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>MatchingRuleAssertion</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>r</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>MatchingRuleId</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>r</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varid'>mr</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-130"></a> <span class='hs-layout'>}</span> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
<a name="line-130"></a> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varid'>mx</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-131"></a>
|
<a name="line-131"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AssertionValue</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-132"></a><a name="defaultSearch"></a><span class='hs-definition'>defaultSearch</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Search</span>
|
<a name="line-132"></a> <span class='hs-varid'>b</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-133"></a><span class='hs-definition'>defaultSearch</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Search</span>
|
<a name="line-133"></a>
|
||||||
<a name="line-134"></a> <span class='hs-layout'>{</span> <span class='hs-sel'>_scope</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>BaseObject</span>
|
<a name="line-134"></a><a name="searchResult"></a><span class='hs-definition'>searchResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Request</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Response</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>ResponseError</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>SearchEntry</span><span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-135"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_size</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span>
|
<a name="line-135"></a><span class='hs-definition'>searchResult</span> <span class='hs-varid'>req</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchResultDone</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-136"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_time</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span>
|
<a name="line-136"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-conop'>:|</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-137"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_typesOnly</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
<a name="line-137"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Success</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-layout'>(</span><span class='hs-varid'>mapMaybe</span> <span class='hs-varid'>g</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-138"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_derefAliases</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>NeverDerefAliases</span>
|
<a name="line-138"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AdminLimitExceeded</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-layout'>(</span><span class='hs-varid'>mapMaybe</span> <span class='hs-varid'>g</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-139"></a> <span class='hs-layout'>}</span>
|
<a name="line-139"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SizeLimitExceeded</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>code</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Right</span> <span class='hs-layout'>(</span><span class='hs-varid'>mapMaybe</span> <span class='hs-varid'>g</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-140"></a>
|
<a name="line-140"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseErrorCode</span> <span class='hs-varid'>req</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn'</span><span class='hs-layout'>)</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-141"></a><a name="scope"></a><span class='hs-definition'>scope</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Scope</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
<a name="line-141"></a> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-142"></a><span class='hs-definition'>scope</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>y</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>y</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_scope</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span> <span class='hs-layout'>}</span><span class='hs-layout'>)</span>
|
<a name="line-142"></a> <span class='hs-varid'>g</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchResultEntry</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-143"></a>
|
<a name="line-143"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>PartialAttributeList</span> <span class='hs-varid'>ys</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-144"></a><a name="size"></a><span class='hs-definition'>size</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int32</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
<a name="line-144"></a> <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-conid'>SearchEntry</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>h</span> <span class='hs-varid'>ys</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-145"></a><span class='hs-definition'>size</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>y</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>y</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_size</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span> <span class='hs-layout'>}</span><span class='hs-layout'>)</span>
|
<a name="line-145"></a> <span class='hs-varid'>g</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Nothing</span>
|
||||||
<a name="line-146"></a>
|
<a name="line-146"></a> <span class='hs-varid'>h</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>PartialAttribute</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeDescription</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-147"></a><a name="time"></a><span class='hs-definition'>time</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int32</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
<a name="line-147"></a> <span class='hs-varid'>y</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>Attr</span> <span class='hs-varid'>x</span><span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-varid'>j</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-148"></a><span class='hs-definition'>time</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>y</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>y</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_time</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span> <span class='hs-layout'>}</span><span class='hs-layout'>)</span>
|
<a name="line-148"></a> <span class='hs-varid'>j</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AttributeValue</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span>
|
||||||
<a name="line-149"></a>
|
<a name="line-149"></a><span class='hs-definition'>searchResult</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>ResponseInvalid</span> <span class='hs-varid'>req</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-150"></a><a name="typesOnly"></a><span class='hs-definition'>typesOnly</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
<a name="line-150"></a>
|
||||||
<a name="line-151"></a><span class='hs-definition'>typesOnly</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>y</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>y</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_typesOnly</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span> <span class='hs-layout'>}</span><span class='hs-layout'>)</span>
|
<a name="line-151"></a><a name="Search"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Search</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-152"></a>
|
<a name="line-152"></a> <span class='hs-layout'>{</span> <span class='hs-sel'>_scope</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Scope</span>
|
||||||
<a name="line-153"></a><a name="derefAliases"></a><span class='hs-definition'>derefAliases</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>DerefAliases</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
<a name="line-153"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_derefAliases</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>DerefAliases</span>
|
||||||
<a name="line-154"></a><span class='hs-definition'>derefAliases</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>y</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>y</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_derefAliases</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span> <span class='hs-layout'>}</span><span class='hs-layout'>)</span>
|
<a name="line-154"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_size</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int32</span>
|
||||||
<a name="line-155"></a>
|
<a name="line-155"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_time</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int32</span>
|
||||||
<a name="line-156"></a><a name="Mod"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Mod</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
<a name="line-156"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_typesOnly</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span>
|
||||||
<a name="line-157"></a>
|
<a name="line-157"></a> <span class='hs-layout'>}</span> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-158"></a><a name="instance%20Semigroup%20(Mod%20a)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Semigroup</span> <span class='hs-layout'>(</span><span class='hs-conid'>Mod</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-158"></a>
|
||||||
<a name="line-159"></a> <span class='hs-conid'>Mod</span> <span class='hs-varid'>f</span> <span class='hs-varop'><></span> <span class='hs-conid'>Mod</span> <span class='hs-varid'>g</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-varid'>g</span> <span class='hs-varop'>.</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span>
|
<a name="line-159"></a><a name="defaultSearch"></a><span class='hs-definition'>defaultSearch</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-160"></a>
|
<a name="line-160"></a><span class='hs-definition'>defaultSearch</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-161"></a><a name="instance%20Monoid%20(Mod%20a)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Monoid</span> <span class='hs-layout'>(</span><span class='hs-conid'>Mod</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-161"></a> <span class='hs-layout'>{</span> <span class='hs-sel'>_scope</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>BaseObject</span>
|
||||||
<a name="line-162"></a> <span class='hs-varid'>mempty</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-varid'>id</span>
|
<a name="line-162"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_size</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span>
|
||||||
<a name="line-163"></a> <span class='hs-varid'>mappend</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varop'><></span><span class='hs-layout'>)</span>
|
<a name="line-163"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_time</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span>
|
||||||
<a name="line-164"></a>
|
<a name="line-164"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_typesOnly</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
||||||
<a name="line-165"></a><a name="Filter"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Filter</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-165"></a> <span class='hs-layout'>,</span> <span class='hs-sel'>_derefAliases</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>NeverDerefAliases</span>
|
||||||
<a name="line-166"></a> <span class='hs-conid'>Not</span> <span class='hs-conid'>Filter</span>
|
<a name="line-166"></a> <span class='hs-layout'>}</span>
|
||||||
<a name="line-167"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>And</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>)</span>
|
<a name="line-167"></a>
|
||||||
<a name="line-168"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Or</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>)</span>
|
<a name="line-168"></a><a name="scope"></a><span class='hs-definition'>scope</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Scope</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-169"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Present</span> <span class='hs-conid'>Attr</span>
|
<a name="line-169"></a><span class='hs-definition'>scope</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>y</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>y</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_scope</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span> <span class='hs-layout'>}</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-170"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Attr</span> <span class='hs-conop'>:=</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-170"></a>
|
||||||
<a name="line-171"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Attr</span> <span class='hs-conop'>:>=</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-171"></a><a name="size"></a><span class='hs-definition'>size</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int32</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-172"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Attr</span> <span class='hs-conop'>:<=</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-172"></a><span class='hs-definition'>size</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>y</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>y</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_size</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span> <span class='hs-layout'>}</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-173"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Attr</span> <span class='hs-conop'>:~=</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-173"></a>
|
||||||
<a name="line-174"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Attr</span> <span class='hs-conop'>:=*</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>,</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>ByteString</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>,</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>ByteString</span><span class='hs-layout'>)</span>
|
<a name="line-174"></a><a name="time"></a><span class='hs-definition'>time</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int32</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-175"></a> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>Attr</span><span class='hs-layout'>,</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Attr</span><span class='hs-layout'>,</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span> <span class='hs-conop'>::=</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-175"></a><span class='hs-definition'>time</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>y</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>y</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_time</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span> <span class='hs-layout'>}</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-176"></a>
|
<a name="line-176"></a>
|
||||||
<a name="line-177"></a><a name="SearchEntry"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>SearchEntry</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>SearchEntry</span> <span class='hs-conid'>Dn</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttrList</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
<a name="line-177"></a><a name="typesOnly"></a><span class='hs-definition'>typesOnly</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-178"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
<a name="line-178"></a><span class='hs-definition'>typesOnly</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>y</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>y</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_typesOnly</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span> <span class='hs-layout'>}</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-179"></a>
|
||||||
|
<a name="line-180"></a><a name="derefAliases"></a><span class='hs-definition'>derefAliases</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>DerefAliases</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Mod</span> <span class='hs-conid'>Search</span>
|
||||||
|
<a name="line-181"></a><span class='hs-definition'>derefAliases</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>y</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>y</span> <span class='hs-layout'>{</span> <span class='hs-sel'>_derefAliases</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span> <span class='hs-layout'>}</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-182"></a>
|
||||||
|
<a name="line-183"></a><a name="Mod"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>Mod</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-184"></a>
|
||||||
|
<a name="line-185"></a><a name="instance%20Semigroup%20(Mod%20a)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Semigroup</span> <span class='hs-layout'>(</span><span class='hs-conid'>Mod</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-186"></a> <span class='hs-conid'>Mod</span> <span class='hs-varid'>f</span> <span class='hs-varop'><></span> <span class='hs-conid'>Mod</span> <span class='hs-varid'>g</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-layout'>(</span><span class='hs-varid'>g</span> <span class='hs-varop'>.</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-187"></a>
|
||||||
|
<a name="line-188"></a><a name="instance%20Monoid%20(Mod%20a)"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Monoid</span> <span class='hs-layout'>(</span><span class='hs-conid'>Mod</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-189"></a> <span class='hs-varid'>mempty</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Mod</span> <span class='hs-varid'>id</span>
|
||||||
|
<a name="line-190"></a> <span class='hs-varid'>mappend</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varop'><></span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-191"></a>
|
||||||
|
<a name="line-192"></a><a name="Filter"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Filter</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-193"></a> <span class='hs-conid'>Not</span> <span class='hs-conid'>Filter</span>
|
||||||
|
<a name="line-194"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>And</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-195"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Or</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-196"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Present</span> <span class='hs-conid'>Attr</span>
|
||||||
|
<a name="line-197"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Attr</span> <span class='hs-conop'>:=</span> <span class='hs-conid'>AttrValue</span>
|
||||||
|
<a name="line-198"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Attr</span> <span class='hs-conop'>:>=</span> <span class='hs-conid'>AttrValue</span>
|
||||||
|
<a name="line-199"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Attr</span> <span class='hs-conop'>:<=</span> <span class='hs-conid'>AttrValue</span>
|
||||||
|
<a name="line-200"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Attr</span> <span class='hs-conop'>:~=</span> <span class='hs-conid'>AttrValue</span>
|
||||||
|
<a name="line-201"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Attr</span> <span class='hs-conop'>:=*</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>AttrValue</span><span class='hs-layout'>,</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>AttrValue</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>,</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>AttrValue</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-202"></a> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>Attr</span><span class='hs-layout'>,</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Attr</span><span class='hs-layout'>,</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span> <span class='hs-conop'>::=</span> <span class='hs-conid'>AttrValue</span>
|
||||||
|
<a name="line-203"></a>
|
||||||
|
<a name="line-204"></a><a name="SearchEntry"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>SearchEntry</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>SearchEntry</span> <span class='hs-conid'>Dn</span> <span class='hs-layout'>(</span><span class='hs-conid'>AttrList</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-205"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -9,208 +9,258 @@
|
|||||||
<body>
|
<body>
|
||||||
<pre><a name="line-1"></a><span class='hs-comment'>{-# LANGUAGE CPP #-}</span>
|
<pre><a name="line-1"></a><span class='hs-comment'>{-# LANGUAGE CPP #-}</span>
|
||||||
<a name="line-2"></a><span class='hs-comment'>{-# LANGUAGE BangPatterns #-}</span>
|
<a name="line-2"></a><span class='hs-comment'>{-# LANGUAGE BangPatterns #-}</span>
|
||||||
<a name="line-3"></a><span class='hs-comment'>{-# LANGUAGE NamedFieldPuns #-}</span>
|
<a name="line-3"></a><span class='hs-comment'>{-# LANGUAGE DeriveDataTypeable #-}</span>
|
||||||
<a name="line-4"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span>
|
<a name="line-4"></a><span class='hs-comment'>{-# LANGUAGE NamedFieldPuns #-}</span>
|
||||||
<a name="line-5"></a> <span class='hs-layout'>(</span> <span class='hs-conid'>Host</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-5"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span>
|
||||||
<a name="line-6"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Ldap</span>
|
<a name="line-6"></a> <span class='hs-layout'>(</span> <span class='hs-conid'>Host</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-7"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>LdapError</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-7"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Ldap</span>
|
||||||
<a name="line-8"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>ResponseError</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-8"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>LdapError</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-9"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ResultCode</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-9"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>ResponseError</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-10"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Async</span>
|
<a name="line-10"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ResultCode</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-11"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>with</span>
|
<a name="line-11"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Async</span>
|
||||||
<a name="line-12"></a> <span class='hs-comment'>-- * Bind</span>
|
<a name="line-12"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>with</span>
|
||||||
<a name="line-13"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>bind</span>
|
<a name="line-13"></a> <span class='hs-comment'>-- * Bind</span>
|
||||||
<a name="line-14"></a> <span class='hs-comment'>-- * Search</span>
|
<a name="line-14"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>bind</span>
|
||||||
<a name="line-15"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>search</span>
|
<a name="line-15"></a> <span class='hs-comment'>-- * Search</span>
|
||||||
<a name="line-16"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>SearchEntry</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-16"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>search</span>
|
||||||
<a name="line-17"></a> <span class='hs-comment'>-- ** Search modifiers</span>
|
<a name="line-17"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>SearchEntry</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-18"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Search</span>
|
<a name="line-18"></a> <span class='hs-comment'>-- ** Search modifiers</span>
|
||||||
<a name="line-19"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Mod</span>
|
<a name="line-19"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-20"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>scope</span>
|
<a name="line-20"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Mod</span>
|
||||||
<a name="line-21"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Scope</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-21"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>scope</span>
|
||||||
<a name="line-22"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>size</span>
|
<a name="line-22"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Scope</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-23"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>time</span>
|
<a name="line-23"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>size</span>
|
||||||
<a name="line-24"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>typesOnly</span>
|
<a name="line-24"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>time</span>
|
||||||
<a name="line-25"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>derefAliases</span>
|
<a name="line-25"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>typesOnly</span>
|
||||||
<a name="line-26"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-26"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>derefAliases</span>
|
||||||
<a name="line-27"></a> <span class='hs-comment'>-- * Modify</span>
|
<a name="line-27"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-28"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modify</span>
|
<a name="line-28"></a> <span class='hs-comment'>-- * Modify</span>
|
||||||
<a name="line-29"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Operation</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-29"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modify</span>
|
||||||
<a name="line-30"></a> <span class='hs-comment'>-- * Add</span>
|
<a name="line-30"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Operation</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-31"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>add</span>
|
<a name="line-31"></a> <span class='hs-comment'>-- * Add</span>
|
||||||
<a name="line-32"></a> <span class='hs-comment'>-- * Delete</span>
|
<a name="line-32"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>add</span>
|
||||||
<a name="line-33"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>delete</span>
|
<a name="line-33"></a> <span class='hs-comment'>-- * Delete</span>
|
||||||
<a name="line-34"></a> <span class='hs-comment'>-- * ModifyDn</span>
|
<a name="line-34"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>delete</span>
|
||||||
<a name="line-35"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyDn</span>
|
<a name="line-35"></a> <span class='hs-comment'>-- * ModifyDn</span>
|
||||||
<a name="line-36"></a> <span class='hs-comment'>-- * Compare</span>
|
<a name="line-36"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>modifyDn</span>
|
||||||
<a name="line-37"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>compare</span>
|
<a name="line-37"></a> <span class='hs-comment'>-- * Compare</span>
|
||||||
<a name="line-38"></a> <span class='hs-comment'>-- * Extended</span>
|
<a name="line-38"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>compare</span>
|
||||||
<a name="line-39"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>extended</span>
|
<a name="line-39"></a> <span class='hs-comment'>-- * Extended</span>
|
||||||
<a name="line-40"></a> <span class='hs-comment'>-- * Waiting for completion</span>
|
<a name="line-40"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>extended</span>
|
||||||
<a name="line-41"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>wait</span>
|
<a name="line-41"></a> <span class='hs-comment'>-- * Waiting for completion</span>
|
||||||
<a name="line-42"></a> <span class='hs-comment'>-- * Miscellanous</span>
|
<a name="line-42"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>wait</span>
|
||||||
<a name="line-43"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Dn</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-43"></a> <span class='hs-comment'>-- * Miscellanous</span>
|
||||||
<a name="line-44"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>RelativeDn</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-44"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Dn</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-45"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Oid</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-45"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>RelativeDn</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-46"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Password</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-46"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Oid</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-47"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>AttrList</span>
|
<a name="line-47"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Password</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-48"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Attr</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-48"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>AttrList</span>
|
||||||
<a name="line-49"></a> <span class='hs-comment'>-- * Re-exports</span>
|
<a name="line-49"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Attr</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-50"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>NonEmpty</span>
|
<a name="line-50"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>AttrValue</span>
|
||||||
<a name="line-51"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>PortNumber</span>
|
<a name="line-51"></a> <span class='hs-comment'>-- * Re-exports</span>
|
||||||
<a name="line-52"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
<a name="line-52"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>NonEmpty</span>
|
||||||
<a name="line-53"></a>
|
<a name="line-53"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>PortNumber</span>
|
||||||
<a name="line-54"></a><span class='hs-cpp'>#if __GLASGOW_HASKELL__ < 710</span>
|
<a name="line-54"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-55"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Applicative</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varop'><$></span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-55"></a>
|
||||||
<a name="line-56"></a><span class='hs-cpp'>#endif</span>
|
<a name="line-56"></a><span class='hs-cpp'>#if __GLASGOW_HASKELL__ < 710</span>
|
||||||
<a name="line-57"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>Async</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Async</span>
|
<a name="line-57"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Applicative</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varop'><$></span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-58"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-varid'>atomically</span><span class='hs-layout'>)</span>
|
<a name="line-58"></a><span class='hs-cpp'>#endif</span>
|
||||||
<a name="line-59"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span><span class='hs-varop'>.</span><span class='hs-conid'>TMVar</span> <span class='hs-layout'>(</span><span class='hs-varid'>putTMVar</span><span class='hs-layout'>)</span>
|
<a name="line-59"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>Async</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Async</span>
|
||||||
<a name="line-60"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span><span class='hs-varop'>.</span><span class='hs-conid'>TQueue</span> <span class='hs-layout'>(</span><span class='hs-conid'>TQueue</span><span class='hs-layout'>,</span> <span class='hs-varid'>newTQueueIO</span><span class='hs-layout'>,</span> <span class='hs-varid'>writeTQueue</span><span class='hs-layout'>,</span> <span class='hs-varid'>readTQueue</span><span class='hs-layout'>)</span>
|
<a name="line-60"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span> <span class='hs-layout'>(</span><span class='hs-varid'>atomically</span><span class='hs-layout'>,</span> <span class='hs-varid'>throwSTM</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-61"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Exception</span> <span class='hs-layout'>(</span><span class='hs-conid'>Handler</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>bracket</span><span class='hs-layout'>,</span> <span class='hs-varid'>throwIO</span><span class='hs-layout'>,</span> <span class='hs-varid'>catches</span><span class='hs-layout'>)</span>
|
<a name="line-61"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span><span class='hs-varop'>.</span><span class='hs-conid'>TMVar</span> <span class='hs-layout'>(</span><span class='hs-varid'>putTMVar</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-62"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-varid'>forever</span><span class='hs-layout'>)</span>
|
<a name="line-62"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span><span class='hs-varop'>.</span><span class='hs-conid'>STM</span><span class='hs-varop'>.</span><span class='hs-conid'>TQueue</span> <span class='hs-layout'>(</span><span class='hs-conid'>TQueue</span><span class='hs-layout'>,</span> <span class='hs-varid'>newTQueueIO</span><span class='hs-layout'>,</span> <span class='hs-varid'>writeTQueue</span><span class='hs-layout'>,</span> <span class='hs-varid'>readTQueue</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-63"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>BinaryEncoding</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Asn1</span>
|
<a name="line-63"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Exception</span> <span class='hs-layout'>(</span><span class='hs-conid'>Exception</span><span class='hs-layout'>,</span> <span class='hs-conid'>Handler</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>bracket</span><span class='hs-layout'>,</span> <span class='hs-varid'>throwIO</span><span class='hs-layout'>,</span> <span class='hs-varid'>catch</span><span class='hs-layout'>,</span> <span class='hs-varid'>catches</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-64"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Encoding</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Asn1</span>
|
<a name="line-64"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-varid'>forever</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-65"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Error</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Asn1</span>
|
<a name="line-65"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>BinaryEncoding</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Asn1</span>
|
||||||
<a name="line-66"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>ByteString</span>
|
<a name="line-66"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Encoding</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Asn1</span>
|
||||||
<a name="line-67"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span><span class='hs-varop'>.</span><span class='hs-conid'>Lazy</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>ByteString</span><span class='hs-varop'>.</span><span class='hs-conid'>Lazy</span>
|
<a name="line-67"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1</span><span class='hs-varop'>.</span><span class='hs-conid'>Error</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Asn1</span>
|
||||||
<a name="line-68"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Foldable</span> <span class='hs-layout'>(</span><span class='hs-varid'>traverse_</span><span class='hs-layout'>,</span> <span class='hs-varid'>asum</span><span class='hs-layout'>)</span>
|
<a name="line-68"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>ByteString</span>
|
||||||
<a name="line-69"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Function</span> <span class='hs-layout'>(</span><span class='hs-varid'>fix</span><span class='hs-layout'>)</span>
|
<a name="line-69"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>ByteString</span><span class='hs-varop'>.</span><span class='hs-conid'>Lazy</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>ByteString</span><span class='hs-varop'>.</span><span class='hs-conid'>Lazy</span>
|
||||||
<a name="line-70"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-70"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Foldable</span> <span class='hs-layout'>(</span><span class='hs-varid'>asum</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-71"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-conid'>Strict</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Map</span>
|
<a name="line-71"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Function</span> <span class='hs-layout'>(</span><span class='hs-varid'>fix</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-72"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Monoid</span> <span class='hs-layout'>(</span><span class='hs-conid'>Endo</span><span class='hs-layout'>(</span><span class='hs-varid'>appEndo</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-72"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>List</span><span class='hs-varop'>.</span><span class='hs-conid'>NonEmpty</span> <span class='hs-layout'>(</span><span class='hs-conid'>NonEmpty</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conop'>:|</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-73"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Network</span><span class='hs-varop'>.</span><span class='hs-conid'>Connection</span> <span class='hs-layout'>(</span><span class='hs-conid'>Connection</span><span class='hs-layout'>)</span>
|
<a name="line-73"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-conid'>Strict</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Map</span>
|
||||||
<a name="line-74"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Network</span><span class='hs-varop'>.</span><span class='hs-conid'>Connection</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Conn</span>
|
<a name="line-74"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Monoid</span> <span class='hs-layout'>(</span><span class='hs-conid'>Endo</span><span class='hs-layout'>(</span><span class='hs-varid'>appEndo</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-75"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>IO</span><span class='hs-varop'>.</span><span class='hs-conid'>Error</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>IO</span>
|
<a name="line-75"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>String</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromString</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-76"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span><span class='hs-varid'>compare</span><span class='hs-layout'>)</span>
|
<a name="line-76"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-77"></a>
|
<a name="line-77"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Typeable</span> <span class='hs-layout'>(</span><span class='hs-conid'>Typeable</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-78"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>ToAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>ToAsn1</span><span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-78"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Network</span><span class='hs-varop'>.</span><span class='hs-conid'>Connection</span> <span class='hs-layout'>(</span><span class='hs-conid'>Connection</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-79"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>FromAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>FromAsn1</span><span class='hs-layout'>,</span> <span class='hs-varid'>parseAsn1</span><span class='hs-layout'>)</span>
|
<a name="line-79"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Network</span><span class='hs-varop'>.</span><span class='hs-conid'>Connection</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Conn</span>
|
||||||
<a name="line-80"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
<a name="line-80"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span><span class='hs-varid'>compare</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-81"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
<a name="line-81"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>IO</span><span class='hs-varop'>.</span><span class='hs-conid'>Error</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>IO</span>
|
||||||
<a name="line-82"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Bind</span> <span class='hs-layout'>(</span><span class='hs-varid'>bind</span><span class='hs-layout'>,</span> <span class='hs-varid'>unbindAsync</span><span class='hs-layout'>)</span>
|
<a name="line-82"></a>
|
||||||
<a name="line-83"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Search</span>
|
<a name="line-83"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>ToAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>ToAsn1</span><span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-84"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>search</span>
|
<a name="line-84"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>FromAsn1</span> <span class='hs-layout'>(</span><span class='hs-conid'>FromAsn1</span><span class='hs-layout'>,</span> <span class='hs-varid'>parseAsn1</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-85"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Search</span>
|
<a name="line-85"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>Type</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Type</span>
|
||||||
<a name="line-86"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Mod</span>
|
<a name="line-86"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span>
|
||||||
<a name="line-87"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>scope</span>
|
<a name="line-87"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Bind</span> <span class='hs-layout'>(</span><span class='hs-varid'>bind</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-88"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>size</span>
|
<a name="line-88"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Search</span>
|
||||||
<a name="line-89"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>time</span>
|
<a name="line-89"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>search</span>
|
||||||
<a name="line-90"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>typesOnly</span>
|
<a name="line-90"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Search</span>
|
||||||
<a name="line-91"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>derefAliases</span>
|
<a name="line-91"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Mod</span>
|
||||||
<a name="line-92"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-92"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>scope</span>
|
||||||
<a name="line-93"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>SearchEntry</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
<a name="line-93"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>size</span>
|
||||||
<a name="line-94"></a> <span class='hs-layout'>)</span>
|
<a name="line-94"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>time</span>
|
||||||
<a name="line-95"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Modify</span> <span class='hs-layout'>(</span><span class='hs-conid'>Operation</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>modify</span><span class='hs-layout'>,</span> <span class='hs-varid'>modifyDn</span><span class='hs-layout'>)</span>
|
<a name="line-95"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>typesOnly</span>
|
||||||
<a name="line-96"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Add</span> <span class='hs-layout'>(</span><span class='hs-varid'>add</span><span class='hs-layout'>)</span>
|
<a name="line-96"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>derefAliases</span>
|
||||||
<a name="line-97"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Delete</span> <span class='hs-layout'>(</span><span class='hs-varid'>delete</span><span class='hs-layout'>)</span>
|
<a name="line-97"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Filter</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-98"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Compare</span> <span class='hs-layout'>(</span><span class='hs-varid'>compare</span><span class='hs-layout'>)</span>
|
<a name="line-98"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>SearchEntry</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-99"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Extended</span> <span class='hs-layout'>(</span><span class='hs-varid'>extended</span><span class='hs-layout'>)</span>
|
<a name="line-99"></a> <span class='hs-layout'>)</span>
|
||||||
<a name="line-100"></a>
|
<a name="line-100"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Modify</span> <span class='hs-layout'>(</span><span class='hs-conid'>Operation</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>modify</span><span class='hs-layout'>,</span> <span class='hs-varid'>modifyDn</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-101"></a>
|
<a name="line-101"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Add</span> <span class='hs-layout'>(</span><span class='hs-varid'>add</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-102"></a><a name="newLdap"></a><span class='hs-definition'>newLdap</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Ldap</span>
|
<a name="line-102"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Delete</span> <span class='hs-layout'>(</span><span class='hs-varid'>delete</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-103"></a><span class='hs-definition'>newLdap</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Ldap</span>
|
<a name="line-103"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Compare</span> <span class='hs-layout'>(</span><span class='hs-varid'>compare</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-104"></a> <span class='hs-varop'><$></span> <span class='hs-varid'>newTQueueIO</span>
|
<a name="line-104"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Ldap</span><span class='hs-varop'>.</span><span class='hs-conid'>Client</span><span class='hs-varop'>.</span><span class='hs-conid'>Extended</span> <span class='hs-layout'>(</span><span class='hs-varid'>extended</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-105"></a>
|
<a name="line-105"></a>
|
||||||
<a name="line-106"></a><a name="LdapError"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>LdapError</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-106"></a><span class='hs-comment'>{-# ANN module "HLint: ignore Use first" #-}</span>
|
||||||
<a name="line-107"></a> <span class='hs-conid'>IOError</span> <span class='hs-conid'>IOError</span>
|
<a name="line-107"></a>
|
||||||
<a name="line-108"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ParseError</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1Error</span>
|
<a name="line-108"></a>
|
||||||
<a name="line-109"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>ResponseError</span>
|
<a name="line-109"></a><a name="newLdap"></a><span class='hs-definition'>newLdap</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Ldap</span>
|
||||||
<a name="line-110"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
<a name="line-110"></a><span class='hs-definition'>newLdap</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Ldap</span>
|
||||||
<a name="line-111"></a>
|
<a name="line-111"></a> <span class='hs-varop'><$></span> <span class='hs-varid'>newTQueueIO</span>
|
||||||
<a name="line-112"></a><a name="with"></a><span class='hs-comment'>-- | The entrypoint into LDAP.</span>
|
<a name="line-112"></a>
|
||||||
<a name="line-113"></a><span class='hs-definition'>with</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Host</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>PortNumber</span> <span class='hs-keyglyph'>-></span> <span class='hs-layout'>(</span><span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>LdapError</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
<a name="line-113"></a><a name="LdapError"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>LdapError</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-114"></a><span class='hs-definition'>with</span> <span class='hs-varid'>host</span> <span class='hs-varid'>port</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
<a name="line-114"></a> <span class='hs-conid'>IOError</span> <span class='hs-conid'>IOError</span>
|
||||||
<a name="line-115"></a> <span class='hs-varid'>context</span> <span class='hs-keyglyph'><-</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>initConnectionContext</span>
|
<a name="line-115"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ParseError</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>ASN1Error</span>
|
||||||
<a name="line-116"></a> <span class='hs-varid'>bracket</span> <span class='hs-layout'>(</span><span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectTo</span> <span class='hs-varid'>context</span> <span class='hs-varid'>params</span><span class='hs-layout'>)</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionClose</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>conn</span> <span class='hs-keyglyph'>-></span>
|
<a name="line-116"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>ResponseError</span> <span class='hs-conid'>ResponseError</span>
|
||||||
<a name="line-117"></a> <span class='hs-varid'>bracket</span> <span class='hs-varid'>newLdap</span> <span class='hs-varid'>unbindAsync</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>l</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
<a name="line-117"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>DisconnectError</span> <span class='hs-conid'>Disconnect</span>
|
||||||
<a name="line-118"></a> <span class='hs-varid'>inq</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>newTQueueIO</span>
|
<a name="line-118"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-119"></a> <span class='hs-varid'>outq</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>newTQueueIO</span>
|
<a name="line-119"></a>
|
||||||
<a name="line-120"></a> <span class='hs-conid'>Async</span><span class='hs-varop'>.</span><span class='hs-varid'>withAsync</span> <span class='hs-layout'>(</span><span class='hs-varid'>input</span> <span class='hs-varid'>inq</span> <span class='hs-varid'>conn</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>i</span> <span class='hs-keyglyph'>-></span>
|
<a name="line-120"></a><a name="WrappedIOError"></a><span class='hs-keyword'>newtype</span> <span class='hs-conid'>WrappedIOError</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>WrappedIOError</span> <span class='hs-conid'>IOError</span>
|
||||||
<a name="line-121"></a> <span class='hs-conid'>Async</span><span class='hs-varop'>.</span><span class='hs-varid'>withAsync</span> <span class='hs-layout'>(</span><span class='hs-varid'>output</span> <span class='hs-varid'>outq</span> <span class='hs-varid'>conn</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>o</span> <span class='hs-keyglyph'>-></span>
|
<a name="line-121"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Typeable</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-122"></a> <span class='hs-conid'>Async</span><span class='hs-varop'>.</span><span class='hs-varid'>withAsync</span> <span class='hs-layout'>(</span><span class='hs-varid'>dispatch</span> <span class='hs-varid'>l</span> <span class='hs-varid'>inq</span> <span class='hs-varid'>outq</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>d</span> <span class='hs-keyglyph'>-></span>
|
<a name="line-122"></a>
|
||||||
<a name="line-123"></a> <span class='hs-conid'>Async</span><span class='hs-varop'>.</span><span class='hs-varid'>withAsync</span> <span class='hs-layout'>(</span><span class='hs-varid'>f</span> <span class='hs-varid'>l</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>u</span> <span class='hs-keyglyph'>-></span>
|
<a name="line-123"></a><a name="instance%20Exception%20WrappedIOError%20data%20Disconnect%20=%20Disconnect%20Type.ResultCode%20Dn%20Text%20deriving%20(Show,%20Eq,%20Typeable)%20instance%20Exception%20Disconnect%20--%20%7c%20The%20entrypoint%20into%20LDAP.%20with%20::%20Host%20-%3e%20PortNumber%20-%3e%20(Ldap%20-%3e%20IO%20a)%20-%3e%20IO%20(Either%20LdapError%20a)%20with%20host%20port%20f%20=%20do%20context%20%3c-%20Conn.initConnectionContext%20bracket%20(Conn.connectTo%20context%20params)%20Conn.connectionClose%20(%5cconn%20-%3e%20bracket%20newLdap%20unbindAsync%20(%5cl%20-%3e%20do%20inq%20%3c-%20newTQueueIO%20outq%20%3c-%20newTQueueIO%20Async.withAsync%20(input%20inq%20conn)%20$%20%5ci%20-%3e%20Async.withAsync%20(output%20outq%20conn)%20$%20%5co%20-%3e%20Async.withAsync%20(dispatch%20l%20inq%20outq)%20$%20%5cd%20-%3e%20Async.withAsync%20(f%20l)%20$%20%5cu%20-%3e%20fmap%20(Right%20.%20snd)%20(Async.waitAnyCancel%20%5bi,%20o,%20d,%20u%5d)))%20%60catches%60%20%5b%20Handler%20(%5c(WrappedIOError%20e)%20-%3e%20return%20(Left%20(IOError%20e)))%20,%20Handler%20(return%20.%20Left%20.%20ParseError)%20,%20Handler%20(return%20.%20Left%20.%20ResponseError)%20%5d"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Exception</span> <span class='hs-conid'>WrappedIOError</span>
|
||||||
<a name="line-124"></a> <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-conid'>Right</span> <span class='hs-varop'>.</span> <span class='hs-varid'>snd</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span><span class='hs-varop'>.</span><span class='hs-varid'>waitAnyCancel</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>i</span><span class='hs-layout'>,</span> <span class='hs-varid'>o</span><span class='hs-layout'>,</span> <span class='hs-varid'>d</span><span class='hs-layout'>,</span> <span class='hs-varid'>u</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-124"></a>
|
||||||
<a name="line-125"></a> <span class='hs-varop'>`catches`</span>
|
<a name="line-125"></a><a name="Disconnect"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Disconnect</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Disconnect</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ResultCode</span> <span class='hs-conid'>Dn</span> <span class='hs-conid'>Text</span>
|
||||||
<a name="line-126"></a> <span class='hs-keyglyph'>[</span> <span class='hs-conid'>Handler</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Left</span> <span class='hs-varop'>.</span> <span class='hs-conid'>IOError</span><span class='hs-layout'>)</span>
|
<a name="line-126"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>,</span> <span class='hs-conid'>Typeable</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-127"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Handler</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Left</span> <span class='hs-varop'>.</span> <span class='hs-conid'>ParseError</span><span class='hs-layout'>)</span>
|
<a name="line-127"></a>
|
||||||
<a name="line-128"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Handler</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Left</span> <span class='hs-varop'>.</span> <span class='hs-conid'>ResponseError</span><span class='hs-layout'>)</span>
|
<a name="line-128"></a><a name="instance%20Exception%20Disconnect%20--%20%7c%20The%20entrypoint%20into%20LDAP.%20with%20::%20Host%20-%3e%20PortNumber%20-%3e%20(Ldap%20-%3e%20IO%20a)%20-%3e%20IO%20(Either%20LdapError%20a)%20with%20host%20port%20f%20=%20do%20context%20%3c-%20Conn.initConnectionContext%20bracket%20(Conn.connectTo%20context%20params)%20Conn.connectionClose%20(%5cconn%20-%3e%20bracket%20newLdap%20unbindAsync%20(%5cl%20-%3e%20do%20inq%20%3c-%20newTQueueIO%20outq%20%3c-%20newTQueueIO%20Async.withAsync%20(input%20inq%20conn)%20$%20%5ci%20-%3e%20Async.withAsync%20(output%20outq%20conn)%20$%20%5co%20-%3e%20Async.withAsync%20(dispatch%20l%20inq%20outq)%20$%20%5cd%20-%3e%20Async.withAsync%20(f%20l)%20$%20%5cu%20-%3e%20fmap%20(Right%20.%20snd)%20(Async.waitAnyCancel%20%5bi,%20o,%20d,%20u%5d)))%20%60catches%60%20%5b%20Handler%20(%5c(WrappedIOError%20e)%20-%3e%20return%20(Left%20(IOError%20e)))%20,%20Handler%20(return%20.%20Left%20.%20ParseError)%20,%20Handler%20(return%20.%20Left%20.%20ResponseError)%20%5d"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Exception</span> <span class='hs-conid'>Disconnect</span>
|
||||||
<a name="line-129"></a> <span class='hs-keyglyph'>]</span>
|
<a name="line-129"></a>
|
||||||
<a name="line-130"></a> <span class='hs-keyword'>where</span>
|
<a name="line-130"></a><a name="with"></a><span class='hs-comment'>-- | The entrypoint into LDAP.</span>
|
||||||
<a name="line-131"></a> <span class='hs-varid'>params</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-conid'>ConnectionParams</span>
|
<a name="line-131"></a><span class='hs-definition'>with</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Host</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>PortNumber</span> <span class='hs-keyglyph'>-></span> <span class='hs-layout'>(</span><span class='hs-conid'>Ldap</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-conid'>LdapError</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-132"></a> <span class='hs-layout'>{</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionHostname</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-132"></a><span class='hs-definition'>with</span> <span class='hs-varid'>host</span> <span class='hs-varid'>port</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-133"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>host</span> <span class='hs-keyword'>of</span>
|
<a name="line-133"></a> <span class='hs-varid'>context</span> <span class='hs-keyglyph'><-</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>initConnectionContext</span>
|
||||||
<a name="line-134"></a> <span class='hs-conid'>Plain</span> <span class='hs-varid'>h</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>h</span>
|
<a name="line-134"></a> <span class='hs-varid'>bracket</span> <span class='hs-layout'>(</span><span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectTo</span> <span class='hs-varid'>context</span> <span class='hs-varid'>params</span><span class='hs-layout'>)</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionClose</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>conn</span> <span class='hs-keyglyph'>-></span>
|
||||||
<a name="line-135"></a> <span class='hs-conid'>Secure</span> <span class='hs-varid'>h</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>h</span>
|
<a name="line-135"></a> <span class='hs-varid'>bracket</span> <span class='hs-varid'>newLdap</span> <span class='hs-varid'>unbindAsync</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>l</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-136"></a> <span class='hs-conid'>Insecure</span> <span class='hs-varid'>h</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>h</span>
|
<a name="line-136"></a> <span class='hs-varid'>inq</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>newTQueueIO</span>
|
||||||
<a name="line-137"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionPort</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>port</span>
|
<a name="line-137"></a> <span class='hs-varid'>outq</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>newTQueueIO</span>
|
||||||
<a name="line-138"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionUseSecure</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-138"></a> <span class='hs-conid'>Async</span><span class='hs-varop'>.</span><span class='hs-varid'>withAsync</span> <span class='hs-layout'>(</span><span class='hs-varid'>input</span> <span class='hs-varid'>inq</span> <span class='hs-varid'>conn</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>i</span> <span class='hs-keyglyph'>-></span>
|
||||||
<a name="line-139"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>host</span> <span class='hs-keyword'>of</span>
|
<a name="line-139"></a> <span class='hs-conid'>Async</span><span class='hs-varop'>.</span><span class='hs-varid'>withAsync</span> <span class='hs-layout'>(</span><span class='hs-varid'>output</span> <span class='hs-varid'>outq</span> <span class='hs-varid'>conn</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>o</span> <span class='hs-keyglyph'>-></span>
|
||||||
<a name="line-140"></a> <span class='hs-conid'>Plain</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Nothing</span>
|
<a name="line-140"></a> <span class='hs-conid'>Async</span><span class='hs-varop'>.</span><span class='hs-varid'>withAsync</span> <span class='hs-layout'>(</span><span class='hs-varid'>dispatch</span> <span class='hs-varid'>l</span> <span class='hs-varid'>inq</span> <span class='hs-varid'>outq</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>d</span> <span class='hs-keyglyph'>-></span>
|
||||||
<a name="line-141"></a> <span class='hs-conid'>Secure</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Just</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-conid'>TLSSettingsSimple</span>
|
<a name="line-141"></a> <span class='hs-conid'>Async</span><span class='hs-varop'>.</span><span class='hs-varid'>withAsync</span> <span class='hs-layout'>(</span><span class='hs-varid'>f</span> <span class='hs-varid'>l</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>u</span> <span class='hs-keyglyph'>-></span>
|
||||||
<a name="line-142"></a> <span class='hs-layout'>{</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingDisableCertificateValidation</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
<a name="line-142"></a> <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-conid'>Right</span> <span class='hs-varop'>.</span> <span class='hs-varid'>snd</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Async</span><span class='hs-varop'>.</span><span class='hs-varid'>waitAnyCancel</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>i</span><span class='hs-layout'>,</span> <span class='hs-varid'>o</span><span class='hs-layout'>,</span> <span class='hs-varid'>d</span><span class='hs-layout'>,</span> <span class='hs-varid'>u</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-143"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingDisableSession</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
<a name="line-143"></a> <span class='hs-varop'>`catches`</span>
|
||||||
<a name="line-144"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingUseServerName</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
<a name="line-144"></a> <span class='hs-keyglyph'>[</span> <span class='hs-conid'>Handler</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>WrappedIOError</span> <span class='hs-varid'>e</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Left</span> <span class='hs-layout'>(</span><span class='hs-conid'>IOError</span> <span class='hs-varid'>e</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-145"></a> <span class='hs-layout'>}</span>
|
<a name="line-145"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Handler</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Left</span> <span class='hs-varop'>.</span> <span class='hs-conid'>ParseError</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-146"></a> <span class='hs-conid'>Insecure</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Just</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-conid'>TLSSettingsSimple</span>
|
<a name="line-146"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Handler</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-varop'>.</span> <span class='hs-conid'>Left</span> <span class='hs-varop'>.</span> <span class='hs-conid'>ResponseError</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-147"></a> <span class='hs-layout'>{</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingDisableCertificateValidation</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>True</span>
|
<a name="line-147"></a> <span class='hs-keyglyph'>]</span>
|
||||||
<a name="line-148"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingDisableSession</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
<a name="line-148"></a> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-149"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingUseServerName</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
<a name="line-149"></a> <span class='hs-varid'>params</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-conid'>ConnectionParams</span>
|
||||||
<a name="line-150"></a> <span class='hs-layout'>}</span>
|
<a name="line-150"></a> <span class='hs-layout'>{</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionHostname</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-151"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionUseSocks</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Nothing</span>
|
<a name="line-151"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>host</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-152"></a> <span class='hs-layout'>}</span>
|
<a name="line-152"></a> <span class='hs-conid'>Plain</span> <span class='hs-varid'>h</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>h</span>
|
||||||
<a name="line-153"></a>
|
<a name="line-153"></a> <span class='hs-conid'>Secure</span> <span class='hs-varid'>h</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>h</span>
|
||||||
<a name="line-154"></a><a name="input"></a><span class='hs-definition'>input</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>TQueue</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Connection</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-varid'>b</span>
|
<a name="line-154"></a> <span class='hs-conid'>Insecure</span> <span class='hs-varid'>h</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>h</span>
|
||||||
<a name="line-155"></a><span class='hs-definition'>input</span> <span class='hs-varid'>inq</span> <span class='hs-varid'>conn</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>flip</span> <span class='hs-varid'>fix</span> <span class='hs-conid'>[]</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>loop</span> <span class='hs-varid'>chunks</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
<a name="line-155"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionPort</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>port</span>
|
||||||
<a name="line-156"></a> <span class='hs-varid'>chunk</span> <span class='hs-keyglyph'><-</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionGet</span> <span class='hs-varid'>conn</span> <span class='hs-num'>8192</span>
|
<a name="line-156"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionUseSecure</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-157"></a> <span class='hs-keyword'>case</span> <span class='hs-conid'>ByteString</span><span class='hs-varop'>.</span><span class='hs-varid'>length</span> <span class='hs-varid'>chunk</span> <span class='hs-keyword'>of</span>
|
<a name="line-157"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>host</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-158"></a> <span class='hs-num'>0</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>throwIO</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span><span class='hs-varop'>.</span><span class='hs-varid'>mkIOError</span> <span class='hs-conid'>IO</span><span class='hs-varop'>.</span><span class='hs-varid'>eofErrorType</span> <span class='hs-str'>"Ldap.Client.input"</span> <span class='hs-conid'>Nothing</span> <span class='hs-conid'>Nothing</span><span class='hs-layout'>)</span>
|
<a name="line-158"></a> <span class='hs-conid'>Plain</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Nothing</span>
|
||||||
<a name="line-159"></a> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
<a name="line-159"></a> <span class='hs-conid'>Secure</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Just</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-conid'>TLSSettingsSimple</span>
|
||||||
<a name="line-160"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>chunks'</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>chunk</span> <span class='hs-conop'>:</span> <span class='hs-varid'>chunks</span>
|
<a name="line-160"></a> <span class='hs-layout'>{</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingDisableCertificateValidation</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
||||||
<a name="line-161"></a> <span class='hs-keyword'>case</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-varid'>decodeASN1</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>DER</span> <span class='hs-layout'>(</span><span class='hs-conid'>ByteString</span><span class='hs-varop'>.</span><span class='hs-conid'>Lazy</span><span class='hs-varop'>.</span><span class='hs-varid'>fromChunks</span> <span class='hs-layout'>(</span><span class='hs-varid'>reverse</span> <span class='hs-varid'>chunks'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyword'>of</span>
|
<a name="line-161"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingDisableSession</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
||||||
<a name="line-162"></a> <span class='hs-conid'>Left</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>ParsingPartial</span>
|
<a name="line-162"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingUseServerName</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
||||||
<a name="line-163"></a> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>loop</span> <span class='hs-varid'>chunks'</span>
|
<a name="line-163"></a> <span class='hs-layout'>}</span>
|
||||||
<a name="line-164"></a> <span class='hs-conid'>Left</span> <span class='hs-varid'>e</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>throwIO</span> <span class='hs-varid'>e</span>
|
<a name="line-164"></a> <span class='hs-conid'>Insecure</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Just</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-conid'>TLSSettingsSimple</span>
|
||||||
<a name="line-165"></a> <span class='hs-conid'>Right</span> <span class='hs-varid'>asn1</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
<a name="line-165"></a> <span class='hs-layout'>{</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingDisableCertificateValidation</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>True</span>
|
||||||
<a name="line-166"></a> <span class='hs-varid'>flip</span> <span class='hs-varid'>fix</span> <span class='hs-varid'>asn1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>loop'</span> <span class='hs-varid'>asn1'</span> <span class='hs-keyglyph'>-></span>
|
<a name="line-166"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingDisableSession</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
||||||
<a name="line-167"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>parseAsn1</span> <span class='hs-varid'>asn1'</span> <span class='hs-keyword'>of</span>
|
<a name="line-167"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>settingUseServerName</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span>
|
||||||
<a name="line-168"></a> <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span>
|
<a name="line-168"></a> <span class='hs-layout'>}</span>
|
||||||
<a name="line-169"></a> <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-varid'>asn1''</span><span class='hs-layout'>,</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
<a name="line-169"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionUseSocks</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Nothing</span>
|
||||||
<a name="line-170"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>writeTQueue</span> <span class='hs-varid'>inq</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
<a name="line-170"></a> <span class='hs-layout'>}</span>
|
||||||
<a name="line-171"></a> <span class='hs-varid'>loop'</span> <span class='hs-varid'>asn1''</span>
|
<a name="line-171"></a>
|
||||||
<a name="line-172"></a> <span class='hs-varid'>loop</span> <span class='hs-conid'>[]</span>
|
<a name="line-172"></a><a name="input"></a><span class='hs-definition'>input</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>FromAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>TQueue</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Connection</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-varid'>b</span>
|
||||||
<a name="line-173"></a>
|
<a name="line-173"></a><span class='hs-definition'>input</span> <span class='hs-varid'>inq</span> <span class='hs-varid'>conn</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>wrap</span> <span class='hs-varop'>.</span> <span class='hs-varid'>flip</span> <span class='hs-varid'>fix</span> <span class='hs-conid'>[]</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>loop</span> <span class='hs-varid'>chunks</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-174"></a><a name="output"></a><span class='hs-definition'>output</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>TQueue</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Connection</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-varid'>b</span>
|
<a name="line-174"></a> <span class='hs-varid'>chunk</span> <span class='hs-keyglyph'><-</span> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionGet</span> <span class='hs-varid'>conn</span> <span class='hs-num'>8192</span>
|
||||||
<a name="line-175"></a><span class='hs-definition'>output</span> <span class='hs-varid'>out</span> <span class='hs-varid'>conn</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>forever</span> <span class='hs-varop'>$</span> <span class='hs-keyword'>do</span>
|
<a name="line-175"></a> <span class='hs-keyword'>case</span> <span class='hs-conid'>ByteString</span><span class='hs-varop'>.</span><span class='hs-varid'>length</span> <span class='hs-varid'>chunk</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-176"></a> <span class='hs-varid'>msg</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>readTQueue</span> <span class='hs-varid'>out</span><span class='hs-layout'>)</span>
|
<a name="line-176"></a> <span class='hs-num'>0</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>throwIO</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span><span class='hs-varop'>.</span><span class='hs-varid'>mkIOError</span> <span class='hs-conid'>IO</span><span class='hs-varop'>.</span><span class='hs-varid'>eofErrorType</span> <span class='hs-str'>"Ldap.Client.input"</span> <span class='hs-conid'>Nothing</span> <span class='hs-conid'>Nothing</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-177"></a> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionPut</span> <span class='hs-varid'>conn</span> <span class='hs-layout'>(</span><span class='hs-varid'>encode</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
<a name="line-177"></a> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-178"></a> <span class='hs-keyword'>where</span>
|
<a name="line-178"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>chunks'</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>chunk</span> <span class='hs-conop'>:</span> <span class='hs-varid'>chunks</span>
|
||||||
<a name="line-179"></a> <span class='hs-varid'>encode</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeASN1'</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>DER</span> <span class='hs-layout'>(</span><span class='hs-varid'>appEndo</span> <span class='hs-varid'>x</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
<a name="line-179"></a> <span class='hs-keyword'>case</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-varid'>decodeASN1</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>DER</span> <span class='hs-layout'>(</span><span class='hs-conid'>ByteString</span><span class='hs-varop'>.</span><span class='hs-conid'>Lazy</span><span class='hs-varop'>.</span><span class='hs-varid'>fromChunks</span> <span class='hs-layout'>(</span><span class='hs-varid'>reverse</span> <span class='hs-varid'>chunks'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-180"></a>
|
<a name="line-180"></a> <span class='hs-conid'>Left</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>ParsingPartial</span>
|
||||||
<a name="line-181"></a><a name="dispatch"></a><span class='hs-definition'>dispatch</span>
|
<a name="line-181"></a> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>loop</span> <span class='hs-varid'>chunks'</span>
|
||||||
<a name="line-182"></a> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span>
|
<a name="line-182"></a> <span class='hs-conid'>Left</span> <span class='hs-varid'>e</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>throwIO</span> <span class='hs-varid'>e</span>
|
||||||
<a name="line-183"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>TQueue</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapMessage</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ProtocolServerOp</span><span class='hs-layout'>)</span>
|
<a name="line-183"></a> <span class='hs-conid'>Right</span> <span class='hs-varid'>asn1</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-184"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>TQueue</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapMessage</span> <span class='hs-conid'>Request</span><span class='hs-layout'>)</span>
|
<a name="line-184"></a> <span class='hs-varid'>flip</span> <span class='hs-varid'>fix</span> <span class='hs-varid'>asn1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>loop'</span> <span class='hs-varid'>asn1'</span> <span class='hs-keyglyph'>-></span>
|
||||||
<a name="line-185"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-varid'>a</span>
|
<a name="line-185"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>parseAsn1</span> <span class='hs-varid'>asn1'</span> <span class='hs-keyword'>of</span>
|
||||||
<a name="line-186"></a><span class='hs-definition'>dispatch</span> <span class='hs-conid'>Ldap</span> <span class='hs-layout'>{</span> <span class='hs-varid'>client</span> <span class='hs-layout'>}</span> <span class='hs-varid'>inq</span> <span class='hs-varid'>outq</span> <span class='hs-keyglyph'>=</span>
|
<a name="line-186"></a> <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span>
|
||||||
<a name="line-187"></a> <span class='hs-varid'>flip</span> <span class='hs-varid'>fix</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>empty</span><span class='hs-layout'>,</span> <span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>empty</span><span class='hs-layout'>,</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>loop</span> <span class='hs-layout'>(</span><span class='hs-varop'>!</span><span class='hs-varid'>got</span><span class='hs-layout'>,</span> <span class='hs-varop'>!</span><span class='hs-varid'>results</span><span class='hs-layout'>,</span> <span class='hs-varop'>!</span><span class='hs-varid'>counter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span>
|
<a name="line-187"></a> <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-varid'>asn1''</span><span class='hs-layout'>,</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-188"></a> <span class='hs-varid'>loop</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>asum</span>
|
<a name="line-188"></a> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>writeTQueue</span> <span class='hs-varid'>inq</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-189"></a> <span class='hs-keyglyph'>[</span> <span class='hs-keyword'>do</span> <span class='hs-conid'>New</span> <span class='hs-varid'>new</span> <span class='hs-varid'>var</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>readTQueue</span> <span class='hs-varid'>client</span>
|
<a name="line-189"></a> <span class='hs-varid'>loop'</span> <span class='hs-varid'>asn1''</span>
|
||||||
<a name="line-190"></a> <span class='hs-varid'>writeTQueue</span> <span class='hs-varid'>outq</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapMessage</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Id</span> <span class='hs-varid'>counter</span><span class='hs-layout'>)</span> <span class='hs-varid'>new</span> <span class='hs-conid'>Nothing</span><span class='hs-layout'>)</span>
|
<a name="line-190"></a> <span class='hs-varid'>loop</span> <span class='hs-conid'>[]</span>
|
||||||
<a name="line-191"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>got</span><span class='hs-layout'>,</span> <span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>insert</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Id</span> <span class='hs-varid'>counter</span><span class='hs-layout'>)</span> <span class='hs-varid'>var</span> <span class='hs-varid'>results</span><span class='hs-layout'>,</span> <span class='hs-varid'>counter</span> <span class='hs-varop'>+</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span>
|
<a name="line-191"></a>
|
||||||
<a name="line-192"></a> <span class='hs-layout'>,</span> <span class='hs-keyword'>do</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>readTQueue</span> <span class='hs-varid'>inq</span>
|
<a name="line-192"></a><a name="output"></a><span class='hs-definition'>output</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ToAsn1</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>TQueue</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Connection</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-varid'>b</span>
|
||||||
<a name="line-193"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>op</span> <span class='hs-keyword'>of</span>
|
<a name="line-193"></a><span class='hs-definition'>output</span> <span class='hs-varid'>out</span> <span class='hs-varid'>conn</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>wrap</span> <span class='hs-varop'>.</span> <span class='hs-varid'>forever</span> <span class='hs-varop'>$</span> <span class='hs-keyword'>do</span>
|
||||||
<a name="line-194"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchResultEntry</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span>
|
<a name="line-194"></a> <span class='hs-varid'>msg</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>readTQueue</span> <span class='hs-varid'>out</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-195"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>insertWith</span> <span class='hs-layout'>(</span><span class='hs-varop'>++</span><span class='hs-layout'>)</span> <span class='hs-varid'>mid</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>op</span><span class='hs-keyglyph'>]</span> <span class='hs-varid'>got</span><span class='hs-layout'>,</span> <span class='hs-varid'>results</span><span class='hs-layout'>,</span> <span class='hs-varid'>counter</span><span class='hs-layout'>)</span>
|
<a name="line-195"></a> <span class='hs-conid'>Conn</span><span class='hs-varop'>.</span><span class='hs-varid'>connectionPut</span> <span class='hs-varid'>conn</span> <span class='hs-layout'>(</span><span class='hs-varid'>encode</span> <span class='hs-layout'>(</span><span class='hs-varid'>toAsn1</span> <span class='hs-varid'>msg</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-196"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchResultReference</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span>
|
<a name="line-196"></a> <span class='hs-keyword'>where</span>
|
||||||
<a name="line-197"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>got</span><span class='hs-layout'>,</span> <span class='hs-varid'>results</span><span class='hs-layout'>,</span> <span class='hs-varid'>counter</span><span class='hs-layout'>)</span>
|
<a name="line-197"></a> <span class='hs-varid'>encode</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-varid'>encodeASN1'</span> <span class='hs-conid'>Asn1</span><span class='hs-varop'>.</span><span class='hs-conid'>DER</span> <span class='hs-layout'>(</span><span class='hs-varid'>appEndo</span> <span class='hs-varid'>x</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-198"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchResultDone</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
<a name="line-198"></a>
|
||||||
<a name="line-199"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>stack</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>findWithDefault</span> <span class='hs-conid'>[]</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>got</span>
|
<a name="line-199"></a><a name="dispatch"></a><span class='hs-definition'>dispatch</span>
|
||||||
<a name="line-200"></a> <span class='hs-varid'>traverse_</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>var</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>putTMVar</span> <span class='hs-varid'>var</span> <span class='hs-layout'>(</span><span class='hs-varid'>op</span> <span class='hs-conop'>:|</span> <span class='hs-varid'>stack</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>lookup</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>results</span><span class='hs-layout'>)</span>
|
<a name="line-200"></a> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ldap</span>
|
||||||
<a name="line-201"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>delete</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>got</span><span class='hs-layout'>,</span> <span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>delete</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>results</span><span class='hs-layout'>,</span> <span class='hs-varid'>counter</span><span class='hs-layout'>)</span>
|
<a name="line-201"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>TQueue</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapMessage</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ProtocolServerOp</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-202"></a> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
<a name="line-202"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>TQueue</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapMessage</span> <span class='hs-conid'>Request</span><span class='hs-layout'>)</span>
|
||||||
<a name="line-203"></a> <span class='hs-varid'>traverse_</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>var</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>putTMVar</span> <span class='hs-varid'>var</span> <span class='hs-layout'>(</span><span class='hs-varid'>op</span> <span class='hs-conop'>:|</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>lookup</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>results</span><span class='hs-layout'>)</span>
|
<a name="line-203"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-varid'>a</span>
|
||||||
<a name="line-204"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>delete</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>got</span><span class='hs-layout'>,</span> <span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>delete</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>results</span><span class='hs-layout'>,</span> <span class='hs-varid'>counter</span><span class='hs-layout'>)</span>
|
<a name="line-204"></a><span class='hs-definition'>dispatch</span> <span class='hs-conid'>Ldap</span> <span class='hs-layout'>{</span> <span class='hs-varid'>client</span> <span class='hs-layout'>}</span> <span class='hs-varid'>inq</span> <span class='hs-varid'>outq</span> <span class='hs-keyglyph'>=</span>
|
||||||
<a name="line-205"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
<a name="line-205"></a> <span class='hs-varid'>flip</span> <span class='hs-varid'>fix</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>empty</span><span class='hs-layout'>,</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>loop</span> <span class='hs-layout'>(</span><span class='hs-varop'>!</span><span class='hs-varid'>req</span><span class='hs-layout'>,</span> <span class='hs-varop'>!</span><span class='hs-varid'>counter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span>
|
||||||
|
<a name="line-206"></a> <span class='hs-varid'>loop</span> <span class='hs-varop'>=<<</span> <span class='hs-varid'>atomically</span> <span class='hs-layout'>(</span><span class='hs-varid'>asum</span>
|
||||||
|
<a name="line-207"></a> <span class='hs-keyglyph'>[</span> <span class='hs-keyword'>do</span> <span class='hs-conid'>New</span> <span class='hs-varid'>new</span> <span class='hs-varid'>var</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>readTQueue</span> <span class='hs-varid'>client</span>
|
||||||
|
<a name="line-208"></a> <span class='hs-varid'>writeTQueue</span> <span class='hs-varid'>outq</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapMessage</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Id</span> <span class='hs-varid'>counter</span><span class='hs-layout'>)</span> <span class='hs-varid'>new</span> <span class='hs-conid'>Nothing</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-209"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>insert</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Id</span> <span class='hs-varid'>counter</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>[]</span><span class='hs-layout'>,</span> <span class='hs-varid'>var</span><span class='hs-layout'>)</span> <span class='hs-varid'>req</span><span class='hs-layout'>,</span> <span class='hs-varid'>counter</span> <span class='hs-varop'>+</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-210"></a> <span class='hs-layout'>,</span> <span class='hs-keyword'>do</span> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapMessage</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-keyword'>_</span>
|
||||||
|
<a name="line-211"></a> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>readTQueue</span> <span class='hs-varid'>inq</span>
|
||||||
|
<a name="line-212"></a> <span class='hs-varid'>res</span> <span class='hs-keyglyph'><-</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>op</span> <span class='hs-keyword'>of</span>
|
||||||
|
<a name="line-213"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>BindResponse</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>done</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-214"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchResultEntry</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>saveUp</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-215"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchResultReference</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-216"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>SearchResultDone</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>done</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-217"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ModifyResponse</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>done</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-218"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>AddResponse</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>done</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-219"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>DeleteResponse</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>done</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-220"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ModifyDnResponse</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>done</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-221"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>CompareResponse</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>done</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-222"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ExtendedResponse</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>probablyDisconnect</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-223"></a> <span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>IntermediateResponse</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>saveUp</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-224"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>res</span><span class='hs-layout'>,</span> <span class='hs-varid'>counter</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-225"></a> <span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-226"></a> <span class='hs-keyword'>where</span>
|
||||||
|
<a name="line-227"></a> <span class='hs-varid'>saveUp</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>res</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-228"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>adjust</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-varid'>stack</span><span class='hs-layout'>,</span> <span class='hs-varid'>var</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-layout'>(</span><span class='hs-varid'>op</span> <span class='hs-conop'>:</span> <span class='hs-varid'>stack</span><span class='hs-layout'>,</span> <span class='hs-varid'>var</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>res</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-229"></a>
|
||||||
|
<a name="line-230"></a> <span class='hs-varid'>done</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-231"></a> <span class='hs-keyword'>case</span> <span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>lookup</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>req</span> <span class='hs-keyword'>of</span>
|
||||||
|
<a name="line-232"></a> <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-233"></a> <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-varid'>stack</span><span class='hs-layout'>,</span> <span class='hs-varid'>var</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-keyword'>do</span>
|
||||||
|
<a name="line-234"></a> <span class='hs-varid'>putTMVar</span> <span class='hs-varid'>var</span> <span class='hs-layout'>(</span><span class='hs-varid'>op</span> <span class='hs-conop'>:|</span> <span class='hs-varid'>stack</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-235"></a> <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span><span class='hs-varop'>.</span><span class='hs-varid'>delete</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>req</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-236"></a>
|
||||||
|
<a name="line-237"></a> <span class='hs-varid'>probablyDisconnect</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>Id</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-238"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>ExtendedResponse</span>
|
||||||
|
<a name="line-239"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapResult</span> <span class='hs-varid'>code</span>
|
||||||
|
<a name="line-240"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapDn</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-241"></a> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapString</span> <span class='hs-varid'>reason</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-242"></a> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-243"></a> <span class='hs-varid'>moid</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-244"></a> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span>
|
||||||
|
<a name="line-245"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>moid</span> <span class='hs-keyword'>of</span>
|
||||||
|
<a name="line-246"></a> <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-conid'>Type</span><span class='hs-varop'>.</span><span class='hs-conid'>LdapOid</span> <span class='hs-varid'>oid</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-247"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>oid</span> <span class='hs-varop'>==</span> <span class='hs-varid'>noticeOfDisconnection</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>throwSTM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Disconnect</span> <span class='hs-varid'>code</span> <span class='hs-layout'>(</span><span class='hs-conid'>Dn</span> <span class='hs-varid'>dn</span><span class='hs-layout'>)</span> <span class='hs-varid'>reason</span><span class='hs-layout'>)</span>
|
||||||
|
<a name="line-248"></a> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>return</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-249"></a> <span class='hs-varid'>probablyDisconnect</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>done</span> <span class='hs-varid'>mid</span> <span class='hs-varid'>op</span> <span class='hs-varid'>req</span>
|
||||||
|
<a name="line-250"></a>
|
||||||
|
<a name="line-251"></a> <span class='hs-varid'>noticeOfDisconnection</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Text</span>
|
||||||
|
<a name="line-252"></a> <span class='hs-varid'>noticeOfDisconnection</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromString</span> <span class='hs-str'>"1.3.6.1.4.1.1466.20036"</span>
|
||||||
|
<a name="line-253"></a>
|
||||||
|
<a name="line-254"></a><a name="wrap"></a><span class='hs-definition'>wrap</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IO</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-varid'>a</span>
|
||||||
|
<a name="line-255"></a><span class='hs-definition'>wrap</span> <span class='hs-varid'>m</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>m</span> <span class='hs-varop'>`catch`</span> <span class='hs-layout'>(</span><span class='hs-varid'>throwIO</span> <span class='hs-varop'>.</span> <span class='hs-conid'>WrappedIOError</span><span class='hs-layout'>)</span>
|
||||||
</pre></body>
|
</pre></body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user