⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 back-meta.h

📁 ldap服务器源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* $OpenLDAP: pkg/ldap/servers/slapd/back-meta/back-meta.h,v 1.23.2.22 2007/01/27 23:56:43 ando Exp $ *//* This work is part of OpenLDAP Software <http://www.openldap.org/>. * * Copyright 1999-2007 The OpenLDAP Foundation. * Portions Copyright 2001-2003 Pierangelo Masarati. * Portions Copyright 1999-2003 Howard Chu. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted only as authorized by the OpenLDAP * Public License. * * A copy of this license is available in the file LICENSE in the * top-level directory of the distribution or, alternatively, at * <http://www.OpenLDAP.org/license.html>. *//* ACKNOWLEDGEMENTS: * This work was initially developed by the Howard Chu for inclusion * in OpenLDAP Software and subsequently enhanced by Pierangelo * Masarati. */#ifndef SLAPD_LDAP_H#error "include servers/slapd/back-ldap/back-ldap.h before this file!"#endif /* SLAPD_LDAP_H */#ifndef SLAPD_META_H#define SLAPD_META_H#include "proto-meta.h"/* String rewrite library */#include "rewrite.h"LDAP_BEGIN_DECL/* * Set META_BACK_PRINT_CONNTREE larger than 0 to dump the connection tree (debug only) */#ifndef META_BACK_PRINT_CONNTREE#define META_BACK_PRINT_CONNTREE 0#endif /* !META_BACK_PRINT_CONNTREE */struct slap_conn;struct slap_op;/* from back-ldap.h before rwm removal */struct ldapmap {	int drop_missing;	Avlnode *map;	Avlnode *remap;};struct ldapmapping {	struct berval src;	struct berval dst;};struct ldaprwmap {	/*	 * DN rewriting	 */#ifdef ENABLE_REWRITE	struct rewrite_info *rwm_rw;#else /* !ENABLE_REWRITE */	/* some time the suffix massaging without librewrite	 * will be disabled */	BerVarray rwm_suffix_massage;#endif /* !ENABLE_REWRITE */	/*	 * Attribute/objectClass mapping	 */	struct ldapmap rwm_oc;	struct ldapmap rwm_at;};/* Whatever context ldap_back_dn_massage needs... */typedef struct dncookie {	struct metatarget_t	*target;#ifdef ENABLE_REWRITE	Connection		*conn;	char			*ctx;	SlapReply		*rs;#else	int			normalized;	int			tofrom;#endif} dncookie;int ldap_back_dn_massage(dncookie *dc, struct berval *dn,	struct berval *res);extern int ldap_back_conn_cmp( const void *c1, const void *c2);extern int ldap_back_conn_dup( void *c1, void *c2 );extern void ldap_back_conn_free( void *c );/* attributeType/objectClass mapping */int mapping_cmp (const void *, const void *);int mapping_dup (void *, void *);void ldap_back_map_init ( struct ldapmap *lm, struct ldapmapping ** );int ldap_back_mapping ( struct ldapmap *map, struct berval *s,	struct ldapmapping **m, int remap );void ldap_back_map ( struct ldapmap *map, struct berval *s, struct berval *m,	int remap );#define BACKLDAP_MAP	0#define BACKLDAP_REMAP	1char *ldap_back_map_filter(	struct ldapmap *at_map,	struct ldapmap *oc_map,	struct berval *f,	int remap );intldap_back_map_attrs(	struct ldapmap *at_map,	AttributeName *a,	int remap,	char ***mapped_attrs );extern int ldap_back_map_config(	struct ldapmap	*oc_map,	struct ldapmap	*at_map,	const char	*fname,	int		lineno,	int		argc,	char		**argv );extern intldap_back_filter_map_rewrite(	dncookie	*dc,	Filter		*f,	struct berval	*fstr,	int		remap );/* suffix massaging by means of librewrite */#ifdef ENABLE_REWRITEextern intsuffix_massage_config( struct rewrite_info *info,	struct berval *pvnc,	struct berval *nvnc,	struct berval *prnc,	struct berval *nrnc );#endif /* ENABLE_REWRITE */extern intldap_back_referral_result_rewrite(	dncookie	*dc,	BerVarray	a_vals );extern intldap_dnattr_rewrite(	dncookie	*dc,	BerVarray	a_vals );extern intldap_dnattr_result_rewrite(	dncookie	*dc,	BerVarray	a_vals );/* (end of) from back-ldap.h before rwm removal *//* * A metasingleconn_t can be in the following, mutually exclusive states: * *	- none			(0x0U) *	- creating		META_BACK_FCONN_CREATING *	- initialized		META_BACK_FCONN_INITED *	- binding		LDAP_BACK_FCONN_BINDING *	- bound/anonymous	LDAP_BACK_FCONN_ISBOUND/LDAP_BACK_FCONN_ISANON * * possible modifiers are: * *	- privileged		LDAP_BACK_FCONN_ISPRIV *	- privileged, TLS	LDAP_BACK_FCONN_ISTLS *	- subjected to idassert	LDAP_BACK_FCONN_ISIDASR *	- tainted		LDAP_BACK_FCONN_TAINTED */#define META_BACK_FCONN_INITED		(0x00100000U)#define META_BACK_FCONN_CREATING	(0x00200000U)#define	META_BACK_CONN_INITED(lc)		LDAP_BACK_CONN_ISSET((lc), META_BACK_FCONN_INITED)#define	META_BACK_CONN_INITED_SET(lc)		LDAP_BACK_CONN_SET((lc), META_BACK_FCONN_INITED)#define	META_BACK_CONN_INITED_CLEAR(lc)		LDAP_BACK_CONN_CLEAR((lc), META_BACK_FCONN_INITED)#define	META_BACK_CONN_INITED_CPY(lc, mlc)	LDAP_BACK_CONN_CPY((lc), META_BACK_FCONN_INITED, (mlc))#define	META_BACK_CONN_CREATING(lc)		LDAP_BACK_CONN_ISSET((lc), META_BACK_FCONN_CREATING)#define	META_BACK_CONN_CREATING_SET(lc)		LDAP_BACK_CONN_SET((lc), META_BACK_FCONN_CREATING)#define	META_BACK_CONN_CREATING_CLEAR(lc)	LDAP_BACK_CONN_CLEAR((lc), META_BACK_FCONN_CREATING)#define	META_BACK_CONN_CREATING_CPY(lc, mlc)	LDAP_BACK_CONN_CPY((lc), META_BACK_FCONN_CREATING, (mlc))struct metainfo_t;#define	META_NOT_CANDIDATE		((ber_tag_t)0x0)#define	META_CANDIDATE			((ber_tag_t)0x1)#define	META_BINDING			((ber_tag_t)0x2)#define	META_RETRYING			((ber_tag_t)0x4)typedef struct metasingleconn_t {#define META_CND_ISSET(rs,f)		( ( (rs)->sr_tag & (f) ) == (f) )#define META_CND_SET(rs,f)		( (rs)->sr_tag |= (f) )#define META_CND_CLEAR(rs,f)		( (rs)->sr_tag &= ~(f) )#define META_CANDIDATE_RESET(rs)	( (rs)->sr_tag = 0 )#define META_IS_CANDIDATE(rs)		META_CND_ISSET( (rs), META_CANDIDATE )#define META_CANDIDATE_SET(rs)		META_CND_SET( (rs), META_CANDIDATE )#define META_CANDIDATE_CLEAR(rs)	META_CND_CLEAR( (rs), META_CANDIDATE )#define META_IS_BINDING(rs)		META_CND_ISSET( (rs), META_BINDING )#define META_BINDING_SET(rs)		META_CND_SET( (rs), META_BINDING )#define META_BINDING_CLEAR(rs)		META_CND_CLEAR( (rs), META_BINDING )#define META_IS_RETRYING(rs)		META_CND_ISSET( (rs), META_RETRYING )#define META_RETRYING_SET(rs)		META_CND_SET( (rs), META_RETRYING )#define META_RETRYING_CLEAR(rs)		META_CND_CLEAR( (rs), META_RETRYING )		LDAP            	*msc_ld;	time_t			msc_time;	struct berval          	msc_bound_ndn;	struct berval		msc_cred;	unsigned		msc_mscflags;	/* NOTE: lc_lcflags is redefined to msc_mscflags to reuse the macros	 * defined for back-ldap */#define	lc_lcflags		msc_mscflags} metasingleconn_t;typedef struct metaconn_t {	struct slap_conn	*mc_conn;#define	lc_conn			mc_conn	unsigned		mc_refcnt;	time_t			mc_create_time;	time_t			mc_time;		struct berval          	mc_local_ndn;	/* NOTE: msc_mscflags is used to recycle the #define	 * in metasingleconn_t */	unsigned		msc_mscflags;	/*	 * means that the connection is bound; 	 * of course only one target actually is ...	 */	int             	mc_authz_target;#define META_BOUND_NONE		(-1)#define META_BOUND_ALL		(-2)	struct metainfo_t	*mc_info;	LDAP_TAILQ_ENTRY(metaconn_t)	mc_q;	/* supersedes the connection stuff */	metasingleconn_t	mc_conns[ 1 ];	/* NOTE: mc_conns must be last, because	 * the required number of conns is malloc'ed	 * in one block with the metaconn_t structure */} metaconn_t;typedef struct metatarget_t {	char			*mt_uri;	ldap_pvt_thread_mutex_t	mt_uri_mutex;	/* TODO: we might want to enable different strategies	 * for different targets */	LDAP_REBIND_PROC	*mt_rebind_f;	void			*mt_urllist_p;	BerVarray		mt_subtree_exclude;	int			mt_scope;	struct berval		mt_psuffix;		/* pretty suffix */	struct berval		mt_nsuffix;		/* normalized suffix */	struct berval		mt_binddn;	struct berval		mt_bindpw;	slap_idassert_t		mt_idassert;#define	mt_idassert_mode	mt_idassert.si_mode#define	mt_idassert_authcID	mt_idassert.si_bc.sb_authcId#define	mt_idassert_authcDN	mt_idassert.si_bc.sb_binddn#define	mt_idassert_passwd	mt_idassert.si_bc.sb_cred#define	mt_idassert_authzID	mt_idassert.si_bc.sb_authzId#define	mt_idassert_authmethod	mt_idassert.si_bc.sb_method#define	mt_idassert_sasl_mech	mt_idassert.si_bc.sb_saslmech#define	mt_idassert_sasl_realm	mt_idassert.si_bc.sb_realm#define	mt_idassert_secprops	mt_idassert.si_bc.sb_secprops#define	mt_idassert_tls		mt_idassert.si_bc.sb_tls#define	mt_idassert_flags	mt_idassert.si_flags#define	mt_idassert_authz	mt_idassert.si_authz	int			mt_nretries;#define META_RETRY_UNDEFINED	(-2)#define META_RETRY_FOREVER	(-1)#define META_RETRY_NEVER	(0)#define META_RETRY_DEFAULT	(10)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -