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-2011 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 25LDAP_BEGIN_DECL 26 27typedef 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 */ 50extern tool_type_t tool_type; 51extern int contoper; 52extern int debug; 53extern char *infile; 54extern int dont; 55extern int referrals; 56extern int verbose; 57extern int ldif; 58extern ber_len_t ldif_wrap; 59extern char *prog; 60 61/* connection */ 62extern char *ldapuri; 63extern char *ldaphost; 64extern int ldapport; 65extern int use_tls; 66extern int protocol; 67extern int version; 68 69/* authc/authz */ 70extern int authmethod; 71extern char *binddn; 72extern int want_bindpw; 73extern struct berval passwd; 74extern char *pw_file; 75#ifdef HAVE_CYRUS_SASL 76extern unsigned sasl_flags; 77extern char *sasl_realm; 78extern char *sasl_authc_id; 79extern char *sasl_authz_id; 80extern char *sasl_mech; 81extern char *sasl_secprops; 82#endif 83 84/* controls */ 85extern char *assertion; 86extern char *authzid; 87extern int manageDIT; 88extern int manageDSAit; 89extern int noop; 90extern int ppolicy; 91extern int preread, postread; 92extern ber_int_t pr_morePagedResults; 93extern struct berval pr_cookie; 94#ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR 95extern int chaining; 96#endif /* LDAP_CONTROL_X_CHAINING_BEHAVIOR */ 97extern ber_int_t vlvPos; 98extern ber_int_t vlvCount; 99extern struct berval *vlvContext; 100 101/* options */ 102extern struct timeval nettimeout; 103 104/* Defined in common.c, set in main() */ 105extern const char __Version[]; 106 107/* Defined in main program */ 108extern const char options[]; 109 110void usage LDAP_P(( void )) LDAP_GCCATTR((noreturn)); 111int handle_private_option LDAP_P(( int i )); 112 113/* Defined in common.c */ 114void tool_init LDAP_P(( tool_type_t type )); 115void tool_common_usage LDAP_P(( void )); 116void tool_args LDAP_P(( int, char ** )); 117LDAP *tool_conn_setup LDAP_P(( int dont, void (*private_setup)( LDAP * ) )); 118void tool_bind LDAP_P(( LDAP * )); 119void tool_unbind LDAP_P(( LDAP * )); 120void tool_destroy LDAP_P(( void )); 121void tool_exit LDAP_P(( LDAP *ld, int status )) LDAP_GCCATTR((noreturn)); 122void tool_server_controls LDAP_P(( LDAP *, LDAPControl *, int )); 123int tool_check_abandon LDAP_P(( LDAP *ld, int msgid )); 124void 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 )); 131void tool_print_ctrls LDAP_P(( LDAP *ld, LDAPControl **ctrls )); 132int tool_write_ldif LDAP_P(( int type, char *name, char *value, ber_len_t vallen )); 133int tool_is_oid LDAP_P(( const char *s )); 134 135 136LDAP_END_DECL 137 138#endif /* _CLIENT_TOOLS_COMMON_H_ */ 139