1*549b59edSchristos /* $NetBSD: common.h,v 1.3 2021/08/14 16:14:49 christos Exp $ */ 24e6df137Slukem 32de962bdSlukem /* common.h - common definitions for the ldap client tools */ 4d11b170bStron /* $OpenLDAP$ */ 52de962bdSlukem /* This work is part of OpenLDAP Software <http://www.openldap.org/>. 62de962bdSlukem * 7*549b59edSchristos * Copyright 1998-2021 The OpenLDAP Foundation. 82de962bdSlukem * All rights reserved. 92de962bdSlukem * 102de962bdSlukem * Redistribution and use in source and binary forms, with or without 112de962bdSlukem * modification, are permitted only as authorized by the OpenLDAP 122de962bdSlukem * Public License. 132de962bdSlukem * 142de962bdSlukem * A copy of this license is available in the file LICENSE in the 152de962bdSlukem * top-level directory of the distribution or, alternatively, at 162de962bdSlukem * <http://www.OpenLDAP.org/license.html>. 172de962bdSlukem */ 182de962bdSlukem /* ACKNOWLEDGEMENTS: 192de962bdSlukem * This file was initially created by Hallvard B. Furuseth based (in 202de962bdSlukem * part) upon argument parsing code for individual tools located in 212de962bdSlukem * this directory. 222de962bdSlukem */ 232de962bdSlukem 242de962bdSlukem #ifndef _CLIENT_TOOLS_COMMON_H_ 252de962bdSlukem #define _CLIENT_TOOLS_COMMON_H_ 262de962bdSlukem 272de962bdSlukem LDAP_BEGIN_DECL 282de962bdSlukem 292de962bdSlukem typedef enum tool_type_t { 302de962bdSlukem TOOL_SEARCH = 0x01U, 312de962bdSlukem TOOL_COMPARE = 0x02U, 322de962bdSlukem TOOL_ADD = 0x04U, 332de962bdSlukem TOOL_DELETE = 0x08U, 342de962bdSlukem TOOL_MODIFY = 0x10U, 352de962bdSlukem TOOL_MODRDN = 0x20U, 362de962bdSlukem 372de962bdSlukem TOOL_EXOP = 0x40U, 382de962bdSlukem 392de962bdSlukem TOOL_WHOAMI = TOOL_EXOP | 0x100U, 402de962bdSlukem TOOL_PASSWD = TOOL_EXOP | 0x200U, 41*549b59edSchristos TOOL_VC = TOOL_EXOP | 0x400U, 422de962bdSlukem 432de962bdSlukem TOOL_WRITE = (TOOL_ADD|TOOL_DELETE|TOOL_MODIFY|TOOL_MODRDN), 442de962bdSlukem TOOL_READ = (TOOL_SEARCH|TOOL_COMPARE), 452de962bdSlukem 462de962bdSlukem TOOL_ALL = 0xFFU 472de962bdSlukem } tool_type_t; 482de962bdSlukem 492de962bdSlukem 502de962bdSlukem /* input-related vars */ 512de962bdSlukem 522de962bdSlukem /* misc. parameters */ 532de962bdSlukem extern tool_type_t tool_type; 542de962bdSlukem extern int contoper; 552de962bdSlukem extern int debug; 562de962bdSlukem extern char *infile; 572de962bdSlukem extern int dont; 582de962bdSlukem extern int referrals; 592de962bdSlukem extern int verbose; 602de962bdSlukem extern int ldif; 61d11b170bStron extern ber_len_t ldif_wrap; 622de962bdSlukem extern char *prog; 632de962bdSlukem 642de962bdSlukem /* connection */ 652de962bdSlukem extern char *ldapuri; 662de962bdSlukem extern int use_tls; 672de962bdSlukem extern int protocol; 682de962bdSlukem extern int version; 692de962bdSlukem 702de962bdSlukem /* authc/authz */ 712de962bdSlukem extern int authmethod; 722de962bdSlukem extern char *binddn; 732de962bdSlukem extern int want_bindpw; 742de962bdSlukem extern struct berval passwd; 752de962bdSlukem extern char *pw_file; 762de962bdSlukem #ifdef HAVE_CYRUS_SASL 772de962bdSlukem extern unsigned sasl_flags; 782de962bdSlukem extern char *sasl_realm; 792de962bdSlukem extern char *sasl_authc_id; 802de962bdSlukem extern char *sasl_authz_id; 812de962bdSlukem extern char *sasl_mech; 822de962bdSlukem extern char *sasl_secprops; 832de962bdSlukem #endif 842de962bdSlukem 852de962bdSlukem /* controls */ 862de962bdSlukem extern char *assertion; 872de962bdSlukem extern char *authzid; 882de962bdSlukem extern int manageDIT; 892de962bdSlukem extern int manageDSAit; 902de962bdSlukem extern int noop; 912de962bdSlukem extern int ppolicy; 922de962bdSlukem extern int preread, postread; 932de962bdSlukem extern ber_int_t pr_morePagedResults; 942de962bdSlukem extern struct berval pr_cookie; 952de962bdSlukem #ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR 962de962bdSlukem extern int chaining; 972de962bdSlukem #endif /* LDAP_CONTROL_X_CHAINING_BEHAVIOR */ 984e6df137Slukem extern ber_int_t vlvPos; 994e6df137Slukem extern ber_int_t vlvCount; 1004e6df137Slukem extern struct berval *vlvContext; 1012de962bdSlukem 102*549b59edSchristos /* features */ 103*549b59edSchristos extern int backlog; 104*549b59edSchristos 1052de962bdSlukem /* options */ 1062de962bdSlukem extern struct timeval nettimeout; 1072de962bdSlukem 1082de962bdSlukem /* Defined in common.c, set in main() */ 1092de962bdSlukem extern const char __Version[]; 1102de962bdSlukem 1112de962bdSlukem /* Defined in main program */ 1122de962bdSlukem extern const char options[]; 1132de962bdSlukem 1142de962bdSlukem void usage LDAP_P(( void )) LDAP_GCCATTR((noreturn)); 1152de962bdSlukem int handle_private_option LDAP_P(( int i )); 1162de962bdSlukem 1172de962bdSlukem /* Defined in common.c */ 1182de962bdSlukem void tool_init LDAP_P(( tool_type_t type )); 1192de962bdSlukem void tool_common_usage LDAP_P(( void )); 1202de962bdSlukem void tool_args LDAP_P(( int, char ** )); 1212de962bdSlukem LDAP *tool_conn_setup LDAP_P(( int dont, void (*private_setup)( LDAP * ) )); 1222de962bdSlukem void tool_bind LDAP_P(( LDAP * )); 1232de962bdSlukem void tool_unbind LDAP_P(( LDAP * )); 1242de962bdSlukem void tool_destroy LDAP_P(( void )); 125d11b170bStron void tool_exit LDAP_P(( LDAP *ld, int status )) LDAP_GCCATTR((noreturn)); 1262de962bdSlukem void tool_server_controls LDAP_P(( LDAP *, LDAPControl *, int )); 1272de962bdSlukem int tool_check_abandon LDAP_P(( LDAP *ld, int msgid )); 1282de962bdSlukem void tool_perror LDAP_P(( 1292de962bdSlukem const char *func, 1302de962bdSlukem int err, 1312de962bdSlukem const char *extra, 1322de962bdSlukem const char *matched, 1332de962bdSlukem const char *info, 1342de962bdSlukem char **refs )); 1352de962bdSlukem void tool_print_ctrls LDAP_P(( LDAP *ld, LDAPControl **ctrls )); 1362de962bdSlukem int tool_write_ldif LDAP_P(( int type, char *name, char *value, ber_len_t vallen )); 1372de962bdSlukem int tool_is_oid LDAP_P(( const char *s )); 1382de962bdSlukem 1392de962bdSlukem 1402de962bdSlukem LDAP_END_DECL 1412de962bdSlukem 1422de962bdSlukem #endif /* _CLIENT_TOOLS_COMMON_H_ */ 143