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 
25 typedef 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 
36 extern struct tester_conn_args * tester_init( const char *pname, tester_t ptype );
37 extern char * tester_uri( char *uri );
38 extern void tester_error( const char *msg );
39 extern void tester_perror( const char *fname, const char *msg );
40 extern void tester_ldap_error( LDAP *ld, const char *fname, const char *msg );
41 extern int tester_ignore_str2errlist( const char *err );
42 extern int tester_ignore_err( int err );
43 
44 struct 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 
87 extern int tester_config_opt( struct tester_conn_args *config, char opt, char *optarg );
88 extern void tester_config_finish( struct tester_conn_args *config );
89 extern void tester_init_ld( LDAP **ldp, struct tester_conn_args *conf, int flags );
90 
91 extern pid_t                  pid;
92 extern int                              debug;
93 
94 #endif /* SLAPD_COMMON_H */
95