1/*	$NetBSD: slapcommon.h,v 1.1.1.3 2010/12/12 15:22:48 adam Exp $	*/
2
3/* slapcommon.h - common definitions for the slap tools */
4/* OpenLDAP: pkg/ldap/servers/slapd/slapcommon.h,v 1.14.2.10 2010/04/14 22:59:10 quanah Exp */
5/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
6 *
7 * Copyright 1998-2010 The OpenLDAP Foundation.
8 * All rights reserved.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted only as authorized by the OpenLDAP
12 * Public License.
13 *
14 * A copy of this license is available in the file LICENSE in the
15 * top-level directory of the distribution or, alternatively, at
16 * <http://www.OpenLDAP.org/license.html>.
17 */
18
19#ifndef SLAPCOMMON_H_
20#define SLAPCOMMON_H_ 1
21
22#define SLAPD_TOOLS 1
23#include "slap.h"
24
25enum slaptool {
26	SLAPADD=1,	/* LDIF -> database tool */
27	SLAPCAT,	/* database -> LDIF tool */
28	SLAPDN,		/* DN check w/ syntax tool */
29	SLAPINDEX,	/* database index tool */
30	SLAPPASSWD,	/* password generation tool */
31	SLAPSCHEMA,	/* schema checking tool */
32	SLAPTEST,	/* slapd.conf test tool */
33	SLAPAUTH,	/* test authz-regexp and authc/authz stuff */
34	SLAPACL,	/* test acl */
35	SLAPLAST
36};
37
38typedef struct tool_vars {
39	Backend *tv_be;
40	int tv_dbnum;
41	int tv_verbose;
42	int tv_quiet;
43	int tv_update_ctxcsn;
44	int tv_continuemode;
45	int tv_nosubordinates;
46	int tv_dryrun;
47	int tv_jumpline;
48	struct berval tv_sub_ndn;
49	int tv_scope;
50	Filter *tv_filter;
51	struct LDIFFP	*tv_ldiffp;
52	struct berval tv_baseDN;
53	struct berval tv_authcDN;
54	struct berval tv_authzDN;
55	struct berval tv_authcID;
56	struct berval tv_authzID;
57	struct berval tv_mech;
58	char	*tv_realm;
59	struct berval tv_listener_url;
60	struct berval tv_peer_domain;
61	struct berval tv_peer_name;
62	struct berval tv_sock_name;
63	slap_ssf_t tv_ssf;
64	slap_ssf_t tv_transport_ssf;
65	slap_ssf_t tv_tls_ssf;
66	slap_ssf_t tv_sasl_ssf;
67	unsigned tv_dn_mode;
68	unsigned int tv_csnsid;
69} tool_vars;
70
71extern tool_vars tool_globals;
72
73#define	be tool_globals.tv_be
74#define	dbnum tool_globals.tv_dbnum
75#define verbose tool_globals.tv_verbose
76#define quiet tool_globals.tv_quiet
77#define jumpline tool_globals.tv_jumpline
78#define update_ctxcsn tool_globals.tv_update_ctxcsn
79#define continuemode tool_globals.tv_continuemode
80#define nosubordinates tool_globals.tv_nosubordinates
81#define dryrun tool_globals.tv_dryrun
82#define sub_ndn tool_globals.tv_sub_ndn
83#define scope tool_globals.tv_scope
84#define filter tool_globals.tv_filter
85#define ldiffp tool_globals.tv_ldiffp
86#define baseDN tool_globals.tv_baseDN
87#define authcDN tool_globals.tv_authcDN
88#define authzDN tool_globals.tv_authzDN
89#define authcID tool_globals.tv_authcID
90#define authzID tool_globals.tv_authzID
91#define mech tool_globals.tv_mech
92#define realm tool_globals.tv_realm
93#define listener_url tool_globals.tv_listener_url
94#define peer_domain tool_globals.tv_peer_domain
95#define peer_name tool_globals.tv_peer_name
96#define sock_name tool_globals.tv_sock_name
97#define ssf tool_globals.tv_ssf
98#define transport_ssf tool_globals.tv_transport_ssf
99#define tls_ssf tool_globals.tv_tls_ssf
100#define sasl_ssf tool_globals.tv_sasl_ssf
101#define dn_mode tool_globals.tv_dn_mode
102#define csnsid tool_globals.tv_csnsid
103#define SLAP_TOOL_LDAPDN_PRETTY		SLAP_LDAPDN_PRETTY
104#define SLAP_TOOL_LDAPDN_NORMAL		(SLAP_LDAPDN_PRETTY << 1)
105
106void slap_tool_init LDAP_P((
107	const char* name,
108	int tool,
109	int argc, char **argv ));
110
111int slap_tool_destroy LDAP_P((void));
112
113#endif /* SLAPCOMMON_H_ */
114