1 /* $NetBSD: common.h,v 1.2 2020/08/11 13:15:34 christos Exp $ */ 2 3 /* common.h - common definitions for the ldap client tools */ 4 /* $OpenLDAP$ */ 5 /* This work is part of OpenLDAP Software <http://www.openldap.org/>. 6 * 7 * Copyright 1998-2020 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 /* ACKNOWLEDGEMENTS: 19 * This file was initially created by Hallvard B. Furuseth based (in 20 * part) upon argument parsing code for individual tools located in 21 * this directory. 22 */ 23 24 #ifndef _CLIENT_TOOLS_COMMON_H_ 25 #define _CLIENT_TOOLS_COMMON_H_ 26 27 LDAP_BEGIN_DECL 28 29 typedef enum tool_type_t { 30 TOOL_SEARCH = 0x01U, 31 TOOL_COMPARE = 0x02U, 32 TOOL_ADD = 0x04U, 33 TOOL_DELETE = 0x08U, 34 TOOL_MODIFY = 0x10U, 35 TOOL_MODRDN = 0x20U, 36 37 TOOL_EXOP = 0x40U, 38 39 TOOL_WHOAMI = TOOL_EXOP | 0x100U, 40 TOOL_PASSWD = TOOL_EXOP | 0x200U, 41 42 TOOL_WRITE = (TOOL_ADD|TOOL_DELETE|TOOL_MODIFY|TOOL_MODRDN), 43 TOOL_READ = (TOOL_SEARCH|TOOL_COMPARE), 44 45 TOOL_ALL = 0xFFU 46 } tool_type_t; 47 48 49 /* input-related vars */ 50 51 /* misc. parameters */ 52 extern tool_type_t tool_type; 53 extern int contoper; 54 extern int debug; 55 extern char *infile; 56 extern int dont; 57 extern int referrals; 58 extern int verbose; 59 extern int ldif; 60 extern ber_len_t ldif_wrap; 61 extern char *prog; 62 63 /* connection */ 64 extern char *ldapuri; 65 extern char *ldaphost; 66 extern int ldapport; 67 extern int use_tls; 68 extern int protocol; 69 extern int version; 70 71 /* authc/authz */ 72 extern int authmethod; 73 extern char *binddn; 74 extern int want_bindpw; 75 extern struct berval passwd; 76 extern char *pw_file; 77 #ifdef HAVE_CYRUS_SASL 78 extern unsigned sasl_flags; 79 extern char *sasl_realm; 80 extern char *sasl_authc_id; 81 extern char *sasl_authz_id; 82 extern char *sasl_mech; 83 extern char *sasl_secprops; 84 #endif 85 86 /* controls */ 87 extern char *assertion; 88 extern char *authzid; 89 extern int manageDIT; 90 extern int manageDSAit; 91 extern int noop; 92 extern int ppolicy; 93 extern int preread, postread; 94 extern ber_int_t pr_morePagedResults; 95 extern struct berval pr_cookie; 96 #ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR 97 extern int chaining; 98 #endif /* LDAP_CONTROL_X_CHAINING_BEHAVIOR */ 99 extern ber_int_t vlvPos; 100 extern ber_int_t vlvCount; 101 extern struct berval *vlvContext; 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