1/*	$NetBSD: slapd-common.h,v 1.3 2021/08/14 16:15:03 christos Exp $	*/
2
3/* $OpenLDAP$ */
4/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
5 *
6 * Copyright 1999-2021 The OpenLDAP Foundation.
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted only as authorized by the OpenLDAP
11 * Public License.
12 *
13 * A copy of this license is available in file LICENSE in the
14 * top-level directory of the distribution or, alternatively, at
15 * <http://www.OpenLDAP.org/license.html>.
16 */
17/* ACKNOWLEDGEMENTS:
18 * This work was initially developed by Howard Chu for inclusion
19 * in OpenLDAP Software.
20 */
21
22#ifndef SLAPD_COMMON_H
23#define SLAPD_COMMON_H
24
25typedef enum {
26	TESTER_TESTER,
27	TESTER_ADDEL,
28	TESTER_BIND,
29	TESTER_MODIFY,
30	TESTER_MODRDN,
31	TESTER_READ,
32	TESTER_SEARCH,
33	TESTER_LAST
34} tester_t;
35
36extern struct tester_conn_args * tester_init( const char *pname, tester_t ptype );
37extern char * tester_uri( char *uri );
38extern void tester_error( const char *msg );
39extern void tester_perror( const char *fname, const char *msg );
40extern void tester_ldap_error( LDAP *ld, const char *fname, const char *msg );
41extern int tester_ignore_str2errlist( const char *err );
42extern int tester_ignore_err( int err );
43
44struct tester_conn_args {
45	char *uri;
46
47	int outerloops;
48	int loops;
49	int retries;
50	int delay;
51
52	int chaserefs;
53
54	int authmethod;
55
56	char *binddn;
57	struct berval pass;
58
59#ifdef HAVE_CYRUS_SASL
60	char *mech;
61	char *realm;
62	char *authz_id;
63	char *authc_id;
64	char *secprops;
65	void *defaults;
66#endif
67};
68
69#define TESTER_INIT_ONLY (1 << 0)
70#define TESTER_INIT_NOEXIT (1 << 1)
71#define TESTER_COMMON_OPTS "CD:d:H:L:l:i:O:R:U:X:Y:r:t:w:x"
72#define TESTER_COMMON_HELP \
73	"[-C] " \
74	"[-D <dn> [-w <passwd>]] " \
75	"[-d <level>] " \
76	"[-H <uri>]" \
77	"[-i <ignore>] " \
78	"[-l <loops>] " \
79	"[-L <outerloops>] " \
80	"[-r <maxretries>] " \
81	"[-t <delay>] " \
82	"[-O <SASL secprops>] " \
83	"[-R <SASL realm>] " \
84	"[-U <SASL authcid> [-X <SASL authzid>]] " \
85	"[-x | -Y <SASL mech>] "
86
87extern int tester_config_opt( struct tester_conn_args *config, char opt, char *optarg );
88extern void tester_config_finish( struct tester_conn_args *config );
89extern void tester_init_ld( LDAP **ldp, struct tester_conn_args *conf, int flags );
90
91extern pid_t		pid;
92extern int			debug;
93
94#endif /* SLAPD_COMMON_H */
95