1 /* common.h - common definitions for the ldap client tools */ 2 /* $OpenLDAP$ */ 3 /* This work is part of OpenLDAP Software <http://www.openldap.org/>. 4 * 5 * Copyright 1998-2021 The OpenLDAP Foundation. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted only as authorized by the OpenLDAP 10 * Public License. 11 * 12 * A copy of this license is available in the file LICENSE in the 13 * top-level directory of the distribution or, alternatively, at 14 * <http://www.OpenLDAP.org/license.html>. 15 */ 16 /* ACKNOWLEDGEMENTS: 17 * This file was initially created by Hallvard B. Furuseth based (in 18 * part) upon argument parsing code for individual tools located in 19 * this directory. 20 */ 21 22 #ifndef _CLIENT_TOOLS_COMMON_H_ 23 #define _CLIENT_TOOLS_COMMON_H_ 24 25 LDAP_BEGIN_DECL 26 27 typedef enum tool_type_t { 28 TOOL_SEARCH = 0x01U, 29 TOOL_COMPARE = 0x02U, 30 TOOL_ADD = 0x04U, 31 TOOL_DELETE = 0x08U, 32 TOOL_MODIFY = 0x10U, 33 TOOL_MODRDN = 0x20U, 34 35 TOOL_EXOP = 0x40U, 36 37 TOOL_WHOAMI = TOOL_EXOP | 0x100U, 38 TOOL_PASSWD = TOOL_EXOP | 0x200U, 39 TOOL_VC = TOOL_EXOP | 0x400U, 40 41 TOOL_WRITE = (TOOL_ADD|TOOL_DELETE|TOOL_MODIFY|TOOL_MODRDN), 42 TOOL_READ = (TOOL_SEARCH|TOOL_COMPARE), 43 44 TOOL_ALL = 0xFFU 45 } tool_type_t; 46 47 48 /* input-related vars */ 49 50 /* misc. parameters */ 51 extern tool_type_t tool_type; 52 extern int contoper; 53 extern int debug; 54 extern char *infile; 55 extern int dont; 56 extern int referrals; 57 extern int verbose; 58 extern int ldif; 59 extern ber_len_t ldif_wrap; 60 extern char *prog; 61 62 /* connection */ 63 extern char *ldapuri; 64 extern int use_tls; 65 extern int protocol; 66 extern int version; 67 68 /* authc/authz */ 69 extern int authmethod; 70 extern char *binddn; 71 extern int want_bindpw; 72 extern struct berval passwd; 73 extern char *pw_file; 74 #ifdef HAVE_CYRUS_SASL 75 extern unsigned sasl_flags; 76 extern char *sasl_realm; 77 extern char *sasl_authc_id; 78 extern char *sasl_authz_id; 79 extern char *sasl_mech; 80 extern char *sasl_secprops; 81 #endif 82 83 /* controls */ 84 extern char *assertion; 85 extern char *authzid; 86 extern int manageDIT; 87 extern int manageDSAit; 88 extern int noop; 89 extern int ppolicy; 90 extern int preread, postread; 91 extern ber_int_t pr_morePagedResults; 92 extern struct berval pr_cookie; 93 #ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR 94 extern int chaining; 95 #endif /* LDAP_CONTROL_X_CHAINING_BEHAVIOR */ 96 extern ber_int_t vlvPos; 97 extern ber_int_t vlvCount; 98 extern struct berval *vlvContext; 99 100 /* features */ 101 extern int backlog; 102 103 /* options */ 104 extern struct timeval nettimeout; 105 106 /* Defined in common.c, set in main() */ 107 extern const char __Version[]; 108 109 /* Defined in main program */ 110 extern const char options[]; 111 112 void usage LDAP_P(( void )) LDAP_GCCATTR((noreturn)); 113 int handle_private_option LDAP_P(( int i )); 114 115 /* Defined in common.c */ 116 void tool_init LDAP_P(( tool_type_t type )); 117 void tool_common_usage LDAP_P(( void )); 118 void tool_args LDAP_P(( int, char ** )); 119 LDAP *tool_conn_setup LDAP_P(( int dont, void (*private_setup)( LDAP * ) )); 120 void tool_bind LDAP_P(( LDAP * )); 121 void tool_unbind LDAP_P(( LDAP * )); 122 void tool_destroy LDAP_P(( void )); 123 void tool_exit LDAP_P(( LDAP *ld, int status )) LDAP_GCCATTR((noreturn)); 124 void tool_server_controls LDAP_P(( LDAP *, LDAPControl *, int )); 125 int tool_check_abandon LDAP_P(( LDAP *ld, int msgid )); 126 void tool_perror LDAP_P(( 127 const char *func, 128 int err, 129 const char *extra, 130 const char *matched, 131 const char *info, 132 char **refs )); 133 void tool_print_ctrls LDAP_P(( LDAP *ld, LDAPControl **ctrls )); 134 int tool_write_ldif LDAP_P(( int type, char *name, char *value, ber_len_t vallen )); 135 int tool_is_oid LDAP_P(( const char *s )); 136 137 138 LDAP_END_DECL 139 140 #endif /* _CLIENT_TOOLS_COMMON_H_ */ 141