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

📄 back-meta.h

📁 ldap服务器源码
💻 H
📖 第 1 页 / 共 2 页
字号:
	struct ldaprwmap	mt_rwmap;	sig_atomic_t		mt_isquarantined;	slap_retry_info_t	mt_quarantine;	ldap_pvt_thread_mutex_t	mt_quarantine_mutex;	unsigned		mt_flags;#define	META_BACK_TGT_ISSET(mt,f)		( ( (mt)->mt_flags & (f) ) == (f) )#define	META_BACK_TGT_ISMASK(mt,m,f)		( ( (mt)->mt_flags & (m) ) == (f) )#define	META_BACK_TGT_T_F(mt)			META_BACK_TGT_ISMASK( (mt), LDAP_BACK_F_T_F_MASK, LDAP_BACK_F_T_F )#define	META_BACK_TGT_T_F_DISCOVER(mt)		META_BACK_TGT_ISMASK( (mt), LDAP_BACK_F_T_F_MASK2, LDAP_BACK_F_T_F_DISCOVER )#define	META_BACK_TGT_ABANDON(mt)		META_BACK_TGT_ISMASK( (mt), LDAP_BACK_F_CANCEL_MASK, LDAP_BACK_F_CANCEL_ABANDON )#define	META_BACK_TGT_IGNORE(mt)		META_BACK_TGT_ISMASK( (mt), LDAP_BACK_F_CANCEL_MASK, LDAP_BACK_F_CANCEL_IGNORE )#define	META_BACK_TGT_CANCEL(mt)		META_BACK_TGT_ISMASK( (mt), LDAP_BACK_F_CANCEL_MASK, LDAP_BACK_F_CANCEL_EXOP )#define	META_BACK_TGT_CANCEL_DISCOVER(mt)	META_BACK_TGT_ISMASK( (mt), LDAP_BACK_F_CANCEL_MASK2, LDAP_BACK_F_CANCEL_EXOP_DISCOVER )#define	META_BACK_TGT_QUARANTINE(mt)		META_BACK_TGT_ISSET( (mt), LDAP_BACK_F_QUARANTINE )	int			mt_version;	time_t			mt_network_timeout;	struct timeval		mt_bind_timeout;#define META_BIND_TIMEOUT	LDAP_BACK_RESULT_UTIMEOUT	time_t			mt_timeout[ SLAP_OP_LAST ];} metatarget_t;typedef struct metadncache_t {	ldap_pvt_thread_mutex_t mutex;	Avlnode			*tree;#define META_DNCACHE_DISABLED   (0)#define META_DNCACHE_FOREVER    ((time_t)(-1))	time_t			ttl;  /* seconds; 0: no cache, -1: no expiry */} metadncache_t;typedef struct metacandidates_t {	int			mc_ntargets;	SlapReply		*mc_candidates;} metacandidates_t;/* * Hook to allow mucking with metainfo_t/metatarget_t when quarantine is over */typedef int (*meta_back_quarantine_f)( struct metainfo_t *, int target, void * );typedef struct metainfo_t {	int			mi_ntargets;	int			mi_defaulttarget;#define META_DEFAULT_TARGET_NONE	(-1)	int			mi_nretries;	metatarget_t		**mi_targets;	metacandidates_t	*mi_candidates;	LDAP_REBIND_PROC	*mi_rebind_f;	metadncache_t		mi_cache;		/* cached connections; 	 * special conns are in tailq rather than in tree */	ldap_avl_info_t		mi_conninfo;	struct {		int						mic_num;		LDAP_TAILQ_HEAD(mc_conn_priv_q, metaconn_t)	mic_priv;	}			mi_conn_priv[ LDAP_BACK_PCONN_LAST ];	int			mi_conn_priv_max;	/* NOTE: quarantine uses the connection mutex */	slap_retry_info_t	mi_quarantine;	meta_back_quarantine_f	mi_quarantine_f;	void			*mi_quarantine_p;	unsigned		mi_flags;#define	li_flags		mi_flags/* uses flags as defined in <back-ldap/back-ldap.h> */#define	META_BACK_F_ONERR_STOP		(0x00100000U)#define	META_BACK_F_ONERR_REPORT	(0x00200000U)#define	META_BACK_F_ONERR_MASK		(META_BACK_F_ONERR_STOP|META_BACK_F_ONERR_REPORT)#define	META_BACK_F_DEFER_ROOTDN_BIND	(0x00400000U)#define	META_BACK_F_PROXYAUTHZ_ALWAYS	(0x00800000U)	/* users always proxyauthz */#define	META_BACK_F_PROXYAUTHZ_ANON	(0x01000000U)	/* anonymous always proxyauthz */#define	META_BACK_F_PROXYAUTHZ_NOANON	(0x02000000U)	/* anonymous remains anonymous */#define	META_BACK_ONERR_STOP(mi)	LDAP_BACK_ISSET( (mi), META_BACK_F_ONERR_STOP )#define	META_BACK_ONERR_REPORT(mi)	LDAP_BACK_ISSET( (mi), META_BACK_F_ONERR_REPORT )#define	META_BACK_ONERR_CONTINUE(mi)	( !LDAP_BACK_ISSET( (mi), META_BACK_F_ONERR_MASK ) )#define META_BACK_DEFER_ROOTDN_BIND(mi)	LDAP_BACK_ISSET( (mi), META_BACK_F_DEFER_ROOTDN_BIND )#define META_BACK_PROXYAUTHZ_ALWAYS(mi)	LDAP_BACK_ISSET( (mi), META_BACK_F_PROXYAUTHZ_ALWAYS )#define META_BACK_PROXYAUTHZ_ANON(mi)	LDAP_BACK_ISSET( (mi), META_BACK_F_PROXYAUTHZ_ANON )#define META_BACK_PROXYAUTHZ_NOANON(mi)	LDAP_BACK_ISSET( (mi), META_BACK_F_PROXYAUTHZ_NOANON )#define META_BACK_QUARANTINE(mi)	LDAP_BACK_ISSET( (mi), LDAP_BACK_F_QUARANTINE )	int			mi_version;	time_t			mi_network_timeout;	time_t			mi_conn_ttl;	time_t			mi_idle_timeout;	struct timeval		mi_bind_timeout;	time_t			mi_timeout[ SLAP_OP_LAST ];} metainfo_t;typedef enum meta_op_type {	META_OP_ALLOW_MULTIPLE = 0,	META_OP_REQUIRE_SINGLE,	META_OP_REQUIRE_ALL} meta_op_type;SlapReply *meta_back_candidates_get( Operation *op );extern metaconn_t *meta_back_getconn(	Operation		*op,	SlapReply		*rs,	int			*candidate,	ldap_back_send_t	sendok );extern voidmeta_back_release_conn_lock(       	metainfo_t		*mi,	metaconn_t		*mc,	int			dolock );#define meta_back_release_conn(mi, mc)	meta_back_release_conn_lock( (mi), (mc), 1 )extern intmeta_back_retry(	Operation		*op,	SlapReply		*rs,	metaconn_t		**mcp,	int			candidate,	ldap_back_send_t	sendok );extern voidmeta_back_conn_free(	void			*v_mc );#if META_BACK_PRINT_CONNTREE > 0extern voidmeta_back_print_conntree(	metainfo_t		*mi,	char			*msg );#endifextern intmeta_back_init_one_conn(	Operation		*op,	SlapReply		*rs,	metaconn_t		*mc,	int			candidate,	int			ispriv,	ldap_back_send_t	sendok,	int			dolock );extern voidmeta_back_quarantine(	Operation		*op,	SlapReply		*rs,	int			candidate );extern intmeta_back_dobind(	Operation		*op,	SlapReply		*rs,	metaconn_t		*mc,	ldap_back_send_t	sendok );extern intmeta_back_single_dobind(	Operation		*op,	SlapReply		*rs,	metaconn_t		**mcp,	int			candidate,	ldap_back_send_t	sendok,	int			retries,	int			dolock );extern intmeta_back_proxy_authz_cred(	metaconn_t		*mc,	int			candidate,	Operation		*op,	SlapReply		*rs,	ldap_back_send_t	sendok,	struct berval		*binddn,	struct berval		*bindcred,	int			*method );extern intmeta_back_cancel(	metaconn_t		*mc,	Operation		*op,	SlapReply		*rs,	ber_int_t		msgid,	int			candidate,	ldap_back_send_t	sendok );extern intmeta_back_op_result(	metaconn_t		*mc,	Operation		*op,	SlapReply		*rs,	int			candidate,	ber_int_t		msgid,	time_t			timeout,	ldap_back_send_t	sendok );extern intback_meta_LTX_init_module(	int			argc,	char			*argv[] );extern intmeta_back_conn_cmp(	const void		*c1,	const void		*c2 );extern intmeta_back_conndn_cmp(	const void		*c1,	const void		*c2 );extern intmeta_back_conndn_dup(	void			*c1,	void			*c2 );/* * Candidate stuff */extern intmeta_back_is_candidate(	metatarget_t		*mt,	struct berval		*ndn,	int			scope );extern intmeta_back_select_unique_candidate(	metainfo_t		*mi,	struct berval		*ndn );extern intmeta_clear_unused_candidates(	Operation		*op,	int			candidate );extern intmeta_clear_one_candidate(	Operation		*op,	metaconn_t		*mc,	int			candidate );/* * Dn cache stuff (experimental) */extern intmeta_dncache_cmp(	const void		*c1,	const void		*c2 );extern intmeta_dncache_dup(	void			*c1,	void			*c2 );#define META_TARGET_NONE	(-1)#define META_TARGET_MULTIPLE	(-2)extern intmeta_dncache_get_target(	metadncache_t		*cache,	struct berval		*ndn );extern intmeta_dncache_update_entry(	metadncache_t		*cache,	struct berval		*ndn,	int			target );extern intmeta_dncache_delete_entry(	metadncache_t		*cache,	struct berval		*ndn );extern voidmeta_dncache_free( void *entry );extern LDAP_REBIND_PROC		meta_back_default_rebind;LDAP_END_DECL#endif /* SLAPD_META_H */

⌨️ 快捷键说明

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