1 /* $NetBSD: common.h,v 1.1.1.3 2010/12/12 15:18:11 adam Exp $ */ 2 3 /* common.h - common definitions for the ldap client tools */ 4 /* OpenLDAP: pkg/ldap/clients/tools/common.h,v 1.24.2.6 2010/04/13 20:22:22 kurt Exp */ 5 /* This work is part of OpenLDAP Software <http://www.openldap.org/>. 6 * 7 * Copyright 1998-2010 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 char *prog; 61 62 /* connection */ 63 extern char *ldapuri; 64 extern char *ldaphost; 65 extern int ldapport; 66 extern int use_tls; 67 extern int protocol; 68 extern int version; 69 70 /* authc/authz */ 71 extern int authmethod; 72 extern char *binddn; 73 extern int want_bindpw; 74 extern struct berval passwd; 75 extern char *pw_file; 76 #ifdef HAVE_CYRUS_SASL 77 extern unsigned sasl_flags; 78 extern char *sasl_realm; 79 extern char *sasl_authc_id; 80 extern char *sasl_authz_id; 81 extern char *sasl_mech; 82 extern char *sasl_secprops; 83 #endif 84 85 /* controls */ 86 extern char *assertion; 87 extern char *authzid; 88 extern int manageDIT; 89 extern int manageDSAit; 90 extern int noop; 91 extern int ppolicy; 92 extern int preread, postread; 93 extern ber_int_t pr_morePagedResults; 94 extern struct berval pr_cookie; 95 #ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR 96 extern int chaining; 97 #endif /* LDAP_CONTROL_X_CHAINING_BEHAVIOR */ 98 extern ber_int_t vlvPos; 99 extern ber_int_t vlvCount; 100 extern struct berval *vlvContext; 101 102 /* options */ 103 extern struct timeval nettimeout; 104 105 /* Defined in common.c, set in main() */ 106 extern const char __Version[]; 107 108 /* Defined in main program */ 109 extern const char options[]; 110 111 void usage LDAP_P(( void )) LDAP_GCCATTR((noreturn)); 112 int handle_private_option LDAP_P(( int i )); 113 114 /* Defined in common.c */ 115 void tool_init LDAP_P(( tool_type_t type )); 116 void tool_common_usage LDAP_P(( void )); 117 void tool_args LDAP_P(( int, char ** )); 118 LDAP *tool_conn_setup LDAP_P(( int dont, void (*private_setup)( LDAP * ) )); 119 void tool_bind LDAP_P(( LDAP * )); 120 void tool_unbind LDAP_P(( LDAP * )); 121 void tool_destroy LDAP_P(( void )); 122 void tool_server_controls LDAP_P(( LDAP *, LDAPControl *, int )); 123 int tool_check_abandon LDAP_P(( LDAP *ld, int msgid )); 124 void tool_perror LDAP_P(( 125 const char *func, 126 int err, 127 const char *extra, 128 const char *matched, 129 const char *info, 130 char **refs )); 131 void tool_print_ctrls LDAP_P(( LDAP *ld, LDAPControl **ctrls )); 132 int tool_write_ldif LDAP_P(( int type, char *name, char *value, ber_len_t vallen )); 133 int tool_is_oid LDAP_P(( const char *s )); 134 135 136 LDAP_END_DECL 137 138 #endif /* _CLIENT_TOOLS_COMMON_H_ */ 139