r23798: updated old Temple Place FSF addresses to new URL
[kai/samba.git] / source3 / lib / ldb / tools / cmdline.h
1 /* 
2    ldb database library - command line handling for ldb tools
3
4    Copyright (C) Andrew Tridgell  2005
5
6      ** NOTE! The following LGPL license applies to the ldb
7      ** library. This does NOT imply that all of Samba is released
8      ** under the LGPL
9    
10    This library is free software; you can redistribute it and/or
11    modify it under the terms of the GNU Lesser General Public
12    License as published by the Free Software Foundation; either
13    version 3 of the License, or (at your option) any later version.
14
15    This library is distributed in the hope that it will be useful,
16    but WITHOUT ANY WARRANTY; without even the implied warranty of
17    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18    Lesser General Public License for more details.
19
20    You should have received a copy of the GNU Lesser General Public
21    License along with this library; if not, see <http://www.gnu.org/licenses/>.
22 */
23
24 #include <popt.h>
25
26 struct ldb_cmdline {
27         const char *url;
28         enum ldb_scope scope;
29         const char *basedn;
30         int interactive;
31         int sorted;
32         const char *editor;
33         int verbose;
34         int recursive;
35         int all_records;
36         int nosync;
37         const char **options;
38         int argc;
39         const char **argv;
40         int num_records;
41         int num_searches;
42         const char *sasl_mechanism;
43         const char *input;
44         const char *output;
45         char **controls;
46 };
47
48 struct ldb_cmdline *ldb_cmdline_process(struct ldb_context *ldb, int argc, const char **argv,
49                                         void (*usage)(void));
50
51
52 struct ldb_control **parse_controls(void *mem_ctx, char **control_strings);
53 int handle_controls_reply(struct ldb_control **reply, struct ldb_control **request);