Imported Upstream version 2.1.5
Sylvain Le Gall
18 years ago
0 | 2.1.5 | |
1 | * Fixed a bug in the delete method of ldapentry, it would not | |
2 | correctly process a list of deleteions in a certian case | |
3 | * Added two new functions to ldif_oo, read_ldif_file, and | |
4 | write_ldif_file. The former reads all the entries in an ldif file | |
5 | into a list of entries, while the latter writes all the entries in | |
6 | the given list to an ldif file. | |
7 | * Added an object locking table to ldap_mutex, which allows | |
8 | individual objects to be locked (advisory locking like POSIX flock) | |
9 | * Applied a patch which makes the toplevel printers to pass all | |
10 | data through String.escaped, and which adds a close bracket which | |
11 | was missing in some cases.Thanks to Victor Seletsky for this patch. | |
12 | * Changed the toplevel printer to print a max of 50 entries, to | |
13 | avoid overwhelming emacs. At some point I want to make this | |
14 | configurable. | |
15 | * Added a function to return the canonical dn to Ldap_dn. | |
16 | * Improved (drastically) the ldap_strerror, and ldap_perror functions, | |
17 | they now print out something which looks exactly like the string | |
18 | representation of an LDAP_Failure exception in the toplevel. Avid users | |
19 | of the toplevel will hopefully appreciate this as much as I do. | |
0 | 20 | 2.1.4 |
1 | 21 | * Changed the type of the result of the low level ldif parser |
2 | 22 | (Ldif_parser) to produce search_result_entry instead of its own |
10 | 10 | * To uninstall the library |
11 | 11 | |
12 | 12 | make uninstall |
13 | ||
14 | * To build Documentation | |
15 | ||
16 | make documentation |
0 | 0 | requires="netstring str ssl" |
1 | version="2.0" | |
1 | version="2.1.5" | |
2 | 2 | archive(byte)="ocamldap.cma" |
3 | 3 | archive(native)="ocamldap.cmxa" |
4 | 4 | ldap_urllexer.mll ldap_url.mli ldap_url.ml ldap_filterparser.mly \ |
5 | 5 | ldap_filterlexer.mll ldap_filter.mli ldap_filter.ml ldap_funclient.mli \ |
6 | 6 | ldap_funclient.ml ldap_schemalexer.mll ldap_schemaparser.mli \ |
7 | ldap_schemaparser.ml ldap_ooclient.mli ldap_ooclient.ml ldif_parser.ml \ | |
7 | ldap_schemaparser.ml ldap_dnparser.mly ldap_dnlexer.mll ldap_dn.mli \ | |
8 | ldap_dn.ml ldap_ooclient.mli ldap_ooclient.ml ldap_mutex.mli \ | |
9 | ldap_mutex.ml ldap_txooclient.mli ldap_txooclient.ml ldif_parser.ml \ | |
8 | 10 | ldif_oo.ml ldif_oo.mli ldap_funserver.mli ldap_funserver.ml \ |
9 | ldap_dnparser.mly ldap_dnlexer.mll ldap_dn.mli ldap_dn.ml \ | |
10 | 11 | ldif_changerec_parser.mly ldif_changerec_lexer.mll \ |
11 | ldif_changerec_oo.mli ldif_changerec_oo.ml ldap_mutex.mli \ | |
12 | ldap_mutex.ml ldap_toplevel.ml | |
12 | ldif_changerec_oo.mli ldif_changerec_oo.ml ldap_toplevel.ml | |
13 | 13 | RESULT=ocamldap |
14 | 14 | PACKS=netstring str ssl |
15 | #OCAMLFLAGS=-rectypes | |
15 | 16 | |
16 | 17 | LIBINSTALL_FILES=$(wildcard *.mli *.cmi *.cma *.cmxa *.a *.so *.o *.cmx ldap_toplevel.cmo) |
17 | 18 | OCAMLDOCFLAGS=-colorize-code |
23 | 24 | uninstall: libuninstall |
24 | 25 | |
25 | 26 | documentation: |
26 | ocamlfind ocamldoc -d doc/ocamldap/html -colorize-code -html -package netstring,str,ssl lber.mli ldap_types.mli ldap_error.mli ldap_protocol.mli ldap_url.mli ldap_filter.mli ldap_dn.mli ldap_funclient.mli ldap_ooclient.mli ldap_schemaparser.mli ldap_funserver.mli ldif_oo.mli ldap_toplevel.mli ldap_mutex.mli ldif_changerec_oo.mli | |
27 | ocamlfind ocamldoc -d doc/ocamldap/html -colorize-code -html -package netstring,str,ssl lber.mli ldap_types.mli ldap_error.mli ldap_protocol.mli ldap_url.mli ldap_filter.mli ldap_dn.mli ldap_funclient.mli ldap_ooclient.mli ldap_schemaparser.mli ldap_funserver.mli ldif_oo.mli ldap_toplevel.mli ldap_mutex.mli ldif_changerec_oo.mli ldap_txooclient.mli | |
27 | 28 | |
28 | 29 | -include OCamlMakefile |
2 | 2 | --------------------------------------------------------------------------- |
3 | 3 | |
4 | 4 | Ocamldap is an ldap toolkit. It can be used by ocaml programs to |
5 | communicate with ldap servers, and to build your own ldap servers | |
5 | communicate with ldap servers, and to build your own ldap servers. | |
6 | 6 | |
7 | 7 | --------------------------------------------------------------------------- |
8 | 8 | Contents |
29 | 29 | Such as, nice data structures for local ldap entries which |
30 | 30 | record local modifications and can sync them with the server, fewer |
31 | 31 | arguments needed to perform simple tasks, and transparent reconnection |
32 | of dropped connections. see ooldap.mli | |
32 | of dropped connections. | |
33 | 33 | * Ocamldap includes an ldif parser, which allows you to read ldif files into |
34 | entry objects. (ldif content files only). see ooldif.mli | |
34 | entry objects. It also supports ldif change records. | |
35 | 35 | * Ocamldap has a method call to grab the schema of an ldapv3 server |
36 | 36 | * Basic ldap server functionality (ldap_funserver) allows you to easily |
37 | 37 | construct your own ldap servers. Perfect for meta directories, |
24 | 24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
25 | 25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
26 | 26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Lber</title> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Lber</title> | |
28 | 29 | </head> |
29 | 30 | <body> |
30 | 31 | <div class="navbar"> <a href="index.html">Up</a> |
55 | 56 | <td align="left" valign="top" > |
56 | 57 | <code><span class="keyword">|</span></code></td> |
57 | 58 | <td align="left" valign="top" > |
59 | <code><span class="constructor">Peek_error</span></code></td> | |
60 | ||
61 | </tr> | |
62 | <tr> | |
63 | <td align="left" valign="top" > | |
64 | <code><span class="keyword">|</span></code></td> | |
65 | <td align="left" valign="top" > | |
66 | <code><span class="constructor">Request_too_large</span></code></td> | |
67 | ||
68 | </tr> | |
69 | <tr> | |
70 | <td align="left" valign="top" > | |
71 | <code><span class="keyword">|</span></code></td> | |
72 | <td align="left" valign="top" > | |
58 | 73 | <code><span class="constructor">Not_implemented</span></code></td> |
59 | 74 | |
60 | 75 | </tr></table> |
61 | 76 | |
62 | 77 | |
63 | 78 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONReadbyte_error"></a>Readbyte_error <span class="keyword">of</span> <code class="type"><a href="Lber.html#TYPEreadbyte_error">readbyte_error</a></code></pre> |
64 | <pre><span class="keyword">type</span> <a name="TYPEreadbyte"></a><code class="type"></code>readbyte = <code class="type">?peek:bool -> unit -> char</code> </pre> | |
79 | <pre><span class="keyword">type</span> <a name="TYPEreadbyte"></a><code class="type"></code>readbyte = <code class="type">?peek:bool -> int -> string</code> </pre> | |
65 | 80 | |
66 | 81 | <pre><span class="keyword">type</span> <a name="TYPEwritebyte"></a><code class="type"></code>writebyte = <code class="type">char -> unit</code> </pre> |
67 | 82 | |
145 | 160 | } |
146 | 161 | |
147 | 162 | |
148 | <br><code><span class="keyword">type</span> <a name="TYPEberval"></a><code class="type"></code>berval = </code><table class="typetable"> | |
149 | <tr> | |
150 | <td align="left" valign="top" > | |
151 | <code><span class="keyword">|</span></code></td> | |
152 | <td align="left" valign="top" > | |
153 | <code><span class="constructor">Boolean</span> <span class="keyword">of</span> <code class="type">bool</code></code></td> | |
154 | ||
155 | </tr> | |
156 | <tr> | |
157 | <td align="left" valign="top" > | |
158 | <code><span class="keyword">|</span></code></td> | |
159 | <td align="left" valign="top" > | |
160 | <code><span class="constructor">Int</span> <span class="keyword">of</span> <code class="type">Int32.t</code></code></td> | |
161 | ||
162 | </tr> | |
163 | <tr> | |
164 | <td align="left" valign="top" > | |
165 | <code><span class="keyword">|</span></code></td> | |
166 | <td align="left" valign="top" > | |
167 | <code><span class="constructor">Bitstring</span> <span class="keyword">of</span> <code class="type">string</code></code></td> | |
168 | ||
169 | </tr> | |
170 | <tr> | |
171 | <td align="left" valign="top" > | |
172 | <code><span class="keyword">|</span></code></td> | |
173 | <td align="left" valign="top" > | |
174 | <code><span class="constructor">Octetstring</span> <span class="keyword">of</span> <code class="type">string</code></code></td> | |
175 | ||
176 | </tr> | |
177 | <tr> | |
178 | <td align="left" valign="top" > | |
179 | <code><span class="keyword">|</span></code></td> | |
180 | <td align="left" valign="top" > | |
181 | <code><span class="constructor">Null</span></code></td> | |
182 | ||
183 | </tr> | |
184 | <tr> | |
185 | <td align="left" valign="top" > | |
186 | <code><span class="keyword">|</span></code></td> | |
187 | <td align="left" valign="top" > | |
188 | <code><span class="constructor">Oid</span> <span class="keyword">of</span> <code class="type">string</code></code></td> | |
189 | ||
190 | </tr> | |
191 | <tr> | |
192 | <td align="left" valign="top" > | |
193 | <code><span class="keyword">|</span></code></td> | |
194 | <td align="left" valign="top" > | |
195 | <code><span class="constructor">Odt</span> <span class="keyword">of</span> <code class="type">string</code></code></td> | |
196 | ||
197 | </tr> | |
198 | <tr> | |
199 | <td align="left" valign="top" > | |
200 | <code><span class="keyword">|</span></code></td> | |
201 | <td align="left" valign="top" > | |
202 | <code><span class="constructor">Real</span> <span class="keyword">of</span> <code class="type">float</code></code></td> | |
203 | ||
204 | </tr> | |
205 | <tr> | |
206 | <td align="left" valign="top" > | |
207 | <code><span class="keyword">|</span></code></td> | |
208 | <td align="left" valign="top" > | |
209 | <code><span class="constructor">Enum</span> <span class="keyword">of</span> <code class="type">int32</code></code></td> | |
210 | ||
211 | </tr> | |
212 | <tr> | |
213 | <td align="left" valign="top" > | |
214 | <code><span class="keyword">|</span></code></td> | |
215 | <td align="left" valign="top" > | |
216 | <code><span class="constructor">Utf8string</span> <span class="keyword">of</span> <code class="type">string</code></code></td> | |
217 | ||
218 | </tr> | |
219 | <tr> | |
220 | <td align="left" valign="top" > | |
221 | <code><span class="keyword">|</span></code></td> | |
222 | <td align="left" valign="top" > | |
223 | <code><span class="constructor">RelativeOid</span> <span class="keyword">of</span> <code class="type">string</code></code></td> | |
224 | ||
225 | </tr> | |
226 | <tr> | |
227 | <td align="left" valign="top" > | |
228 | <code><span class="keyword">|</span></code></td> | |
229 | <td align="left" valign="top" > | |
230 | <code><span class="constructor">Sequence</span> <span class="keyword">of</span> <code class="type"><a href="Lber.html#TYPEberval">berval</a> list</code></code></td> | |
231 | ||
232 | </tr> | |
233 | <tr> | |
234 | <td align="left" valign="top" > | |
235 | <code><span class="keyword">|</span></code></td> | |
236 | <td align="left" valign="top" > | |
237 | <code><span class="constructor">Set</span> <span class="keyword">of</span> <code class="type"><a href="Lber.html#TYPEberval">berval</a> list</code></code></td> | |
238 | ||
239 | </tr> | |
240 | <tr> | |
241 | <td align="left" valign="top" > | |
242 | <code><span class="keyword">|</span></code></td> | |
243 | <td align="left" valign="top" > | |
244 | <code><span class="constructor">Charstring</span> <span class="keyword">of</span> <code class="type">string</code></code></td> | |
245 | ||
246 | </tr> | |
247 | <tr> | |
248 | <td align="left" valign="top" > | |
249 | <code><span class="keyword">|</span></code></td> | |
250 | <td align="left" valign="top" > | |
251 | <code><span class="constructor">Time</span> <span class="keyword">of</span> <code class="type">string</code></code></td> | |
252 | ||
253 | </tr></table> | |
254 | ||
255 | ||
256 | 163 | <pre><span class="keyword">val</span> <a name="VALreadbyte_of_string"></a>readbyte_of_string : <code class="type">string -> <a href="Lber.html#TYPEreadbyte">readbyte</a></code></pre><div class="info"> |
257 | return a readbyte function for a string<br> | |
164 | return a readbyte function for a string, currently not implemented<br> | |
258 | 165 | </div> |
259 | 166 | <pre><span class="keyword">val</span> <a name="VALreadbyte_of_ber_element"></a>readbyte_of_ber_element : <code class="type"><a href="Lber.html#TYPEber_length">ber_length</a> -> <a href="Lber.html#TYPEreadbyte">readbyte</a> -> <a href="Lber.html#TYPEreadbyte">readbyte</a></code></pre><div class="info"> |
260 | 167 | return a readbyte implementation which uses another readbyte, but |
261 | 168 | allows setting a read boundry. Useful for constructing views of the |
262 | 169 | octet stream which end at the end of a ber structure. This is |
263 | essential for reading certian structures because lenght is only | |
264 | encoded in the toplevel in order to save space.<br> | |
170 | essential for reading certian structures because length is only | |
171 | encoded in the toplevel in order to save space. Currently only | |
172 | implemented for definite lengths.<br> | |
265 | 173 | <b>Raises</b> <code>Readbyte_error</code> in the event of a an io error, or the end of file<br> |
266 | 174 | </div> |
267 | 175 | <pre><span class="keyword">val</span> <a name="VALreadbyte_of_fd"></a>readbyte_of_fd : <code class="type">Unix.file_descr -> <a href="Lber.html#TYPEreadbyte">readbyte</a></code></pre><div class="info"> |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_dn</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_dn</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Ldap_filter.html">Previous</a> |
57 | 58 | <pre><span class="keyword">val</span> <a name="VALescape_value"></a>escape_value : <code class="type">string -> string</code></pre><div class="info"> |
58 | 59 | Escape a string which you intend to be part of a VALUE in the |
59 | 60 | dn. Do not use on the whole dn, just an attribute value. It is NOT |
60 | necessary to use this if you intent to call to_string on your | |
61 | necessary to use this if you intend to call to_string on your | |
61 | 62 | dn. It will be done for you as part of the conversion |
62 | 63 | process. This function is exposed for the case where you find it |
63 | 64 | easier to manipulate the dn via a regular expression, or other |
64 | 65 | string based means, and you find it necessary to escape values.<br> |
65 | 66 | </div> |
67 | <pre><span class="keyword">val</span> <a name="VALcanonical_dn"></a>canonical_dn : <code class="type">string -> string</code></pre><div class="info"> | |
68 | returns the canonical dn. A simple string compare can tell you | |
69 | accurately whether two canonical dns are equal or not.<br> | |
70 | </div> | |
66 | 71 | </body></html>⏎ |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_error</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_error</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Ldap_types.html">Previous</a> |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_filter</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_filter</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Ldap_url.html">Previous</a> |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_funclient</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_funclient</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Ldap_dn.html">Previous</a> |
66 | 67 | raise various lexer errors under the same conditions.</li> |
67 | 68 | </ul> |
68 | 69 | </div> |
69 | <br><div class="info"><code class="code">version</code> : the protocol version to use to | |
70 | <div class="param_info"><code class="code">version</code> : the protocol version to use to | |
70 | 71 | connect, default is version 3. And actually, version 2 will probably |
71 | 72 | not work correctly without some tweaking.</div> |
72 | 73 | <pre><span class="keyword">val</span> <a name="VALunbind"></a>unbind : <code class="type"><a href="Ldap_funclient.html#TYPEconn">conn</a> -> unit</code></pre><div class="info"> |
83 | 84 | <li><code>Encoding_error</code> for encoder errors (unlikely, probably a bug)</li> |
84 | 85 | </ul> |
85 | 86 | </div> |
86 | <br><div class="info"><code class="code">who</code> : the dn to bind as</div> | |
87 | <div class="info"><code class="code">cred</code> : the credentials to authenticate with. For `SIMPLE binds | |
87 | <div class="param_info"><code class="code">who</code> : the dn to bind as</div> | |
88 | <div class="param_info"><code class="code">cred</code> : the credentials to authenticate with. For `SIMPLE binds | |
88 | 89 | this is a password, but for `SASL binds it can be nearly |
89 | 90 | anything. Perhaps a hash of the thumb print of your first born is |
90 | 91 | sufficent.</div> |
91 | <div class="info"><code class="code">auth_method</code> : either `SIMPLE (the default) or `SASL</div> | |
92 | <div class="param_info"><code class="code">auth_method</code> : either `SIMPLE (the default) or `SASL</div> | |
92 | 93 | <pre><span class="keyword">val</span> <a name="VALsearch"></a>search : <code class="type">?base:string -><br> ?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?aliasderef:<a href="Ldap_types.html#TYPEalias_deref">Ldap_types.alias_deref</a> -><br> ?sizelimit:int32 -><br> ?timelimit:int32 -><br> ?attrs:string list -><br> ?attrsonly:bool -> <a href="Ldap_funclient.html#TYPEconn">conn</a> -> string -> <a href="Ldap_funclient.html#TYPEmsgid">msgid</a></code></pre><div class="info"> |
93 | 94 | Search for the given entry with the specified base node and search |
94 | 95 | scope, optionally limiting the returned attributes to those listed in |
104 | 105 | <li><code>Encoding_error</code> for encoder errors (unlikely, probably a bug)</li> |
105 | 106 | </ul> |
106 | 107 | </div> |
107 | <br><div class="info"><code class="code">base</code> : The dn of the object in the tree to use as the base | |
108 | <div class="param_info"><code class="code">base</code> : The dn of the object in the tree to use as the base | |
108 | 109 | object, the search will only cover children of this object, and will |
109 | 110 | be further governed by scope.</div> |
110 | <div class="info"><code class="code">scope</code> : The depth in the tree to look for the requested | |
111 | <div class="param_info"><code class="code">scope</code> : The depth in the tree to look for the requested | |
111 | 112 | object. There are three possible values, `BASE, `ONELEVEL, and |
112 | 113 | `SUBTREE. `BASE means to only search the base object, the search |
113 | 114 | will return exactly 1 or 0 objects. `ONELEVEL means to search one |
114 | 115 | level under the base, only immediate children of the base object |
115 | 116 | will be considered. `SUBTREE means to search the entire tree under |
116 | 117 | the base object.</div> |
117 | <div class="info"><code class="code">aliasderef</code> : Controls when aliases are dereferenced.</div> | |
118 | <div class="info"><code class="code">sizelimit</code> : The maximum number of objects to return</div> | |
119 | <div class="info"><code class="code">timelimit</code> : The maximum time, in seconds, that the search will | |
118 | <div class="param_info"><code class="code">aliasderef</code> : Controls when aliases are dereferenced.</div> | |
119 | <div class="param_info"><code class="code">sizelimit</code> : The maximum number of objects to return</div> | |
120 | <div class="param_info"><code class="code">timelimit</code> : The maximum time, in seconds, that the search will | |
120 | 121 | be allowed to run before terminateing.</div> |
121 | <div class="info"><code class="code">attrs</code> : The list of attribute types (names) to include <code class="code">[]</code> | |
122 | <div class="param_info"><code class="code">attrs</code> : The list of attribute types (names) to include <code class="code">[]</code> | |
122 | 123 | (the default) means all.</div> |
123 | <div class="info"><code class="code">attrsonly</code> : return only attribute types (names), not any of the | |
124 | <div class="param_info"><code class="code">attrsonly</code> : return only attribute types (names), not any of the | |
124 | 125 | values</div> |
125 | 126 | <pre><span class="keyword">val</span> <a name="VALget_search_entry"></a>get_search_entry : <code class="type"><a href="Ldap_funclient.html#TYPEconn">conn</a> -><br> <a href="Ldap_funclient.html#TYPEmsgid">msgid</a> -><br> [> `Entry of <a href="Ldap_types.html#TYPEsearch_result_entry">Ldap_types.search_result_entry</a> | `Referral of string list ]</code></pre><div class="info"> |
126 | 127 | fetch a search entry from the wire using the given msgid. The |
160 | 161 | <li><code>Encoding_error</code> for encoder errors (unlikely, probably a bug)</li> |
161 | 162 | </ul> |
162 | 163 | </div> |
163 | <br><div class="info"><code class="code">dn</code> : The dn of the object to modify</div> | |
164 | <div class="info"><code class="code">mods</code> : The list of modifications to apply</div> | |
164 | <div class="param_info"><code class="code">dn</code> : The dn of the object to modify</div> | |
165 | <div class="param_info"><code class="code">mods</code> : The list of modifications to apply</div> | |
165 | 166 | <pre><span class="keyword">val</span> <a name="VALmodrdn_s"></a>modrdn_s : <code class="type">?deleteoldrdn:bool -><br> ?newsup:'a option -> <a href="Ldap_funclient.html#TYPEconn">conn</a> -> dn:string -> newdn:string -> unit</code></pre><div class="info"> |
166 | 167 | change the rdn, and optionally the superior entry of dn<br> |
167 | 168 | <b>Raises</b><ul><li><code>LDAP_Failure</code> for all results other than `SUCCESS</li> |
169 | 170 | <li><code>Encoding_error</code> for encoder errors (unlikely, probably a bug)</li> |
170 | 171 | </ul> |
171 | 172 | </div> |
172 | <br><div class="info"><code class="code">deleteoldrdn</code> : Delete the old rdn value, (default true)</div> | |
173 | <div class="info"><code class="code">newsup</code> : The new superior dn of the object (default None)</div> | |
174 | <div class="info"><code class="code">dn</code> : The dn of the object to modify</div> | |
173 | <div class="param_info"><code class="code">deleteoldrdn</code> : Delete the old rdn value, (default true)</div> | |
174 | <div class="param_info"><code class="code">newsup</code> : The new superior dn of the object (default None)</div> | |
175 | <div class="param_info"><code class="code">dn</code> : The dn of the object to modify</div> | |
175 | 176 | </body></html>⏎ |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_funserver</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_funserver</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Ldap_schemaparser.html">Previous</a> |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Ldap_toplevel.html">Previous</a> |
34 | 35 | </div> |
35 | 36 | <center><h1>Module <a href="type_Ldap_mutex.html">Ldap_mutex</a></h1></center> |
36 | 37 | <br> |
37 | <pre><span class="keyword">module</span> Ldap_mutex: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>A library for implementing mutexes on top of LDAP's built in test | |
38 | <pre><span class="keyword">module</span> Ldap_mutex: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>functions for implementing mutexes on top of LDAP's built in test | |
38 | 39 | and set mechanism. In order to use this module you must load |
39 | mutex.schema, which is an rfc2252 format schema file.<br> | |
40 | mutex.schema, which is an rfc2252 format schema file. raised when | |
41 | a mutex operation fails. The string argument contains the name of | |
42 | the method which failed, and the exception contains details about | |
43 | what failed.<br> | |
40 | 44 | <hr width="100%"> |
41 | 45 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONLdap_mutex"></a>Ldap_mutex <span class="keyword">of</span> <code class="type">string * exn</code></pre> |
42 | 46 | <div class="info"> |
43 | raised when a mutex operation fails. The string argument contains | |
44 | the name of the method which failed, and the exception contains | |
45 | details about what failed.<br> | |
47 | functions for implementing mutexes on top of LDAP's built in test | |
48 | and set mechanism. In order to use this module you must load | |
49 | mutex.schema, which is an rfc2252 format schema file. raised when | |
50 | a mutex operation fails. The string argument contains the name of | |
51 | the method which failed, and the exception contains details about | |
52 | what failed.<br> | |
46 | 53 | </div> |
47 | <pre><span class="keyword">class type</span> <a name="TYPEmutex_t"></a><a href="Ldap_mutex.mutex_t.html">mutex_t</a> = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><pre><span class="keyword">class</span> <a name="TYPEmutex"></a><a href="Ldap_mutex.mutex.html">mutex</a> : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
54 | <pre><span class="keyword">class type</span> <a name="TYPEmutex_t"></a><a href="Ldap_mutex.mutex_t.html">mutex_t</a> = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
55 | the class type of a single mutex, used for performing | |
56 | advisory locking of some action | |
57 | </div> | |
58 | <pre><span class="keyword">class type</span> <a name="TYPEobject_lock_table_t"></a><a href="Ldap_mutex.object_lock_table_t.html">object_lock_table_t</a> = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.object_lock_table_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
59 | the class type of an object lock table which allows for advisory | |
60 | locking of objects by dn | |
61 | </div> | |
62 | <pre><span class="keyword">class</span> <a name="TYPEmutex"></a><a href="Ldap_mutex.mutex.html">mutex</a> : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
48 | 63 | new mutex ldapurls binddn bindpw mutexdn |
49 | 64 | </div> |
65 | <pre><span class="keyword">val</span> <a name="VALapply_with_mutex"></a>apply_with_mutex : <code class="type"><a href="Ldap_mutex.mutex.html">mutex</a> -> (unit -> 'a) -> 'a</code></pre><div class="info"> | |
66 | used to apply some function, first locking the mutex, unlocking it | |
67 | only after the function has been applied. If the function | |
68 | generates any exception, this wrapper catches that exception, and | |
69 | unlocks the mutex before reraising the exception. Generally | |
70 | garentees that the mutex will always be used consistantly when | |
71 | performing an action.<br> | |
72 | </div> | |
73 | <pre><span class="keyword">class</span> <a name="TYPEobject_lock_table"></a><a href="Ldap_mutex.object_lock_table.html">object_lock_table</a> : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.object_lock_table.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
74 | new object_lock_table ldapurls binddn bindpw mutexdn | |
75 | </div> | |
50 | 76 | </body></html>⏎ |
1 | 1 | <head> |
2 | 2 | <link rel="stylesheet" href="style.css" type="text/css"> |
3 | 3 | <link rel="Start" href="index.html"> |
4 | <link rel="next" href="Ldap_mutex.object_lock_table.html"> | |
4 | 5 | <link rel="Up" href="Ldap_mutex.html"> |
5 | 6 | <link title="Index of types" rel=Appendix href="index_types.html"> |
6 | 7 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> |
23 | 24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
24 | 25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
25 | 26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
26 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex.mutex</title> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.mutex</title> | |
27 | 29 | </head> |
28 | 30 | <body> |
29 | 31 | <div class="navbar"> <a href="Ldap_mutex.html">Up</a> |
30 | </div> | |
32 | <a href="Ldap_mutex.object_lock_table.html">Next</a> | |
33 | </div> | |
31 | 34 | <center><h1>Class <a href="type_Ldap_mutex.mutex.html">Ldap_mutex.mutex</a></h1></center> |
32 | 35 | <br> |
33 | 36 | <pre><span class="keyword">class</span> <a name="TYPEmutex"></a>mutex : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>new mutex ldapurls binddn bindpw mutexdn<br> |
1 | 1 | <head> |
2 | 2 | <link rel="stylesheet" href="style.css" type="text/css"> |
3 | 3 | <link rel="Start" href="index.html"> |
4 | <link rel="next" href="Ldap_mutex.object_lock_table_t.html"> | |
4 | 5 | <link rel="Up" href="Ldap_mutex.html"> |
5 | 6 | <link title="Index of types" rel=Appendix href="index_types.html"> |
6 | 7 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> |
23 | 24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
24 | 25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
25 | 26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
26 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex.mutex_t</title> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.mutex_t</title> | |
27 | 29 | </head> |
28 | 30 | <body> |
29 | 31 | <div class="navbar"> <a href="Ldap_mutex.html">Up</a> |
30 | </div> | |
32 | <a href="Ldap_mutex.object_lock_table_t.html">Next</a> | |
33 | </div> | |
31 | 34 | <center><h1>Class type <a href="type_Ldap_mutex.mutex_t.html">Ldap_mutex.mutex_t</a></h1></center> |
32 | 35 | <br> |
33 | <pre><span class="keyword">class type</span> <a name="TYPEmutex_t"></a>mutex_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%"> | |
36 | <pre><span class="keyword">class type</span> <a name="TYPEmutex_t"></a>mutex_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>the class type of a single mutex, used for performing | |
37 | advisory locking of some action<br> | |
38 | <hr width="100%"> | |
34 | 39 | <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type">unit</code></pre></body></html>⏎ |
0 | <html> | |
1 | <head> | |
2 | <link rel="stylesheet" href="style.css" type="text/css"> | |
3 | <link rel="Start" href="index.html"> | |
4 | <link rel="previous" href="Ldap_mutex.mutex.html"> | |
5 | <link rel="Up" href="Ldap_mutex.html"> | |
6 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
7 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
8 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
9 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
10 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
11 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
12 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
13 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
14 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
15 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
16 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
17 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
18 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
19 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
20 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
21 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
22 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
23 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.object_lock_table</title> | |
29 | </head> | |
30 | <body> | |
31 | <div class="navbar"><a href="Ldap_mutex.mutex.html">Previous</a> | |
32 | <a href="Ldap_mutex.html">Up</a> | |
33 | </div> | |
34 | <center><h1>Class <a href="type_Ldap_mutex.object_lock_table.html">Ldap_mutex.object_lock_table</a></h1></center> | |
35 | <br> | |
36 | <pre><span class="keyword">class</span> <a name="TYPEobject_lock_table"></a>object_lock_table : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.object_lock_table.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>new object_lock_table ldapurls binddn bindpw mutexdn<br> | |
37 | <hr width="100%"> | |
38 | <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre><div class="info"> | |
39 | lock the specified dn, if it is already locked, then block until the lock can be aquired | |
40 | <p> | |
41 | unlock the specified dn, if it is not locked do nothing<br> | |
42 | </div> | |
43 | <pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre></body></html>⏎ |
0 | <html> | |
1 | <head> | |
2 | <link rel="stylesheet" href="style.css" type="text/css"> | |
3 | <link rel="Start" href="index.html"> | |
4 | <link rel="previous" href="Ldap_mutex.mutex_t.html"> | |
5 | <link rel="Up" href="Ldap_mutex.html"> | |
6 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
7 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
8 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
9 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
10 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
11 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
12 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
13 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
14 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
15 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
16 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
17 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
18 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
19 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
20 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
21 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
22 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
23 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.object_lock_table_t</title> | |
29 | </head> | |
30 | <body> | |
31 | <div class="navbar"><a href="Ldap_mutex.mutex_t.html">Previous</a> | |
32 | <a href="Ldap_mutex.html">Up</a> | |
33 | </div> | |
34 | <center><h1>Class type <a href="type_Ldap_mutex.object_lock_table_t.html">Ldap_mutex.object_lock_table_t</a></h1></center> | |
35 | <br> | |
36 | <pre><span class="keyword">class type</span> <a name="TYPEobject_lock_table_t"></a>object_lock_table_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.object_lock_table_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>the class type of an object lock table which allows for advisory | |
37 | locking of objects by dn<br> | |
38 | <hr width="100%"> | |
39 | <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre></body></html>⏎ |
24 | 24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
25 | 25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
26 | 26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.OrdOid</title> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.OrdOid</title> | |
28 | 29 | </head> |
29 | 30 | <body> |
30 | 31 | <div class="navbar"> <a href="Ldap_ooclient.html">Up</a> |
32 | 33 | </div> |
33 | 34 | <center><h1>Module <a href="type_Ldap_ooclient.OrdOid.html">Ldap_ooclient.OrdOid</a></h1></center> |
34 | 35 | <br> |
35 | <pre><span class="keyword">module</span> OrdOid: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.OrdOid.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%"> | |
36 | <pre><span class="keyword">module</span> OrdOid: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.OrdOid.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>an ordered oid type, for placing oids in sets<br> | |
37 | <hr width="100%"> | |
36 | 38 | <pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type"></code>t = <code class="type"><a href="Ldap_schemaparser.Oid.html#TYPEt">Ldap_schemaparser.Oid.t</a></code> </pre> |
37 | 39 | |
38 | 40 | <pre><span class="keyword">val</span> <a name="VALcompare"></a>compare : <code class="type"><a href="Ldap_ooclient.OrdOid.html#TYPEt">t</a> -> <a href="Ldap_ooclient.OrdOid.html#TYPEt">t</a> -> int</code></pre></body></html>⏎ |
24 | 24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
25 | 25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
26 | 26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.Setstr</title> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.Setstr</title> | |
28 | 29 | </head> |
29 | 30 | <body> |
30 | 31 | <div class="navbar"><a href="Ldap_ooclient.OrdOid.html">Previous</a> |
32 | 33 | </div> |
33 | 34 | <center><h1>Module <a href="type_Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a></h1></center> |
34 | 35 | <br> |
35 | <pre><span class="keyword">module</span> Setstr: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.Setstr.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%"> | |
36 | <pre><span class="keyword">module</span> Setstr: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.Setstr.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><span class="warning">Deprecated.</span>the name is historical, and may be changed<br> | |
37 | A set of Oids<br> | |
38 | <hr width="100%"> | |
36 | 39 | <pre><span class="keyword">type</span> <a name="TYPEelt"></a><code class="type"></code>elt = <code class="type"><a href="Ldap_ooclient.OrdOid.html#TYPEt">Ldap_ooclient.OrdOid.t</a></code> </pre> |
37 | 40 | |
38 | 41 | <pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type"></code>t = <code class="type">Set.Make(OrdOid).t</code> </pre> |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><link title="Communication With Ldap_funclient" rel="Section" href="#0_CommunicationWithLdapfunclient"> | |
30 | <link title="Miscallaneous" rel="Subsection" href="#1_Miscallaneous"> | |
31 | <link title="Iterators Over Streams of ldapentry Objects" rel="Subsection" href="#1_IteratorsOverStreamsofldapentryObjects"> | |
32 | <link title="General Schema Aware Entry" rel="Subsection" href="#1_GeneralSchemaAwareEntry"> | |
33 | <link title="Schema Aware Entry for Account Managment" rel="Subsection" href="#1_SchemaAwareEntryforAccountManagment"> | |
34 | <title>Ldap_ooclient</title> | |
29 | 35 | </head> |
30 | 36 | <body> |
31 | 37 | <div class="navbar"><a href="Ldap_funclient.html">Previous</a> |
36 | 42 | <br> |
37 | 43 | <pre><span class="keyword">module</span> Ldap_ooclient: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>an object oriented ldap client interface<br> |
38 | 44 | <hr width="100%"> |
45 | <br> | |
46 | <a name="2_BasicDataTypes"></a> | |
47 | <h2>Basic Data Types</h2><br> | |
39 | 48 | <pre><span class="keyword">type</span> <a name="TYPEop"></a><code class="type"></code>op = <code class="type">string * string list</code> </pre> |
49 | <div class="info"> | |
50 | the type of an operation, eg. <code class="code">(<span class="string">"cn"</span>, [<span class="string">"foo"</span>;<span class="string">"bar"</span>])</code><br> | |
51 | </div> | |
40 | 52 | |
41 | 53 | <pre><span class="keyword">type</span> <a name="TYPEop_lst"></a><code class="type"></code>op_lst = <code class="type"><a href="Ldap_ooclient.html#TYPEop">op</a> list</code> </pre> |
42 | 54 | |
43 | 55 | <pre><span class="keyword">type</span> <a name="TYPEreferral_policy"></a><code class="type"></code>referral_policy = <code class="type">[ `FOLLOW | `RETURN ]</code> </pre> |
56 | <div class="info"> | |
57 | The policy the client should take when it encounteres a | |
58 | referral. This is currently not used<br> | |
59 | </div> | |
44 | 60 | |
45 | 61 | <pre><span class="keyword">type</span> <a name="TYPEchangetype"></a><code class="type"></code>changetype = <code class="type">[ `ADD | `DELETE | `MODDN | `MODIFY | `MODRDN ]</code> </pre> |
46 | ||
47 | <pre><span class="keyword">class type</span> <a name="TYPEldapentry_t"></a><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><pre><span class="keyword">val</span> <a name="VALformat_entry"></a>format_entry : <code class="type">< attributes : string list; dn : string; get_value : string -> string list;<br> .. > -><br> unit</code></pre><pre><span class="keyword">val</span> <a name="VALformat_entries"></a>format_entries : <code class="type">< attributes : string list; dn : string; get_value : string -> string list;<br> .. ><br> list -> unit</code></pre><pre><span class="keyword">class</span> <a name="TYPEldapentry"></a><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> : <code class="type"></code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
62 | <div class="info"> | |
63 | The change type of an ldapentry. This controls some aspects of | |
64 | it's behavior<br> | |
65 | </div> | |
66 | ||
67 | <br> | |
68 | <a name="2_LocalRepresentationofLDAPObjects"></a> | |
69 | <h2>Local Representation of LDAP Objects</h2><br> | |
70 | <pre><span class="keyword">class type</span> <a name="TYPEldapentry_t"></a><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
71 | The base type of an ldap entry represented in memory. | |
72 | </div> | |
73 | <pre><span class="keyword">class</span> <a name="TYPEldapentry"></a><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> : <code class="type"></code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
48 | 74 | this object represents a remote object within local memory. |
49 | 75 | </div> |
76 | <br> | |
77 | <a name="1_Miscallaneous"></a> | |
78 | <h1>Miscallaneous</h1><br> | |
79 | <pre><span class="keyword">val</span> <a name="VALformat_entry"></a>format_entry : <code class="type">< attributes : string list; dn : string; get_value : string -> string list;<br> .. > -><br> unit</code></pre><div class="info"> | |
80 | toplevel formatter for ldapentry, prints the whole entry with a | |
81 | nice structure. Each attribute is in the correct syntax to be | |
82 | copied and pasted into a modify operation.<br> | |
83 | </div> | |
84 | <pre><span class="keyword">val</span> <a name="VALformat_entries"></a>format_entries : <code class="type">< attributes : string list; dn : string; get_value : string -> string list;<br> .. ><br> list -> unit</code></pre><div class="info"> | |
85 | format lists of entries, in this case only print the dn<br> | |
86 | </div> | |
50 | 87 | <pre><span class="keyword">type</span> <a name="TYPEchangerec"></a><code class="type"></code>changerec = <code class="type">[ `Addition of <a href="Ldap_ooclient.ldapentry.html">ldapentry</a><br> | `Delete of string<br> | `Modification of<br> string * (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list<br> | `Modrdn of string * int * string ]</code> </pre> |
51 | ||
88 | <div class="info"> | |
89 | The type of an ldap change record, used by extended LDIF<br> | |
90 | </div> | |
91 | ||
92 | <br> | |
93 | <a name="0_CommunicationWithLdapfunclient"></a> | |
94 | <h0>Communication With <a href="Ldap_funclient.html"><code class="code"><span class="constructor">Ldap_funclient</span></code></a></h0><br> | |
52 | 95 | <pre><span class="keyword">val</span> <a name="VALto_entry"></a>to_entry : <code class="type">[< `Entry of <a href="Ldap_types.html#TYPEsearch_result_entry">Ldap_types.search_result_entry</a> | `Referral of string list ] -><br> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><div class="info"> |
53 | 96 | given a search_result_entry as returned by ldap_funclient, produce an |
54 | 97 | ldapentry containing either the entry, or the referral object<br> |
58 | 101 | produce a search_result_entry suitable for ldap_funclient, or |
59 | 102 | ldap_funserver.<br> |
60 | 103 | </div> |
104 | <br> | |
105 | <a name="2_InteractingwithLDAPServers"></a> | |
106 | <h2>Interacting with LDAP Servers</h2><br> | |
107 | <pre><span class="keyword">class</span> <a name="TYPEldapcon"></a><a href="Ldap_ooclient.ldapcon.html">ldapcon</a> : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
108 | This class abstracts a connection to an LDAP server (or servers), | |
109 | an instance will be connected to the server you specify and can be | |
110 | used to perform operations on that server. | |
111 | </div> | |
112 | <br> | |
113 | <a name="1_IteratorsOverStreamsofldapentryObjects"></a> | |
114 | <h1>Iterators Over Streams of ldapentry Objects</h1><br> | |
61 | 115 | <pre><span class="keyword">val</span> <a name="VALiter"></a>iter : <code class="type">(<a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit) -><br> (?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a>) -> unit</code></pre><div class="info"> |
62 | 116 | given a source of ldapentry objects (unit -> ldapentry), such as |
63 | the return value of ldapcon#search_a apply f (first arg) to each entry | |
117 | the return value of ldapcon#search_a, apply f (first arg) to each entry | |
64 | 118 | See List.iter<br> |
65 | 119 | </div> |
66 | 120 | <pre><span class="keyword">val</span> <a name="VALrev_map"></a>rev_map : <code class="type">(<a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> 'a) -><br> (?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a>) -> 'a list</code></pre><div class="info"> |
77 | 131 | the return value of ldapcon#search_a compute (f eN ... (f e2 (f e1 |
78 | 132 | intial))) see List.fold_right.<br> |
79 | 133 | </div> |
80 | <pre><span class="keyword">class</span> <a name="TYPEldapcon"></a><a href="Ldap_ooclient.ldapcon.html">ldapcon</a> : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><pre><span class="keyword">module</span> <a href="Ldap_ooclient.OrdOid.html">OrdOid</a>: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.OrdOid.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><pre><span class="keyword">module</span> <a href="Ldap_ooclient.Setstr.html">Setstr</a>: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.Setstr.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><br><code><span class="keyword">type</span> <a name="TYPEscflavor"></a><code class="type"></code>scflavor = </code><table class="typetable"> | |
134 | <br> | |
135 | <a name="2_SchemaAwareldapentryDerivatives"></a> | |
136 | <h2>Schema Aware ldapentry Derivatives</h2><br> | |
137 | <br> | |
138 | <a name="1_GeneralSchemaAwareEntry"></a> | |
139 | <h1>General Schema Aware Entry</h1> <a href="Ldap_ooclient.scldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.scldapentry</code></a>, A | |
140 | schema aware derivative of <a href="Ldap_ooclient.ldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry</code></a>. It contains | |
141 | an rfc2252 schema checker, and given the database schema, it can | |
142 | be used to garentee that operations performed in memory are valid | |
143 | against a standards compliant database. It has numerious uses, | |
144 | translation between two databases with different schemas an | |
145 | example of where it finds natural usage. For an example | |
146 | application<br> | |
147 | <pre><span class="keyword">module</span> <a href="Ldap_ooclient.OrdOid.html">OrdOid</a>: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.OrdOid.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
148 | an ordered oid type, for placing oids in sets | |
149 | </div> | |
150 | <pre><span class="keyword">module</span> <a href="Ldap_ooclient.Setstr.html">Setstr</a>: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.Setstr.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
151 | <font color="#CCCCCC">A set of Oids | |
152 | </font></div> | |
153 | <br><code><span class="keyword">type</span> <a name="TYPEscflavor"></a><code class="type"></code>scflavor = </code><table class="typetable"> | |
81 | 154 | <tr> |
82 | 155 | <td align="left" valign="top" > |
83 | 156 | <code><span class="keyword">|</span></code></td> |
84 | 157 | <td align="left" valign="top" > |
85 | 158 | <code><span class="constructor">Optimistic</span></code></td> |
86 | ||
159 | <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Add missing attributes to make the object consistant, or add | |
160 | objectclasses in order to make illegal attribues legal</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> | |
87 | 161 | </tr> |
88 | 162 | <tr> |
89 | 163 | <td align="left" valign="top" > |
90 | 164 | <code><span class="keyword">|</span></code></td> |
91 | 165 | <td align="left" valign="top" > |
92 | 166 | <code><span class="constructor">Pessimistic</span></code></td> |
93 | ||
167 | <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Delete objectclasses which must attributes which are | |
168 | missing, and delete illegal attributes.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> | |
94 | 169 | </tr></table> |
95 | 170 | |
171 | <div class="info"> | |
172 | The type of schema checking to perform in | |
173 | <a href="Ldap_ooclient.scldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.scldapentry</code></a>. Normally this is picked | |
174 | automatically, however it can be overridden in some cases.<br> | |
175 | </div> | |
96 | 176 | |
97 | 177 | <pre><span class="keyword">val</span> <a name="VALattrToOid"></a>attrToOid : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -><br> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> <a href="Ldap_schemaparser.Oid.html#TYPEt">Ldap_schemaparser.Oid.t</a></code></pre><div class="info"> |
98 | given a name of an attribute, return its oid<br> | |
178 | given a name of an attribute name (canonical or otherwise), return | |
179 | its oid<br> | |
180 | <b>Raises</b> <code>Invalid_attribute</code> If the attribute is not found in the schema.<br> | |
99 | 181 | </div> |
100 | 182 | <pre><span class="keyword">val</span> <a name="VALoidToAttr"></a>oidToAttr : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> <a href="Ldap_schemaparser.Oid.html#TYPEt">Ldap_schemaparser.Oid.t</a> -> string</code></pre><div class="info"> |
101 | 183 | given the oid of an attribute, return its canonical name<br> |
184 | <b>Raises</b> <code>Invalid_attribute</code> If the attribute is not found in the schema.<br> | |
102 | 185 | </div> |
103 | 186 | <pre><span class="keyword">val</span> <a name="VALocToOid"></a>ocToOid : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -><br> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> <a href="Ldap_schemaparser.Oid.html#TYPEt">Ldap_schemaparser.Oid.t</a></code></pre><div class="info"> |
104 | given a name of an objectclass, return its oid<br> | |
187 | given a name of an objectclass (canonical or otherwise), return | |
188 | its oid.<br> | |
189 | <b>Raises</b> <code>Invalid_objectclass</code> If the objectclass is not | |
190 | found in the schema.<br> | |
105 | 191 | </div> |
106 | 192 | <pre><span class="keyword">val</span> <a name="VALoidToOc"></a>oidToOc : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> <a href="Ldap_schemaparser.Oid.html#TYPEt">Ldap_schemaparser.Oid.t</a> -> string</code></pre><div class="info"> |
107 | 193 | given the oid of an objectclass, return its canonical name<br> |
194 | <b>Raises</b> <code>Invalid_objectclass</code> If the objectclass is not found in the | |
195 | schema.<br> | |
108 | 196 | </div> |
109 | 197 | <pre><span class="keyword">val</span> <a name="VALgetOc"></a>getOc : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -><br> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> <a href="Ldap_schemaparser.html#TYPEobjectclass">Ldap_schemaparser.objectclass</a></code></pre><div class="info"> |
110 | get an objectclass structure by one of its names<br> | |
198 | get an objectclass structure by one of its names (canonical or | |
199 | otherwise, however getting it by canonical name is currently much | |
200 | faster)<br> | |
201 | <b>Raises</b> <code>Invalid_objectclass</code> If the objectclass is not found | |
202 | in the schema.<br> | |
111 | 203 | </div> |
112 | 204 | <pre><span class="keyword">val</span> <a name="VALgetAttr"></a>getAttr : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -><br> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> <a href="Ldap_schemaparser.html#TYPEattribute">Ldap_schemaparser.attribute</a></code></pre><div class="info"> |
113 | get an attr structure by one of its names<br> | |
205 | get an attr structure by one of its names (canonical or otherwise, | |
206 | however getting it by canonical name is currently much faster)<br> | |
207 | <b>Raises</b> <code>Invalid_attribute</code> If the attribute is not found in the | |
208 | schema.<br> | |
114 | 209 | </div> |
115 | 210 | <pre><span class="keyword">val</span> <a name="VALequateAttrs"></a>equateAttrs : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -><br> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> bool</code></pre><div class="info"> |
116 | equate attributes by oid. This allows aliases to be handled | |
117 | correctly, for example "uid" and "userID" are actually the same | |
118 | attribute.<br> | |
211 | equate attributes by oid. This allows non canonical names to be | |
212 | handled correctly, for example "uid" and "userID" are actually the | |
213 | same attribute.<br> | |
214 | <b>Raises</b> <code>Invalid_attribute</code> If either attribute is | |
215 | not found in the schema.<br> | |
119 | 216 | </div> |
120 | 217 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONInvalid_objectclass"></a>Invalid_objectclass <span class="keyword">of</span> <code class="type">string</code></pre> |
121 | 218 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONInvalid_attribute"></a>Invalid_attribute <span class="keyword">of</span> <code class="type">string</code></pre> |
122 | 219 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONSingle_value"></a>Single_value <span class="keyword">of</span> <code class="type">string</code></pre> |
123 | 220 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONObjectclass_is_required"></a>Objectclass_is_required</pre> |
124 | <pre><span class="keyword">class</span> <a name="TYPEscldapentry"></a><a href="Ldap_ooclient.scldapentry.html">scldapentry</a> : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.scldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><br><code><span class="keyword">type</span> <a name="TYPEgenerator"></a><code class="type"></code>generator = {</code><table class="typetable"> | |
221 | <pre><span class="keyword">class</span> <a name="TYPEscldapentry"></a><a href="Ldap_ooclient.scldapentry.html">scldapentry</a> : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.scldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><br> | |
222 | <a name="1_SchemaAwareEntryforAccountManagment"></a> | |
223 | <h1>Schema Aware Entry for Account Managment</h1> A derivative of | |
224 | <a href="Ldap_ooclient.scldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.scldapentry</code></a> which includes abstractions for | |
225 | managing user accounts in the directory. This class is | |
226 | experimantal, and may be drastically changed in the next version. | |
227 | As with all experimental code, use with caution. A few of its features. | |
228 | <p> | |
229 | ||
230 | <ul> | |
231 | <li>Loosely dependant attributes: Many attributes are derived | |
232 | from others via a function. ldapaccount allows you to codify | |
233 | that relationship by providing an attribute generator | |
234 | (<a href="Ldap_ooclient.html#TYPEgenerator"><code class="code"><span class="constructor">Ldap_ooclient</span>.generator</code></a>) for the attribute, which will | |
235 | be used to derive it's value except in the case that it is | |
236 | specified explicitly</li> | |
237 | <li>Attribute and Generator Grouping: via the service abstraction. | |
238 | Allows you to group attributes together with generators and | |
239 | default values in interesting ways. You can then assign the | |
240 | whole grouping a name, and refer to it by that name. See | |
241 | <a href="Ldap_ooclient.html#TYPEservice"><code class="code"><span class="constructor">Ldap_ooclient</span>.service</code></a></li> | |
242 | <li>Difference Based: Service operations are difference based, | |
243 | all applications of service operations compute the delta between | |
244 | the current object, and what the service requires. The minumum set | |
245 | of changes necessary to satisfy the service are applied to the object.</li> | |
246 | <li>Idempotentcy: As a result of being difference based, | |
247 | Service operations are itempotent. For example, | |
248 | adding a service twice has no effect on the object. It will | |
249 | not queue changes for modification to the directory, and it | |
250 | will not change the object in memory. Deleting a service | |
251 | twice has no effect...etc</li> | |
252 | </ul> | |
253 | <br> | |
254 | <br><code><span class="keyword">type</span> <a name="TYPEgenerator"></a><code class="type"></code>generator = {</code><table class="typetable"> | |
125 | 255 | <tr> |
126 | 256 | <td align="left" valign="top" > |
127 | 257 | <code> </code></td> |
145 | 275 | </tr></table> |
146 | 276 | } |
147 | 277 | |
278 | <div class="info"> | |
279 | The structure of a generator<br> | |
280 | </div> | |
148 | 281 | |
149 | 282 | <br><code><span class="keyword">type</span> <a name="TYPEservice"></a><code class="type"></code>service = {</code><table class="typetable"> |
150 | 283 | <tr> |
177 | 310 | </tr></table> |
178 | 311 | } |
179 | 312 | |
313 | <div class="info"> | |
314 | The structure of a service<br> | |
315 | </div> | |
180 | 316 | |
181 | 317 | <br><code><span class="keyword">type</span> <a name="TYPEgeneration_error"></a><code class="type"></code>generation_error = </code><table class="typetable"> |
182 | 318 | <tr> |
194 | 330 | |
195 | 331 | </tr></table> |
196 | 332 | |
333 | <div class="info"> | |
334 | The type of error raised by attribute generators<br> | |
335 | </div> | |
197 | 336 | |
198 | 337 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONNo_generator"></a>No_generator <span class="keyword">of</span> <code class="type">string</code></pre> |
338 | <div class="info"> | |
339 | You've asked it to generate an attribute (in a service) which | |
340 | doesn't have a generator<br> | |
341 | </div> | |
199 | 342 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONGeneration_failed"></a>Generation_failed <span class="keyword">of</span> <code class="type"><a href="Ldap_ooclient.html#TYPEgeneration_error">generation_error</a></code></pre> |
343 | <div class="info"> | |
344 | Generator has failed because of some kind of error<br> | |
345 | </div> | |
200 | 346 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONNo_service"></a>No_service <span class="keyword">of</span> <code class="type">string</code></pre> |
347 | <div class="info"> | |
348 | The service you're talking about doesn't exist<br> | |
349 | </div> | |
201 | 350 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONService_dep_unsatisfiable"></a>Service_dep_unsatisfiable <span class="keyword">of</span> <code class="type">string</code></pre> |
351 | <div class="info"> | |
352 | A service which the one you tried to add depends on doesn't exists<br> | |
353 | </div> | |
202 | 354 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONGenerator_dep_unsatisfiable"></a>Generator_dep_unsatisfiable <span class="keyword">of</span> <code class="type">string * string</code></pre> |
355 | <div class="info"> | |
356 | Your generator depends on an attribute which isn't in the schema<br> | |
357 | </div> | |
203 | 358 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONCannot_sort_dependancies"></a>Cannot_sort_dependancies <span class="keyword">of</span> <code class="type">string list</code></pre> |
359 | <div class="info"> | |
360 | You have detached cycles in your generator dependancy lists<br> | |
361 | </div> | |
204 | 362 | <pre><span class="keyword">class</span> <a name="TYPEldapaccount"></a><a href="Ldap_ooclient.ldapaccount.html">ldapaccount</a> : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> (string, <a href="Ldap_ooclient.html#TYPEgenerator">generator</a>) Hashtbl.t -> (string, <a href="Ldap_ooclient.html#TYPEservice">service</a>) Hashtbl.t -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapaccount.html">..</a> <code class="code"><span class="keyword">end</span></code></pre></body></html>⏎ |
24 | 24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
25 | 25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
26 | 26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapaccount</title> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><link title="Account Manipulation Methods" rel="Section" href="#2_AccountManipulationMethods"> | |
29 | <link title="Inherited Methods" rel="Section" href="#2_InheritedMethods"> | |
30 | <title>Ldap_ooclient.ldapaccount</title> | |
28 | 31 | </head> |
29 | 32 | <body> |
30 | 33 | <div class="navbar"><a href="Ldap_ooclient.scldapentry.html">Previous</a> |
33 | 36 | <center><h1>Class <a href="type_Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a></h1></center> |
34 | 37 | <br> |
35 | 38 | <pre><span class="keyword">class</span> <a name="TYPEldapaccount"></a>ldapaccount : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> (string, <a href="Ldap_ooclient.html#TYPEgenerator">generator</a>) Hashtbl.t -> (string, <a href="Ldap_ooclient.html#TYPEservice">service</a>) Hashtbl.t -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapaccount.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%"> |
36 | <pre><span class="keyword">method</span> <a name="METHODadapt_service"></a>adapt_service : <code class="type"><a href="Ldap_ooclient.html#TYPEservice">service</a> -> <a href="Ldap_ooclient.html#TYPEservice">service</a></code></pre><pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODadd_generate"></a>add_generate : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODadd_service"></a>add_service : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODattributes"></a>attributes : <code class="type">string list</code></pre><pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdelete_generate"></a>delete_generate : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdelete_service"></a>delete_service : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdn"></a>dn : <code class="type">string</code></pre><pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODflush_changes"></a>flush_changes : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODgenerate"></a>generate : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><pre><span class="keyword">method</span> <a name="METHODis_allowed"></a>is_allowed : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODis_missing"></a>is_missing : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_allowed"></a>list_allowed : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_missing"></a>list_missing : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_present"></a>list_present : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODof_entry"></a>of_entry : <code class="type">?scflavor:<a href="Ldap_ooclient.html#TYPEscflavor">scflavor</a> -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODservice_exists"></a>service_exists : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODservices_present"></a>services_present : <code class="type">string list</code></pre><pre><span class="keyword">method</span> <a name="METHODset_changetype"></a>set_changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_dn"></a>set_dn : <code class="type">string -> unit</code></pre></body></html>⏎ | |
39 | <a name="2_AccountManipulationMethods"></a> | |
40 | <h2>Account Manipulation Methods</h2><pre><span class="keyword">method</span> <a name="METHODadd_service"></a>add_service : <code class="type">string -> unit</code></pre><div class="info"> | |
41 | add the named service to the object, this also adds all the | |
42 | services depended upon by the named service.<br> | |
43 | </div> | |
44 | <pre><span class="keyword">method</span> <a name="METHODdelete_service"></a>delete_service : <code class="type">string -> unit</code></pre><div class="info"> | |
45 | Delete the named service. This will also delete all services | |
46 | which depend on it, either directly or indirectly<br> | |
47 | </div> | |
48 | <pre><span class="keyword">method</span> <a name="METHODadapt_service"></a>adapt_service : <code class="type"><a href="Ldap_ooclient.html#TYPEservice">service</a> -> <a href="Ldap_ooclient.html#TYPEservice">service</a></code></pre><div class="info"> | |
49 | Run service through the delta engine to find out what changes | |
50 | would actually be applied to this object<br> | |
51 | </div> | |
52 | <pre><span class="keyword">method</span> <a name="METHODservice_exists"></a>service_exists : <code class="type">string -> bool</code></pre><div class="info"> | |
53 | Tests whether the named service is satisfied by the current | |
54 | entry. A service is satisfied if no changes would result from | |
55 | adding it to the entry.<br> | |
56 | </div> | |
57 | <pre><span class="keyword">method</span> <a name="METHODservices_present"></a>services_present : <code class="type">string list</code></pre><div class="info"> | |
58 | Return a list of all the named services which are satisfied by | |
59 | the current entry.<br> | |
60 | </div> | |
61 | <pre><span class="keyword">method</span> <a name="METHODadd_generate"></a>add_generate : <code class="type">string -> unit</code></pre><div class="info"> | |
62 | add the named attribute to the list of attributes to be generated<br> | |
63 | </div> | |
64 | <pre><span class="keyword">method</span> <a name="METHODdelete_generate"></a>delete_generate : <code class="type">string -> unit</code></pre><div class="info"> | |
65 | Delete the named attribute from the list of attributes to generate<br> | |
66 | </div> | |
67 | <pre><span class="keyword">method</span> <a name="METHODgenerate"></a>generate : <code class="type">unit</code></pre><div class="info"> | |
68 | Run the generation functions on the list of attributes to be | |
69 | generated, saving the results in the entry. You must run this | |
70 | method in order to run any generators at all.<br> | |
71 | </div> | |
72 | <a name="2_InheritedMethods"></a> | |
73 | <h2>Inherited Methods</h2> Unless explicitly stated, these methods | |
74 | do exactly the same thing as in <a href="Ldap_ooclient.scldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.scldapentry</code></a><pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info"> | |
75 | Missing attributes may be marked for generation.<br> | |
76 | </div> | |
77 | <pre><span class="keyword">method</span> <a name="METHODattributes"></a>attributes : <code class="type">string list</code></pre><pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdn"></a>dn : <code class="type">string</code></pre><pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODflush_changes"></a>flush_changes : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><div class="info"> | |
78 | If a missing attribute is marked for generation its value will | |
79 | be <code class="code"><span class="string">"generate"</span></code> instead of <code class="code"><span class="string">"required"</span></code><br> | |
80 | </div> | |
81 | <pre><span class="keyword">method</span> <a name="METHODis_allowed"></a>is_allowed : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODis_missing"></a>is_missing : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_allowed"></a>list_allowed : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_missing"></a>list_missing : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_present"></a>list_present : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODof_entry"></a>of_entry : <code class="type">?scflavor:<a href="Ldap_ooclient.html#TYPEscflavor">scflavor</a> -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><div class="info"> | |
82 | <span class="warning">Deprecated.</span>Missing required attributes which will be | |
83 | generated are shown as "attrname: generate" instead of | |
84 | "attrname: required"<br> | |
85 | </div> | |
86 | <pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_changetype"></a>set_changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_dn"></a>set_dn : <code class="type">string -> unit</code></pre></body></html>⏎ |
0 | <html> | |
1 | <head> | |
2 | <link rel="stylesheet" href="style.css" type="text/css"> | |
3 | <link rel="Start" href="index.html"> | |
4 | <link rel="previous" href="Ldap_ooclient.object_lock_table.html"> | |
5 | <link rel="next" href="Ldap_ooclient.scldapentry.html"> | |
6 | <link rel="Up" href="Ldap_ooclient.html"> | |
7 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
8 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
9 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
10 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
11 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
12 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
13 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
14 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
15 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
16 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
17 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
18 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
19 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
20 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
21 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
22 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
23 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
24 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapadvisorytxcon</title> | |
29 | </head> | |
30 | <body> | |
31 | <div class="navbar"><a href="Ldap_ooclient.object_lock_table.html">Previous</a> | |
32 | <a href="Ldap_ooclient.html">Up</a> | |
33 | <a href="Ldap_ooclient.scldapentry.html">Next</a> | |
34 | </div> | |
35 | <center><h1>Class <a href="type_Ldap_ooclient.ldapadvisorytxcon.html">Ldap_ooclient.ldapadvisorytxcon</a></h1></center> | |
36 | <br> | |
37 | <pre><span class="keyword">class</span> <a name="TYPEldapadvisorytxcon"></a>ldapadvisorytxcon : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapadvisorytxcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>A subclass of ldapcon which implements an experimental interface | |
38 | to draft_zeilenga_ldap_txn. A draft standard for multi object | |
39 | transactions over the ldap protocol. This class can only implement | |
40 | advisory transactions because it must depend on the advisory | |
41 | locking mechanisms for the transactions to be consistant. You use | |
42 | this class by calling begin_txn to get a transaction id, and then | |
43 | associating a set of ldapentry objects with the transaction by | |
44 | calling associate_entry_with_txn. You are then free to modify | |
45 | those entries in any way you like, and when you are done, you can | |
46 | either call commit_txn, or rollback_txn. Commit will commit the | |
47 | changes of all the entries associated with the transaction to the | |
48 | database. For other writers which obey advisory locking the commit | |
49 | operation is atomic. For readers which are willing to obey | |
50 | advisory locking is atomic. If the commit fails, a full rollback | |
51 | occurrs, including all changes made to the directory. For example | |
52 | in a set of N entries in a transaction, if the modificiation of | |
53 | the nth entry fails to commit, then the modifications to all the | |
54 | previous entries, which have already been made in the directory, | |
55 | are undone. It is important to note that if advisory locking is | |
56 | not obeyed, rollback may not be successful. Rollback undoes all | |
57 | the changes you've made in memory, and unlocks all the objects in | |
58 | the transaction. After a transaction object has been commited or | |
59 | rolled back it is considered "dead", and cannot be used again.<br> | |
60 | <hr width="100%"> | |
61 | <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODbind"></a>bind : <code class="type">?cred:string -> ?meth:<a href="Ldap_funclient.html#TYPEauthmethod">Ldap_funclient.authmethod</a> -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">string -> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodrdn"></a>modrdn : <code class="type">string -> ?deleteoldrdn:bool -> ?newsup:string option -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODrawschema"></a>rawschema : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODschema"></a>schema : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a></code></pre><pre><span class="keyword">method</span> <a name="METHODsearch"></a>search : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -> ?base:string -> string -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODsearch_a"></a>search_a : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -><br> ?base:string -> string -> ?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODunbind"></a>unbind : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODupdate_entry"></a>update_entry : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODbegin_txn"></a>begin_txn : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a></code></pre><pre><span class="keyword">method</span> <a name="METHODassociate_entry"></a>associate_entry : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODassociate_entries"></a>associate_entries : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdisassociate_entry"></a>disassociate_entry : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdisassociate_entries"></a>disassociate_entries : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODcommit_txn"></a>commit_txn : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODrollback_txn"></a>rollback_txn : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> unit</code></pre></body></html>⏎ |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapcon</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><link title="Authentication" rel="Section" href="#2_Authentication"> | |
30 | <link title="Searching" rel="Section" href="#2_Searching"> | |
31 | <link title="Making Modifications" rel="Section" href="#2_MakingModifications"> | |
32 | <title>Ldap_ooclient.ldapcon</title> | |
29 | 33 | </head> |
30 | 34 | <body> |
31 | 35 | <div class="navbar"><a href="Ldap_ooclient.ldapentry.html">Previous</a> |
34 | 38 | </div> |
35 | 39 | <center><h1>Class <a href="type_Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a></h1></center> |
36 | 40 | <br> |
37 | <pre><span class="keyword">class</span> <a name="TYPEldapcon"></a>ldapcon : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%"> | |
38 | <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODbind"></a>bind : <code class="type">?cred:string -> ?meth:<a href="Ldap_funclient.html#TYPEauthmethod">Ldap_funclient.authmethod</a> -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">string -> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodrdn"></a>modrdn : <code class="type">string -> ?deleteoldrdn:bool -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODrawschema"></a>rawschema : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODschema"></a>schema : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a></code></pre><pre><span class="keyword">method</span> <a name="METHODsearch"></a>search : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -> ?base:string -> string -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODsearch_a"></a>search_a : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -><br> ?base:string -> string -> ?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODunbind"></a>unbind : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODupdate_entry"></a>update_entry : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre></body></html>⏎ | |
41 | <pre><span class="keyword">class</span> <a name="TYPEldapcon"></a>ldapcon : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>This class abstracts a connection to an LDAP server (or servers), | |
42 | an instance will be connected to the server you specify and can be | |
43 | used to perform operations on that server. | |
44 | <p> | |
45 | ||
46 | <a name="0_Example"></a> | |
47 | <h0>Example</h0> | |
48 | <p> | |
49 | ||
50 | <code class="code"><span class="keyword">new</span> ldapcon ~connect_timeout:5 ~version:3 | |
51 | [<span class="string">"ldap://first.ldap.server"</span>;<span class="string">"ldap://second.ldap.server"</span>]</code>. | |
52 | <p> | |
53 | ||
54 | In addition to specifying multiple urls, if DNS names are given, | |
55 | and those names are bound to multiple addresses, then all possible | |
56 | addresses will be tried. | |
57 | <p> | |
58 | ||
59 | <a name="0_Example"></a> | |
60 | <h0>Example</h0> | |
61 | <p> | |
62 | ||
63 | <code class="code"><span class="keyword">new</span> ldapcon [<span class="string">"ldaps://rrldap.csun.edu"</span>]</code> | |
64 | <p> | |
65 | ||
66 | is equivelant to | |
67 | <p> | |
68 | ||
69 | <code class="code"><span class="keyword">new</span> ldapcon [<span class="string">"ldap://130.166.1.30"</span>;<span class="string">"ldap://130.166.1.31"</span>;<span class="string">"ldap://130.166.1.32"</span>]</code> | |
70 | <p> | |
71 | ||
72 | This means that if any host in the rr fails, the ldapcon will | |
73 | transparently move on to the next host, and you will never know | |
74 | the difference.<br> | |
75 | <b>Raises</b> <code>LDAP_Failure</code> All methods raise <a href="Ldap_types.html#EXCEPTIONLDAP_Failure"><code class="code"><span class="constructor">Ldap_types</span>.<span class="constructor">LDAP_Failure</span></code></a> on error<br> | |
76 | <div class="param_info"><code class="code">connect_timeout</code> : Default <code class="code">1</code>, an integer which specifies how | |
77 | long to wait for any given server in the list to respond before | |
78 | trying the next one. After all the servers have been tried for | |
79 | <code class="code">connect_timeout</code> seconds <code class="code"><span class="constructor">LDAP_Failure</span> (<span class="keywordsign">`</span><span class="constructor">SERVER_DOWN</span>, ...)</code> will | |
80 | be raised.</div> | |
81 | <div class="param_info"><code class="code">referral_policy</code> : In a future version of ocamldap this will | |
82 | be used to specify what you would like to do in the event of a | |
83 | referral. Currently it does nothing and is ignored see | |
84 | <a href="Ldap_ooclient.html#TYPEreferral_policy"><code class="code"><span class="constructor">Ldap_ooclient</span>.referral_policy</code></a>.</div> | |
85 | <div class="param_info"><code class="code">version</code> : The protocol version to use, the default is <code class="code">3</code>, | |
86 | the other recognized value is <code class="code">2</code>.</div> | |
87 | <hr width="100%"> | |
88 | <a name="2_Authentication"></a> | |
89 | <h2>Authentication</h2><pre><span class="keyword">method</span> <a name="METHODbind"></a>bind : <code class="type">?cred:string -> ?meth:<a href="Ldap_funclient.html#TYPEauthmethod">Ldap_funclient.authmethod</a> -> string -> unit</code></pre><div class="info"> | |
90 | bind to the database using dn. | |
91 | <p> | |
92 | ||
93 | <a name="0_SimpleBindExample"></a> | |
94 | <h0>Simple Bind Example</h0> | |
95 | <p> | |
96 | ||
97 | <code class="code">ldap<span class="keywordsign">#</span>bind ~cred:<span class="string">"password"</span> <span class="string">"cn=foo,ou=people,ou=auth,o=bar"</span></code> | |
98 | <p> | |
99 | ||
100 | To bind anonymously, omit ~cred, and leave dn blank eg. | |
101 | <p> | |
102 | ||
103 | <a name="0_Example"></a> | |
104 | <h0>Example</h0> | |
105 | <p> | |
106 | ||
107 | <code class="code">ldap<span class="keywordsign">#</span>bind <span class="string">""</span></code><br> | |
108 | </div> | |
109 | <div class="param_info"><code class="code">cred</code> : The credentials to provide for binding. Default <code class="code"><span class="string">""</span></code>.</div> | |
110 | <div class="param_info"><code class="code">meth</code> : The method to use when binding See | |
111 | <a href="Ldap_funclient.html#TYPEauthmethod"><code class="code"><span class="constructor">Ldap_funclient</span>.authmethod</code></a> the default is <code class="code"><span class="keywordsign">`</span><span class="constructor">SIMPLE</span></code>. If | |
112 | <code class="code"><span class="keywordsign">`</span><span class="constructor">SASL</span></code> is used then <code class="code">dn</code> and <code class="code">~cred</code> Are interperted according | |
113 | to the chosen SASL mechanism. SASL binds have not been tested | |
114 | extensively.</div> | |
115 | <pre><span class="keyword">method</span> <a name="METHODunbind"></a>unbind : <code class="type">unit</code></pre><div class="info"> | |
116 | Deauthenticate and close the connection to the server<br> | |
117 | </div> | |
118 | <a name="2_Searching"></a> | |
119 | <h2>Searching</h2><pre><span class="keyword">method</span> <a name="METHODsearch"></a>search : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -> ?base:string -> string -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> list</code></pre><div class="info"> | |
120 | Search the directory syncronously for an entry which matches the | |
121 | search criteria. | |
122 | <p> | |
123 | ||
124 | <a name="0_Example"></a> | |
125 | <h0>Example</h0> | |
126 | <p> | |
127 | ||
128 | <code class="code">ldap<span class="keywordsign">#</span>search ~base:<span class="string">"dc=foo,dc=bar"</span> ~attrs:[<span class="string">"cn"</span>] <span class="string">"uid=*"</span></code><br> | |
129 | </div> | |
130 | <div class="param_info"><code class="code">scope</code> : Default <code class="code"><span class="keywordsign">`</span><span class="constructor">SUBTREE</span></code>, defines the scope of the | |
131 | search. see <a href="Ldap_types.html#TYPEsearch_scope"><code class="code"><span class="constructor">Ldap_types</span>.search_scope</code></a></div> | |
132 | <div class="param_info"><code class="code">attrs</code> : Default <code class="code">[]</code> (means all attributes)</div> | |
133 | <div class="param_info"><code class="code">attrsonly</code> : Default <code class="code"><span class="keyword">false</span></code> If true, asks the server to return | |
134 | only the attribute names, not their values.</div> | |
135 | <div class="param_info"><code class="code">base</code> : Default <code class="code"><span class="string">""</span></code>, The search base, which is the dn of the | |
136 | object from which you want to start your search. Only that | |
137 | object, and it's children will be included in the | |
138 | search. Further controlled by <code class="code">~scope</code>.</div> | |
139 | <pre><span class="keyword">method</span> <a name="METHODsearch_a"></a>search_a : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -><br> ?base:string -> string -> ?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><div class="info"> | |
140 | Search the directory asyncronously, otherwise the same as | |
141 | search.<br> | |
142 | </div> | |
143 | <pre><span class="keyword">method</span> <a name="METHODrawschema"></a>rawschema : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><div class="info"> | |
144 | Fetch the raw (unparsed) schema from the directory using the | |
145 | standard mechanism (requires protocol version 3)<br> | |
146 | </div> | |
147 | <pre><span class="keyword">method</span> <a name="METHODschema"></a>schema : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a></code></pre><div class="info"> | |
148 | Fetch and parse the schema from the directory via the standard | |
149 | mechanism (requires version 3). Return a structured | |
150 | representation of the schema indexed by canonical name, and oid.<br> | |
151 | </div> | |
152 | <a name="2_MakingModifications"></a> | |
153 | <h2>Making Modifications</h2><pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><div class="info"> | |
154 | add an entry to the database<br> | |
155 | </div> | |
156 | <pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type">string -> unit</code></pre><div class="info"> | |
157 | Delete the object named by dn from the database<br> | |
158 | </div> | |
159 | <pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">string -> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><div class="info"> | |
160 | Modify the entry named by dn, applying mods | |
161 | <p> | |
162 | ||
163 | <a name="0_Example"></a> | |
164 | <h0>Example</h0> | |
165 | <p> | |
166 | ||
167 | <code class="code">ldap<span class="keywordsign">#</span>modify <span class="string">"uid=foo,ou=people,dc=bar,dc=baz"</span> [(<span class="keywordsign">`</span><span class="constructor">DELETE</span>, <span class="string">"cn"</span>, [<span class="string">"foo"</span>;<span class="string">"bar"</span>])]</code><br> | |
168 | </div> | |
169 | <pre><span class="keyword">method</span> <a name="METHODupdate_entry"></a>update_entry : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><div class="info"> | |
170 | Syncronize changes made locally to an ldapentry with the | |
171 | directory.<br> | |
172 | </div> | |
173 | <pre><span class="keyword">method</span> <a name="METHODmodrdn"></a>modrdn : <code class="type">string -> ?deleteoldrdn:bool -> ?newsup:string option -> string -> unit</code></pre><div class="info"> | |
174 | Modify the rdn of the object named by dn, if the protocol | |
175 | version is 3 you may additionally change the superior, the rdn | |
176 | will be changed to the attribute represented (as a string) by | |
177 | newrdn, | |
178 | <p> | |
179 | ||
180 | <a name="0_ExampleWithNewSuperior"></a> | |
181 | <h0>Example With New Superior</h0> | |
182 | <p> | |
183 | ||
184 | <code class="code">ldap<span class="keywordsign">#</span>modrdn ~newsup:(<span class="constructor">Some</span> <span class="string">"o=csun"</span>) <span class="string">"cn=bob,ou=people,o=org"</span> <span class="string">"uid=bperson"</span></code> | |
185 | <p> | |
186 | ||
187 | After this example "cn=bob,ou=people,o=org" will end up as "uid=bperson,o=csun".<br> | |
188 | </div> | |
189 | <div class="param_info"><code class="code">deleteoldrdn</code> : Default <code class="code"><span class="keyword">true</span></code>, delete | |
190 | the old rdn value as part of the modrdn.</div> | |
191 | <div class="param_info"><code class="code">newsup</code> : Default <code class="code"><span class="constructor">None</span></code>, only valid when the protocol | |
192 | version is 3, change the object's location in the tree, making | |
193 | its superior equal to the specified object.</div> | |
194 | </body></html>⏎ |
24 | 24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
25 | 25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
26 | 26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapentry</title> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapentry</title> | |
28 | 29 | </head> |
29 | 30 | <body> |
30 | 31 | <div class="navbar"> <a href="Ldap_ooclient.html">Up</a> |
33 | 34 | <center><h1>Class <a href="type_Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a></h1></center> |
34 | 35 | <br> |
35 | 36 | <pre><span class="keyword">class</span> <a name="TYPEldapentry"></a>ldapentry : <code class="type"></code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>this object represents a remote object within local memory. It |
36 | records all local changes made to it (if it's changetype is set to | |
37 | `MODIFY), and can commit them to the server at a later time. This | |
38 | can significantly improve performance by reducing traffic to the | |
39 | server.<br> | |
37 | records all local changes made to it (if it's changetype is set to | |
38 | `MODIFY), and can commit them to the server at a later time via | |
39 | <a href="Ldap_ooclient.ldapcon.html#METHODupdate_entry"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapcon.update_entry</code></a>.<br> | |
40 | 40 | <hr width="100%"> |
41 | 41 | <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info"> |
42 | 42 | add values to an attribute (or create a new attribute). Does |
47 | 47 | on the object<br> |
48 | 48 | </div> |
49 | 49 | <pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><div class="info"> |
50 | return a list of changes made to the object in a format suitable for | |
51 | sending directly to modify_s<br> | |
50 | return a list of changes made to the object in a the format of | |
51 | a modify operation. For example, you can apply the changes to another | |
52 | ldapentry object using the <a href="Ldap_ooclient.ldapentry.html#METHODmodify"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.modify</code></a> | |
53 | method<br> | |
52 | 54 | </div> |
53 | 55 | <pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><div class="info"> |
54 | 56 | return the changetype of the object<br> |
62 | 64 | </div> |
63 | 65 | <pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><div class="info"> |
64 | 66 | given an ldapentry, return the differences between the current |
65 | entry and the specified entry<br> | |
67 | entry and the specified entry in the form of a modify | |
68 | operation which would make the specified entry the same as the | |
69 | current entry.<br> | |
66 | 70 | </div> |
67 | 71 | <pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><div class="info"> |
68 | 72 | query whether the attribute type (name) exists in the object<br> |
72 | 76 | </div> |
73 | 77 | <pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><div class="info"> |
74 | 78 | get the value of an attribute<br> |
79 | <b>Raises</b> <code>Not_found</code> If the | |
80 | attribute does not exist.<br> | |
75 | 81 | </div> |
76 | 82 | <pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><div class="info"> |
77 | modify the object (same as modify_s), does not change the | |
78 | database until you update<br> | |
83 | Apply modifications to object in memory, does not change the | |
84 | database until you update using | |
85 | <a href="Ldap_ooclient.ldapcon.html#METHODupdate_entry"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapcon.update_entry</code></a><br> | |
79 | 86 | </div> |
80 | 87 | <pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><div class="info"> |
81 | print an ldif like representation of the object to stdout, see | |
82 | Ldif_oo for standards compliant ldif. Usefull for toplevel | |
83 | sessions.<br> | |
88 | <span class="warning">Deprecated.</span>print an ldif like representation of the object to stdout, see | |
89 | Ldif_oo for standards compliant ldif. Usefull for toplevel | |
90 | sessions.<br> | |
84 | 91 | </div> |
85 | 92 | <pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info"> |
86 | 93 | replace values in the object, does not change the database |
23 | 23 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
24 | 24 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
25 | 25 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
26 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapentry_t</title> | |
26 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
27 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapentry_t</title> | |
27 | 28 | </head> |
28 | 29 | <body> |
29 | 30 | <div class="navbar"> <a href="Ldap_ooclient.html">Up</a> |
30 | 31 | </div> |
31 | 32 | <center><h1>Class type <a href="type_Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a></h1></center> |
32 | 33 | <br> |
33 | <pre><span class="keyword">class type</span> <a name="TYPEldapentry_t"></a>ldapentry_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%"> | |
34 | <pre><span class="keyword">class type</span> <a name="TYPEldapentry_t"></a>ldapentry_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>The base type of an ldap entry represented in memory.<br> | |
35 | <hr width="100%"> | |
34 | 36 | <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODattributes"></a>attributes : <code class="type">string list</code></pre><pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdn"></a>dn : <code class="type">string</code></pre><pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODflush_changes"></a>flush_changes : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_changetype"></a>set_changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_dn"></a>set_dn : <code class="type">string -> unit</code></pre></body></html>⏎ |
0 | <html> | |
1 | <head> | |
2 | <link rel="stylesheet" href="style.css" type="text/css"> | |
3 | <link rel="Start" href="index.html"> | |
4 | <link rel="previous" href="Ldap_ooclient.ldapcon.html"> | |
5 | <link rel="next" href="Ldap_ooclient.object_lock_table.html"> | |
6 | <link rel="Up" href="Ldap_ooclient.html"> | |
7 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
8 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
9 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
10 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
11 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
12 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
13 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
14 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
15 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
16 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
17 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
18 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
19 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
20 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
21 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
22 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
23 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
24 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.mutex</title> | |
29 | </head> | |
30 | <body> | |
31 | <div class="navbar"><a href="Ldap_ooclient.ldapcon.html">Previous</a> | |
32 | <a href="Ldap_ooclient.html">Up</a> | |
33 | <a href="Ldap_ooclient.object_lock_table.html">Next</a> | |
34 | </div> | |
35 | <center><h1>Class <a href="type_Ldap_ooclient.mutex.html">Ldap_ooclient.mutex</a></h1></center> | |
36 | <br> | |
37 | <pre><span class="keyword">class</span> <a name="TYPEmutex"></a>mutex : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>new mutex ldapurls binddn bindpw mutexdn<br> | |
38 | <hr width="100%"> | |
39 | <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type">unit</code></pre><div class="info"> | |
40 | lock the mutex. This WILL block if the mutex is already locked | |
41 | <p> | |
42 | unlock the mutex<br> | |
43 | </div> | |
44 | <pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type">unit</code></pre></body></html>⏎ |
0 | <html> | |
1 | <head> | |
2 | <link rel="stylesheet" href="style.css" type="text/css"> | |
3 | <link rel="Start" href="index.html"> | |
4 | <link rel="previous" href="Ldap_ooclient.ldapentry_t.html"> | |
5 | <link rel="next" href="Ldap_ooclient.object_lock_table_t.html"> | |
6 | <link rel="Up" href="Ldap_ooclient.html"> | |
7 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
8 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
9 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
10 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
11 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
12 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
13 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
14 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
15 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
16 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
17 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
18 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
19 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
20 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
21 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
22 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
23 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
24 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.mutex_t</title> | |
29 | </head> | |
30 | <body> | |
31 | <div class="navbar"><a href="Ldap_ooclient.ldapentry_t.html">Previous</a> | |
32 | <a href="Ldap_ooclient.html">Up</a> | |
33 | <a href="Ldap_ooclient.object_lock_table_t.html">Next</a> | |
34 | </div> | |
35 | <center><h1>Class type <a href="type_Ldap_ooclient.mutex_t.html">Ldap_ooclient.mutex_t</a></h1></center> | |
36 | <br> | |
37 | <pre><span class="keyword">class type</span> <a name="TYPEmutex_t"></a>mutex_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.mutex_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>the class type of a single mutex, used for performing | |
38 | advisory locking of some action<br> | |
39 | <hr width="100%"> | |
40 | <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type">unit</code></pre></body></html>⏎ |
0 | <html> | |
1 | <head> | |
2 | <link rel="stylesheet" href="style.css" type="text/css"> | |
3 | <link rel="Start" href="index.html"> | |
4 | <link rel="previous" href="Ldap_ooclient.mutex.html"> | |
5 | <link rel="next" href="Ldap_ooclient.ldapadvisorytxcon.html"> | |
6 | <link rel="Up" href="Ldap_ooclient.html"> | |
7 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
8 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
9 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
10 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
11 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
12 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
13 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
14 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
15 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
16 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
17 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
18 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
19 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
20 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
21 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
22 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
23 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
24 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.object_lock_table</title> | |
29 | </head> | |
30 | <body> | |
31 | <div class="navbar"><a href="Ldap_ooclient.mutex.html">Previous</a> | |
32 | <a href="Ldap_ooclient.html">Up</a> | |
33 | <a href="Ldap_ooclient.ldapadvisorytxcon.html">Next</a> | |
34 | </div> | |
35 | <center><h1>Class <a href="type_Ldap_ooclient.object_lock_table.html">Ldap_ooclient.object_lock_table</a></h1></center> | |
36 | <br> | |
37 | <pre><span class="keyword">class</span> <a name="TYPEobject_lock_table"></a>object_lock_table : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.object_lock_table.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>new object_lock_table ldapurls binddn bindpw mutexdn<br> | |
38 | <hr width="100%"> | |
39 | <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre><div class="info"> | |
40 | lock the specified dn, if it is already locked, then block until the lock can be aquired | |
41 | <p> | |
42 | unlock the specified dn, if it is not locked do nothing<br> | |
43 | </div> | |
44 | <pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre></body></html>⏎ |
0 | <html> | |
1 | <head> | |
2 | <link rel="stylesheet" href="style.css" type="text/css"> | |
3 | <link rel="Start" href="index.html"> | |
4 | <link rel="previous" href="Ldap_ooclient.mutex_t.html"> | |
5 | <link rel="Up" href="Ldap_ooclient.html"> | |
6 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
7 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
8 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
9 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
10 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
11 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
12 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
13 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
14 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
15 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
16 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
17 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
18 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
19 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
20 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
21 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
22 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
23 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.object_lock_table_t</title> | |
28 | </head> | |
29 | <body> | |
30 | <div class="navbar"><a href="Ldap_ooclient.mutex_t.html">Previous</a> | |
31 | <a href="Ldap_ooclient.html">Up</a> | |
32 | </div> | |
33 | <center><h1>Class type <a href="type_Ldap_ooclient.object_lock_table_t.html">Ldap_ooclient.object_lock_table_t</a></h1></center> | |
34 | <br> | |
35 | <pre><span class="keyword">class type</span> <a name="TYPEobject_lock_table_t"></a>object_lock_table_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.object_lock_table_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>the class type of an object lock table which allows for advisory | |
36 | locking of objects by dn<br> | |
37 | <hr width="100%"> | |
38 | <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre></body></html>⏎ |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.scldapentry</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><link title="New Methods" rel="Section" href="#2_NewMethods"> | |
30 | <link title="Inherited Methods" rel="Section" href="#2_InheritedMethods"> | |
31 | <title>Ldap_ooclient.scldapentry</title> | |
29 | 32 | </head> |
30 | 33 | <body> |
31 | 34 | <div class="navbar"><a href="Ldap_ooclient.ldapcon.html">Previous</a> |
35 | 38 | <center><h1>Class <a href="type_Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a></h1></center> |
36 | 39 | <br> |
37 | 40 | <pre><span class="keyword">class</span> <a name="TYPEscldapentry"></a>scldapentry : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.scldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%"> |
38 | <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODattributes"></a>attributes : <code class="type">string list</code></pre><pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdn"></a>dn : <code class="type">string</code></pre><pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODflush_changes"></a>flush_changes : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODis_allowed"></a>is_allowed : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODis_missing"></a>is_missing : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_allowed"></a>list_allowed : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_missing"></a>list_missing : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_present"></a>list_present : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODof_entry"></a>of_entry : <code class="type">?scflavor:<a href="Ldap_ooclient.html#TYPEscflavor">scflavor</a> -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_changetype"></a>set_changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_dn"></a>set_dn : <code class="type">string -> unit</code></pre></body></html>⏎ | |
41 | <a name="2_NewMethods"></a> | |
42 | <h2>New Methods</h2><pre><span class="keyword">method</span> <a name="METHODis_allowed"></a>is_allowed : <code class="type">string -> bool</code></pre><div class="info"> | |
43 | Returns true if the attributed specified is allowed by the | |
44 | current set of objectclasses present on the entry.<br> | |
45 | </div> | |
46 | <pre><span class="keyword">method</span> <a name="METHODis_missing"></a>is_missing : <code class="type">string -> bool</code></pre><div class="info"> | |
47 | Returns true if the attribute specified is a must, but is not | |
48 | currently present.<br> | |
49 | </div> | |
50 | <pre><span class="keyword">method</span> <a name="METHODlist_allowed"></a>list_allowed : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><div class="info"> | |
51 | Return a list of all attributes allowed on the entry (by oid)<br> | |
52 | </div> | |
53 | <pre><span class="keyword">method</span> <a name="METHODlist_missing"></a>list_missing : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><div class="info"> | |
54 | Return a list of all missing attributes (by oid)<br> | |
55 | </div> | |
56 | <pre><span class="keyword">method</span> <a name="METHODlist_present"></a>list_present : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><div class="info"> | |
57 | Return a list of all present attributes. In contrast to the | |
58 | <code class="code">attributes</code> method, this method ignores missing required | |
59 | attributes and just returns those attributes which are actually | |
60 | present.<br> | |
61 | </div> | |
62 | <pre><span class="keyword">method</span> <a name="METHODof_entry"></a>of_entry : <code class="type">?scflavor:<a href="Ldap_ooclient.html#TYPEscflavor">scflavor</a> -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><div class="info"> | |
63 | Given an <a href="Ldap_ooclient.ldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry</code></a> copy all of it's data into | |
64 | the current object, and perform a schema check.<br> | |
65 | </div> | |
66 | <div class="param_info"><code class="code">scflavor</code> : Default <code class="code"><span class="constructor">Pessimistic</span></code> The schema checking | |
67 | bias, see <a href="Ldap_ooclient.html#TYPEscflavor"><code class="code"><span class="constructor">Ldap_ooclient</span>.scflavor</code></a></div> | |
68 | <a name="2_InheritedMethods"></a> | |
69 | <h2>Inherited Methods</h2><pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info"> | |
70 | Add values to the entry, just as | |
71 | <a href="Ldap_ooclient.ldapentry.html#METHODadd"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.add</code></a>, However, after the add is | |
72 | complete the schema checker is run in <code class="code"><span class="constructor">Optimistic</span></code> mode. see | |
73 | <a href="Ldap_ooclient.html#TYPEscflavor"><code class="code"><span class="constructor">Ldap_ooclient</span>.scflavor</code></a><br> | |
74 | </div> | |
75 | <pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info"> | |
76 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODadd"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.add</code></a>, except that the schema | |
77 | checker is run in <code class="code"><span class="constructor">Pessimistic</span></code> mode after the operation is | |
78 | complete. see <a href="Ldap_ooclient.html#TYPEscflavor"><code class="code"><span class="constructor">Ldap_ooclient</span>.scflavor</code></a><br> | |
79 | </div> | |
80 | <pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info"> | |
81 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODreplace"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.replace</code></a> except that once | |
82 | the replace has completed the schema checker is run again in | |
83 | <code class="code"><span class="constructor">Optimistic</span></code> mode. See <a href="Ldap_ooclient.html#TYPEscflavor"><code class="code"><span class="constructor">Ldap_ooclient</span>.scflavor</code></a><br> | |
84 | </div> | |
85 | <pre><span class="keyword">method</span> <a name="METHODattributes"></a>attributes : <code class="type">string list</code></pre><div class="info"> | |
86 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODattributes"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.attributes</code></a>, except that the | |
87 | returned list contains attributes which may not yet exist on | |
88 | the entry. For example musts which are not yet present will be | |
89 | listed.<br> | |
90 | </div> | |
91 | <pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><div class="info"> | |
92 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODexists"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.exists</code></a> except that it | |
93 | refrences attributes which may not yet exist. For example musts | |
94 | which are not yet present.<br> | |
95 | </div> | |
96 | <pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><div class="info"> | |
97 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODget_value"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.get_value</code></a>, except that | |
98 | attributes which do not yet exists may be referenced. For example | |
99 | a must which has not yet been satisfied will return <code class="code">[<span class="string">"required"</span>]</code> | |
100 | when <code class="code">get_value</code> is called on it.<br> | |
101 | </div> | |
102 | <pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><div class="info"> | |
103 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODmodify"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.modify</code></a> except that the | |
104 | schema checker is run in <code class="code"><span class="constructor">Pessimistic</span></code> mode after the | |
105 | modification is applied. see <a href="Ldap_ooclient.html#TYPEscflavor"><code class="code"><span class="constructor">Ldap_ooclient</span>.scflavor</code></a>.<br> | |
106 | </div> | |
107 | <pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><div class="info"> | |
108 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODchanges"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.changes</code></a> except that changes | |
109 | made by the schema checker may also be listed.<br> | |
110 | </div> | |
111 | <pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><div class="info"> | |
112 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODchangetype"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.changetype</code></a><br> | |
113 | </div> | |
114 | <pre><span class="keyword">method</span> <a name="METHODdn"></a>dn : <code class="type">string</code></pre><div class="info"> | |
115 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODdn"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.dn</code></a><br> | |
116 | </div> | |
117 | <pre><span class="keyword">method</span> <a name="METHODflush_changes"></a>flush_changes : <code class="type">unit</code></pre><div class="info"> | |
118 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODflush_changes"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.flush_changes</code></a><br> | |
119 | </div> | |
120 | <pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><div class="info"> | |
121 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODdiff"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.diff</code></a><br> | |
122 | </div> | |
123 | <pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><div class="info"> | |
124 | <span class="warning">Deprecated.</span>Same as <a href="Ldap_ooclient.ldapentry.html#METHODprint"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.print</code></a>, except | |
125 | that it prints attributes which may not yet be present on the | |
126 | object. For example, if the object has unsatisfied musts, it will | |
127 | print "attrname: required" for that attribute.<br> | |
128 | </div> | |
129 | <pre><span class="keyword">method</span> <a name="METHODset_changetype"></a>set_changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> -> unit</code></pre><div class="info"> | |
130 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODset_changetype"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.set_changetype</code></a><br> | |
131 | </div> | |
132 | <pre><span class="keyword">method</span> <a name="METHODset_dn"></a>set_dn : <code class="type">string -> unit</code></pre><div class="info"> | |
133 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODset_dn"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.set_dn</code></a><br> | |
134 | </div> | |
135 | </body></html>⏎ |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_protocol</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_protocol</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Ldap_error.html">Previous</a> |
24 | 24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
25 | 25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
26 | 26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser.Lcstring</title> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser.Lcstring</title> | |
28 | 29 | </head> |
29 | 30 | <body> |
30 | 31 | <div class="navbar"><a href="Ldap_schemaparser.Oid.html">Previous</a> |
24 | 24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
25 | 25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
26 | 26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser.Oid</title> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser.Oid</title> | |
28 | 29 | </head> |
29 | 30 | <body> |
30 | 31 | <div class="navbar"> <a href="Ldap_schemaparser.html">Up</a> |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Ldap_ooclient.html">Previous</a> |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_toplevel</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_toplevel</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Ldif_oo.html">Previous</a> |
40 | 41 | <pre><span class="keyword">val</span> <a name="VALldapsearch"></a>ldapsearch : <code class="type">?s:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?a:string list -><br> ?b:string -><br> ?d:string -> ?w:string -> h:string -> string -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> list</code></pre><div class="info"> |
41 | 42 | connect to the specified host and perform a search.<br> |
42 | 43 | </div> |
43 | <br><div class="info"><code class="code">s</code> : The scope of the search, default `SUBTREE</div> | |
44 | <div class="info"><code class="code">b</code> : The base of the search | |
44 | <div class="param_info"><code class="code">s</code> : The scope of the search, default `SUBTREE</div> | |
45 | <div class="param_info"><code class="code">b</code> : The base of the search | |
45 | 46 | The final argument is the search filter</div> |
46 | <div class="info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div> | |
47 | <div class="info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous</div> | |
48 | <div class="info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div> | |
47 | <div class="param_info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div> | |
48 | <div class="param_info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous</div> | |
49 | <div class="param_info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div> | |
49 | 50 | <pre><span class="keyword">val</span> <a name="VALldapmodify"></a>ldapmodify : <code class="type">h:string -><br> d:string -><br> w:string -><br> (string * (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list) list -><br> unit</code></pre><div class="info"> |
50 | 51 | connect to the specified host and perform one or more modifications.<br> |
51 | 52 | </div> |
52 | <br><div class="info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div> | |
53 | <div class="info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div> | |
54 | <div class="info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous | |
53 | <div class="param_info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div> | |
54 | <div class="param_info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div> | |
55 | <div class="param_info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous | |
55 | 56 | The final argument is a list of (dn, modification) pairs which you want to apply</div> |
56 | 57 | <pre><span class="keyword">val</span> <a name="VALldapadd"></a>ldapadd : <code class="type">h:string -> d:string -> w:string -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> list -> unit</code></pre><div class="info"> |
57 | 58 | connect to the specified host and add the specified objects.<br> |
58 | 59 | </div> |
59 | <br><div class="info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div> | |
60 | <div class="info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div> | |
61 | <div class="info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous | |
60 | <div class="param_info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div> | |
61 | <div class="param_info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div> | |
62 | <div class="param_info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous | |
62 | 63 | The final argument is a list of objects you wish to add</div> |
63 | 64 | </body></html>⏎ |
0 | <html> | |
1 | <head> | |
2 | <link rel="stylesheet" href="style.css" type="text/css"> | |
3 | <link rel="Start" href="index.html"> | |
4 | <link rel="previous" href="Ldif_changerec_oo.html"> | |
5 | <link rel="Up" href="index.html"> | |
6 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
7 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
8 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
9 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
10 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
11 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
12 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
13 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
14 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
15 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
16 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
17 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
18 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
19 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
20 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
21 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
22 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
23 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
24 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
25 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
26 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
28 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_txooclient</title> | |
29 | </head> | |
30 | <body> | |
31 | <div class="navbar"><a href="Ldif_changerec_oo.html">Previous</a> | |
32 | <a href="index.html">Up</a> | |
33 | </div> | |
34 | <center><h1>Module <a href="type_Ldap_txooclient.html">Ldap_txooclient</a></h1></center> | |
35 | <br> | |
36 | <pre><span class="keyword">module</span> Ldap_txooclient: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_txooclient.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>the abstract type of a transaction<br> | |
37 | <hr width="100%"> | |
38 | <pre><span class="keyword">type</span> <a name="TYPEtxn"></a><code class="type"></code>txn </pre> | |
39 | <div class="info"> | |
40 | the abstract type of a transaction<br> | |
41 | </div> | |
42 | ||
43 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONTxn_commit_failure"></a>Txn_commit_failure <span class="keyword">of</span> <code class="type">string * exn * <a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a> list option</code></pre> | |
44 | <div class="info"> | |
45 | raised when a commit fails, contains a list of entries which were | |
46 | not rolled back successfully only if rollback failed as well, | |
47 | otherwise None<br> | |
48 | </div> | |
49 | <pre><span class="keyword">exception</span> <a name="EXCEPTIONTxn_rollback_failure"></a>Txn_rollback_failure <span class="keyword">of</span> <code class="type">string * exn</code></pre> | |
50 | <div class="info"> | |
51 | raised when an explicit rollback fails<br> | |
52 | </div> | |
53 | <pre><span class="keyword">class</span> <a name="TYPEldapadvisorytxcon"></a><a href="Ldap_txooclient.ldapadvisorytxcon.html">ldapadvisorytxcon</a> : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_txooclient.ldapadvisorytxcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info"> | |
54 | A subclass of ldapcon which implements an experimental interface | |
55 | to draft_zeilenga_ldap_txn. | |
56 | </div> | |
57 | </body></html>⏎ |
0 | <html> | |
1 | <head> | |
2 | <link rel="stylesheet" href="style.css" type="text/css"> | |
3 | <link rel="Start" href="index.html"> | |
4 | <link rel="Up" href="Ldap_txooclient.html"> | |
5 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
6 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
7 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
8 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
9 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
10 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
11 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
12 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
13 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
14 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
15 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
16 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
17 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
18 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
19 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
20 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
21 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
22 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
23 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
24 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
25 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
26 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
27 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_txooclient.ldapadvisorytxcon</title> | |
28 | </head> | |
29 | <body> | |
30 | <div class="navbar"> <a href="Ldap_txooclient.html">Up</a> | |
31 | </div> | |
32 | <center><h1>Class <a href="type_Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a></h1></center> | |
33 | <br> | |
34 | <pre><span class="keyword">class</span> <a name="TYPEldapadvisorytxcon"></a>ldapadvisorytxcon : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_txooclient.ldapadvisorytxcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>A subclass of ldapcon which implements an experimental interface | |
35 | to draft_zeilenga_ldap_txn. A draft standard for multi object | |
36 | transactions over the ldap protocol. This class can only implement | |
37 | advisory transactions because it must depend on the advisory | |
38 | locking mechanisms for the transactions to be consistant. You use | |
39 | this class by calling begin_txn to get a transaction id, and then | |
40 | associating a set of ldapentry objects with the transaction by | |
41 | calling associate_entry_with_txn. You are then free to modify | |
42 | those entries in any way you like, and when you are done, you can | |
43 | either call commit_txn, or rollback_txn. Commit will commit the | |
44 | changes of all the entries associated with the transaction to the | |
45 | database. For other writers which obey advisory locking the commit | |
46 | operation is atomic. For readers which are willing to obey | |
47 | advisory locking is atomic. If the commit fails, a full rollback | |
48 | occurrs, including all changes made to the directory. For example | |
49 | in a set of N entries in a transaction, if the modificiation of | |
50 | the nth entry fails to commit, then the modifications to all the | |
51 | previous entries, which have already been made in the directory, | |
52 | are undone. It is important to note that if advisory locking is | |
53 | not obeyed, rollback may not be successful. Rollback undoes all | |
54 | the changes you've made in memory, and unlocks all the objects in | |
55 | the transaction. After a transaction object has been commited or | |
56 | rolled back it is considered "dead", and cannot be used again.<br> | |
57 | <hr width="100%"> | |
58 | <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODbind"></a>bind : <code class="type">?cred:string -> ?meth:<a href="Ldap_funclient.html#TYPEauthmethod">Ldap_funclient.authmethod</a> -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">string -> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodrdn"></a>modrdn : <code class="type">string -> ?deleteoldrdn:bool -> ?newsup:string option -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODrawschema"></a>rawschema : <code class="type"><a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODschema"></a>schema : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a></code></pre><pre><span class="keyword">method</span> <a name="METHODsearch"></a>search : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -> ?base:string -> string -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODsearch_a"></a>search_a : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -><br> ?base:string -> string -> ?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODunbind"></a>unbind : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODupdate_entry"></a>update_entry : <code class="type"><a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODbegin_txn"></a>begin_txn : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a></code></pre><pre><span class="keyword">method</span> <a name="METHODassociate_entry"></a>associate_entry : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODassociate_entries"></a>associate_entries : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a> list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdisassociate_entry"></a>disassociate_entry : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdisassociate_entries"></a>disassociate_entries : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a> list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODcommit_txn"></a>commit_txn : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODrollback_txn"></a>rollback_txn : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> unit</code></pre></body></html>⏎ |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_types</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_types</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Lber.html">Previous</a> |
788 | 789 | } |
789 | 790 | |
790 | 791 | |
792 | <pre><span class="keyword">type</span> <a name="TYPEldap_grouping_type"></a><code class="type"></code>ldap_grouping_type = <code class="type">[ `LDAP_GROUP_TXN ]</code> </pre> | |
793 | <div class="info"> | |
794 | see draft-zeilenga-ldap-grouping-xx Ldap grouping is a way of | |
795 | telling the server that a set of ldap operations is related, its most | |
796 | interesting application is transactions across multiple objects. | |
797 | This draft is not yet implemented by any present day ldap server<br> | |
798 | </div> | |
799 | ||
800 | <pre><span class="keyword">type</span> <a name="TYPEldap_grouping_cookie"></a><code class="type"></code>ldap_grouping_cookie </pre> | |
801 | <div class="info"> | |
802 | a cookie that is sent with every ldap operation which is part of a | |
803 | group<br> | |
804 | </div> | |
805 | ||
791 | 806 | </body></html>⏎ |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_url</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_url</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Ldap_protocol.html">Previous</a> |
23 | 23 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
24 | 24 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
25 | 25 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
26 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_changerec_oo.change</title> | |
26 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
27 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_changerec_oo.change</title> | |
27 | 28 | </head> |
28 | 29 | <body> |
29 | 30 | <div class="navbar"> <a href="Ldif_changerec_oo.html">Up</a> |
2 | 2 | <link rel="stylesheet" href="style.css" type="text/css"> |
3 | 3 | <link rel="Start" href="index.html"> |
4 | 4 | <link rel="previous" href="Ldap_mutex.html"> |
5 | <link rel="next" href="Ldap_txooclient.html"> | |
5 | 6 | <link rel="Up" href="index.html"> |
6 | 7 | <link title="Index of types" rel=Appendix href="index_types.html"> |
7 | 8 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> |
24 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
25 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
26 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
27 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_changerec_oo</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_changerec_oo</title> | |
28 | 30 | </head> |
29 | 31 | <body> |
30 | 32 | <div class="navbar"><a href="Ldap_mutex.html">Previous</a> |
31 | 33 | <a href="index.html">Up</a> |
32 | </div> | |
34 | <a href="Ldap_txooclient.html">Next</a> | |
35 | </div> | |
33 | 36 | <center><h1>Module <a href="type_Ldif_changerec_oo.html">Ldif_changerec_oo</a></h1></center> |
34 | 37 | <br> |
35 | 38 | <pre><span class="keyword">module</span> Ldif_changerec_oo: <code class="code"><span class="keyword">sig</span></code> <a href="Ldif_changerec_oo.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>an object oriented interface to the ldif parser<br> |
25 | 25 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
26 | 26 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
27 | 27 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_oo</title> | |
28 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
29 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_oo</title> | |
29 | 30 | </head> |
30 | 31 | <body> |
31 | 32 | <div class="navbar"><a href="Ldap_funserver.html">Previous</a> |
50 | 51 | true (defaul false) will write extended ldif. Extended ldif should |
51 | 52 | be parsed using the Ldif_changerec_oo module.<br> |
52 | 53 | </div> |
54 | <pre><span class="keyword">val</span> <a name="VALread_ldif_file"></a>read_ldif_file : <code class="type">string -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> list</code></pre><div class="info"> | |
55 | read all the entries in the named ldif file and return them in a list<br> | |
56 | </div> | |
57 | <pre><span class="keyword">val</span> <a name="VALwrite_ldif_file"></a>write_ldif_file : <code class="type">string -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> list -> unit</code></pre><div class="info"> | |
58 | write all the entries in the given list to the named file in ldif format<br> | |
59 | </div> | |
53 | 60 | <pre><span class="keyword">class</span> <a name="TYPEldif"></a><a href="Ldif_oo.ldif.html">ldif</a> : <code class="type">?in_ch:Pervasives.in_channel -> ?out_ch:Pervasives.out_channel -> unit -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldif_oo.ldif.html">..</a> <code class="code"><span class="keyword">end</span></code></pre></body></html>⏎ |
23 | 23 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
24 | 24 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
25 | 25 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
26 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_oo.ldif</title> | |
26 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
27 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_oo.ldif</title> | |
27 | 28 | </head> |
28 | 29 | <body> |
29 | 30 | <div class="navbar"> <a href="Ldif_oo.html">Up</a> |
22 | 22 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
23 | 23 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
24 | 24 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title></title> | |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
26 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title></title> | |
26 | 27 | </head> |
27 | 28 | <body> |
28 | 29 | <center><h1></h1></center> |
90 | 91 | </div> |
91 | 92 | </td></tr> |
92 | 93 | <tr><td><a href="Ldap_mutex.html">Ldap_mutex</a></td><td><div class="info"> |
93 | A library for implementing mutexes on top of LDAP's built in test | |
94 | functions for implementing mutexes on top of LDAP's built in test | |
94 | 95 | and set mechanism. |
95 | 96 | </div> |
96 | 97 | </td></tr> |
98 | 99 | an object oriented interface to the ldif parser |
99 | 100 | </div> |
100 | 101 | </td></tr> |
102 | <tr><td><a href="Ldap_txooclient.html">Ldap_txooclient</a></td><td><div class="info"> | |
103 | the abstract type of a transaction | |
104 | </div> | |
105 | </td></tr> | |
101 | 106 | </table> |
102 | 107 | </body> |
103 | 108 | </html>⏎ |
22 | 22 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
23 | 23 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
24 | 24 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of class attributes</title> | |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
26 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of class attributes</title> | |
26 | 27 | </head> |
27 | 28 | <body> |
28 | 29 | <center><h1>Index of class attributes</h1></center> |
22 | 22 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
23 | 23 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
24 | 24 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of class types</title> | |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
26 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of class types</title> | |
26 | 27 | </head> |
27 | 28 | <body> |
28 | 29 | <center><h1>Index of class types</h1></center> |
29 | 30 | <table> |
30 | 31 | <tr><td align="left"><br>L</td></tr> |
31 | 32 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
32 | <td></td></tr> | |
33 | <td><div class="info"> | |
34 | The base type of an ldap entry represented in memory. | |
35 | </div> | |
36 | </td></tr> | |
33 | 37 | <tr><td align="left"><br>M</td></tr> |
34 | 38 | <tr><td><a href="Ldap_mutex.mutex_t.html">mutex_t</a> [<a href="Ldap_mutex.html">Ldap_mutex</a>]</td> |
35 | <td></td></tr> | |
39 | <td><div class="info"> | |
40 | the class type of a single mutex, used for performing | |
41 | advisory locking of some action | |
42 | </div> | |
43 | </td></tr> | |
44 | <tr><td align="left"><br>O</td></tr> | |
45 | <tr><td><a href="Ldap_mutex.object_lock_table_t.html">object_lock_table_t</a> [<a href="Ldap_mutex.html">Ldap_mutex</a>]</td> | |
46 | <td><div class="info"> | |
47 | the class type of an object lock table which allows for advisory | |
48 | locking of objects by dn | |
49 | </div> | |
50 | </td></tr> | |
36 | 51 | </table><br> |
37 | 52 | </body> |
38 | 53 | </html>⏎ |
22 | 22 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
23 | 23 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
24 | 24 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of classes</title> | |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
26 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of classes</title> | |
26 | 27 | </head> |
27 | 28 | <body> |
28 | 29 | <center><h1>Index of classes</h1></center> |
33 | 34 | <tr><td align="left"><br>L</td></tr> |
34 | 35 | <tr><td><a href="Ldap_ooclient.ldapaccount.html">ldapaccount</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
35 | 36 | <td></td></tr> |
37 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html">ldapadvisorytxcon</a> [<a href="Ldap_txooclient.html">Ldap_txooclient</a>]</td> | |
38 | <td><div class="info"> | |
39 | A subclass of ldapcon which implements an experimental interface | |
40 | to draft_zeilenga_ldap_txn. | |
41 | </div> | |
42 | </td></tr> | |
36 | 43 | <tr><td><a href="Ldap_ooclient.ldapcon.html">ldapcon</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
37 | <td></td></tr> | |
44 | <td><div class="info"> | |
45 | This class abstracts a connection to an LDAP server (or servers), | |
46 | an instance will be connected to the server you specify and can be | |
47 | used to perform operations on that server. | |
48 | </div> | |
49 | </td></tr> | |
38 | 50 | <tr><td><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
39 | 51 | <td><div class="info"> |
40 | 52 | this object represents a remote object within local memory. |
48 | 60 | new mutex ldapurls binddn bindpw mutexdn |
49 | 61 | </div> |
50 | 62 | </td></tr> |
63 | <tr><td align="left"><br>O</td></tr> | |
64 | <tr><td><a href="Ldap_mutex.object_lock_table.html">object_lock_table</a> [<a href="Ldap_mutex.html">Ldap_mutex</a>]</td> | |
65 | <td><div class="info"> | |
66 | new object_lock_table ldapurls binddn bindpw mutexdn | |
67 | </div> | |
68 | </td></tr> | |
51 | 69 | <tr><td align="left"><br>S</td></tr> |
52 | 70 | <tr><td><a href="Ldap_ooclient.scldapentry.html">scldapentry</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
53 | 71 | <td></td></tr> |
22 | 22 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
23 | 23 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
24 | 24 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of exceptions</title> | |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
26 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of exceptions</title> | |
26 | 27 | </head> |
27 | 28 | <body> |
28 | 29 | <center><h1>Index of exceptions</h1></center> |
29 | 30 | <table> |
30 | 31 | <tr><td align="left"><br>C</td></tr> |
31 | 32 | <tr><td><a href="Ldap_ooclient.html#EXCEPTIONCannot_sort_dependancies">Cannot_sort_dependancies</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
32 | <td></td></tr> | |
33 | <td><div class="info"> | |
34 | You have detached cycles in your generator dependancy lists | |
35 | </div> | |
36 | </td></tr> | |
33 | 37 | <tr><td align="left"><br>D</td></tr> |
34 | 38 | <tr><td><a href="Lber.html#EXCEPTIONDecoding_error">Decoding_error</a> [<a href="Lber.html">Lber</a>]</td> |
35 | 39 | <td></td></tr> |
43 | 47 | </td></tr> |
44 | 48 | <tr><td align="left"><br>G</td></tr> |
45 | 49 | <tr><td><a href="Ldap_ooclient.html#EXCEPTIONGeneration_failed">Generation_failed</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
46 | <td></td></tr> | |
50 | <td><div class="info"> | |
51 | Generator has failed because of some kind of error | |
52 | </div> | |
53 | </td></tr> | |
47 | 54 | <tr><td><a href="Ldap_ooclient.html#EXCEPTIONGenerator_dep_unsatisfiable">Generator_dep_unsatisfiable</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
48 | <td></td></tr> | |
55 | <td><div class="info"> | |
56 | Your generator depends on an attribute which isn't in the schema | |
57 | </div> | |
58 | </td></tr> | |
49 | 59 | <tr><td align="left"><br>I</td></tr> |
50 | 60 | <tr><td><a href="Ldap_ooclient.html#EXCEPTIONInvalid_attribute">Invalid_attribute</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
51 | 61 | <td></td></tr> |
94 | 104 | </td></tr> |
95 | 105 | <tr><td><a href="Ldap_mutex.html#EXCEPTIONLdap_mutex">Ldap_mutex</a> </td> |
96 | 106 | <td><div class="info"> |
97 | raised when a mutex operation fails. | |
107 | functions for implementing mutexes on top of LDAP's built in test | |
108 | and set mechanism. | |
98 | 109 | </div> |
99 | 110 | </td></tr> |
100 | 111 | <tr><td align="left"><br>N</td></tr> |
101 | 112 | <tr><td><a href="Ldap_ooclient.html#EXCEPTIONNo_generator">No_generator</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
102 | <td></td></tr> | |
113 | <td><div class="info"> | |
114 | You've asked it to generate an attribute (in a service) which | |
115 | doesn't have a generator | |
116 | </div> | |
117 | </td></tr> | |
103 | 118 | <tr><td><a href="Ldap_ooclient.html#EXCEPTIONNo_service">No_service</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
104 | <td></td></tr> | |
119 | <td><div class="info"> | |
120 | The service you're talking about doesn't exist | |
121 | </div> | |
122 | </td></tr> | |
105 | 123 | <tr><td align="left"><br>O</td></tr> |
106 | 124 | <tr><td><a href="Ldap_ooclient.html#EXCEPTIONObjectclass_is_required">Objectclass_is_required</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
107 | 125 | <td></td></tr> |
120 | 138 | </div> |
121 | 139 | </td></tr> |
122 | 140 | <tr><td><a href="Ldap_ooclient.html#EXCEPTIONService_dep_unsatisfiable">Service_dep_unsatisfiable</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
123 | <td></td></tr> | |
141 | <td><div class="info"> | |
142 | A service which the one you tried to add depends on doesn't exists | |
143 | </div> | |
144 | </td></tr> | |
124 | 145 | <tr><td><a href="Ldap_ooclient.html#EXCEPTIONSingle_value">Single_value</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
125 | 146 | <td></td></tr> |
126 | 147 | <tr><td><a href="Ldap_schemaparser.html#EXCEPTIONSyntax_error_at">Syntax_error_at</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td> |
127 | 148 | <td></td></tr> |
128 | 149 | <tr><td><a href="Ldap_schemaparser.html#EXCEPTIONSyntax_error_oc">Syntax_error_oc</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td> |
129 | 150 | <td></td></tr> |
151 | <tr><td align="left"><br>T</td></tr> | |
152 | <tr><td><a href="Ldap_txooclient.html#EXCEPTIONTxn_commit_failure">Txn_commit_failure</a> [<a href="Ldap_txooclient.html">Ldap_txooclient</a>]</td> | |
153 | <td><div class="info"> | |
154 | raised when a commit fails, contains a list of entries which were | |
155 | not rolled back successfully only if rollback failed as well, | |
156 | otherwise None | |
157 | </div> | |
158 | </td></tr> | |
159 | <tr><td><a href="Ldap_txooclient.html#EXCEPTIONTxn_rollback_failure">Txn_rollback_failure</a> [<a href="Ldap_txooclient.html">Ldap_txooclient</a>]</td> | |
160 | <td><div class="info"> | |
161 | raised when an explicit rollback fails | |
162 | </div> | |
163 | </td></tr> | |
130 | 164 | </table><br> |
131 | 165 | </body> |
132 | 166 | </html>⏎ |
22 | 22 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
23 | 23 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
24 | 24 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of class methods</title> | |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
26 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of class methods</title> | |
26 | 27 | </head> |
27 | 28 | <body> |
28 | 29 | <center><h1>Index of class methods</h1></center> |
29 | 30 | <table> |
30 | 31 | <tr><td align="left"><br>A</td></tr> |
31 | 32 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODadapt_service">adapt_service</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
33 | <td><div class="info"> | |
34 | Run service through the delta engine to find out what changes | |
35 | would actually be applied to this object | |
36 | </div> | |
37 | </td></tr> | |
38 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODadd">add</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
32 | 39 | <td></td></tr> |
33 | 40 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODadd">add</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td> |
34 | 41 | <td></td></tr> |
35 | 42 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODadd">add</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
36 | <td></td></tr> | |
43 | <td><div class="info"> | |
44 | Missing attributes may be marked for generation. | |
45 | </div> | |
46 | </td></tr> | |
37 | 47 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODadd">add</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
38 | <td></td></tr> | |
48 | <td><div class="info"> | |
49 | Add values to the entry, just as | |
50 | <a href="Ldap_ooclient.ldapentry.html#METHODadd"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.add</code></a>, However, after the add is | |
51 | complete the schema checker is run in <code class="code"><span class="constructor">Optimistic</span></code> mode. | |
52 | </div> | |
53 | </td></tr> | |
39 | 54 | <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODadd">add</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td> |
40 | <td></td></tr> | |
55 | <td><div class="info"> | |
56 | add an entry to the database | |
57 | </div> | |
58 | </td></tr> | |
41 | 59 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODadd">add</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
42 | 60 | <td><div class="info"> |
43 | 61 | add values to an attribute (or create a new attribute). |
44 | 62 | </div> |
45 | 63 | </td></tr> |
46 | 64 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODadd_generate">add_generate</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
47 | <td></td></tr> | |
65 | <td><div class="info"> | |
66 | add the named attribute to the list of attributes to be generated | |
67 | </div> | |
68 | </td></tr> | |
48 | 69 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODadd_service">add_service</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
70 | <td><div class="info"> | |
71 | add the named service to the object, this also adds all the | |
72 | services depended upon by the named service. | |
73 | </div> | |
74 | </td></tr> | |
75 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODassociate_entries">associate_entries</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
76 | <td></td></tr> | |
77 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODassociate_entry">associate_entry</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
49 | 78 | <td></td></tr> |
50 | 79 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODattributes">attributes</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td> |
51 | 80 | <td></td></tr> |
52 | 81 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODattributes">attributes</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
53 | 82 | <td></td></tr> |
54 | 83 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODattributes">attributes</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
55 | <td></td></tr> | |
84 | <td><div class="info"> | |
85 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODattributes"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.attributes</code></a>, except that the | |
86 | returned list contains attributes which may not yet exist on | |
87 | the entry. | |
88 | </div> | |
89 | </td></tr> | |
56 | 90 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODattributes">attributes</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
57 | 91 | <td><div class="info"> |
58 | 92 | return a list of the type (name) of all the attributes present |
60 | 94 | </div> |
61 | 95 | </td></tr> |
62 | 96 | <tr><td align="left"><br>B</td></tr> |
97 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODbegin_txn">begin_txn</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
98 | <td></td></tr> | |
99 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODbind">bind</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
100 | <td></td></tr> | |
63 | 101 | <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODbind">bind</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td> |
64 | <td></td></tr> | |
102 | <td><div class="info"> | |
103 | bind to the database using dn. | |
104 | </div> | |
105 | </td></tr> | |
65 | 106 | <tr><td align="left"><br>C</td></tr> |
66 | 107 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODchanges">changes</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td> |
67 | 108 | <td></td></tr> |
68 | 109 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODchanges">changes</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
69 | 110 | <td></td></tr> |
70 | 111 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODchanges">changes</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
71 | <td></td></tr> | |
112 | <td><div class="info"> | |
113 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODchanges"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.changes</code></a> except that changes | |
114 | made by the schema checker may also be listed. | |
115 | </div> | |
116 | </td></tr> | |
72 | 117 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODchanges">changes</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
73 | 118 | <td><div class="info"> |
74 | return a list of changes made to the object in a format suitable for | |
75 | sending directly to modify_s | |
119 | return a list of changes made to the object in a the format of | |
120 | a modify operation. | |
76 | 121 | </div> |
77 | 122 | </td></tr> |
78 | 123 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODchangetype">changetype</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td> |
80 | 125 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODchangetype">changetype</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
81 | 126 | <td></td></tr> |
82 | 127 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODchangetype">changetype</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
83 | <td></td></tr> | |
128 | <td><div class="info"> | |
129 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODchangetype"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.changetype</code></a> | |
130 | </div> | |
131 | </td></tr> | |
84 | 132 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODchangetype">changetype</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
85 | 133 | <td><div class="info"> |
86 | 134 | return the changetype of the object |
87 | 135 | </div> |
88 | 136 | </td></tr> |
137 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODcommit_txn">commit_txn</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
138 | <td></td></tr> | |
89 | 139 | <tr><td align="left"><br>D</td></tr> |
140 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODdelete">delete</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
141 | <td></td></tr> | |
90 | 142 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODdelete">delete</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td> |
91 | 143 | <td></td></tr> |
92 | 144 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODdelete">delete</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
93 | 145 | <td></td></tr> |
94 | 146 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODdelete">delete</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
95 | <td></td></tr> | |
147 | <td><div class="info"> | |
148 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODadd"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.add</code></a>, except that the schema | |
149 | checker is run in <code class="code"><span class="constructor">Pessimistic</span></code> mode after the operation is | |
150 | complete. | |
151 | </div> | |
152 | </td></tr> | |
96 | 153 | <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODdelete">delete</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td> |
97 | <td></td></tr> | |
154 | <td><div class="info"> | |
155 | Delete the object named by dn from the database | |
156 | </div> | |
157 | </td></tr> | |
98 | 158 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODdelete">delete</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
99 | 159 | <td><div class="info"> |
100 | 160 | delete attributes from the object, does not change the |
102 | 162 | </div> |
103 | 163 | </td></tr> |
104 | 164 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODdelete_generate">delete_generate</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
105 | <td></td></tr> | |
165 | <td><div class="info"> | |
166 | Delete the named attribute from the list of attributes to generate | |
167 | </div> | |
168 | </td></tr> | |
106 | 169 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODdelete_service">delete_service</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
107 | <td></td></tr> | |
170 | <td><div class="info"> | |
171 | Delete the named service. | |
172 | </div> | |
173 | </td></tr> | |
108 | 174 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODdiff">diff</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td> |
109 | 175 | <td></td></tr> |
110 | 176 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODdiff">diff</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
111 | 177 | <td></td></tr> |
112 | 178 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODdiff">diff</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
113 | <td></td></tr> | |
179 | <td><div class="info"> | |
180 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODdiff"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.diff</code></a> | |
181 | </div> | |
182 | </td></tr> | |
114 | 183 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODdiff">diff</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
115 | 184 | <td><div class="info"> |
116 | 185 | given an ldapentry, return the differences between the current |
117 | entry and the specified entry | |
118 | </div> | |
119 | </td></tr> | |
186 | entry and the specified entry in the form of a modify | |
187 | operation which would make the specified entry the same as the | |
188 | current entry. | |
189 | </div> | |
190 | </td></tr> | |
191 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODdisassociate_entries">disassociate_entries</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
192 | <td></td></tr> | |
193 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODdisassociate_entry">disassociate_entry</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
194 | <td></td></tr> | |
120 | 195 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODdn">dn</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td> |
121 | 196 | <td></td></tr> |
122 | 197 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODdn">dn</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
123 | 198 | <td></td></tr> |
124 | 199 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODdn">dn</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
125 | <td></td></tr> | |
200 | <td><div class="info"> | |
201 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODdn"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.dn</code></a> | |
202 | </div> | |
203 | </td></tr> | |
126 | 204 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODdn">dn</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
127 | 205 | <td><div class="info"> |
128 | 206 | return the dn of the object |
134 | 212 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODexists">exists</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
135 | 213 | <td></td></tr> |
136 | 214 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODexists">exists</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
137 | <td></td></tr> | |
215 | <td><div class="info"> | |
216 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODexists"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.exists</code></a> except that it | |
217 | refrences attributes which may not yet exist. | |
218 | </div> | |
219 | </td></tr> | |
138 | 220 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODexists">exists</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
139 | 221 | <td><div class="info"> |
140 | 222 | query whether the attribute type (name) exists in the object |
146 | 228 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODflush_changes">flush_changes</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
147 | 229 | <td></td></tr> |
148 | 230 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODflush_changes">flush_changes</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
149 | <td></td></tr> | |
231 | <td><div class="info"> | |
232 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODflush_changes"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.flush_changes</code></a> | |
233 | </div> | |
234 | </td></tr> | |
150 | 235 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODflush_changes">flush_changes</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
151 | 236 | <td><div class="info"> |
152 | 237 | clear all accumulated changes |
154 | 239 | </td></tr> |
155 | 240 | <tr><td align="left"><br>G</td></tr> |
156 | 241 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODgenerate">generate</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
157 | <td></td></tr> | |
242 | <td><div class="info"> | |
243 | Run the generation functions on the list of attributes to be | |
244 | generated, saving the results in the entry. | |
245 | </div> | |
246 | </td></tr> | |
158 | 247 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODget_value">get_value</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td> |
159 | 248 | <td></td></tr> |
160 | 249 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODget_value">get_value</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
161 | <td></td></tr> | |
250 | <td><div class="info"> | |
251 | If a missing attribute is marked for generation its value will | |
252 | be <code class="code"><span class="string">"generate"</span></code> instead of <code class="code"><span class="string">"required"</span></code> | |
253 | </div> | |
254 | </td></tr> | |
162 | 255 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODget_value">get_value</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
163 | <td></td></tr> | |
256 | <td><div class="info"> | |
257 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODget_value"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.get_value</code></a>, except that | |
258 | attributes which do not yet exists may be referenced. | |
259 | </div> | |
260 | </td></tr> | |
164 | 261 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODget_value">get_value</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
165 | 262 | <td><div class="info"> |
166 | 263 | get the value of an attribute |
170 | 267 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODis_allowed">is_allowed</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
171 | 268 | <td></td></tr> |
172 | 269 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODis_allowed">is_allowed</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
173 | <td></td></tr> | |
270 | <td><div class="info"> | |
271 | Returns true if the attributed specified is allowed by the | |
272 | current set of objectclasses present on the entry. | |
273 | </div> | |
274 | </td></tr> | |
174 | 275 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODis_missing">is_missing</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
175 | 276 | <td></td></tr> |
176 | 277 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODis_missing">is_missing</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
177 | <td></td></tr> | |
278 | <td><div class="info"> | |
279 | Returns true if the attribute specified is a must, but is not | |
280 | currently present. | |
281 | </div> | |
282 | </td></tr> | |
178 | 283 | <tr><td align="left"><br>L</td></tr> |
179 | 284 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODlist_allowed">list_allowed</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
180 | 285 | <td></td></tr> |
181 | 286 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODlist_allowed">list_allowed</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
182 | <td></td></tr> | |
287 | <td><div class="info"> | |
288 | Return a list of all attributes allowed on the entry (by oid) | |
289 | </div> | |
290 | </td></tr> | |
183 | 291 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODlist_missing">list_missing</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
184 | 292 | <td></td></tr> |
185 | 293 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODlist_missing">list_missing</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
186 | <td></td></tr> | |
294 | <td><div class="info"> | |
295 | Return a list of all missing attributes (by oid) | |
296 | </div> | |
297 | </td></tr> | |
187 | 298 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODlist_present">list_present</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
188 | 299 | <td></td></tr> |
189 | 300 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODlist_present">list_present</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
301 | <td><div class="info"> | |
302 | Return a list of all present attributes. | |
303 | </div> | |
304 | </td></tr> | |
305 | <tr><td><a href="Ldap_mutex.object_lock_table_t.html#METHODlock">lock</a> [<a href="Ldap_mutex.object_lock_table_t.html">Ldap_mutex.object_lock_table_t</a>]</td> | |
190 | 306 | <td></td></tr> |
191 | 307 | <tr><td><a href="Ldap_mutex.mutex_t.html#METHODlock">lock</a> [<a href="Ldap_mutex.mutex_t.html">Ldap_mutex.mutex_t</a>]</td> |
192 | 308 | <td></td></tr> |
309 | <tr><td><a href="Ldap_mutex.object_lock_table.html#METHODlock">lock</a> [<a href="Ldap_mutex.object_lock_table.html">Ldap_mutex.object_lock_table</a>]</td> | |
310 | <td><div class="info"> | |
311 | lock the specified dn, if it is already locked, then block until the lock can be aquired | |
312 | </div> | |
313 | </td></tr> | |
193 | 314 | <tr><td><a href="Ldap_mutex.mutex.html#METHODlock">lock</a> [<a href="Ldap_mutex.mutex.html">Ldap_mutex.mutex</a>]</td> |
194 | 315 | <td><div class="info"> |
195 | 316 | lock the mutex. |
196 | 317 | </div> |
197 | 318 | </td></tr> |
198 | 319 | <tr><td align="left"><br>M</td></tr> |
320 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODmodify">modify</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
321 | <td></td></tr> | |
199 | 322 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODmodify">modify</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td> |
200 | 323 | <td></td></tr> |
201 | 324 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODmodify">modify</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
202 | 325 | <td></td></tr> |
203 | 326 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODmodify">modify</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
204 | <td></td></tr> | |
327 | <td><div class="info"> | |
328 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODmodify"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.modify</code></a> except that the | |
329 | schema checker is run in <code class="code"><span class="constructor">Pessimistic</span></code> mode after the | |
330 | modification is applied. | |
331 | </div> | |
332 | </td></tr> | |
205 | 333 | <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODmodify">modify</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td> |
206 | <td></td></tr> | |
334 | <td><div class="info"> | |
335 | Modify the entry named by dn, applying mods | |
336 | </div> | |
337 | </td></tr> | |
207 | 338 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODmodify">modify</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
208 | 339 | <td><div class="info"> |
209 | modify the object (same as modify_s), does not change the | |
210 | database until you update | |
211 | </div> | |
212 | </td></tr> | |
340 | Apply modifications to object in memory, does not change the | |
341 | database until you update using | |
342 | <a href="Ldap_ooclient.ldapcon.html#METHODupdate_entry"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapcon.update_entry</code></a> | |
343 | </div> | |
344 | </td></tr> | |
345 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODmodrdn">modrdn</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
346 | <td></td></tr> | |
213 | 347 | <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODmodrdn">modrdn</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td> |
214 | <td></td></tr> | |
348 | <td><div class="info"> | |
349 | Modify the rdn of the object named by dn, if the protocol | |
350 | version is 3 you may additionally change the superior, the rdn | |
351 | will be changed to the attribute represented (as a string) by | |
352 | newrdn, | |
353 | </div> | |
354 | </td></tr> | |
215 | 355 | <tr><td align="left"><br>O</td></tr> |
216 | 356 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODof_entry">of_entry</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
217 | 357 | <td></td></tr> |
218 | 358 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODof_entry">of_entry</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
219 | <td></td></tr> | |
359 | <td><div class="info"> | |
360 | Given an <a href="Ldap_ooclient.ldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry</code></a> copy all of it's data into | |
361 | the current object, and perform a schema check. | |
362 | </div> | |
363 | </td></tr> | |
220 | 364 | <tr><td><a href="Ldif_changerec_oo.change.html#METHODof_string">of_string</a> [<a href="Ldif_changerec_oo.change.html">Ldif_changerec_oo.change</a>]</td> |
221 | 365 | <td></td></tr> |
222 | 366 | <tr><td><a href="Ldif_oo.ldif.html#METHODof_string">of_string</a> [<a href="Ldif_oo.ldif.html">Ldif_oo.ldif</a>]</td> |
225 | 369 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODprint">print</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td> |
226 | 370 | <td></td></tr> |
227 | 371 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODprint">print</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
228 | <td></td></tr> | |
372 | <td><div class="info"> | |
373 | <font color="#CCCCCC"></font></div> | |
374 | </td></tr> | |
229 | 375 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODprint">print</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
230 | <td></td></tr> | |
376 | <td><div class="info"> | |
377 | <font color="#CCCCCC"></font></div> | |
378 | </td></tr> | |
231 | 379 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODprint">print</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
232 | 380 | <td><div class="info"> |
233 | print an ldif like representation of the object to stdout, see | |
234 | Ldif_oo for standards compliant ldif. | |
235 | </div> | |
381 | <font color="#CCCCCC"></font></div> | |
236 | 382 | </td></tr> |
237 | 383 | <tr><td align="left"><br>R</td></tr> |
384 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODrawschema">rawschema</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
385 | <td></td></tr> | |
238 | 386 | <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODrawschema">rawschema</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td> |
239 | <td></td></tr> | |
387 | <td><div class="info"> | |
388 | Fetch the raw (unparsed) schema from the directory using the | |
389 | standard mechanism (requires protocol version 3) | |
390 | </div> | |
391 | </td></tr> | |
240 | 392 | <tr><td><a href="Ldif_changerec_oo.change.html#METHODread_changerec">read_changerec</a> [<a href="Ldif_changerec_oo.change.html">Ldif_changerec_oo.change</a>]</td> |
241 | 393 | <td></td></tr> |
242 | 394 | <tr><td><a href="Ldif_oo.ldif.html#METHODread_entry">read_entry</a> [<a href="Ldif_oo.ldif.html">Ldif_oo.ldif</a>]</td> |
246 | 398 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODreplace">replace</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
247 | 399 | <td></td></tr> |
248 | 400 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODreplace">replace</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
249 | <td></td></tr> | |
401 | <td><div class="info"> | |
402 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODreplace"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.replace</code></a> except that once | |
403 | the replace has completed the schema checker is run again in | |
404 | <code class="code"><span class="constructor">Optimistic</span></code> mode. | |
405 | </div> | |
406 | </td></tr> | |
250 | 407 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODreplace">replace</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
251 | 408 | <td><div class="info"> |
252 | 409 | replace values in the object, does not change the database |
253 | 410 | until you call update |
254 | 411 | </div> |
255 | 412 | </td></tr> |
413 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODrollback_txn">rollback_txn</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
414 | <td></td></tr> | |
256 | 415 | <tr><td align="left"><br>S</td></tr> |
416 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODschema">schema</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
417 | <td></td></tr> | |
257 | 418 | <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODschema">schema</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td> |
419 | <td><div class="info"> | |
420 | Fetch and parse the schema from the directory via the standard | |
421 | mechanism (requires version 3). | |
422 | </div> | |
423 | </td></tr> | |
424 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODsearch">search</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
258 | 425 | <td></td></tr> |
259 | 426 | <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODsearch">search</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td> |
427 | <td><div class="info"> | |
428 | Search the directory syncronously for an entry which matches the | |
429 | search criteria. | |
430 | </div> | |
431 | </td></tr> | |
432 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODsearch_a">search_a</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
260 | 433 | <td></td></tr> |
261 | 434 | <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODsearch_a">search_a</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td> |
262 | <td></td></tr> | |
435 | <td><div class="info"> | |
436 | Search the directory asyncronously, otherwise the same as | |
437 | search. | |
438 | </div> | |
439 | </td></tr> | |
263 | 440 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODservice_exists">service_exists</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
264 | <td></td></tr> | |
441 | <td><div class="info"> | |
442 | Tests whether the named service is satisfied by the current | |
443 | entry. | |
444 | </div> | |
445 | </td></tr> | |
265 | 446 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODservices_present">services_present</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
266 | <td></td></tr> | |
447 | <td><div class="info"> | |
448 | Return a list of all the named services which are satisfied by | |
449 | the current entry. | |
450 | </div> | |
451 | </td></tr> | |
267 | 452 | <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODset_changetype">set_changetype</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td> |
268 | 453 | <td></td></tr> |
269 | 454 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODset_changetype">set_changetype</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
270 | 455 | <td></td></tr> |
271 | 456 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODset_changetype">set_changetype</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
272 | <td></td></tr> | |
457 | <td><div class="info"> | |
458 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODset_changetype"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.set_changetype</code></a> | |
459 | </div> | |
460 | </td></tr> | |
273 | 461 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODset_changetype">set_changetype</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
274 | 462 | <td><div class="info"> |
275 | 463 | set the changetype of the object |
280 | 468 | <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODset_dn">set_dn</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td> |
281 | 469 | <td></td></tr> |
282 | 470 | <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODset_dn">set_dn</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td> |
283 | <td></td></tr> | |
471 | <td><div class="info"> | |
472 | Same as <a href="Ldap_ooclient.ldapentry.html#METHODset_dn"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.set_dn</code></a> | |
473 | </div> | |
474 | </td></tr> | |
284 | 475 | <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODset_dn">set_dn</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td> |
285 | 476 | <td><div class="info"> |
286 | 477 | set the dn of the object |
292 | 483 | <tr><td><a href="Ldif_oo.ldif.html#METHODto_string">to_string</a> [<a href="Ldif_oo.ldif.html">Ldif_oo.ldif</a>]</td> |
293 | 484 | <td></td></tr> |
294 | 485 | <tr><td align="left"><br>U</td></tr> |
486 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODunbind">unbind</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
487 | <td></td></tr> | |
295 | 488 | <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODunbind">unbind</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td> |
489 | <td><div class="info"> | |
490 | Deauthenticate and close the connection to the server | |
491 | </div> | |
492 | </td></tr> | |
493 | <tr><td><a href="Ldap_mutex.object_lock_table_t.html#METHODunlock">unlock</a> [<a href="Ldap_mutex.object_lock_table_t.html">Ldap_mutex.object_lock_table_t</a>]</td> | |
296 | 494 | <td></td></tr> |
297 | 495 | <tr><td><a href="Ldap_mutex.mutex_t.html#METHODunlock">unlock</a> [<a href="Ldap_mutex.mutex_t.html">Ldap_mutex.mutex_t</a>]</td> |
298 | 496 | <td></td></tr> |
497 | <tr><td><a href="Ldap_mutex.object_lock_table.html#METHODunlock">unlock</a> [<a href="Ldap_mutex.object_lock_table.html">Ldap_mutex.object_lock_table</a>]</td> | |
498 | <td></td></tr> | |
299 | 499 | <tr><td><a href="Ldap_mutex.mutex.html#METHODunlock">unlock</a> [<a href="Ldap_mutex.mutex.html">Ldap_mutex.mutex</a>]</td> |
300 | 500 | <td></td></tr> |
501 | <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODupdate_entry">update_entry</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td> | |
502 | <td></td></tr> | |
301 | 503 | <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODupdate_entry">update_entry</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td> |
302 | <td></td></tr> | |
504 | <td><div class="info"> | |
505 | Syncronize changes made locally to an ldapentry with the | |
506 | directory. | |
507 | </div> | |
508 | </td></tr> | |
303 | 509 | <tr><td align="left"><br>W</td></tr> |
304 | 510 | <tr><td><a href="Ldif_changerec_oo.change.html#METHODwrite_changerec">write_changerec</a> [<a href="Ldif_changerec_oo.change.html">Ldif_changerec_oo.change</a>]</td> |
305 | 511 | <td></td></tr> |
22 | 22 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
23 | 23 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
24 | 24 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of module types</title> | |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
26 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of module types</title> | |
26 | 27 | </head> |
27 | 28 | <body> |
28 | 29 | <center><h1>Index of module types</h1></center> |
22 | 22 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
23 | 23 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
24 | 24 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of modules</title> | |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
26 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of modules</title> | |
26 | 27 | </head> |
27 | 28 | <body> |
28 | 29 | <center><h1>Index of modules</h1></center> |
62 | 63 | </td></tr> |
63 | 64 | <tr><td><a href="Ldap_mutex.html">Ldap_mutex</a> </td> |
64 | 65 | <td><div class="info"> |
65 | A library for implementing mutexes on top of LDAP's built in test | |
66 | functions for implementing mutexes on top of LDAP's built in test | |
66 | 67 | and set mechanism. |
67 | 68 | </div> |
68 | 69 | </td></tr> |
86 | 87 | <td><div class="info"> |
87 | 88 | Functions which resemble the command line tools which many users |
88 | 89 | are familar with, useful in the interactive environment |
90 | </div> | |
91 | </td></tr> | |
92 | <tr><td><a href="Ldap_txooclient.html">Ldap_txooclient</a> </td> | |
93 | <td><div class="info"> | |
94 | the abstract type of a transaction | |
89 | 95 | </div> |
90 | 96 | </td></tr> |
91 | 97 | <tr><td><a href="Ldap_types.html">Ldap_types</a> </td> |
112 | 118 | <tr><td><a href="Ldap_schemaparser.Oid.html">Oid</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td> |
113 | 119 | <td></td></tr> |
114 | 120 | <tr><td><a href="Ldap_ooclient.OrdOid.html">OrdOid</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
115 | <td></td></tr> | |
121 | <td><div class="info"> | |
122 | an ordered oid type, for placing oids in sets | |
123 | </div> | |
124 | </td></tr> | |
116 | 125 | <tr><td align="left"><br>S</td></tr> |
117 | 126 | <tr><td><a href="Ldap_ooclient.Setstr.html">Setstr</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
118 | <td></td></tr> | |
127 | <td><div class="info"> | |
128 | <font color="#CCCCCC">A set of Oids | |
129 | </font></div> | |
130 | </td></tr> | |
119 | 131 | </table><br> |
120 | 132 | </body> |
121 | 133 | </html>⏎ |
22 | 22 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
23 | 23 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
24 | 24 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of types</title> | |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
26 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of types</title> | |
26 | 27 | </head> |
27 | 28 | <body> |
28 | 29 | <center><h1>Index of types</h1></center> |
55 | 56 | <td></td></tr> |
56 | 57 | <tr><td><a href="Lber.html#TYPEber_val_header">ber_val_header</a> [<a href="Lber.html">Lber</a>]</td> |
57 | 58 | <td></td></tr> |
58 | <tr><td><a href="Lber.html#TYPEberval">berval</a> [<a href="Lber.html">Lber</a>]</td> | |
59 | <td></td></tr> | |
60 | 59 | <tr><td><a href="Ldap_types.html#TYPEbind_request">bind_request</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> |
61 | 60 | <td></td></tr> |
62 | 61 | <tr><td><a href="Ldap_types.html#TYPEbind_response">bind_response</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> |
63 | 62 | <td></td></tr> |
64 | 63 | <tr><td align="left"><br>C</td></tr> |
65 | 64 | <tr><td><a href="Ldap_ooclient.html#TYPEchangerec">changerec</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
66 | <td></td></tr> | |
65 | <td><div class="info"> | |
66 | The type of an ldap change record, used by extended LDIF | |
67 | </div> | |
68 | </td></tr> | |
67 | 69 | <tr><td><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
68 | <td></td></tr> | |
70 | <td><div class="info"> | |
71 | The change type of an ldapentry. | |
72 | </div> | |
73 | </td></tr> | |
69 | 74 | <tr><td><a href="Ldap_types.html#TYPEcompare_request">compare_request</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> |
70 | 75 | <td></td></tr> |
71 | 76 | <tr><td><a href="Ldap_types.html#TYPEcon_mech">con_mech</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> |
91 | 96 | <td></td></tr> |
92 | 97 | <tr><td align="left"><br>G</td></tr> |
93 | 98 | <tr><td><a href="Ldap_ooclient.html#TYPEgeneration_error">generation_error</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
94 | <td></td></tr> | |
99 | <td><div class="info"> | |
100 | The type of error raised by attribute generators | |
101 | </div> | |
102 | </td></tr> | |
95 | 103 | <tr><td><a href="Ldap_ooclient.html#TYPEgenerator">generator</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
96 | <td></td></tr> | |
104 | <td><div class="info"> | |
105 | The structure of a generator | |
106 | </div> | |
107 | </td></tr> | |
97 | 108 | <tr><td align="left"><br>L</td></tr> |
98 | 109 | <tr><td><a href="Ldap_types.html#TYPEldap_control">ldap_control</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> |
99 | 110 | <td></td></tr> |
105 | 116 | exception. |
106 | 117 | </div> |
107 | 118 | </td></tr> |
119 | <tr><td><a href="Ldap_types.html#TYPEldap_grouping_cookie">ldap_grouping_cookie</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> | |
120 | <td><div class="info"> | |
121 | a cookie that is sent with every ldap operation which is part of a | |
122 | group | |
123 | </div> | |
124 | </td></tr> | |
125 | <tr><td><a href="Ldap_types.html#TYPEldap_grouping_type">ldap_grouping_type</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> | |
126 | <td><div class="info"> | |
127 | see draft-zeilenga-ldap-grouping-xx Ldap grouping is a way of | |
128 | telling the server that a set of ldap operations is related, its most | |
129 | interesting application is transactions across multiple objects. | |
130 | </div> | |
131 | </td></tr> | |
108 | 132 | <tr><td><a href="Ldap_types.html#TYPEldap_message">ldap_message</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> |
109 | 133 | <td></td></tr> |
110 | 134 | <tr><td><a href="Ldap_types.html#TYPEldap_result">ldap_result</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> |
139 | 163 | <tr><td><a href="Ldap_schemaparser.html#TYPEoctype">octype</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td> |
140 | 164 | <td></td></tr> |
141 | 165 | <tr><td><a href="Ldap_ooclient.html#TYPEop">op</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
142 | <td></td></tr> | |
166 | <td><div class="info"> | |
167 | the type of an operation, eg. | |
168 | </div> | |
169 | </td></tr> | |
143 | 170 | <tr><td><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
144 | 171 | <td></td></tr> |
145 | 172 | <tr><td align="left"><br>P</td></tr> |
151 | 178 | <tr><td><a href="Lber.html#TYPEreadbyte_error">readbyte_error</a> [<a href="Lber.html">Lber</a>]</td> |
152 | 179 | <td></td></tr> |
153 | 180 | <tr><td><a href="Ldap_ooclient.html#TYPEreferral_policy">referral_policy</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
154 | <td></td></tr> | |
181 | <td><div class="info"> | |
182 | The policy the client should take when it encounteres a | |
183 | referral. | |
184 | </div> | |
185 | </td></tr> | |
155 | 186 | <tr><td><a href="Ldap_funclient.html#TYPEresult">result</a> [<a href="Ldap_funclient.html">Ldap_funclient</a>]</td> |
156 | 187 | <td></td></tr> |
157 | 188 | <tr><td align="left"><br>S</td></tr> |
158 | 189 | <tr><td><a href="Ldap_types.html#TYPEsaslCredentials">saslCredentials</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> |
159 | 190 | <td></td></tr> |
160 | 191 | <tr><td><a href="Ldap_ooclient.html#TYPEscflavor">scflavor</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
161 | <td></td></tr> | |
192 | <td><div class="info"> | |
193 | The type of schema checking to perform in | |
194 | <a href="Ldap_ooclient.scldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.scldapentry</code></a>. | |
195 | </div> | |
196 | </td></tr> | |
162 | 197 | <tr><td><a href="Ldap_schemaparser.html#TYPEschema">schema</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td> |
163 | 198 | <td><div class="info"> |
164 | 199 | The type representing the whole schema. |
181 | 216 | <tr><td><a href="Ldap_funserver.html#TYPEserver_info">server_info</a> [<a href="Ldap_funserver.html">Ldap_funserver</a>]</td> |
182 | 217 | <td></td></tr> |
183 | 218 | <tr><td><a href="Ldap_ooclient.html#TYPEservice">service</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
184 | <td></td></tr> | |
219 | <td><div class="info"> | |
220 | The structure of a service | |
221 | </div> | |
222 | </td></tr> | |
185 | 223 | <tr><td><a href="Ldap_types.html#TYPEsubstring_component">substring_component</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> |
186 | 224 | <td></td></tr> |
187 | 225 | <tr><td><a href="Ldap_types.html#TYPEsubstring_filter">substring_filter</a> [<a href="Ldap_types.html">Ldap_types</a>]</td> |
195 | 233 | <td></td></tr> |
196 | 234 | <tr><td><a href="Ldap_ooclient.OrdOid.html#TYPEt">t</a> [<a href="Ldap_ooclient.OrdOid.html">Ldap_ooclient.OrdOid</a>]</td> |
197 | 235 | <td></td></tr> |
236 | <tr><td><a href="Ldap_txooclient.html#TYPEtxn">txn</a> [<a href="Ldap_txooclient.html">Ldap_txooclient</a>]</td> | |
237 | <td><div class="info"> | |
238 | the abstract type of a transaction | |
239 | </div> | |
240 | </td></tr> | |
198 | 241 | <tr><td align="left"><br>W</td></tr> |
199 | 242 | <tr><td><a href="Lber.html#TYPEwritebyte">writebyte</a> [<a href="Lber.html">Lber</a>]</td> |
200 | 243 | <td></td></tr> |
22 | 22 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
23 | 23 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
24 | 24 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of values</title> | |
25 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
26 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of values</title> | |
26 | 27 | </head> |
27 | 28 | <body> |
28 | 29 | <center><h1>Index of values</h1></center> |
40 | 41 | add entry to the directory |
41 | 42 | </div> |
42 | 43 | </td></tr> |
44 | <tr><td><a href="Ldap_mutex.html#VALapply_with_mutex">apply_with_mutex</a> [<a href="Ldap_mutex.html">Ldap_mutex</a>]</td> | |
45 | <td><div class="info"> | |
46 | used to apply some function, first locking the mutex, unlocking it | |
47 | only after the function has been applied. | |
48 | </div> | |
49 | </td></tr> | |
43 | 50 | <tr><td><a href="Ldap_ooclient.html#VALattrToOid">attrToOid</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
44 | 51 | <td><div class="info"> |
45 | given a name of an attribute, return its oid | |
52 | given a name of an attribute name (canonical or otherwise), return | |
53 | its oid | |
46 | 54 | </div> |
47 | 55 | </td></tr> |
48 | 56 | <tr><td align="left"><br>B</td></tr> |
52 | 60 | </div> |
53 | 61 | </td></tr> |
54 | 62 | <tr><td align="left"><br>C</td></tr> |
63 | <tr><td><a href="Ldap_dn.html#VALcanonical_dn">canonical_dn</a> [<a href="Ldap_dn.html">Ldap_dn</a>]</td> | |
64 | <td><div class="info"> | |
65 | returns the canonical dn. | |
66 | </div> | |
67 | </td></tr> | |
55 | 68 | <tr><td><a href="Ldap_ooclient.Setstr.html#VALcardinal">cardinal</a> [<a href="Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a>]</td> |
56 | 69 | <td></td></tr> |
57 | 70 | <tr><td><a href="Ldap_ooclient.Setstr.html#VALchoose">choose</a> [<a href="Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a>]</td> |
214 | 227 | <tr><td><a href="Ldap_ooclient.Setstr.html#VALfor_all">for_all</a> [<a href="Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a>]</td> |
215 | 228 | <td></td></tr> |
216 | 229 | <tr><td><a href="Ldap_ooclient.html#VALformat_entries">format_entries</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
217 | <td></td></tr> | |
230 | <td><div class="info"> | |
231 | format lists of entries, in this case only print the dn | |
232 | </div> | |
233 | </td></tr> | |
218 | 234 | <tr><td><a href="Ldap_ooclient.html#VALformat_entry">format_entry</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
219 | <td></td></tr> | |
235 | <td><div class="info"> | |
236 | toplevel formatter for ldapentry, prints the whole entry with a | |
237 | nice structure. | |
238 | </div> | |
239 | </td></tr> | |
220 | 240 | <tr><td><a href="Ldap_schemaparser.html#VALformat_lcstring">format_lcstring</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td> |
221 | 241 | <td></td></tr> |
222 | 242 | <tr><td><a href="Ldap_schemaparser.html#VALformat_oid">format_oid</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td> |
230 | 250 | <tr><td align="left"><br>G</td></tr> |
231 | 251 | <tr><td><a href="Ldap_ooclient.html#VALgetAttr">getAttr</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
232 | 252 | <td><div class="info"> |
233 | get an attr structure by one of its names | |
253 | get an attr structure by one of its names (canonical or otherwise, | |
254 | however getting it by canonical name is currently much faster) | |
234 | 255 | </div> |
235 | 256 | </td></tr> |
236 | 257 | <tr><td><a href="Ldap_ooclient.html#VALgetOc">getOc</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
237 | 258 | <td><div class="info"> |
238 | get an objectclass structure by one of its names | |
259 | get an objectclass structure by one of its names (canonical or | |
260 | otherwise, however getting it by canonical name is currently much | |
261 | faster) | |
239 | 262 | </div> |
240 | 263 | </td></tr> |
241 | 264 | <tr><td><a href="Ldap_funclient.html#VALget_search_entry">get_search_entry</a> [<a href="Ldap_funclient.html">Ldap_funclient</a>]</td> |
278 | 301 | <tr><td><a href="Ldap_ooclient.html#VALiter">iter</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
279 | 302 | <td><div class="info"> |
280 | 303 | given a source of ldapentry objects (unit -> ldapentry), such as |
281 | the return value of ldapcon#search_a apply f (first arg) to each entry | |
304 | the return value of ldapcon#search_a, apply f (first arg) to each entry | |
282 | 305 | See List.iter |
283 | 306 | </div> |
284 | 307 | </td></tr> |
333 | 356 | <tr><td align="left"><br>O</td></tr> |
334 | 357 | <tr><td><a href="Ldap_ooclient.html#VALocToOid">ocToOid</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
335 | 358 | <td><div class="info"> |
336 | given a name of an objectclass, return its oid | |
359 | given a name of an objectclass (canonical or otherwise), return | |
360 | its oid. | |
337 | 361 | </div> |
338 | 362 | </td></tr> |
339 | 363 | <tr><td><a href="Ldap_ooclient.html#VALof_entry">of_entry</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td> |
390 | 414 | reads the contents octets |
391 | 415 | </div> |
392 | 416 | </td></tr> |
417 | <tr><td><a href="Ldif_oo.html#VALread_ldif_file">read_ldif_file</a> [<a href="Ldif_oo.html">Ldif_oo</a>]</td> | |
418 | <td><div class="info"> | |
419 | read all the entries in the named ldif file and return them in a list | |
420 | </div> | |
421 | </td></tr> | |
393 | 422 | <tr><td><a href="Lber.html#VALreadbyte_of_ber_element">readbyte_of_ber_element</a> [<a href="Lber.html">Lber</a>]</td> |
394 | 423 | <td><div class="info"> |
395 | 424 | return a readbyte implementation which uses another readbyte, but |
408 | 437 | </td></tr> |
409 | 438 | <tr><td><a href="Lber.html#VALreadbyte_of_string">readbyte_of_string</a> [<a href="Lber.html">Lber</a>]</td> |
410 | 439 | <td><div class="info"> |
411 | return a readbyte function for a string | |
440 | return a readbyte function for a string, currently not implemented | |
412 | 441 | </div> |
413 | 442 | </td></tr> |
414 | 443 | <tr><td><a href="Ldap_ooclient.Setstr.html#VALremove">remove</a> [<a href="Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a>]</td> |
487 | 516 | </td></tr> |
488 | 517 | <tr><td><a href="Ldap_ooclient.Setstr.html#VALunion">union</a> [<a href="Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a>]</td> |
489 | 518 | <td></td></tr> |
519 | <tr><td align="left"><br>W</td></tr> | |
520 | <tr><td><a href="Ldif_oo.html#VALwrite_ldif_file">write_ldif_file</a> [<a href="Ldif_oo.html">Ldif_oo</a>]</td> | |
521 | <td><div class="info"> | |
522 | write all the entries in the given list to the named file in ldif format | |
523 | </div> | |
524 | </td></tr> | |
490 | 525 | </table><br> |
491 | 526 | </body> |
492 | 527 | </html>⏎ |
11 | 11 | .string { color : Maroon } |
12 | 12 | .warning { color : Red ; font-weight : bold } |
13 | 13 | .info { margin-left : 3em; margin-right : 3em } |
14 | .param_info { margin-top: 4px; margin-left : 3em; margin-right : 3em } | |
14 | 15 | .code { color : #465F91 ; } |
15 | 16 | h1 { font-size : 20pt ; text-align: center; } |
16 | 17 | h2 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #90BDFF ;padding: 2px; } |
26 | 27 | .paramstable { border-style : hidden ; padding: 5pt 5pt} |
27 | 28 | body { background-color : White } |
28 | 29 | tr { background-color : White } |
29 | td.typefieldcomment { background-color : #FFFFFF } | |
30 | td.typefieldcomment { background-color : #FFFFFF ; font-size: smaller ;} | |
30 | 31 | pre { margin-bottom: 4px } |
31 | 32 | div.sig_block {margin-left: 2em}⏎ |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Lber</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Lber</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
28 | 29 | <span class="keyword">exception</span> <span class="constructor">Decoding_error</span> <span class="keyword">of</span> string<br> |
29 | 30 | <span class="keyword">exception</span> <span class="constructor">Encoding_error</span> <span class="keyword">of</span> string<br> |
30 | <span class="keyword">type</span> readbyte_error = <span class="constructor">End_of_stream</span> <span class="keywordsign">|</span> <span class="constructor">Transport_error</span> <span class="keywordsign">|</span> <span class="constructor">Not_implemented</span><br> | |
31 | <span class="keyword">type</span> readbyte_error =<br> | |
32 | <span class="constructor">End_of_stream</span><br> | |
33 | <span class="keywordsign">|</span> <span class="constructor">Transport_error</span><br> | |
34 | <span class="keywordsign">|</span> <span class="constructor">Peek_error</span><br> | |
35 | <span class="keywordsign">|</span> <span class="constructor">Request_too_large</span><br> | |
36 | <span class="keywordsign">|</span> <span class="constructor">Not_implemented</span><br> | |
31 | 37 | <span class="keyword">exception</span> <span class="constructor">Readbyte_error</span> <span class="keyword">of</span> <span class="constructor">Lber</span>.readbyte_error<br> |
32 | <span class="keyword">type</span> readbyte = ?peek:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> char<br> | |
38 | <span class="keyword">type</span> readbyte = ?peek:bool <span class="keywordsign">-></span> int <span class="keywordsign">-></span> string<br> | |
33 | 39 | <span class="keyword">type</span> writebyte = char <span class="keywordsign">-></span> unit<br> |
34 | 40 | <span class="keyword">type</span> ber_class = <span class="constructor">Universal</span> <span class="keywordsign">|</span> <span class="constructor">Application</span> <span class="keywordsign">|</span> <span class="constructor">Context_specific</span> <span class="keywordsign">|</span> <span class="constructor">Private</span><br> |
35 | 41 | <span class="keyword">type</span> ber_length = <span class="constructor">Definite</span> <span class="keyword">of</span> int <span class="keywordsign">|</span> <span class="constructor">Indefinite</span><br> |
39 | 45 | ber_tag : int;<br> |
40 | 46 | ber_length : <span class="constructor">Lber</span>.ber_length;<br> |
41 | 47 | }<br> |
42 | <span class="keyword">type</span> berval =<br> | |
43 | <span class="constructor">Boolean</span> <span class="keyword">of</span> bool<br> | |
44 | <span class="keywordsign">|</span> <span class="constructor">Int</span> <span class="keyword">of</span> <span class="constructor">Int32</span>.t<br> | |
45 | <span class="keywordsign">|</span> <span class="constructor">Bitstring</span> <span class="keyword">of</span> string<br> | |
46 | <span class="keywordsign">|</span> <span class="constructor">Octetstring</span> <span class="keyword">of</span> string<br> | |
47 | <span class="keywordsign">|</span> <span class="constructor">Null</span><br> | |
48 | <span class="keywordsign">|</span> <span class="constructor">Oid</span> <span class="keyword">of</span> string<br> | |
49 | <span class="keywordsign">|</span> <span class="constructor">Odt</span> <span class="keyword">of</span> string<br> | |
50 | <span class="keywordsign">|</span> <span class="constructor">Real</span> <span class="keyword">of</span> float<br> | |
51 | <span class="keywordsign">|</span> <span class="constructor">Enum</span> <span class="keyword">of</span> int32<br> | |
52 | <span class="keywordsign">|</span> <span class="constructor">Utf8string</span> <span class="keyword">of</span> string<br> | |
53 | <span class="keywordsign">|</span> <span class="constructor">RelativeOid</span> <span class="keyword">of</span> string<br> | |
54 | <span class="keywordsign">|</span> <span class="constructor">Sequence</span> <span class="keyword">of</span> <span class="constructor">Lber</span>.berval list<br> | |
55 | <span class="keywordsign">|</span> <span class="constructor">Set</span> <span class="keyword">of</span> <span class="constructor">Lber</span>.berval list<br> | |
56 | <span class="keywordsign">|</span> <span class="constructor">Charstring</span> <span class="keyword">of</span> string<br> | |
57 | <span class="keywordsign">|</span> <span class="constructor">Time</span> <span class="keyword">of</span> string<br> | |
58 | 48 | <span class="keyword">val</span> readbyte_of_string : string <span class="keywordsign">-></span> <span class="constructor">Lber</span>.readbyte<br> |
59 | 49 | <span class="keyword">val</span> readbyte_of_ber_element :<br> |
60 | 50 | <span class="constructor">Lber</span>.ber_length <span class="keywordsign">-></span> <span class="constructor">Lber</span>.readbyte <span class="keywordsign">-></span> <span class="constructor">Lber</span>.readbyte<br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_dn</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_dn</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
29 | 30 | <span class="keyword">val</span> of_string : string <span class="keywordsign">-></span> <span class="constructor">Ldap_types</span>.dn<br> |
30 | 31 | <span class="keyword">val</span> to_string : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> string<br> |
31 | 32 | <span class="keyword">val</span> escape_value : string <span class="keywordsign">-></span> string<br> |
33 | <span class="keyword">val</span> canonical_dn : string <span class="keywordsign">-></span> string<br> | |
32 | 34 | <span class="keyword">end</span></code></body></html>⏎ |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_error</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_error</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_filter</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_filter</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_funclient</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_funclient</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_funserver</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_funserver</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
28 | 29 | <span class="keyword">exception</span> <span class="constructor">Ldap_mutex</span> <span class="keyword">of</span> string * exn<br> |
29 | 30 | <span class="keyword">class</span> <span class="keyword">type</span> mutex_t = <span class="keyword">object</span> <span class="keyword">method</span> lock : unit <span class="keyword">method</span> unlock : unit <span class="keyword">end</span><br> |
31 | <span class="keyword">class</span> <span class="keyword">type</span> object_lock_table_t =<br> | |
32 | <span class="keyword">object</span><br> | |
33 | <span class="keyword">method</span> lock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
34 | <span class="keyword">method</span> unlock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
35 | <span class="keyword">end</span><br> | |
30 | 36 | <span class="keyword">class</span> mutex :<br> |
31 | 37 | string list <span class="keywordsign">-></span><br> |
32 | 38 | string <span class="keywordsign">-></span><br> |
33 | 39 | string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="keyword">object</span> <span class="keyword">method</span> lock : unit <span class="keyword">method</span> unlock : unit <span class="keyword">end</span><br> |
40 | <span class="keyword">val</span> apply_with_mutex : <span class="constructor">Ldap_mutex</span>.mutex <span class="keywordsign">-></span> (unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> | |
41 | <span class="keyword">class</span> object_lock_table :<br> | |
42 | string list <span class="keywordsign">-></span><br> | |
43 | string <span class="keywordsign">-></span><br> | |
44 | string <span class="keywordsign">-></span><br> | |
45 | string <span class="keywordsign">-></span><br> | |
46 | <span class="keyword">object</span><br> | |
47 | <span class="keyword">method</span> lock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
48 | <span class="keyword">method</span> unlock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
49 | <span class="keyword">end</span><br> | |
34 | 50 | <span class="keyword">end</span></code></body></html>⏎ |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex.mutex</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.mutex</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code">string list <span class="keywordsign">-></span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex.mutex_t</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.mutex_t</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">object</span> <span class="keyword">method</span> lock : unit <span class="keyword">method</span> unlock : unit <span class="keyword">end</span></code></body></html>⏎ |
0 | <html><head> | |
1 | <link rel="stylesheet" href="style.css" type="text/css"> | |
2 | <link rel="Start" href="index.html"> | |
3 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
4 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
5 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
6 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
7 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
8 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
9 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
10 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
11 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
12 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
13 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
14 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
15 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
16 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
17 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
18 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
19 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
20 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.object_lock_table</title> | |
26 | </head> | |
27 | <body> | |
28 | <code class="code">string list <span class="keywordsign">-></span><br> | |
29 | string <span class="keywordsign">-></span><br> | |
30 | string <span class="keywordsign">-></span><br> | |
31 | string <span class="keywordsign">-></span><br> | |
32 | <span class="keyword">object</span><br> | |
33 | <span class="keyword">method</span> lock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
34 | <span class="keyword">method</span> unlock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
35 | <span class="keyword">end</span></code></body></html>⏎ |
0 | <html><head> | |
1 | <link rel="stylesheet" href="style.css" type="text/css"> | |
2 | <link rel="Start" href="index.html"> | |
3 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
4 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
5 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
6 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
7 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
8 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
9 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
10 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
11 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
12 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
13 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
14 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
15 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
16 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
17 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
18 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
19 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
20 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.object_lock_table_t</title> | |
26 | </head> | |
27 | <body> | |
28 | <code class="code"><span class="keyword">object</span><br> | |
29 | <span class="keyword">method</span> lock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
30 | <span class="keyword">method</span> unlock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
31 | <span class="keyword">end</span></code></body></html>⏎ |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.OrdOid</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.OrdOid</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.Setstr</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.Setstr</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
50 | 51 | <span class="keyword">method</span> set_changetype : <span class="constructor">Ldap_ooclient</span>.changetype <span class="keywordsign">-></span> unit<br> |
51 | 52 | <span class="keyword">method</span> set_dn : string <span class="keywordsign">-></span> unit<br> |
52 | 53 | <span class="keyword">end</span><br> |
53 | <span class="keyword">val</span> format_entry :<br> | |
54 | < attributes : string list; dn : string;<br> | |
55 | get_value : string <span class="keywordsign">-></span> string list; .. > <span class="keywordsign">-></span><br> | |
56 | unit<br> | |
57 | <span class="keyword">val</span> format_entries :<br> | |
58 | < attributes : string list; dn : string;<br> | |
59 | get_value : string <span class="keywordsign">-></span> string list; .. ><br> | |
60 | list <span class="keywordsign">-></span> unit<br> | |
61 | 54 | <span class="keyword">class</span> ldapentry :<br> |
62 | 55 | <span class="keyword">object</span><br> |
63 | 56 | <span class="keyword">method</span> add : <span class="constructor">Ldap_ooclient</span>.op_lst <span class="keywordsign">-></span> unit<br> |
79 | 72 | <span class="keyword">method</span> set_changetype : <span class="constructor">Ldap_ooclient</span>.changetype <span class="keywordsign">-></span> unit<br> |
80 | 73 | <span class="keyword">method</span> set_dn : string <span class="keywordsign">-></span> unit<br> |
81 | 74 | <span class="keyword">end</span><br> |
75 | <span class="keyword">val</span> format_entry :<br> | |
76 | < attributes : string list; dn : string;<br> | |
77 | get_value : string <span class="keywordsign">-></span> string list; .. > <span class="keywordsign">-></span><br> | |
78 | unit<br> | |
79 | <span class="keyword">val</span> format_entries :<br> | |
80 | < attributes : string list; dn : string;<br> | |
81 | get_value : string <span class="keywordsign">-></span> string list; .. ><br> | |
82 | list <span class="keywordsign">-></span> unit<br> | |
82 | 83 | <span class="keyword">type</span> changerec =<br> |
83 | 84 | [ <span class="keywordsign">`</span><span class="constructor">Addition</span> <span class="keyword">of</span> <span class="constructor">Ldap_ooclient</span>.ldapentry<br> |
84 | 85 | <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Delete</span> <span class="keyword">of</span> string<br> |
89 | 90 | [< <span class="keywordsign">`</span><span class="constructor">Entry</span> <span class="keyword">of</span> <span class="constructor">Ldap_types</span>.search_result_entry <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Referral</span> <span class="keyword">of</span> string list ] <span class="keywordsign">-></span><br> |
90 | 91 | <span class="constructor">Ldap_ooclient</span>.ldapentry<br> |
91 | 92 | <span class="keyword">val</span> of_entry : <span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> <span class="constructor">Ldap_types</span>.search_result_entry<br> |
92 | <span class="keyword">val</span> iter :<br> | |
93 | (<span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> | |
94 | (?abandon:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry) <span class="keywordsign">-></span> unit<br> | |
95 | <span class="keyword">val</span> rev_map :<br> | |
96 | (<span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> | |
97 | (?abandon:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> | |
98 | <span class="keyword">val</span> map :<br> | |
99 | (<span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> | |
100 | (?abandon:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> | |
101 | <span class="keyword">val</span> fold :<br> | |
102 | (<span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> | |
103 | <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (?abandon:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> | |
104 | 93 | <span class="keyword">class</span> ldapcon :<br> |
105 | 94 | ?connect_timeout:int <span class="keywordsign">-></span><br> |
106 | 95 | ?referral_policy:[> <span class="keywordsign">`</span><span class="constructor">RETURN</span> ] <span class="keywordsign">-></span><br> |
114 | 103 | <span class="keyword">method</span> modify :<br> |
115 | 104 | string <span class="keywordsign">-></span><br> |
116 | 105 | (<span class="constructor">Ldap_types</span>.modify_optype * string * string list) list <span class="keywordsign">-></span> unit<br> |
117 | <span class="keyword">method</span> modrdn : string <span class="keywordsign">-></span> ?deleteoldrdn:bool <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> | |
106 | <span class="keyword">method</span> modrdn :<br> | |
107 | string <span class="keywordsign">-></span><br> | |
108 | ?deleteoldrdn:bool <span class="keywordsign">-></span> ?newsup:string option <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> | |
118 | 109 | <span class="keyword">method</span> rawschema : <span class="constructor">Ldap_ooclient</span>.ldapentry<br> |
119 | 110 | <span class="keyword">method</span> schema : <span class="constructor">Ldap_schemaparser</span>.schema<br> |
120 | 111 | <span class="keyword">method</span> search :<br> |
131 | 122 | <span class="keyword">method</span> unbind : unit<br> |
132 | 123 | <span class="keyword">method</span> update_entry : <span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> unit<br> |
133 | 124 | <span class="keyword">end</span><br> |
125 | <span class="keyword">val</span> iter :<br> | |
126 | (<span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> | |
127 | (?abandon:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry) <span class="keywordsign">-></span> unit<br> | |
128 | <span class="keyword">val</span> rev_map :<br> | |
129 | (<span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> | |
130 | (?abandon:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> | |
131 | <span class="keyword">val</span> map :<br> | |
132 | (<span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> | |
133 | (?abandon:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> | |
134 | <span class="keyword">val</span> fold :<br> | |
135 | (<span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> | |
136 | <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (?abandon:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> | |
134 | 137 | <span class="keyword">module</span> <span class="constructor">OrdOid</span> :<br> |
135 | 138 | <span class="keyword">sig</span><br> |
136 | 139 | <span class="keyword">type</span> t = <span class="constructor">Ldap_schemaparser</span>.<span class="constructor">Oid</span>.t<br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapaccount</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapaccount</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="constructor">Ldap_schemaparser</span>.schema <span class="keywordsign">-></span><br> |
0 | <html><head> | |
1 | <link rel="stylesheet" href="style.css" type="text/css"> | |
2 | <link rel="Start" href="index.html"> | |
3 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
4 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
5 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
6 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
7 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
8 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
9 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
10 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
11 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
12 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
13 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
14 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
15 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
16 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
17 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
18 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
19 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
20 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapadvisorytxcon</title> | |
25 | </head> | |
26 | <body> | |
27 | <code class="code">?connect_timeout:int <span class="keywordsign">-></span><br> | |
28 | ?referral_policy:[> <span class="keywordsign">`</span><span class="constructor">RETURN</span> ] <span class="keywordsign">-></span><br> | |
29 | ?version:int <span class="keywordsign">-></span><br> | |
30 | string list <span class="keywordsign">-></span><br> | |
31 | string <span class="keywordsign">-></span><br> | |
32 | string <span class="keywordsign">-></span><br> | |
33 | string <span class="keywordsign">-></span><br> | |
34 | <span class="keyword">object</span><br> | |
35 | <span class="keyword">method</span> add : <span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> unit<br> | |
36 | <span class="keyword">method</span> associate_entries :<br> | |
37 | <span class="constructor">Ldap_ooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t list <span class="keywordsign">-></span> unit<br> | |
38 | <span class="keyword">method</span> associate_entry :<br> | |
39 | <span class="constructor">Ldap_ooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t <span class="keywordsign">-></span> unit<br> | |
40 | <span class="keyword">method</span> begin_txn : <span class="constructor">Ldap_ooclient</span>.txn<br> | |
41 | <span class="keyword">method</span> bind :<br> | |
42 | ?cred:string <span class="keywordsign">-></span> ?meth:<span class="constructor">Ldap_funclient</span>.authmethod <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> | |
43 | <span class="keyword">method</span> commit_txn : <span class="constructor">Ldap_ooclient</span>.txn <span class="keywordsign">-></span> unit<br> | |
44 | <span class="keyword">method</span> delete : string <span class="keywordsign">-></span> unit<br> | |
45 | <span class="keyword">method</span> disassociate_entries :<br> | |
46 | <span class="constructor">Ldap_ooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t list <span class="keywordsign">-></span> unit<br> | |
47 | <span class="keyword">method</span> disassociate_entry :<br> | |
48 | <span class="constructor">Ldap_ooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t <span class="keywordsign">-></span> unit<br> | |
49 | <span class="keyword">method</span> modify :<br> | |
50 | string <span class="keywordsign">-></span> (<span class="constructor">Ldap_types</span>.modify_optype * string * string list) list <span class="keywordsign">-></span> unit<br> | |
51 | <span class="keyword">method</span> modrdn :<br> | |
52 | string <span class="keywordsign">-></span> ?deleteoldrdn:bool <span class="keywordsign">-></span> ?newsup:string option <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> | |
53 | <span class="keyword">method</span> rawschema : <span class="constructor">Ldap_ooclient</span>.ldapentry<br> | |
54 | <span class="keyword">method</span> rollback_txn : <span class="constructor">Ldap_ooclient</span>.txn <span class="keywordsign">-></span> unit<br> | |
55 | <span class="keyword">method</span> schema : <span class="constructor">Ldap_schemaparser</span>.schema<br> | |
56 | <span class="keyword">method</span> search :<br> | |
57 | ?scope:<span class="constructor">Ldap_types</span>.search_scope <span class="keywordsign">-></span><br> | |
58 | ?attrs:string list <span class="keywordsign">-></span><br> | |
59 | ?attrsonly:bool <span class="keywordsign">-></span> ?base:string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry list<br> | |
60 | <span class="keyword">method</span> search_a :<br> | |
61 | ?scope:<span class="constructor">Ldap_types</span>.search_scope <span class="keywordsign">-></span><br> | |
62 | ?attrs:string list <span class="keywordsign">-></span><br> | |
63 | ?attrsonly:bool <span class="keywordsign">-></span><br> | |
64 | ?base:string <span class="keywordsign">-></span><br> | |
65 | string <span class="keywordsign">-></span> ?abandon:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry<br> | |
66 | <span class="keyword">method</span> unbind : unit<br> | |
67 | <span class="keyword">method</span> update_entry : <span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> unit<br> | |
68 | <span class="keyword">end</span></code></body></html>⏎ |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapcon</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapcon</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code">?connect_timeout:int <span class="keywordsign">-></span><br> |
35 | 36 | <span class="keyword">method</span> delete : string <span class="keywordsign">-></span> unit<br> |
36 | 37 | <span class="keyword">method</span> modify :<br> |
37 | 38 | string <span class="keywordsign">-></span> (<span class="constructor">Ldap_types</span>.modify_optype * string * string list) list <span class="keywordsign">-></span> unit<br> |
38 | <span class="keyword">method</span> modrdn : string <span class="keywordsign">-></span> ?deleteoldrdn:bool <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> | |
39 | <span class="keyword">method</span> modrdn :<br> | |
40 | string <span class="keywordsign">-></span> ?deleteoldrdn:bool <span class="keywordsign">-></span> ?newsup:string option <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> | |
39 | 41 | <span class="keyword">method</span> rawschema : <span class="constructor">Ldap_ooclient</span>.ldapentry<br> |
40 | 42 | <span class="keyword">method</span> schema : <span class="constructor">Ldap_schemaparser</span>.schema<br> |
41 | 43 | <span class="keyword">method</span> search :<br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapentry</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapentry</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">object</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapentry_t</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapentry_t</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">object</span><br> |
0 | <html><head> | |
1 | <link rel="stylesheet" href="style.css" type="text/css"> | |
2 | <link rel="Start" href="index.html"> | |
3 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
4 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
5 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
6 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
7 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
8 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
9 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
10 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
11 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
12 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
13 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
14 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
15 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
16 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
17 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
18 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
19 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
20 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.mutex</title> | |
25 | </head> | |
26 | <body> | |
27 | <code class="code">string list <span class="keywordsign">-></span><br> | |
28 | string <span class="keywordsign">-></span><br> | |
29 | string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="keyword">object</span> <span class="keyword">method</span> lock : unit <span class="keyword">method</span> unlock : unit <span class="keyword">end</span></code></body></html>⏎ |
0 | <html><head> | |
1 | <link rel="stylesheet" href="style.css" type="text/css"> | |
2 | <link rel="Start" href="index.html"> | |
3 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
4 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
5 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
6 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
7 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
8 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
9 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
10 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
11 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
12 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
13 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
14 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
15 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
16 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
17 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
18 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
19 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
20 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.mutex_t</title> | |
25 | </head> | |
26 | <body> | |
27 | <code class="code"><span class="keyword">object</span> <span class="keyword">method</span> lock : unit <span class="keyword">method</span> unlock : unit <span class="keyword">end</span></code></body></html>⏎ |
0 | <html><head> | |
1 | <link rel="stylesheet" href="style.css" type="text/css"> | |
2 | <link rel="Start" href="index.html"> | |
3 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
4 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
5 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
6 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
7 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
8 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
9 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
10 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
11 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
12 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
13 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
14 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
15 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
16 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
17 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
18 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
19 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
20 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.object_lock_table</title> | |
25 | </head> | |
26 | <body> | |
27 | <code class="code">string list <span class="keywordsign">-></span><br> | |
28 | string <span class="keywordsign">-></span><br> | |
29 | string <span class="keywordsign">-></span><br> | |
30 | string <span class="keywordsign">-></span><br> | |
31 | <span class="keyword">object</span><br> | |
32 | <span class="keyword">method</span> lock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
33 | <span class="keyword">method</span> unlock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
34 | <span class="keyword">end</span></code></body></html>⏎ |
0 | <html><head> | |
1 | <link rel="stylesheet" href="style.css" type="text/css"> | |
2 | <link rel="Start" href="index.html"> | |
3 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
4 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
5 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
6 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
7 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
8 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
9 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
10 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
11 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
12 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
13 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
14 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
15 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
16 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
17 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
18 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
19 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
20 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.object_lock_table_t</title> | |
25 | </head> | |
26 | <body> | |
27 | <code class="code"><span class="keyword">object</span><br> | |
28 | <span class="keyword">method</span> lock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
29 | <span class="keyword">method</span> unlock : <span class="constructor">Ldap_types</span>.dn <span class="keywordsign">-></span> unit<br> | |
30 | <span class="keyword">end</span></code></body></html>⏎ |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.scldapentry</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.scldapentry</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="constructor">Ldap_schemaparser</span>.schema <span class="keywordsign">-></span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_protocol</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_protocol</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser.Lcstring</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser.Lcstring</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser.Oid</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser.Oid</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_toplevel</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_toplevel</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
0 | <html><head> | |
1 | <link rel="stylesheet" href="style.css" type="text/css"> | |
2 | <link rel="Start" href="index.html"> | |
3 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
4 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
5 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
6 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
7 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
8 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
9 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
10 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
11 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
12 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
13 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
14 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
15 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
16 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
17 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
18 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
19 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
20 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_txooclient</title> | |
26 | </head> | |
27 | <body> | |
28 | <code class="code"><span class="keyword">sig</span><br> | |
29 | <span class="keyword">type</span> txn<br> | |
30 | <span class="keyword">exception</span> <span class="constructor">Txn_commit_failure</span> <span class="keyword">of</span> string * exn *<br> | |
31 | <span class="constructor">Ldap_ooclient</span>.ldapentry_t list option<br> | |
32 | <span class="keyword">exception</span> <span class="constructor">Txn_rollback_failure</span> <span class="keyword">of</span> string * exn<br> | |
33 | <span class="keyword">class</span> ldapadvisorytxcon :<br> | |
34 | ?connect_timeout:int <span class="keywordsign">-></span><br> | |
35 | ?referral_policy:[> <span class="keywordsign">`</span><span class="constructor">RETURN</span> ] <span class="keywordsign">-></span><br> | |
36 | ?version:int <span class="keywordsign">-></span><br> | |
37 | string list <span class="keywordsign">-></span><br> | |
38 | string <span class="keywordsign">-></span><br> | |
39 | string <span class="keywordsign">-></span><br> | |
40 | string <span class="keywordsign">-></span><br> | |
41 | <span class="keyword">object</span><br> | |
42 | <span class="keyword">method</span> add : <span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> unit<br> | |
43 | <span class="keyword">method</span> associate_entries :<br> | |
44 | <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t list <span class="keywordsign">-></span> unit<br> | |
45 | <span class="keyword">method</span> associate_entry :<br> | |
46 | <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t <span class="keywordsign">-></span> unit<br> | |
47 | <span class="keyword">method</span> begin_txn : <span class="constructor">Ldap_txooclient</span>.txn<br> | |
48 | <span class="keyword">method</span> bind :<br> | |
49 | ?cred:string <span class="keywordsign">-></span> ?meth:<span class="constructor">Ldap_funclient</span>.authmethod <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> | |
50 | <span class="keyword">method</span> commit_txn : <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> unit<br> | |
51 | <span class="keyword">method</span> delete : string <span class="keywordsign">-></span> unit<br> | |
52 | <span class="keyword">method</span> disassociate_entries :<br> | |
53 | <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t list <span class="keywordsign">-></span> unit<br> | |
54 | <span class="keyword">method</span> disassociate_entry :<br> | |
55 | <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t <span class="keywordsign">-></span> unit<br> | |
56 | <span class="keyword">method</span> modify :<br> | |
57 | string <span class="keywordsign">-></span><br> | |
58 | (<span class="constructor">Ldap_types</span>.modify_optype * string * string list) list <span class="keywordsign">-></span> unit<br> | |
59 | <span class="keyword">method</span> modrdn :<br> | |
60 | string <span class="keywordsign">-></span><br> | |
61 | ?deleteoldrdn:bool <span class="keywordsign">-></span> ?newsup:string option <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> | |
62 | <span class="keyword">method</span> rawschema : <span class="constructor">Ldap_ooclient</span>.ldapentry<br> | |
63 | <span class="keyword">method</span> rollback_txn : <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> unit<br> | |
64 | <span class="keyword">method</span> schema : <span class="constructor">Ldap_schemaparser</span>.schema<br> | |
65 | <span class="keyword">method</span> search :<br> | |
66 | ?scope:<span class="constructor">Ldap_types</span>.search_scope <span class="keywordsign">-></span><br> | |
67 | ?attrs:string list <span class="keywordsign">-></span><br> | |
68 | ?attrsonly:bool <span class="keywordsign">-></span><br> | |
69 | ?base:string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry list<br> | |
70 | <span class="keyword">method</span> search_a :<br> | |
71 | ?scope:<span class="constructor">Ldap_types</span>.search_scope <span class="keywordsign">-></span><br> | |
72 | ?attrs:string list <span class="keywordsign">-></span><br> | |
73 | ?attrsonly:bool <span class="keywordsign">-></span><br> | |
74 | ?base:string <span class="keywordsign">-></span><br> | |
75 | string <span class="keywordsign">-></span> ?abandon:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry<br> | |
76 | <span class="keyword">method</span> unbind : unit<br> | |
77 | <span class="keyword">method</span> update_entry : <span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> unit<br> | |
78 | <span class="keyword">end</span><br> | |
79 | <span class="keyword">end</span></code></body></html>⏎ |
0 | <html><head> | |
1 | <link rel="stylesheet" href="style.css" type="text/css"> | |
2 | <link rel="Start" href="index.html"> | |
3 | <link title="Index of types" rel=Appendix href="index_types.html"> | |
4 | <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> | |
5 | <link title="Index of values" rel=Appendix href="index_values.html"> | |
6 | <link title="Index of class methods" rel=Appendix href="index_methods.html"> | |
7 | <link title="Index of classes" rel=Appendix href="index_classes.html"> | |
8 | <link title="Index of class types" rel=Appendix href="index_class_types.html"> | |
9 | <link title="Index of modules" rel=Appendix href="index_modules.html"> | |
10 | <link title="Lber" rel="Chapter" href="Lber.html"> | |
11 | <link title="Ldap_types" rel="Chapter" href="Ldap_types.html"> | |
12 | <link title="Ldap_error" rel="Chapter" href="Ldap_error.html"> | |
13 | <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html"> | |
14 | <link title="Ldap_url" rel="Chapter" href="Ldap_url.html"> | |
15 | <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html"> | |
16 | <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html"> | |
17 | <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html"> | |
18 | <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html"> | |
19 | <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html"> | |
20 | <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html"> | |
21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> | |
22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> | |
23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_txooclient.ldapadvisorytxcon</title> | |
26 | </head> | |
27 | <body> | |
28 | <code class="code">?connect_timeout:int <span class="keywordsign">-></span><br> | |
29 | ?referral_policy:[> <span class="keywordsign">`</span><span class="constructor">RETURN</span> ] <span class="keywordsign">-></span><br> | |
30 | ?version:int <span class="keywordsign">-></span><br> | |
31 | string list <span class="keywordsign">-></span><br> | |
32 | string <span class="keywordsign">-></span><br> | |
33 | string <span class="keywordsign">-></span><br> | |
34 | string <span class="keywordsign">-></span><br> | |
35 | <span class="keyword">object</span><br> | |
36 | <span class="keyword">method</span> add : <span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> unit<br> | |
37 | <span class="keyword">method</span> associate_entries :<br> | |
38 | <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t list <span class="keywordsign">-></span> unit<br> | |
39 | <span class="keyword">method</span> associate_entry :<br> | |
40 | <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t <span class="keywordsign">-></span> unit<br> | |
41 | <span class="keyword">method</span> begin_txn : <span class="constructor">Ldap_txooclient</span>.txn<br> | |
42 | <span class="keyword">method</span> bind :<br> | |
43 | ?cred:string <span class="keywordsign">-></span> ?meth:<span class="constructor">Ldap_funclient</span>.authmethod <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> | |
44 | <span class="keyword">method</span> commit_txn : <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> unit<br> | |
45 | <span class="keyword">method</span> delete : string <span class="keywordsign">-></span> unit<br> | |
46 | <span class="keyword">method</span> disassociate_entries :<br> | |
47 | <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t list <span class="keywordsign">-></span> unit<br> | |
48 | <span class="keyword">method</span> disassociate_entry :<br> | |
49 | <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry_t <span class="keywordsign">-></span> unit<br> | |
50 | <span class="keyword">method</span> modify :<br> | |
51 | string <span class="keywordsign">-></span> (<span class="constructor">Ldap_types</span>.modify_optype * string * string list) list <span class="keywordsign">-></span> unit<br> | |
52 | <span class="keyword">method</span> modrdn :<br> | |
53 | string <span class="keywordsign">-></span> ?deleteoldrdn:bool <span class="keywordsign">-></span> ?newsup:string option <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> | |
54 | <span class="keyword">method</span> rawschema : <span class="constructor">Ldap_ooclient</span>.ldapentry<br> | |
55 | <span class="keyword">method</span> rollback_txn : <span class="constructor">Ldap_txooclient</span>.txn <span class="keywordsign">-></span> unit<br> | |
56 | <span class="keyword">method</span> schema : <span class="constructor">Ldap_schemaparser</span>.schema<br> | |
57 | <span class="keyword">method</span> search :<br> | |
58 | ?scope:<span class="constructor">Ldap_types</span>.search_scope <span class="keywordsign">-></span><br> | |
59 | ?attrs:string list <span class="keywordsign">-></span><br> | |
60 | ?attrsonly:bool <span class="keywordsign">-></span> ?base:string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry list<br> | |
61 | <span class="keyword">method</span> search_a :<br> | |
62 | ?scope:<span class="constructor">Ldap_types</span>.search_scope <span class="keywordsign">-></span><br> | |
63 | ?attrs:string list <span class="keywordsign">-></span><br> | |
64 | ?attrsonly:bool <span class="keywordsign">-></span><br> | |
65 | ?base:string <span class="keywordsign">-></span><br> | |
66 | string <span class="keywordsign">-></span> ?abandon:bool <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry<br> | |
67 | <span class="keyword">method</span> unbind : unit<br> | |
68 | <span class="keyword">method</span> update_entry : <span class="constructor">Ldap_ooclient</span>.ldapentry <span class="keywordsign">-></span> unit<br> | |
69 | <span class="keyword">end</span></code></body></html>⏎ |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_types</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_types</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
235 | 236 | url_filter : <span class="constructor">Ldap_types</span>.filter option;<br> |
236 | 237 | url_ext : (bool * string * string) list option;<br> |
237 | 238 | }<br> |
239 | <span class="keyword">type</span> ldap_grouping_type = [ <span class="keywordsign">`</span><span class="constructor">LDAP_GROUP_TXN</span> ]<br> | |
240 | <span class="keyword">type</span> ldap_grouping_cookie<br> | |
238 | 241 | <span class="keyword">end</span></code></body></html>⏎ |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_url</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_url</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_changerec_oo.change</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_changerec_oo.change</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code">?in_ch:<span class="constructor">Pervasives</span>.in_channel <span class="keywordsign">-></span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_changerec_oo</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_changerec_oo</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_oo</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_oo</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code"><span class="keyword">sig</span><br> |
33 | 34 | < attributes : string list; dn : string;<br> |
34 | 35 | get_value : string <span class="keywordsign">-></span> string list; .. > <span class="keywordsign">-></span><br> |
35 | 36 | <span class="constructor">Buffer</span>.t<br> |
37 | <span class="keyword">val</span> read_ldif_file : string <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry list<br> | |
38 | <span class="keyword">val</span> write_ldif_file : string <span class="keywordsign">-></span> <span class="constructor">Ldap_ooclient</span>.ldapentry list <span class="keywordsign">-></span> unit<br> | |
36 | 39 | <span class="keyword">class</span> ldif :<br> |
37 | 40 | ?in_ch:<span class="constructor">Pervasives</span>.in_channel <span class="keywordsign">-></span><br> |
38 | 41 | ?out_ch:<span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span><br> |
21 | 21 | <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html"> |
22 | 22 | <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html"> |
23 | 23 | <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html"> |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_oo.ldif</title> | |
24 | <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"> | |
25 | <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_oo.ldif</title> | |
25 | 26 | </head> |
26 | 27 | <body> |
27 | 28 | <code class="code">?in_ch:<span class="constructor">Pervasives</span>.in_channel <span class="keywordsign">-></span><br> |
105 | 105 | let rec string_values s attr vals = |
106 | 106 | match vals with |
107 | 107 | valu :: [] -> sprintf "%s%s=%s" s attr (escape_value valu) |
108 | | valu :: tl -> string_values (sprintf "%s%s=%s+" s attr (escape_value valu)) attr tl | |
108 | | valu :: tl -> | |
109 | string_values | |
110 | (sprintf "%s%s=%s+" | |
111 | s attr (escape_value valu)) | |
112 | attr tl | |
109 | 113 | | [] -> s |
110 | 114 | in |
111 | 115 | if List.length vals = 0 then |
124 | 128 | | [] -> s |
125 | 129 | in |
126 | 130 | components_to_dn "" (dn_to_strcomponents dn) |
131 | ||
132 | let canonical_dn dn = String.lowercase (to_string (of_string dn)) |
40 | 40 | |
41 | 41 | (** Escape a string which you intend to be part of a VALUE in the |
42 | 42 | dn. Do not use on the whole dn, just an attribute value. It is NOT |
43 | necessary to use this if you intent to call to_string on your | |
43 | necessary to use this if you intend to call to_string on your | |
44 | 44 | dn. It will be done for you as part of the conversion |
45 | 45 | process. This function is exposed for the case where you find it |
46 | 46 | easier to manipulate the dn via a regular expression, or other |
47 | 47 | string based means, and you find it necessary to escape values. *) |
48 | 48 | val escape_value : string -> string |
49 | ||
50 | (** returns the canonical dn. A simple string compare can tell you | |
51 | accurately whether two canonical dns are equal or not. *) | |
52 | val canonical_dn : string -> string |
1 | 1 | |
2 | 2 | let err2string code = |
3 | 3 | match code with |
4 | `SUCCESS -> "success" | |
5 | | `OPERATIONS_ERROR -> "operations error" | |
6 | | `PROTOCOL_ERROR -> "protocol error" | |
7 | | `TIMELIMIT_EXCEEDED -> "time limit exceeded" | |
8 | | `SIZELIMIT_EXCEEDED -> "size limit exceeded" | |
9 | | `COMPARE_FALSE -> "compare false" | |
10 | | `COMPARE_TRUE -> "compare true" | |
11 | | `AUTH_METHOD_NOT_SUPPORTED -> "auth method not supported" | |
12 | | `STRONG_AUTH_REQUIRED -> "strong auth required" | |
13 | | `REFERRAL -> "referral" | |
14 | | `ADMINLIMIT_EXCEEDED -> "admin limit exceeded" | |
15 | | `UNAVAILABLE_CRITICAL_EXTENSION -> "unavilable critical extension" | |
16 | | `CONFIDENTIALITY_REQUIRED -> "confidentiality required" | |
17 | | `SASL_BIND_IN_PROGRESS -> "sasl bind in progress" | |
18 | | `NO_SUCH_ATTRIBUTE -> "no such attribute" | |
19 | | `UNDEFINED_TYPE -> "undefined type" | |
20 | | `INAPPROPRIATE_MATCHING -> "inappropriate matching" | |
21 | | `CONSTRAINT_VIOLATION -> "constraint violation" | |
22 | | `TYPE_OR_VALUE_EXISTS -> "type or value exists" | |
23 | | `INVALID_SYNTAX -> "invalid syntax" | |
24 | | `NO_SUCH_OBJECT -> "no such object" | |
25 | | `ALIAS_PROBLEM -> "alias problem" | |
26 | | `INVALID_DN_SYNTAX -> "invalid dn syntax" | |
27 | | `ALIAS_DEREF_PROBLEM -> "alias deref problem" | |
28 | | `INAPPROPRIATE_AUTH -> "inappropriate auth" | |
29 | | `INVALID_CREDENTIALS -> "invalid credentials" | |
30 | | `INSUFFICIENT_ACCESS -> "insufficient access" | |
31 | | `BUSY -> "busy" | |
32 | | `UNAVAILABLE -> "unavailable" | |
33 | | `UNWILLING_TO_PERFORM -> "unwilling to perform" | |
34 | | `LOOP_DETECT -> "loop detected" | |
35 | | `NAMING_VIOLATION -> "naming violation" | |
36 | | `OBJECT_CLASS_VIOLATION -> "object class violation" | |
37 | | `NOT_ALLOWED_ON_NONLEAF -> "not allowed on non leaf" | |
38 | | `NOT_ALLOWED_ON_RDN -> "not allowed on rdn" | |
39 | | `ALREADY_EXISTS -> "already exists" | |
40 | | `NO_OBJECT_CLASS_MODS -> "no objectclass mods" | |
41 | | `LOCAL_ERROR -> "local error" | |
42 | | `SERVER_DOWN -> "server down" | |
43 | | `OTHER -> "other" | |
4 | `SUCCESS -> "`SUCCESS" | |
5 | | `OPERATIONS_ERROR -> "`OPERATIONS_ERROR" | |
6 | | `PROTOCOL_ERROR -> "`PROTOCOL_ERROR" | |
7 | | `TIMELIMIT_EXCEEDED -> "`TIMELIMIT_EXCEEDED" | |
8 | | `SIZELIMIT_EXCEEDED -> "`SIZELIMIT_EXCEEDED" | |
9 | | `COMPARE_FALSE -> "`COMPARE_FALSE" | |
10 | | `COMPARE_TRUE -> "`COMPARE_TRUE" | |
11 | | `AUTH_METHOD_NOT_SUPPORTED -> "`AUTH_METHOD_NOT_SUPPORTED" | |
12 | | `STRONG_AUTH_REQUIRED -> "`STRONG_AUTH_REQUIRED" | |
13 | | `REFERRAL -> "`REFERRAL" | |
14 | | `ADMINLIMIT_EXCEEDED -> "`ADMINLIMIT_EXCEEDED" | |
15 | | `UNAVAILABLE_CRITICAL_EXTENSION -> "`UNAVAILABLE_CRITICAL_EXTENSION" | |
16 | | `CONFIDENTIALITY_REQUIRED -> "`CONFIDENTIALITY_REQUIRED" | |
17 | | `SASL_BIND_IN_PROGRESS -> "`SASL_BIND_IN_PROGRESS" | |
18 | | `NO_SUCH_ATTRIBUTE -> "`NO_SUCH_ATTRIBUTE" | |
19 | | `UNDEFINED_TYPE -> "`UNDEFINED_TYPE" | |
20 | | `INAPPROPRIATE_MATCHING -> "`INAPPROPRIATE_MATCHING" | |
21 | | `CONSTRAINT_VIOLATION -> "`CONSTRAINT_VIOLATION" | |
22 | | `TYPE_OR_VALUE_EXISTS -> "`TYPE_OR_VALUE_EXISTS" | |
23 | | `INVALID_SYNTAX -> "`INVALID_SYNTAX" | |
24 | | `NO_SUCH_OBJECT -> "`NO_SUCH_OBJECT" | |
25 | | `ALIAS_PROBLEM -> "`ALIAS_PROBLEM" | |
26 | | `INVALID_DN_SYNTAX -> "`INVALID_DN_SYNTAX" | |
27 | | `ALIAS_DEREF_PROBLEM -> "`ALIAS_DEREF_PROBLEM" | |
28 | | `INAPPROPRIATE_AUTH -> "`INAPPROPRIATE_AUTH" | |
29 | | `INVALID_CREDENTIALS -> "`INVALID_CREDENTIALS" | |
30 | | `INSUFFICIENT_ACCESS -> "`INSUFFICIENT_ACCESS" | |
31 | | `BUSY -> "`BUSY" | |
32 | | `UNAVAILABLE -> "`UNAVAILABLE" | |
33 | | `UNWILLING_TO_PERFORM -> "`UNWILLING_TO_PERFORM" | |
34 | | `LOOP_DETECT -> "`LOOP_DETECT" | |
35 | | `NAMING_VIOLATION -> "`NAMING_VIOLATION" | |
36 | | `OBJECT_CLASS_VIOLATION -> "`OBJECT_CLASS_VIOLATION" | |
37 | | `NOT_ALLOWED_ON_NONLEAF -> "`NOT_ALLOWED_ON_NONLEAF" | |
38 | | `NOT_ALLOWED_ON_RDN -> "`NOT_ALLOWED_ON_RDN" | |
39 | | `ALREADY_EXISTS -> "`ALREADY_EXISTS" | |
40 | | `NO_OBJECT_CLASS_MODS -> "`NO_OBJECT_CLASS_MODS" | |
41 | | `LOCAL_ERROR -> "`LOCAL_ERROR" | |
42 | | `SERVER_DOWN -> "`SERVER_DOWN" | |
43 | | `OTHER -> "`OTHER" | |
44 | 44 | | _ -> raise (LDAP_Decoder "invalid error code") |
45 | 45 | |
46 | let ldap_strerror error ldaperror = | |
46 | let ldap_strerror msg ldaperror = | |
47 | 47 | match ldaperror with |
48 | 48 | LDAP_Failure (code, error, {ext_matched_dn=mdn;ext_referral=refs}) -> |
49 | ("ldap error. code: " ^ (err2string code) ^ | |
50 | ", error: " ^ error ^ | |
51 | ", matched dn: " ^ mdn ^ | |
52 | (match refs with | |
53 | Some lst -> | |
54 | List.fold_left | |
55 | (fun s item -> | |
56 | if s = "" then | |
57 | item | |
58 | else | |
59 | s ^ ", " ^ item) | |
60 | "" lst | |
61 | | None -> "") ^ ": " ^ error) | |
49 | "LDAP_Failure (" ^ | |
50 | (String.concat ", " | |
51 | [(err2string code); | |
52 | msg ^ ": " ^ error; | |
53 | "{ext_matched_dn = " ^ "\"" ^ mdn ^ "\"; ext_referral = [" ^ | |
54 | (match refs with | |
55 | Some lst -> (String.concat "; " lst) ^ "]" | |
56 | | None -> "]") ^ "})"]) | |
62 | 57 | | _ -> failwith "not an ldap error" |
63 | 58 | |
64 | 59 | let ldap_perror error ldaperror = |
126 | 126 | | Readbyte_error End_of_stream -> |
127 | 127 | raise (LDAP_Failure (`LOCAL_ERROR, "bug in ldap decoder detected", ext_res)) |
128 | 128 | |
129 | (* test all functionality, especially dns awareness | |
130 | - implement connect timeouts. | |
131 | - do we really want to fail | |
132 | if any host after the first is unknown? | |
133 | - allow the use of ldapurls in the hosts list*) | |
134 | 129 | let init ?(connect_timeout = 1) ?(version = 3) hosts = |
135 | 130 | if ((version < 2) || (version > 3)) then |
136 | 131 | raise (LDAP_Failure (`LOCAL_ERROR, "invalid protocol version", ext_res)) |
387 | 382 | | _ -> raise (LDAP_Failure (`LOCAL_ERROR, "invalid modify dn response", ext_res)) |
388 | 383 | with exn -> free_messageid con msgid;raise exn); |
389 | 384 | free_messageid con msgid |
385 | ||
386 | let create_grouping_s groupingType value = () | |
387 | let end_grouping_s cookie value = () |
0 | open Ldap_ooclient | |
0 | 1 | open Ldap_types |
1 | open Ldap_ooclient | |
2 | 2 | |
3 | (* ldap mutexes *) | |
3 | 4 | exception Ldap_mutex of string * exn |
4 | 5 | |
5 | 6 | class type mutex_t = |
8 | 9 | method unlock: unit |
9 | 10 | end |
10 | 11 | |
12 | class type object_lock_table_t = | |
13 | object | |
14 | method lock: dn -> unit | |
15 | method unlock: dn -> unit | |
16 | end | |
17 | ||
18 | let addmutex ldap mutexdn = | |
19 | let mt = new ldapentry in | |
20 | let mtrdn = List.hd (Ldap_dn.of_string mutexdn) in | |
21 | mt#set_dn mutexdn; | |
22 | ||
23 | ||
24 | ||
25 | mt#add [("objectclass", ["top";"mutex"]); | |
26 | (mtrdn.attr_type, mtrdn.attr_vals)]; | |
27 | try ldap#add mt | |
28 | with exn -> raise (Ldap_mutex ("addmutex", exn)) | |
29 | ||
30 | let rec lock (ldap:ldapcon) mutexdn lockval = | |
31 | try | |
32 | let obj = | |
33 | try | |
34 | ldap#search | |
35 | ~base:mutexdn | |
36 | ~scope:`BASE | |
37 | "objectclass=*" | |
38 | with LDAP_Failure (`NO_SUCH_OBJECT, _, _) -> [] | |
39 | in | |
40 | if List.length obj = 0 then begin | |
41 | addmutex ldap mutexdn; | |
42 | lock ldap mutexdn lockval | |
43 | end | |
44 | else if List.length obj = 1 then | |
45 | while true | |
46 | do | |
47 | try | |
48 | ldap#modify (List.hd obj)#dn lockval; | |
49 | failwith "locked" | |
50 | with (* the mutex is locked already *) | |
51 | LDAP_Failure (`TYPE_OR_VALUE_EXISTS, _, _) | |
52 | | LDAP_Failure (`OBJECT_CLASS_VIOLATION, _, _) -> | |
53 | (* this is so evil *) | |
54 | ignore (Unix.select [] [] [] 0.25) (* wait 1/4 of a second *) | |
55 | done | |
56 | else failwith "huge error, multiple objects with the same dn" | |
57 | with | |
58 | Failure "locked" -> () | |
59 | | (Ldap_mutex _) as exn -> raise exn | |
60 | | exn -> raise (Ldap_mutex ("lock", exn)) | |
61 | ||
62 | let rec unlock (ldap:ldapcon) mutexdn unlockval = | |
63 | try | |
64 | let obj = | |
65 | try | |
66 | ldap#search | |
67 | ~base:mutexdn | |
68 | ~scope:`BASE | |
69 | "objectclass=*" | |
70 | with LDAP_Failure (`NO_SUCH_OBJECT, _, _) -> [] | |
71 | in | |
72 | if List.length obj = 0 then begin | |
73 | addmutex ldap mutexdn; | |
74 | unlock ldap mutexdn unlockval | |
75 | end | |
76 | else if List.length obj = 1 then | |
77 | try | |
78 | ldap#modify | |
79 | (List.hd obj)#dn unlockval | |
80 | with LDAP_Failure (`NO_SUCH_ATTRIBUTE, _, _) -> () | |
81 | with | |
82 | (Ldap_mutex _) as exn -> raise exn | |
83 | | exn -> raise (Ldap_mutex ("unlock", exn)) | |
84 | ||
85 | ||
11 | 86 | class mutex ldapurls binddn bindpw mutexdn = |
12 | 87 | object (self) |
13 | 88 | val ldap = |
15 | 90 | ldap#bind binddn ~cred:bindpw; |
16 | 91 | ldap |
17 | 92 | |
18 | method private addmutex = | |
19 | let mt = new ldapentry in | |
20 | let mtrdn = List.hd (Ldap_dn.of_string mutexdn) in | |
21 | mt#set_dn mutexdn; | |
22 | mt#add [("objectclass", ["top";"mutex"]); | |
23 | (mtrdn.attr_type, mtrdn.attr_vals)]; | |
24 | try ldap#add mt | |
25 | with exn -> raise (Ldap_mutex ("addmutex", exn)) | |
93 | method private addmutex = addmutex ldap mutexdn | |
94 | method lock = lock ldap mutexdn [(`ADD, "mutexlocked", ["locked"])] | |
95 | method unlock = unlock ldap mutexdn [(`DELETE, "mutexlocked", [])] | |
96 | end | |
26 | 97 | |
27 | method lock = | |
28 | try | |
29 | let obj = | |
30 | try | |
31 | ldap#search | |
32 | ~base:mutexdn | |
33 | ~scope:`BASE | |
34 | "objectclass=*" | |
35 | with LDAP_Failure (`NO_SUCH_OBJECT, _, _) -> [] | |
36 | in | |
37 | if List.length obj = 0 then begin | |
38 | self#addmutex; | |
39 | self#lock | |
40 | end | |
41 | else if List.length obj = 1 then | |
42 | while true | |
43 | do | |
44 | try | |
45 | ldap#modify | |
46 | (List.hd obj)#dn [(`ADD, "mutexlocked", ["locked"])]; | |
47 | failwith "locked" | |
48 | with (* the mutex is locked already *) | |
49 | LDAP_Failure (`TYPE_OR_VALUE_EXISTS, _, _) | |
50 | | LDAP_Failure (`OBJECT_CLASS_VIOLATION, _, _) -> () | |
51 | done | |
52 | else failwith ("huge error, multiple objects with the same dn") | |
53 | with | |
54 | Failure "locked" -> () | |
55 | | (Ldap_mutex _) as exn -> raise exn | |
56 | | exn -> raise (Ldap_mutex ("lock", exn)) | |
98 | let apply_with_mutex mutex f = | |
99 | mutex#lock; | |
100 | try | |
101 | let result = f () in | |
102 | mutex#unlock; | |
103 | result | |
104 | with exn -> (try mutex#unlock with _ -> ());raise exn | |
57 | 105 | |
58 | method unlock = | |
59 | try | |
60 | let obj = | |
61 | try | |
62 | ldap#search | |
63 | ~base:mutexdn | |
64 | ~scope:`BASE | |
65 | "objectclass=*" | |
66 | with LDAP_Failure (`NO_SUCH_OBJECT, _, _) -> [] | |
67 | in | |
68 | if List.length obj = 0 then begin | |
69 | self#addmutex; | |
70 | self#unlock | |
71 | end | |
72 | else if List.length obj = 1 then | |
73 | try | |
74 | ldap#modify | |
75 | (List.hd obj)#dn [(`DELETE, "mutexlocked", [])] | |
76 | with LDAP_Failure (`NO_SUCH_ATTRIBUTE, _, _) -> () | |
77 | with | |
78 | (Ldap_mutex _) as exn -> raise exn | |
79 | | exn -> raise (Ldap_mutex ("unlock", exn)) | |
106 | class object_lock_table ldapurls binddn bindpw mutextbldn = | |
107 | object (self) | |
108 | val ldap = | |
109 | let ldap = new ldapcon ldapurls in | |
110 | ldap#bind binddn ~cred:bindpw; | |
111 | ldap | |
112 | method private addmutex = addmutex ldap mutextbldn | |
113 | method lock dn = lock ldap mutextbldn [(`ADD, "lockedObject", [Ldap_dn.to_string dn])] | |
114 | method unlock dn = unlock ldap mutextbldn [(`DELETE, "lockedObject", [Ldap_dn.to_string dn])] | |
80 | 115 | end |
0 | (* A library for implementing mutexes on top of LDAP's built in test | |
1 | and set mechanism | |
0 | open Ldap_ooclient | |
2 | 1 | |
3 | Copyright (C) 2005 Eric Stokes, and The California State University | |
4 | at Northridge | |
5 | ||
6 | This library is free software; you can redistribute it and/or | |
7 | modify it under the terms of the GNU Lesser General Public | |
8 | License as published by the Free Software Foundation; either | |
9 | version 2.1 of the License, or (at your option) any later version. | |
10 | ||
11 | This library is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | Lesser General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU Lesser General Public | |
17 | License along with this library; if not, write to the Free Software | |
18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) | |
19 | ||
20 | (** A library for implementing mutexes on top of LDAP's built in test | |
2 | (** functions for implementing mutexes on top of LDAP's built in test | |
21 | 3 | and set mechanism. In order to use this module you must load |
22 | mutex.schema, which is an rfc2252 format schema file. *) | |
23 | ||
24 | (** raised when a mutex operation fails. The string argument contains | |
25 | the name of the method which failed, and the exception contains | |
26 | details about what failed. *) | |
4 | mutex.schema, which is an rfc2252 format schema file. raised when | |
5 | a mutex operation fails. The string argument contains the name of | |
6 | the method which failed, and the exception contains details about | |
7 | what failed. *) | |
27 | 8 | exception Ldap_mutex of string * exn |
28 | 9 | |
10 | (** the class type of a single mutex, used for performing | |
11 | advisory locking of some action *) | |
29 | 12 | class type mutex_t = |
30 | 13 | object |
31 | 14 | method lock: unit |
32 | 15 | method unlock: unit |
16 | end | |
17 | ||
18 | (** the class type of an object lock table which allows for advisory | |
19 | locking of objects by dn *) | |
20 | class type object_lock_table_t = | |
21 | object | |
22 | method lock: Ldap_types.dn -> unit | |
23 | method unlock: Ldap_types.dn -> unit | |
33 | 24 | end |
34 | 25 | |
35 | 26 | (** new mutex ldapurls binddn bindpw mutexdn *) |
40 | 31 | (** unlock the mutex *) |
41 | 32 | method unlock: unit |
42 | 33 | end |
34 | ||
35 | (** used to apply some function, first locking the mutex, unlocking it | |
36 | only after the function has been applied. If the function | |
37 | generates any exception, this wrapper catches that exception, and | |
38 | unlocks the mutex before reraising the exception. Generally | |
39 | garentees that the mutex will always be used consistantly when | |
40 | performing an action. *) | |
41 | val apply_with_mutex: mutex -> (unit -> 'a) -> 'a | |
42 | ||
43 | (** new object_lock_table ldapurls binddn bindpw mutexdn *) | |
44 | class object_lock_table: string list -> string -> string -> string -> | |
45 | object | |
46 | (** lock the specified dn, if it is already locked, then block until the lock can be aquired *) | |
47 | method lock: Ldap_types.dn -> unit | |
48 | (** unlock the specified dn, if it is not locked do nothing *) | |
49 | method unlock: Ldap_types.dn -> unit | |
50 | end |
74 | 74 | ?attrs:string list -> |
75 | 75 | ?attrsonly:bool -> ?base:string -> string -> (?abandon:bool -> unit -> ldapentry_t) |
76 | 76 | method unbind : unit |
77 | method update_entry : ldapentry_t -> unit | |
77 | method update_entry : ldapentry_t -> unit | |
78 | 78 | end |
79 | 79 | |
80 | 80 | let format_entry e = |
81 | 81 | Format.open_box 0; |
82 | 82 | Format.open_box 2; |
83 | Format.print_string ("<ldapentry_t " ^ e#dn); | |
83 | Format.print_string ("<ldapentry_t " ^ (String.escaped e#dn)); | |
84 | 84 | Format.force_newline (); |
85 | 85 | let length_attrs = List.length e#attributes in |
86 | 86 | let j = ref 0 in |
88 | 88 | (fun a -> |
89 | 89 | let length = List.length (e#get_value a) in |
90 | 90 | let i = ref 0 in |
91 | Format.print_string (Printf.sprintf "(\"%s\", " a); | |
91 | Format.print_string (Printf.sprintf "(\"%s\", " (String.escaped a)); | |
92 | 92 | Format.open_box 0; |
93 | 93 | Format.print_string "["; |
94 | 94 | List.iter |
95 | 95 | (fun v -> |
96 | 96 | if !i < length - 1 then |
97 | (Format.print_string (Printf.sprintf "\"%s\";" v); | |
97 | (Format.print_string (Printf.sprintf "\"%s\";" (String.escaped v)); | |
98 | 98 | Format.print_break 1 0) |
99 | 99 | else |
100 | Format.print_string (Printf.sprintf "\"%s\"" v); | |
100 | Format.print_string (Printf.sprintf "\"%s\"" (String.escaped v)); | |
101 | 101 | i := !i + 1) |
102 | 102 | (e#get_value a); |
103 | 103 | Format.print_string "]"; |
118 | 118 | let i = ref 0 in |
119 | 119 | Format.open_box 0; |
120 | 120 | Format.print_string "["; |
121 | if length > 5 then | |
122 | List.iter | |
123 | (fun e -> | |
124 | if !i < length - 1 then begin | |
125 | Format.print_string ("<ldapentry_t " ^ e#dn ^ ">; "); | |
126 | Format.print_cut (); | |
127 | i := !i + 1 | |
128 | end | |
129 | else Format.print_string ("<ldapentry_t " ^ e#dn ^ ">")) | |
130 | lst | |
121 | if length > 3 then | |
122 | try | |
123 | List.iter | |
124 | (fun e -> | |
125 | if !i > 49 then failwith "limit" | |
126 | else if !i < length - 1 then begin | |
127 | Format.print_string ("<ldapentry_t " ^ (String.escaped e#dn) ^ ">; "); | |
128 | Format.print_cut (); | |
129 | i := !i + 1 | |
130 | end else | |
131 | Format.print_string ("<ldapentry_t " ^ (String.escaped e#dn) ^ ">")) | |
132 | lst | |
133 | with Failure "limit" -> Format.print_string "..." | |
131 | 134 | else |
132 | 135 | List.iter |
133 | 136 | (fun e -> |
134 | 137 | if !i < length - 1 then begin |
135 | 138 | format_entry e; |
136 | Format.print_break 1 0 | |
137 | end | |
138 | else | |
139 | Format.print_break 1 0; | |
140 | i := !i + 1 | |
141 | end else | |
139 | 142 | format_entry e) |
140 | lst | |
143 | lst; | |
144 | Format.print_string "]"; | |
145 | Format.close_box () | |
141 | 146 | |
142 | 147 | module CaseInsensitiveString = |
143 | 148 | (struct |
263 | 268 | match x with |
264 | 269 | [] -> () |
265 | 270 | | (attr, values) :: lst -> |
266 | (let lcname = lowercase attr in | |
267 | match values with | |
268 | [] -> Hashtbl.remove data lcname | |
269 | | _ -> ((try List.iter (Ulist.remove (Hashtbl.find data lcname)) values | |
270 | with Not_found -> ()); | |
271 | (match Ulist.tolst (Hashtbl.find data lcname) with | |
272 | [] -> Hashtbl.remove data lcname | |
273 | | _ -> ()); | |
274 | do_delete lst)) | |
271 | let lcname = lowercase attr in | |
272 | match values with | |
273 | [] -> Hashtbl.remove data lcname;do_delete lst | |
274 | | _ -> | |
275 | (try List.iter (Ulist.remove (Hashtbl.find data lcname)) values | |
276 | with Not_found -> ()); | |
277 | (match Ulist.tolst (Hashtbl.find data lcname) with | |
278 | [] -> Hashtbl.remove data lcname | |
279 | | _ -> ()); | |
280 | do_delete lst | |
275 | 281 | in |
276 | 282 | do_delete x; self#push_change `DELETE x |
277 | 283 | |
402 | 408 | val mutable bound = true |
403 | 409 | val mutable reconnect_successful = true |
404 | 410 | val mutable con = init ~connect_timeout:connect_timeout ~version:version hosts |
405 | ||
406 | 411 | method private reconnect = |
407 | 412 | if bound then unbind con; |
408 | 413 | bound <- false; |
446 | 451 | with LDAP_Failure(`SERVER_DOWN, _, _) -> |
447 | 452 | self#reconnect;self#modify dn mods |
448 | 453 | |
449 | method modrdn dn ?(deleteoldrdn = true) newrdn = | |
454 | method modrdn dn ?(deleteoldrdn = true) ?(newsup: string option=None) newrdn = | |
450 | 455 | if not (reconnect_successful && bound) then self#reconnect; |
451 | try modrdn_s con ~dn:dn ~newdn:newrdn ~deleteoldrdn:deleteoldrdn | |
456 | try modrdn_s con ~dn ~newdn:newrdn ~deleteoldrdn ~newsup | |
452 | 457 | with LDAP_Failure(`SERVER_DOWN, _, _) -> |
453 | 458 | self#reconnect;self#modrdn dn ~deleteoldrdn:deleteoldrdn newrdn |
454 | 459 | |
517 | 522 | ~attrs: ["objectClasses";"attributeTypes"; |
518 | 523 | "matchingRules";"ldapSyntaxes"] |
519 | 524 | "(objectclass=subschema)") with |
520 | [e] -> readSchema (e#get_value "objectclasses") (e#get_value "attributetypes") | |
525 | [e] -> | |
526 | readSchema | |
527 | (e#get_value "objectclasses") | |
528 | (e#get_value "attributetypes") | |
521 | 529 | | _ -> raise Not_found) |
522 | 530 | else |
523 | 531 | raise Not_found |
868 | 876 | method replace x = |
869 | 877 | self#single_val_check x false;super#replace x; |
870 | 878 | self#drive_updatecon;self#drive_reconsile Optimistic |
879 | ||
880 | method modify x = | |
881 | let filter_mod x op = | |
882 | List.rev_map | |
883 | (fun (_, a, v) -> (a, v)) | |
884 | (List.filter | |
885 | (function (the_op, _, _) when the_op = op -> true | _ -> false) x) | |
886 | in | |
887 | self#single_val_check (filter_mod x `ADD) true; | |
888 | self#single_val_check (filter_mod x `REPLACE) false; | |
889 | super#modify x; | |
890 | self#drive_updatecon; | |
891 | self#drive_reconsile Pessimistic | |
871 | 892 | |
872 | 893 | method get_value x = |
873 | 894 | try super#get_value x with Not_found -> |
22 | 22 | |
23 | 23 | open Ldap_types |
24 | 24 | |
25 | (** {2 Basic Data Types} *) | |
26 | ||
27 | (** the type of an operation, eg. [("cn", ["foo";"bar"])] *) | |
25 | 28 | type op = string * string list |
26 | 29 | type op_lst = op list |
30 | ||
31 | (** The policy the client should take when it encounteres a | |
32 | referral. This is currently not used *) | |
27 | 33 | type referral_policy = [ `FOLLOW | `RETURN ] |
34 | ||
35 | (** The change type of an ldapentry. This controls some aspects of | |
36 | it's behavior *) | |
28 | 37 | type changetype = [ `ADD | `DELETE | `MODDN | `MODIFY | `MODRDN ] |
29 | 38 | |
39 | (** {2 Local Representation of LDAP Objects} *) | |
40 | ||
41 | (** The base type of an ldap entry represented in memory. *) | |
30 | 42 | class type ldapentry_t = |
31 | object | |
32 | method add : op_lst -> unit | |
33 | method attributes : string list | |
34 | method changes : (Ldap_types.modify_optype * string * string list) list | |
35 | method changetype : changetype | |
36 | method delete : op_lst -> unit | |
37 | method dn : string | |
38 | method diff : ldapentry_t -> (modify_optype * string * string list) list | |
39 | method exists : string -> bool | |
40 | method flush_changes : unit | |
41 | method get_value : string -> string list | |
42 | method modify : | |
43 | (Ldap_types.modify_optype * string * string list) list -> unit | |
44 | method print : unit | |
45 | method replace : op_lst -> unit | |
46 | method set_changetype : changetype -> unit | |
47 | method set_dn : string -> unit | |
48 | end | |
49 | ||
50 | val format_entry : | |
51 | < attributes : string list; dn : string; | |
52 | get_value : string -> string list; .. > -> | |
53 | unit | |
54 | ||
55 | val format_entries : | |
56 | < attributes : string list; dn : string; | |
57 | get_value : string -> string list; .. > list -> | |
58 | unit | |
43 | object | |
44 | method add : op_lst -> unit | |
45 | method attributes : string list | |
46 | method changes : (Ldap_types.modify_optype * string * string list) list | |
47 | method changetype : changetype | |
48 | method delete : op_lst -> unit | |
49 | method dn : string | |
50 | method diff : ldapentry_t -> (modify_optype * string * string list) list | |
51 | method exists : string -> bool | |
52 | method flush_changes : unit | |
53 | method get_value : string -> string list | |
54 | method modify : | |
55 | (Ldap_types.modify_optype * string * string list) list -> unit | |
56 | method print : unit | |
57 | method replace : op_lst -> unit | |
58 | method set_changetype : changetype -> unit | |
59 | method set_dn : string -> unit | |
60 | end | |
59 | 61 | |
60 | 62 | (** this object represents a remote object within local memory. It |
61 | records all local changes made to it (if it's changetype is set to | |
62 | `MODIFY), and can commit them to the server at a later time. This | |
63 | can significantly improve performance by reducing traffic to the | |
64 | server. *) | |
63 | records all local changes made to it (if it's changetype is set to | |
64 | `MODIFY), and can commit them to the server at a later time via | |
65 | {!Ldap_ooclient.ldapcon.update_entry}. *) | |
65 | 66 | class ldapentry : |
66 | object | |
67 | (** add values to an attribute (or create a new attribute). Does | |
67 | object | |
68 | (** add values to an attribute (or create a new attribute). Does | |
68 | 69 | not change the server until you update *) |
69 | 70 | method add : op_lst -> unit |
70 | 71 | |
72 | 73 | on the object *) |
73 | 74 | method attributes : string list |
74 | 75 | |
75 | (** return a list of changes made to the object in a format suitable for | |
76 | sending directly to modify_s *) | |
76 | (** return a list of changes made to the object in a the format of | |
77 | a modify operation. For example, you can apply the changes to another | |
78 | ldapentry object using the {!Ldap_ooclient.ldapentry.modify} | |
79 | method *) | |
77 | 80 | method changes : (Ldap_types.modify_optype * string * string list) list |
78 | 81 | |
79 | 82 | (** return the changetype of the object *) |
87 | 90 | method dn : string |
88 | 91 | |
89 | 92 | (** given an ldapentry, return the differences between the current |
90 | entry and the specified entry *) | |
93 | entry and the specified entry in the form of a modify | |
94 | operation which would make the specified entry the same as the | |
95 | current entry. *) | |
91 | 96 | method diff : ldapentry_t -> (modify_optype * string * string list) list |
92 | 97 | |
93 | 98 | (** query whether the attribute type (name) exists in the object *) |
96 | 101 | (** clear all accumulated changes *) |
97 | 102 | method flush_changes : unit |
98 | 103 | |
99 | (** get the value of an attribute *) | |
104 | (** get the value of an attribute @raise Not_found If the | |
105 | attribute does not exist. *) | |
100 | 106 | method get_value : string -> string list |
101 | 107 | |
102 | (** modify the object (same as modify_s), does not change the | |
103 | database until you update *) | |
108 | (** Apply modifications to object in memory, does not change the | |
109 | database until you update using | |
110 | {!Ldap_ooclient.ldapcon.update_entry} *) | |
104 | 111 | method modify : |
105 | 112 | (Ldap_types.modify_optype * string * string list) list -> unit |
106 | 113 | |
107 | (** print an ldif like representation of the object to stdout, see | |
108 | Ldif_oo for standards compliant ldif. Usefull for toplevel | |
109 | sessions. DEPRECATED. *) | |
114 | (** @deprecated print an ldif like representation of the object to stdout, see | |
115 | Ldif_oo for standards compliant ldif. Usefull for toplevel | |
116 | sessions. *) | |
110 | 117 | method print : unit |
111 | 118 | |
112 | 119 | (** replace values in the object, does not change the database |
120 | 127 | method set_dn : string -> unit |
121 | 128 | end |
122 | 129 | |
130 | (** {1 Miscallaneous} *) | |
131 | ||
132 | (** toplevel formatter for ldapentry, prints the whole entry with a | |
133 | nice structure. Each attribute is in the correct syntax to be | |
134 | copied and pasted into a modify operation. *) | |
135 | val format_entry : | |
136 | < attributes : string list; dn : string; | |
137 | get_value : string -> string list; .. > -> | |
138 | unit | |
139 | ||
140 | (** format lists of entries, in this case only print the dn *) | |
141 | val format_entries : | |
142 | < attributes : string list; dn : string; | |
143 | get_value : string -> string list; .. > list -> | |
144 | unit | |
145 | ||
146 | (** The type of an ldap change record, used by extended LDIF *) | |
123 | 147 | type changerec = |
124 | 148 | [`Modification of string * ((Ldap_types.modify_optype * string * string list) list) |
125 | 149 | | `Addition of ldapentry |
126 | 150 | | `Delete of string |
127 | 151 | | `Modrdn of string * int * string] |
128 | 152 | |
153 | (** {0 Communication With {!Ldap_funclient}} *) | |
154 | ||
129 | 155 | (** given a search_result_entry as returned by ldap_funclient, produce an |
130 | 156 | ldapentry containing either the entry, or the referral object *) |
131 | 157 | val to_entry : |
137 | 163 | ldap_funserver. *) |
138 | 164 | val of_entry : ldapentry -> search_result_entry |
139 | 165 | |
166 | (** {2 Interacting with LDAP Servers} *) | |
167 | ||
168 | (** This class abstracts a connection to an LDAP server (or servers), | |
169 | an instance will be connected to the server you specify and can be | |
170 | used to perform operations on that server. | |
171 | ||
172 | {0 Example} | |
173 | ||
174 | [new ldapcon ~connect_timeout:5 ~version:3 | |
175 | ["ldap://first.ldap.server";"ldap://second.ldap.server"]]. | |
176 | ||
177 | In addition to specifying multiple urls, if DNS names are given, | |
178 | and those names are bound to multiple addresses, then all possible | |
179 | addresses will be tried. | |
180 | ||
181 | {0 Example} | |
182 | ||
183 | [new ldapcon ["ldaps://rrldap.csun.edu"]] | |
184 | ||
185 | is equivelant to | |
186 | ||
187 | [new ldapcon ["ldap://130.166.1.30";"ldap://130.166.1.31";"ldap://130.166.1.32"]] | |
188 | ||
189 | This means that if any host in the rr fails, the ldapcon will | |
190 | transparently move on to the next host, and you will never know | |
191 | the difference. | |
192 | ||
193 | @raise LDAP_Failure All methods raise {!Ldap_types.LDAP_Failure} on error | |
194 | ||
195 | @param connect_timeout Default [1], an integer which specifies how | |
196 | long to wait for any given server in the list to respond before | |
197 | trying the next one. After all the servers have been tried for | |
198 | [connect_timeout] seconds [LDAP_Failure (`SERVER_DOWN, ...)] will | |
199 | be raised. | |
200 | ||
201 | @param referral_policy In a future version of ocamldap this will | |
202 | be used to specify what you would like to do in the event of a | |
203 | referral. Currently it does nothing and is ignored see | |
204 | {!Ldap_ooclient.referral_policy}. | |
205 | ||
206 | @param version The protocol version to use, the default is [3], | |
207 | the other recognized value is [2]. | |
208 | *) | |
209 | class ldapcon : | |
210 | ?connect_timeout:int -> | |
211 | ?referral_policy:[> `RETURN ] -> | |
212 | ?version:int -> | |
213 | string list -> | |
214 | object | |
215 | (** {2 Authentication} *) | |
216 | ||
217 | (** bind to the database using dn. | |
218 | ||
219 | {0 Simple Bind Example} | |
220 | ||
221 | [ldap#bind ~cred:"password" "cn=foo,ou=people,ou=auth,o=bar"] | |
222 | ||
223 | To bind anonymously, omit ~cred, and leave dn blank eg. | |
224 | ||
225 | {0 Example} | |
226 | ||
227 | [ldap#bind ""] | |
228 | ||
229 | @param cred The credentials to provide for binding. Default [""]. | |
230 | ||
231 | @param meth The method to use when binding See | |
232 | {!Ldap_funclient.authmethod} the default is [`SIMPLE]. If | |
233 | [`SASL] is used then [dn] and [~cred] Are interperted according | |
234 | to the chosen SASL mechanism. SASL binds have not been tested | |
235 | extensively. *) | |
236 | method bind : | |
237 | ?cred:string -> ?meth:Ldap_funclient.authmethod -> string -> unit | |
238 | ||
239 | (** Deauthenticate and close the connection to the server *) | |
240 | method unbind : unit | |
241 | ||
242 | (** {2 Searching} *) | |
243 | ||
244 | (** Search the directory syncronously for an entry which matches the | |
245 | search criteria. | |
246 | ||
247 | {0 Example} | |
248 | ||
249 | [ldap#search ~base:"dc=foo,dc=bar" ~attrs:["cn"] "uid=*"] | |
250 | ||
251 | @param scope Default [`SUBTREE], defines the scope of the | |
252 | search. see {!Ldap_types.search_scope} | |
253 | ||
254 | @param attrs Default [[]] (means all attributes) | |
255 | ||
256 | @param attrsonly Default [false] If true, asks the server to return | |
257 | only the attribute names, not their values. | |
258 | ||
259 | @param base Default [""], The search base, which is the dn of the | |
260 | object from which you want to start your search. Only that | |
261 | object, and it's children will be included in the | |
262 | search. Further controlled by [~scope]. *) | |
263 | method search : | |
264 | ?scope:Ldap_types.search_scope -> | |
265 | ?attrs:string list -> | |
266 | ?attrsonly:bool -> ?base:string -> string -> ldapentry list | |
267 | ||
268 | (** Search the directory asyncronously, otherwise the same as | |
269 | search. *) | |
270 | method search_a : | |
271 | ?scope:Ldap_types.search_scope -> | |
272 | ?attrs:string list -> | |
273 | ?attrsonly:bool -> ?base:string -> string -> (?abandon:bool -> unit -> ldapentry) | |
274 | ||
275 | (** Fetch the raw (unparsed) schema from the directory using the | |
276 | standard mechanism (requires protocol version 3) *) | |
277 | method rawschema : ldapentry | |
278 | ||
279 | (** Fetch and parse the schema from the directory via the standard | |
280 | mechanism (requires version 3). Return a structured | |
281 | representation of the schema indexed by canonical name, and oid. *) | |
282 | method schema : Ldap_schemaparser.schema | |
283 | ||
284 | (** {2 Making Modifications} *) | |
285 | ||
286 | (** add an entry to the database *) | |
287 | method add : ldapentry -> unit | |
288 | ||
289 | (** Delete the object named by dn from the database *) | |
290 | method delete : string -> unit | |
291 | ||
292 | (** Modify the entry named by dn, applying mods | |
293 | ||
294 | {0 Example} | |
295 | ||
296 | [ldap#modify "uid=foo,ou=people,dc=bar,dc=baz" [(`DELETE, "cn", ["foo";"bar"])]] | |
297 | *) | |
298 | method modify : | |
299 | string -> | |
300 | (Ldap_types.modify_optype * string * string list) list -> unit | |
301 | ||
302 | (** Syncronize changes made locally to an ldapentry with the | |
303 | directory. *) | |
304 | method update_entry : ldapentry -> unit | |
305 | ||
306 | (** Modify the rdn of the object named by dn, if the protocol | |
307 | version is 3 you may additionally change the superior, the rdn | |
308 | will be changed to the attribute represented (as a string) by | |
309 | newrdn, | |
310 | ||
311 | {0 Example With New Superior} | |
312 | ||
313 | [ldap#modrdn ~newsup:(Some "o=csun") "cn=bob,ou=people,o=org" "uid=bperson"] | |
314 | ||
315 | After this example "cn=bob,ou=people,o=org" will end up as "uid=bperson,o=csun". | |
316 | ||
317 | @param deleteoldrdn Default [true], delete | |
318 | the old rdn value as part of the modrdn. | |
319 | ||
320 | @param newsup Default [None], only valid when the protocol | |
321 | version is 3, change the object's location in the tree, making | |
322 | its superior equal to the specified object. *) | |
323 | method modrdn : string -> ?deleteoldrdn:bool -> ?newsup:string option -> string -> unit | |
324 | end | |
325 | ||
326 | (** {1 Iterators Over Streams of ldapentry Objects} *) | |
327 | ||
140 | 328 | (** given a source of ldapentry objects (unit -> ldapentry), such as |
141 | the return value of ldapcon#search_a apply f (first arg) to each entry | |
329 | the return value of ldapcon#search_a, apply f (first arg) to each entry | |
142 | 330 | See List.iter *) |
143 | 331 | val iter : (ldapentry -> unit) -> (?abandon:bool -> unit -> ldapentry) -> unit |
144 | 332 | |
156 | 344 | intial))) see List.fold_right. *) |
157 | 345 | val fold : (ldapentry -> 'a -> 'a) -> 'a -> (?abandon:bool -> unit -> ldapentry) -> 'a |
158 | 346 | |
159 | class ldapcon : | |
160 | ?connect_timeout:int -> | |
161 | ?referral_policy:[> `RETURN ] -> | |
162 | ?version:int -> | |
163 | string list -> | |
164 | object | |
165 | method add : ldapentry -> unit | |
166 | method bind : | |
167 | ?cred:string -> ?meth:Ldap_funclient.authmethod -> string -> unit | |
168 | method delete : string -> unit | |
169 | method modify : | |
170 | string -> | |
171 | (Ldap_types.modify_optype * string * string list) list -> unit | |
172 | method modrdn : string -> ?deleteoldrdn:bool -> string -> unit | |
173 | method rawschema : ldapentry | |
174 | method schema : Ldap_schemaparser.schema | |
175 | method search : | |
176 | ?scope:Ldap_types.search_scope -> | |
177 | ?attrs:string list -> | |
178 | ?attrsonly:bool -> ?base:string -> string -> ldapentry list | |
179 | method search_a : | |
180 | ?scope:Ldap_types.search_scope -> | |
181 | ?attrs:string list -> | |
182 | ?attrsonly:bool -> ?base:string -> string -> (?abandon:bool -> unit -> ldapentry) | |
183 | method unbind : unit | |
184 | method update_entry : ldapentry -> unit | |
185 | end | |
186 | ||
347 | (** {2 Schema Aware ldapentry Derivatives} *) | |
348 | ||
349 | (** {1 General Schema Aware Entry} {!Ldap_ooclient.scldapentry}, A | |
350 | schema aware derivative of {!Ldap_ooclient.ldapentry}. It contains | |
351 | an rfc2252 schema checker, and given the database schema, it can | |
352 | be used to garentee that operations performed in memory are valid | |
353 | against a standards compliant database. It has numerious uses, | |
354 | translation between two databases with different schemas an | |
355 | example of where it finds natural usage. For an example | |
356 | application @see <http://tdir.sourceforge.net> tdir *) | |
357 | ||
358 | (** an ordered oid type, for placing oids in sets *) | |
187 | 359 | module OrdOid : |
188 | 360 | sig |
189 | 361 | type t = Ldap_schemaparser.Oid.t |
190 | 362 | val compare : t -> t -> int |
191 | 363 | end |
192 | 364 | |
365 | (** A set of Oids @deprecated the name is historical, and may be changed *) | |
193 | 366 | module Setstr : |
194 | sig | |
195 | type elt = OrdOid.t | |
196 | type t = Set.Make(OrdOid).t | |
197 | val empty : t | |
198 | val is_empty : t -> bool | |
199 | val mem : elt -> t -> bool | |
200 | val add : elt -> t -> t | |
201 | val singleton : elt -> t | |
202 | val remove : elt -> t -> t | |
203 | val union : t -> t -> t | |
204 | val inter : t -> t -> t | |
205 | val diff : t -> t -> t | |
206 | val compare : t -> t -> int | |
207 | val equal : t -> t -> bool | |
208 | val subset : t -> t -> bool | |
209 | val iter : (elt -> unit) -> t -> unit | |
210 | val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a | |
211 | val for_all : (elt -> bool) -> t -> bool | |
212 | val exists : (elt -> bool) -> t -> bool | |
213 | val filter : (elt -> bool) -> t -> t | |
214 | val partition : (elt -> bool) -> t -> t * t | |
215 | val cardinal : t -> int | |
216 | val elements : t -> elt list | |
217 | val min_elt : t -> elt | |
218 | val max_elt : t -> elt | |
219 | val choose : t -> elt | |
220 | val split : elt -> t -> t * bool * t | |
221 | end | |
222 | ||
223 | type scflavor = Optimistic | Pessimistic | |
224 | ||
225 | (** given a name of an attribute, return its oid *) | |
367 | sig | |
368 | type elt = OrdOid.t | |
369 | type t = Set.Make(OrdOid).t | |
370 | val empty : t | |
371 | val is_empty : t -> bool | |
372 | val mem : elt -> t -> bool | |
373 | val add : elt -> t -> t | |
374 | val singleton : elt -> t | |
375 | val remove : elt -> t -> t | |
376 | val union : t -> t -> t | |
377 | val inter : t -> t -> t | |
378 | val diff : t -> t -> t | |
379 | val compare : t -> t -> int | |
380 | val equal : t -> t -> bool | |
381 | val subset : t -> t -> bool | |
382 | val iter : (elt -> unit) -> t -> unit | |
383 | val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a | |
384 | val for_all : (elt -> bool) -> t -> bool | |
385 | val exists : (elt -> bool) -> t -> bool | |
386 | val filter : (elt -> bool) -> t -> t | |
387 | val partition : (elt -> bool) -> t -> t * t | |
388 | val cardinal : t -> int | |
389 | val elements : t -> elt list | |
390 | val min_elt : t -> elt | |
391 | val max_elt : t -> elt | |
392 | val choose : t -> elt | |
393 | val split : elt -> t -> t * bool * t | |
394 | end | |
395 | ||
396 | (** The type of schema checking to perform in | |
397 | {!Ldap_ooclient.scldapentry}. Normally this is picked | |
398 | automatically, however it can be overridden in some cases. *) | |
399 | type scflavor = | |
400 | Optimistic | |
401 | (** Add missing attributes to make the object consistant, or add | |
402 | objectclasses in order to make illegal attribues legal *) | |
403 | | Pessimistic | |
404 | (** Delete objectclasses which must attributes which are | |
405 | missing, and delete illegal attributes. *) | |
406 | ||
407 | (** given a name of an attribute name (canonical or otherwise), return | |
408 | its oid @raise Invalid_attribute If the attribute is not found in the schema. *) | |
226 | 409 | val attrToOid : |
227 | 410 | Ldap_schemaparser.schema -> |
228 | 411 | Ldap_schemaparser.Lcstring.t -> Ldap_schemaparser.Oid.t |
229 | 412 | |
230 | (** given the oid of an attribute, return its canonical name *) | |
413 | (** given the oid of an attribute, return its canonical name @raise | |
414 | Invalid_attribute If the attribute is not found in the schema. *) | |
231 | 415 | val oidToAttr : Ldap_schemaparser.schema -> Ldap_schemaparser.Oid.t -> string |
232 | 416 | |
233 | (** given a name of an objectclass, return its oid *) | |
417 | (** given a name of an objectclass (canonical or otherwise), return | |
418 | its oid. @raise Invalid_objectclass If the objectclass is not | |
419 | found in the schema. *) | |
234 | 420 | val ocToOid : |
235 | 421 | Ldap_schemaparser.schema -> |
236 | 422 | Ldap_schemaparser.Lcstring.t -> Ldap_schemaparser.Oid.t |
237 | 423 | |
238 | (** given the oid of an objectclass, return its canonical name *) | |
424 | (** given the oid of an objectclass, return its canonical name @raise | |
425 | Invalid_objectclass If the objectclass is not found in the | |
426 | schema. *) | |
239 | 427 | val oidToOc : Ldap_schemaparser.schema -> Ldap_schemaparser.Oid.t -> string |
240 | 428 | |
241 | (** get an objectclass structure by one of its names *) | |
429 | (** get an objectclass structure by one of its names (canonical or | |
430 | otherwise, however getting it by canonical name is currently much | |
431 | faster) @raise Invalid_objectclass If the objectclass is not found | |
432 | in the schema. *) | |
242 | 433 | val getOc : |
243 | 434 | Ldap_schemaparser.schema -> |
244 | 435 | Ldap_schemaparser.Lcstring.t -> Ldap_schemaparser.objectclass |
245 | 436 | |
246 | (** get an attr structure by one of its names *) | |
437 | (** get an attr structure by one of its names (canonical or otherwise, | |
438 | however getting it by canonical name is currently much faster) | |
439 | @raise Invalid_attribute If the attribute is not found in the | |
440 | schema. *) | |
247 | 441 | val getAttr : |
248 | 442 | Ldap_schemaparser.schema -> |
249 | 443 | Ldap_schemaparser.Lcstring.t -> Ldap_schemaparser.attribute |
250 | 444 | |
251 | (** equate attributes by oid. This allows aliases to be handled | |
252 | correctly, for example "uid" and "userID" are actually the same | |
253 | attribute. *) | |
445 | (** equate attributes by oid. This allows non canonical names to be | |
446 | handled correctly, for example "uid" and "userID" are actually the | |
447 | same attribute. @raise Invalid_attribute If either attribute is | |
448 | not found in the schema. *) | |
254 | 449 | val equateAttrs : |
255 | 450 | Ldap_schemaparser.schema -> |
256 | 451 | Ldap_schemaparser.Lcstring.t -> Ldap_schemaparser.Lcstring.t -> bool |
262 | 457 | |
263 | 458 | class scldapentry : |
264 | 459 | Ldap_schemaparser.schema -> |
265 | object | |
266 | method add : op_lst -> unit | |
267 | method attributes : string list | |
268 | method changes : (Ldap_types.modify_optype * string * string list) list | |
269 | method changetype : changetype | |
270 | method delete : op_lst -> unit | |
271 | method dn : string | |
272 | method exists : string -> bool | |
273 | method flush_changes : unit | |
274 | method get_value : string -> string list | |
275 | method diff : ldapentry_t -> (Ldap_types.modify_optype * string * string list) list | |
276 | method is_allowed : string -> bool | |
277 | method is_missing : string -> bool | |
278 | method list_allowed : Setstr.elt list | |
279 | method list_missing : Setstr.elt list | |
280 | method list_present : Setstr.elt list | |
281 | method modify : | |
282 | (Ldap_types.modify_optype * string * string list) list -> unit | |
283 | method of_entry : ?scflavor:scflavor -> ldapentry -> unit | |
284 | method print : unit | |
285 | method replace : op_lst -> unit | |
286 | method set_changetype : changetype -> unit | |
287 | method set_dn : string -> unit | |
288 | end | |
289 | ||
460 | object | |
461 | (** {2 New Methods} *) | |
462 | ||
463 | (** Returns true if the attributed specified is allowed by the | |
464 | current set of objectclasses present on the entry. *) | |
465 | method is_allowed : string -> bool | |
466 | ||
467 | (** Returns true if the attribute specified is a must, but is not | |
468 | currently present. *) | |
469 | method is_missing : string -> bool | |
470 | ||
471 | (** Return a list of all attributes allowed on the entry (by oid) *) | |
472 | method list_allowed : Setstr.elt list | |
473 | ||
474 | (** Return a list of all missing attributes (by oid) *) | |
475 | method list_missing : Setstr.elt list | |
476 | ||
477 | (** Return a list of all present attributes. In contrast to the | |
478 | [attributes] method, this method ignores missing required | |
479 | attributes and just returns those attributes which are actually | |
480 | present. *) | |
481 | method list_present : Setstr.elt list | |
482 | ||
483 | (** Given an {!Ldap_ooclient.ldapentry} copy all of it's data into | |
484 | the current object, and perform a schema check. | |
485 | ||
486 | @param scflavor Default [Pessimistic] The schema checking | |
487 | bias, see {!Ldap_ooclient.scflavor} *) | |
488 | method of_entry : ?scflavor:scflavor -> ldapentry -> unit | |
489 | ||
490 | (** {2 Inherited Methods} *) | |
491 | ||
492 | (** Add values to the entry, just as | |
493 | {!Ldap_ooclient.ldapentry.add}, However, after the add is | |
494 | complete the schema checker is run in [Optimistic] mode. see | |
495 | {!Ldap_ooclient.scflavor} *) | |
496 | method add : op_lst -> unit | |
497 | ||
498 | (** Same as {!Ldap_ooclient.ldapentry.add}, except that the schema | |
499 | checker is run in [Pessimistic] mode after the operation is | |
500 | complete. see {!Ldap_ooclient.scflavor} *) | |
501 | method delete : op_lst -> unit | |
502 | ||
503 | (** Same as {!Ldap_ooclient.ldapentry.replace} except that once | |
504 | the replace has completed the schema checker is run again in | |
505 | [Optimistic] mode. See {!Ldap_ooclient.scflavor} *) | |
506 | method replace : op_lst -> unit | |
507 | ||
508 | (** Same as {!Ldap_ooclient.ldapentry.attributes}, except that the | |
509 | returned list contains attributes which may not yet exist on | |
510 | the entry. For example musts which are not yet present will be | |
511 | listed. *) | |
512 | method attributes : string list | |
513 | ||
514 | (** Same as {!Ldap_ooclient.ldapentry.exists} except that it | |
515 | refrences attributes which may not yet exist. For example musts | |
516 | which are not yet present. *) | |
517 | method exists : string -> bool | |
518 | ||
519 | (** Same as {!Ldap_ooclient.ldapentry.get_value}, except that | |
520 | attributes which do not yet exists may be referenced. For example | |
521 | a must which has not yet been satisfied will return [["required"]] | |
522 | when [get_value] is called on it. *) | |
523 | method get_value : string -> string list | |
524 | ||
525 | (** Same as {!Ldap_ooclient.ldapentry.modify} except that the | |
526 | schema checker is run in [Pessimistic] mode after the | |
527 | modification is applied. see {!Ldap_ooclient.scflavor}. *) | |
528 | method modify : | |
529 | (Ldap_types.modify_optype * string * string list) list -> unit | |
530 | ||
531 | (** Same as {!Ldap_ooclient.ldapentry.changes} except that changes | |
532 | made by the schema checker may also be listed. *) | |
533 | method changes : (Ldap_types.modify_optype * string * string list) list | |
534 | ||
535 | (** Same as {!Ldap_ooclient.ldapentry.changetype} *) | |
536 | method changetype : changetype | |
537 | ||
538 | (** Same as {!Ldap_ooclient.ldapentry.dn} *) | |
539 | method dn : string | |
540 | ||
541 | (** Same as {!Ldap_ooclient.ldapentry.flush_changes} *) | |
542 | method flush_changes : unit | |
543 | ||
544 | (** Same as {!Ldap_ooclient.ldapentry.diff} *) | |
545 | method diff : ldapentry_t -> (Ldap_types.modify_optype * string * string list) list | |
546 | ||
547 | (** @deprecated Same as {!Ldap_ooclient.ldapentry.print}, except | |
548 | that it prints attributes which may not yet be present on the | |
549 | object. For example, if the object has unsatisfied musts, it will | |
550 | print "attrname: required" for that attribute. *) | |
551 | method print : unit | |
552 | ||
553 | (** Same as {!Ldap_ooclient.ldapentry.set_changetype} *) | |
554 | method set_changetype : changetype -> unit | |
555 | ||
556 | (** Same as {!Ldap_ooclient.ldapentry.set_dn} *) | |
557 | method set_dn : string -> unit | |
558 | end | |
559 | ||
560 | (** {1 Schema Aware Entry for Account Managment} A derivative of | |
561 | {!Ldap_ooclient.scldapentry} which includes abstractions for | |
562 | managing user accounts in the directory. This class is | |
563 | experimantal, and may be drastically changed in the next version. | |
564 | As with all experimental code, use with caution. A few of its features. | |
565 | ||
566 | {ul | |
567 | {- Loosely dependant attributes: Many attributes are derived | |
568 | from others via a function. ldapaccount allows you to codify | |
569 | that relationship by providing an attribute generator | |
570 | ({!Ldap_ooclient.generator}) for the attribute, which will | |
571 | be used to derive it's value except in the case that it is | |
572 | specified explicitly} | |
573 | {- Attribute and Generator Grouping: via the service abstraction. | |
574 | Allows you to group attributes together with generators and | |
575 | default values in interesting ways. You can then assign the | |
576 | whole grouping a name, and refer to it by that name. See | |
577 | {!Ldap_ooclient.service}} | |
578 | {- Difference Based: Service operations are difference based, | |
579 | all applications of service operations compute the delta between | |
580 | the current object, and what the service requires. The minumum set | |
581 | of changes necessary to satisfy the service are applied to the object.} | |
582 | {- Idempotentcy: As a result of being difference based, | |
583 | Service operations are itempotent. For example, | |
584 | adding a service twice has no effect on the object. It will | |
585 | not queue changes for modification to the directory, and it | |
586 | will not change the object in memory. Deleting a service | |
587 | twice has no effect...etc}} | |
588 | ||
589 | *) | |
590 | ||
591 | (** The structure of a generator *) | |
290 | 592 | type generator = { |
291 | gen_name : string; | |
593 | (** The name of the generator, this should also be its key in the hashtbl *) | |
594 | gen_name : string; | |
595 | ||
596 | (** A list of names of attributes which are required by this | |
597 | generator. The names need not be canonical. *) | |
292 | 598 | required : string list; |
599 | ||
600 | (** A function which returns a list of values for the attribute, | |
601 | given the entire object. *) | |
293 | 602 | genfun : ldapentry_t -> string list; |
294 | 603 | } |
295 | 604 | |
605 | (** The structure of a service *) | |
296 | 606 | type service = { |
607 | (** The name of the service, should also be its key in the hashtbl. *) | |
297 | 608 | svc_name : string; |
609 | ||
610 | (** A list of attributes and values which must be present for the | |
611 | service to be satisfied. *) | |
298 | 612 | static_attrs : (string * string list) list; |
613 | ||
614 | (** A list of attributes to generate. *) | |
299 | 615 | generate_attrs : string list; |
616 | ||
617 | (** A list of services on which this service depends. *) | |
300 | 618 | depends : string list; |
301 | 619 | } |
620 | ||
621 | (** The type of error raised by attribute generators *) | |
302 | 622 | type generation_error = |
303 | 623 | Missing_required of string list |
304 | 624 | | Generator_error of string |
305 | 625 | |
626 | (** You've asked it to generate an attribute (in a service) which | |
627 | doesn't have a generator *) | |
306 | 628 | exception No_generator of string |
629 | ||
630 | (** Generator has failed because of some kind of error *) | |
307 | 631 | exception Generation_failed of generation_error |
632 | ||
633 | (** The service you're talking about doesn't exist *) | |
308 | 634 | exception No_service of string |
635 | ||
636 | (** A service which the one you tried to add depends on doesn't exists *) | |
309 | 637 | exception Service_dep_unsatisfiable of string |
638 | ||
639 | (** Your generator depends on an attribute which isn't in the schema *) | |
310 | 640 | exception Generator_dep_unsatisfiable of string * string |
641 | ||
642 | (** You have detached cycles in your generator dependancy lists *) | |
311 | 643 | exception Cannot_sort_dependancies of string list |
312 | 644 | |
313 | 645 | class ldapaccount : |
314 | 646 | Ldap_schemaparser.schema -> |
315 | (string, generator) Hashtbl.t -> | |
316 | (string, service) Hashtbl.t -> | |
317 | object | |
318 | method adapt_service : service -> service | |
319 | method add : op_lst -> unit | |
320 | method add_generate : string -> unit | |
321 | method add_service : string -> unit | |
322 | method attributes : string list | |
323 | method changes : (Ldap_types.modify_optype * string * string list) list | |
324 | method changetype : changetype | |
325 | method delete : op_lst -> unit | |
326 | method delete_generate : string -> unit | |
327 | method delete_service : string -> unit | |
328 | method dn : string | |
329 | method diff : ldapentry_t -> (Ldap_types.modify_optype * string * string list) list | |
330 | method exists : string -> bool | |
331 | method flush_changes : unit | |
332 | method generate : unit | |
333 | method get_value : string -> string list | |
334 | method is_allowed : string -> bool | |
335 | method is_missing : string -> bool | |
336 | method list_allowed : Setstr.elt list | |
337 | method list_missing : Setstr.elt list | |
338 | method list_present : Setstr.elt list | |
339 | method modify : | |
340 | (Ldap_types.modify_optype * string * string list) list -> unit | |
341 | method of_entry : ?scflavor:scflavor -> ldapentry -> unit | |
342 | method print : unit | |
343 | method replace : op_lst -> unit | |
344 | method service_exists : string -> bool | |
345 | method services_present : string list | |
346 | method set_changetype : changetype -> unit | |
347 | method set_dn : string -> unit | |
348 | end | |
647 | (string, generator) Hashtbl.t -> | |
648 | (string, service) Hashtbl.t -> | |
649 | object | |
650 | ||
651 | (** {2 Account Manipulation Methods} *) | |
652 | ||
653 | (** add the named service to the object, this also adds all the | |
654 | services depended upon by the named service. *) | |
655 | method add_service : string -> unit | |
656 | ||
657 | (** Delete the named service. This will also delete all services | |
658 | which depend on it, either directly or indirectly *) | |
659 | method delete_service : string -> unit | |
660 | ||
661 | (** Run service through the delta engine to find out what changes | |
662 | would actually be applied to this object *) | |
663 | method adapt_service : service -> service | |
664 | ||
665 | (** Tests whether the named service is satisfied by the current | |
666 | entry. A service is satisfied if no changes would result from | |
667 | adding it to the entry. *) | |
668 | method service_exists : string -> bool | |
669 | ||
670 | (** Return a list of all the named services which are satisfied by | |
671 | the current entry. *) | |
672 | method services_present : string list | |
673 | ||
674 | (** add the named attribute to the list of attributes to be generated *) | |
675 | method add_generate : string -> unit | |
676 | ||
677 | (** Delete the named attribute from the list of attributes to generate *) | |
678 | method delete_generate : string -> unit | |
679 | ||
680 | (** Run the generation functions on the list of attributes to be | |
681 | generated, saving the results in the entry. You must run this | |
682 | method in order to run any generators at all. *) | |
683 | method generate : unit | |
684 | ||
685 | (** {2 Inherited Methods} Unless explicitly stated, these methods | |
686 | do exactly the same thing as in {!Ldap_ooclient.scldapentry} *) | |
687 | ||
688 | (** Missing attributes may be marked for generation. *) | |
689 | method add : op_lst -> unit | |
690 | method attributes : string list | |
691 | method changes : (Ldap_types.modify_optype * string * string list) list | |
692 | method changetype : changetype | |
693 | method delete : op_lst -> unit | |
694 | method dn : string | |
695 | method diff : ldapentry_t -> (Ldap_types.modify_optype * string * string list) list | |
696 | method exists : string -> bool | |
697 | method flush_changes : unit | |
698 | ||
699 | (** If a missing attribute is marked for generation its value will | |
700 | be ["generate"] instead of ["required"] *) | |
701 | method get_value : string -> string list | |
702 | method is_allowed : string -> bool | |
703 | method is_missing : string -> bool | |
704 | method list_allowed : Setstr.elt list | |
705 | method list_missing : Setstr.elt list | |
706 | method list_present : Setstr.elt list | |
707 | method modify : | |
708 | (Ldap_types.modify_optype * string * string list) list -> unit | |
709 | method of_entry : ?scflavor:scflavor -> ldapentry -> unit | |
710 | ||
711 | (** @deprecated Missing required attributes which will be | |
712 | generated are shown as "attrname: generate" instead of | |
713 | "attrname: required" *) | |
714 | method print : unit | |
715 | method replace : op_lst -> unit | |
716 | method set_changetype : changetype -> unit | |
717 | method set_dn : string -> unit | |
718 | end |
0 | open Ldap_mutex | |
1 | open Ldap_ooclient | |
2 | open Ldap_types | |
3 | ||
4 | type txn = { | |
5 | mutable dead: bool; | |
6 | entries: (string, (ldapentry_t * ldapentry_t)) Hashtbl.t | |
7 | } | |
8 | ||
9 | exception Rollback of exn * ((ldapentry_t * ldapentry_t) list) | |
10 | exception Txn_commit_failure of string * exn * ldapentry_t list option | |
11 | exception Txn_rollback_failure of string * exn | |
12 | ||
13 | class ldapadvisorytxcon | |
14 | ?(connect_timeout=1) | |
15 | ?(referral_policy=`RETURN) | |
16 | ?(version = 3) | |
17 | hosts binddn bindpw mutextbldn = | |
18 | let copy_entry entry = | |
19 | let new_entry = new ldapentry in | |
20 | new_entry#set_dn (entry#dn); | |
21 | List.iter | |
22 | (fun attr -> new_entry#add [(attr, entry#get_value attr)]) | |
23 | entry#attributes; | |
24 | new_entry | |
25 | in | |
26 | object (self) | |
27 | inherit ldapcon ~connect_timeout ~referral_policy ~version hosts as super | |
28 | initializer | |
29 | super#bind binddn ~cred:bindpw | |
30 | ||
31 | val lock_table = new object_lock_table hosts binddn bindpw mutextbldn | |
32 | ||
33 | method private check_dead txn = | |
34 | if txn.dead then | |
35 | raise | |
36 | (LDAP_Failure | |
37 | (`LOCAL_ERROR, | |
38 | "this transaction is dead, create a new one", | |
39 | {ext_matched_dn="";ext_referral=None})) | |
40 | ||
41 | method begin_txn = {dead=false;entries=Hashtbl.create 1} | |
42 | ||
43 | method associate_entry txn (entry: ldapentry_t) = | |
44 | self#check_dead txn; | |
45 | let dn = Ldap_dn.canonical_dn entry#dn in | |
46 | if Hashtbl.mem txn.entries dn then | |
47 | raise | |
48 | (LDAP_Failure | |
49 | (`LOCAL_ERROR, | |
50 | "dn: " ^ dn ^ " is already part of this transaction", | |
51 | {ext_matched_dn="";ext_referral=None})) | |
52 | else | |
53 | if entry#changes = [] then begin | |
54 | lock_table#lock (Ldap_dn.of_string dn); | |
55 | Hashtbl.add txn.entries dn ((copy_entry entry), (entry :> ldapentry_t)) | |
56 | end else | |
57 | raise | |
58 | (LDAP_Failure | |
59 | (`LOCAL_ERROR, | |
60 | "this entry has been changed since it was downloaded " ^ | |
61 | "commit your current changes, and then add the entry to " ^ | |
62 | "this transaction", | |
63 | {ext_matched_dn="";ext_referral=None})) | |
64 | ||
65 | method associate_entries txn entries = | |
66 | List.iter (self#associate_entry txn) entries | |
67 | ||
68 | method disassociate_entry txn (entry: ldapentry_t) = | |
69 | self#check_dead txn; | |
70 | let dn = Ldap_dn.canonical_dn entry#dn in | |
71 | if Hashtbl.mem txn.entries dn then begin | |
72 | Hashtbl.remove txn.entries dn; | |
73 | lock_table#unlock (Ldap_dn.of_string dn); | |
74 | end else | |
75 | raise | |
76 | (LDAP_Failure | |
77 | (`LOCAL_ERROR, | |
78 | "dn: " ^ dn ^ " is not part of this transaction", | |
79 | {ext_matched_dn="";ext_referral=None})) | |
80 | ||
81 | method disassociate_entries txn entries = | |
82 | List.iter (self#disassociate_entry txn) entries | |
83 | ||
84 | method commit_txn txn = | |
85 | self#check_dead txn; | |
86 | txn.dead <- true; | |
87 | try | |
88 | List.iter | |
89 | (fun (_, e) -> lock_table#unlock (Ldap_dn.of_string e#dn)) | |
90 | (Hashtbl.fold | |
91 | (fun k (original_entry, modified_entry) successful_so_far -> | |
92 | try | |
93 | (match modified_entry#changetype with | |
94 | `MODIFY -> super#update_entry modified_entry | |
95 | | `ADD -> super#add modified_entry | |
96 | | `DELETE -> super#delete modified_entry#dn | |
97 | | `MODRDN -> | |
98 | super#modrdn | |
99 | original_entry#dn | |
100 | (Ldap_dn.to_string | |
101 | [(List.hd | |
102 | (Ldap_dn.of_string modified_entry#dn))]) | |
103 | | `MODDN -> | |
104 | let dn = Ldap_dn.of_string modified_entry#dn in | |
105 | super#modrdn | |
106 | original_entry#dn | |
107 | (Ldap_dn.to_string [List.hd dn]) | |
108 | ~newsup:(Some (Ldap_dn.to_string (List.tl dn)))); | |
109 | (original_entry, modified_entry) :: successful_so_far | |
110 | with exn -> | |
111 | raise (Rollback (exn, successful_so_far))) | |
112 | txn.entries | |
113 | []) | |
114 | with Rollback (exn, successful_so_far) -> | |
115 | (Hashtbl.iter (fun k (_, e) -> e#flush_changes) txn.entries); | |
116 | (match | |
117 | ((Hashtbl.iter (* rollback everything in memory *) | |
118 | (fun k (original_entry, modified_entry) -> | |
119 | match modified_entry#changetype with | |
120 | `MODIFY -> modified_entry#modify (original_entry#diff modified_entry) | |
121 | | `ADD -> () | |
122 | | `DELETE -> () | |
123 | | `MODRDN -> | |
124 | if not (List.mem (original_entry, modified_entry) successful_so_far) then | |
125 | modified_entry#set_dn original_entry#dn | |
126 | | `MODDN -> | |
127 | if not (List.mem (original_entry, modified_entry) successful_so_far) then | |
128 | modified_entry#set_dn original_entry#dn) | |
129 | txn.entries); | |
130 | (List.fold_left (* rollback in the directory only what we commited *) | |
131 | (fun not_rolled_back (original_entry, modified_entry) -> | |
132 | try | |
133 | (match modified_entry#changetype with | |
134 | `MODIFY -> super#update_entry modified_entry | |
135 | | `ADD -> super#delete modified_entry#dn | |
136 | | `DELETE -> super#add modified_entry | |
137 | | `MODRDN -> | |
138 | super#modrdn | |
139 | (modified_entry#dn) | |
140 | (Ldap_dn.to_string | |
141 | [List.hd (Ldap_dn.of_string original_entry#dn)]) | |
142 | | `MODDN -> | |
143 | super#modrdn | |
144 | (modified_entry#dn) | |
145 | (Ldap_dn.to_string | |
146 | [List.hd (Ldap_dn.of_string original_entry#dn)]) | |
147 | ~newsup:(Some | |
148 | (Ldap_dn.to_string | |
149 | (List.tl | |
150 | (Ldap_dn.of_string | |
151 | original_entry#dn))))); | |
152 | not_rolled_back | |
153 | with _ -> modified_entry :: not_rolled_back) | |
154 | [] | |
155 | successful_so_far)) | |
156 | with | |
157 | [] -> | |
158 | Hashtbl.iter | |
159 | (fun k (e, _) -> lock_table#unlock (Ldap_dn.of_string e#dn)) | |
160 | txn.entries; | |
161 | (Hashtbl.iter (fun k (_, e) -> e#flush_changes) txn.entries); | |
162 | raise (Txn_commit_failure ("rollback successful", exn, None)) | |
163 | | not_rolled_back -> | |
164 | Hashtbl.iter | |
165 | (fun k (e, _) -> lock_table#unlock (Ldap_dn.of_string e#dn)) | |
166 | txn.entries; | |
167 | (Hashtbl.iter (fun k (_, e) -> e#flush_changes) txn.entries); | |
168 | raise | |
169 | (Txn_commit_failure | |
170 | ("rollback failed", exn, | |
171 | Some not_rolled_back))) | |
172 | ||
173 | method rollback_txn txn = | |
174 | txn.dead <- true; | |
175 | Hashtbl.iter | |
176 | (fun k (original_entry, modified_entry) -> | |
177 | try | |
178 | lock_table#unlock (Ldap_dn.of_string original_entry#dn); | |
179 | modified_entry#modify (original_entry#diff modified_entry); | |
180 | modified_entry#flush_changes | |
181 | with exn -> raise (Txn_rollback_failure ("rollback failed", exn))) | |
182 | txn.entries | |
183 | end |
0 | open Ldap_ooclient | |
1 | ||
2 | (** the abstract type of a transaction *) | |
3 | type txn | |
4 | ||
5 | (** raised when a commit fails, contains a list of entries which were | |
6 | not rolled back successfully only if rollback failed as well, | |
7 | otherwise None *) | |
8 | exception Txn_commit_failure of string * exn * ldapentry_t list option | |
9 | ||
10 | (** raised when an explicit rollback fails *) | |
11 | exception Txn_rollback_failure of string * exn | |
12 | ||
13 | (** A subclass of ldapcon which implements an experimental interface | |
14 | to draft_zeilenga_ldap_txn. A draft standard for multi object | |
15 | transactions over the ldap protocol. This class can only implement | |
16 | advisory transactions because it must depend on the advisory | |
17 | locking mechanisms for the transactions to be consistant. You use | |
18 | this class by calling begin_txn to get a transaction id, and then | |
19 | associating a set of ldapentry objects with the transaction by | |
20 | calling associate_entry_with_txn. You are then free to modify | |
21 | those entries in any way you like, and when you are done, you can | |
22 | either call commit_txn, or rollback_txn. Commit will commit the | |
23 | changes of all the entries associated with the transaction to the | |
24 | database. For other writers which obey advisory locking the commit | |
25 | operation is atomic. For readers which are willing to obey | |
26 | advisory locking is atomic. If the commit fails, a full rollback | |
27 | occurrs, including all changes made to the directory. For example | |
28 | in a set of N entries in a transaction, if the modificiation of | |
29 | the nth entry fails to commit, then the modifications to all the | |
30 | previous entries, which have already been made in the directory, | |
31 | are undone. It is important to note that if advisory locking is | |
32 | not obeyed, rollback may not be successful. Rollback undoes all | |
33 | the changes you've made in memory, and unlocks all the objects in | |
34 | the transaction. After a transaction object has been commited or | |
35 | rolled back it is considered "dead", and cannot be used again. *) | |
36 | class ldapadvisorytxcon : | |
37 | ?connect_timeout:int -> | |
38 | ?referral_policy:[> `RETURN ] -> | |
39 | ?version:int -> | |
40 | string list -> string -> string -> string -> (* hosts binddn bindpw mutextbldn *) | |
41 | object | |
42 | method add : ldapentry -> unit | |
43 | method bind : | |
44 | ?cred:string -> ?meth:Ldap_funclient.authmethod -> string -> unit | |
45 | method delete : string -> unit | |
46 | method modify : | |
47 | string -> | |
48 | (Ldap_types.modify_optype * string * string list) list -> unit | |
49 | method modrdn : string -> ?deleteoldrdn:bool -> ?newsup:string option -> string -> unit | |
50 | method rawschema : ldapentry | |
51 | method schema : Ldap_schemaparser.schema | |
52 | method search : | |
53 | ?scope:Ldap_types.search_scope -> | |
54 | ?attrs:string list -> | |
55 | ?attrsonly:bool -> ?base:string -> string -> ldapentry list | |
56 | method search_a : | |
57 | ?scope:Ldap_types.search_scope -> | |
58 | ?attrs:string list -> | |
59 | ?attrsonly:bool -> ?base:string -> string -> (?abandon:bool -> unit -> ldapentry) | |
60 | method unbind : unit | |
61 | method update_entry : ldapentry -> unit | |
62 | method begin_txn : txn | |
63 | method associate_entry : txn -> ldapentry_t -> unit | |
64 | method associate_entries : txn -> ldapentry_t list -> unit | |
65 | method disassociate_entry : txn -> ldapentry_t -> unit | |
66 | method disassociate_entries : txn -> ldapentry_t list -> unit | |
67 | method commit_txn : txn -> unit | |
68 | method rollback_txn : txn -> unit | |
69 | end |
290 | 290 | url_filter: filter option; |
291 | 291 | url_ext: ((bool * string * string) list) option; |
292 | 292 | } |
293 | ||
294 | (** see draft-zeilenga-ldap-grouping-xx Ldap grouping is a way of | |
295 | telling the server that a set of ldap operations is related, its most | |
296 | interesting application is transactions across multiple objects. | |
297 | This draft is not yet implemented by any present day ldap server *) | |
298 | type ldap_grouping_type = [ `LDAP_GROUP_TXN ] | |
299 | ||
300 | (** a cookie that is sent with every ldap operation which is part of a | |
301 | group *) | |
302 | type ldap_grouping_cookie |
290 | 290 | url_filter: filter option; |
291 | 291 | url_ext: ((bool * string * string) list) option; |
292 | 292 | } |
293 | ||
294 | (** see draft-zeilenga-ldap-grouping-xx Ldap grouping is a way of | |
295 | telling the server that a set of ldap operations is related, its most | |
296 | interesting application is transactions across multiple objects. | |
297 | This draft is not yet implemented by any present day ldap server *) | |
298 | type ldap_grouping_type = [ `LDAP_GROUP_TXN ] | |
299 | ||
300 | (** a cookie that is sent with every ldap operation which is part of a | |
301 | group *) | |
302 | type ldap_grouping_cookie |
95 | 95 | with End -> !objects |
96 | 96 | in |
97 | 97 | List.fold_left f v objects |
98 | ||
98 | ||
99 | 99 | class ldif ?(in_ch=stdin) ?(out_ch=stdout) () = |
100 | 100 | object (self) |
101 | 101 | val in_ch = {stream=(Stream.of_channel in_ch);buf=Buffer.create 256;line=1} |
125 | 125 | Buffer.clear outbuf; |
126 | 126 | raise exn |
127 | 127 | end |
128 | ||
129 | let read_ldif_file file = | |
130 | let fd = open_in file in | |
131 | try | |
132 | let ldif = new ldif ~in_ch:fd () in | |
133 | let entries = fold (fun l e -> e :: l) ldif [] in | |
134 | close_in fd; | |
135 | entries | |
136 | with exn -> close_in fd;raise exn | |
137 | ||
138 | let write_ldif_file file entries = | |
139 | let fd = open_out file in | |
140 | try | |
141 | let ldif = new ldif ~out_ch:fd () in | |
142 | List.iter ldif#write_entry entries; | |
143 | close_out fd | |
144 | with exn -> close_out fd;raise exn |
36 | 36 | val entry2ldif : ?ext:bool -> Buffer.t -> |
37 | 37 | < attributes : string list; dn : string; get_value : string -> |
38 | 38 | string list; .. > -> Buffer.t |
39 | ||
40 | (** read all the entries in the named ldif file and return them in a list *) | |
41 | val read_ldif_file : string -> Ldap_ooclient.ldapentry list | |
42 | ||
43 | (** write all the entries in the given list to the named file in ldif format *) | |
44 | val write_ldif_file : string -> Ldap_ooclient.ldapentry list -> unit | |
39 | 45 | |
40 | 46 | class ldif: |
41 | 47 | ?in_ch:Pervasives.in_channel -> |
7 | 7 | SUBSTR caseIgnoreSubstringsMatch |
8 | 8 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{512} |
9 | 9 | SINGLE-VALUE ) |
10 | ||
11 | # used to implement object locking tables | |
12 | # in the case of a modify rdn operation alternative | |
13 | # locking mechanisms should be used. | |
14 | attributetype ( 1.3.6.1.4.1.4754.10.39 | |
15 | NAME 'lockedObject' | |
16 | EQUALITY distinguishedNameMatch | |
17 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.12{512} ) | |
10 | 18 | |
11 | 19 | attributetype ( 1.3.6.1.4.1.4754.10.38 |
12 | 20 | NAME 'mutexName' |
22 | 30 | STRUCTURAL |
23 | 31 | MAY ( mutexName $ |
24 | 32 | description $ |
33 | lockedObject $ | |
25 | 34 | mutexLocked ) ) |