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 40 TOOL_WRITE = (TOOL_ADD|TOOL_DELETE|TOOL_MODIFY|TOOL_MODRDN), 41 TOOL_READ = (TOOL_SEARCH|TOOL_COMPARE), 42 43 TOOL_ALL = 0xFFU 44 } tool_type_t; 45 46 47 /* input-related vars */ 48 49 /* misc. parameters */ 50 extern tool_type_t tool_type; 51 extern int contoper; 52 extern int debug; 53 extern char *infile; 54 extern int dont; 55 extern int referrals; 56 extern int verbose; 57 extern int ldif; 58 extern ber_len_t ldif_wrap; 59 extern char *prog; 60 61 /* connection */ 62 extern char *ldapuri; 63 extern char *ldaphost; 64 extern int ldapport; 65 extern int use_tls; 66 extern int protocol; 67 extern int version; 68 69 /* authc/authz */ 70 extern int authmethod; 71 extern char *binddn; 72 extern int want_bindpw; 73 extern struct berval passwd; 74 extern char *pw_file; 75 #ifdef HAVE_CYRUS_SASL 76 extern unsigned sasl_flags; 77 extern char *sasl_realm; 78 extern char *sasl_authc_id; 79 extern char *sasl_authz_id; 80 extern char *sasl_mech; 81 extern char *sasl_secprops; 82 #endif 83 84 /* controls */ 85 extern char *assertion; 86 extern char *authzid; 87 extern int manageDIT; 88 extern int manageDSAit; 89 extern int noop; 90 extern int ppolicy; 91 extern int preread, postread; 92 extern ber_int_t pr_morePagedResults; 93 extern struct berval pr_cookie; 94 #ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR 95 extern int chaining; 96 #endif /* LDAP_CONTROL_X_CHAINING_BEHAVIOR */ 97 extern ber_int_t vlvPos; 98 extern ber_int_t vlvCount; 99 extern struct berval *vlvContext; 100 101 /* features */ 102 extern int backlog; 103 104 /* options */ 105 extern struct timeval nettimeout; 106 107 /* Defined in common.c, set in main() */ 108 extern const char __Version[]; 109 110 /* Defined in main program */ 111 extern const char options[]; 112 113 void usage LDAP_P(( void )) LDAP_GCCATTR((noreturn)); 114 int handle_private_option LDAP_P(( int i )); 115 116 /* Defined in common.c */ 117 void tool_init LDAP_P(( tool_type_t type )); 118 void tool_common_usage LDAP_P(( void )); 119 void tool_args LDAP_P(( int, char ** )); 120 LDAP *tool_conn_setup LDAP_P(( int dont, void (*private_setup)( LDAP * ) )); 121 void tool_bind LDAP_P(( LDAP * )); 122 void tool_unbind LDAP_P(( LDAP * )); 123 void tool_destroy LDAP_P(( void )); 124 void tool_exit LDAP_P(( LDAP *ld, int status )) LDAP_GCCATTR((noreturn)); 125 void tool_server_controls LDAP_P(( LDAP *, LDAPControl *, int )); 126 int tool_check_abandon LDAP_P(( LDAP *ld, int msgid )); 127 void tool_perror LDAP_P(( 128 const char *func, 129 int err, 130 const char *extra, 131 const char *matched, 132 const char *info, 133 char **refs )); 134 void tool_print_ctrls LDAP_P(( LDAP *ld, LDAPControl **ctrls )); 135 int tool_write_ldif LDAP_P(( int type, char *name, char *value, ber_len_t vallen )); 136 int tool_is_oid LDAP_P(( const char *s )); 137 138 139 LDAP_END_DECL 140 141 #endif /* _CLIENT_TOOLS_COMMON_H_ */ 142