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

📄 ldap.h

📁 ICCP Toolkit 是在 Tru64下开发Tase.2通信协议的开发包
💻 H
📖 第 1 页 / 共 2 页
字号:
	unsigned long	lm_time;	/* used to maintain cache */} LDAPMessage;#define NULLMSG	((LDAPMessage *) NULL)#ifdef LDAP_REFERRALS/* * structure for tracking LDAP server host, ports, DNs, etc. */typedef struct ldap_server {	char			*lsrv_host;	char			*lsrv_dn;	/* if NULL, use default */	int			lsrv_port;	struct ldap_server	*lsrv_next;} LDAPServer;/* * structure for representing an LDAP server connection */typedef struct ldap_conn {	Sockbuf			*lconn_sb;	int			lconn_refcnt;	unsigned long		lconn_lastused;	/* time */	int			lconn_status;#define LDAP_CONNST_NEEDSOCKET		1#define LDAP_CONNST_CONNECTING		2#define LDAP_CONNST_CONNECTED		3	LDAPServer		*lconn_server;	char			*lconn_krbinstance;	struct ldap_conn	*lconn_next;} LDAPConn;/* * structure used to track outstanding requests */typedef struct ldapreq {	int		lr_msgid;	/* the message id */	int		lr_status;	/* status of request */#define LDAP_REQST_INPROGRESS	1#define LDAP_REQST_CHASINGREFS	2#define LDAP_REQST_NOTCONNECTED	3#define LDAP_REQST_WRITING	4	int		lr_outrefcnt;	/* count of outstanding referrals */	int		lr_origid;	/* original request's message id */	int		lr_parentcnt;	/* count of parent requests */	int		lr_res_msgtype;	/* result message type */	int		lr_res_errno;	/* result LDAP errno */	char		*lr_res_error;	/* result error string */	char		*lr_res_matched;/* result matched DN string */	BerElement	*lr_ber;	/* ber encoded request contents */	LDAPConn	*lr_conn;	/* connection used to send request */	struct ldapreq	*lr_parent;	/* request that spawned this referral */	struct ldapreq	*lr_refnext;	/* next referral spawned */	struct ldapreq	*lr_prev;	/* previous request */	struct ldapreq	*lr_next;	/* next request */} LDAPRequest;#endif /* LDAP_REFERRALS *//* * structure for client cache */#define LDAP_CACHE_BUCKETS	31	/* cache hash table size */typedef struct ldapcache {	LDAPMessage	*lc_buckets[LDAP_CACHE_BUCKETS];/* hash table */	LDAPMessage	*lc_requests;			/* unfulfilled reqs */	long		lc_timeout;			/* request timeout */	long		lc_maxmem;			/* memory to use */	long		lc_memused;			/* memory in use */	int		lc_enabled;			/* enabled? */	unsigned long	lc_options;			/* options */#define LDAP_CACHE_OPT_CACHENOERRS	0x00000001#define LDAP_CACHE_OPT_CACHEALLERRS	0x00000002}  LDAPCache;#define NULLLDCACHE ((LDAPCache *)NULL)/* * structures for ldap getfilter routines */typedef struct ldap_filt_info {	char			*lfi_filter;	char			*lfi_desc;	int			lfi_scope;	/* LDAP_SCOPE_BASE, etc */	int			lfi_isexact;	/* exact match filter? */	struct ldap_filt_info	*lfi_next;} LDAPFiltInfo;typedef struct ldap_filt_list {    char			*lfl_tag;    char			*lfl_pattern;    char			*lfl_delims;    LDAPFiltInfo		*lfl_ilist;    struct ldap_filt_list	*lfl_next;} LDAPFiltList;#define LDAP_FILT_MAXSIZ	1024typedef struct ldap_filt_desc {	LDAPFiltList		*lfd_filtlist;	LDAPFiltInfo		*lfd_curfip;	LDAPFiltInfo		lfd_retfi;	char			lfd_filter[ LDAP_FILT_MAXSIZ ];	char			*lfd_curval;	char			*lfd_curvalcopy;	char			**lfd_curvalwords;	char			*lfd_filtprefix;	char			*lfd_filtsuffix;} LDAPFiltDesc;/* * structure representing an ldap connection */typedef struct ldap {	Sockbuf		ld_sb;		/* socket descriptor & buffer */	char		*ld_host;	int		ld_version;	char		ld_lberoptions;	int		ld_deref;#define LDAP_DEREF_NEVER	0#define LDAP_DEREF_SEARCHING	1#define LDAP_DEREF_FINDING	2#define LDAP_DEREF_ALWAYS	3	int		ld_timelimit;	int		ld_sizelimit;#define LDAP_NO_LIMIT		0	LDAPFiltDesc	*ld_filtd;	/* from getfilter for ufn searches */	char		*ld_ufnprefix;	/* for incomplete ufn's */	int		ld_errno;	char		*ld_error;	char		*ld_matched;	int		ld_msgid;	/* do not mess with these */#ifdef LDAP_REFERRALS	LDAPRequest	*ld_requests;	/* list of outstanding requests */#else /* LDAP_REFERRALS */	LDAPMessage	*ld_requests;	/* list of outstanding requests */#endif /* LDAP_REFERRALS */	LDAPMessage	*ld_responses;	/* list of outstanding responses */	int		*ld_abandoned;	/* array of abandoned requests */	char		ld_attrbuffer[LDAP_MAX_ATTR_LEN];	LDAPCache	*ld_cache;	/* non-null if cache is initialized */	char		*ld_cldapdn;	/* DN used in connectionless search */	/* it is OK to change these next four values directly */	int		ld_cldaptries;	/* connectionless search retry count */	int		ld_cldaptimeout;/* time between retries */	int		ld_refhoplimit;	/* limit on referral nesting */	unsigned long	ld_options;	/* boolean options */#ifdef LDAP_DNS#define LDAP_OPT_DNS		0x00000001	/* use DN & DNS */#endif /* LDAP_DNS */#ifdef LDAP_REFERRALS#define LDAP_OPT_REFERRALS	0x00000002	/* chase referrals */#endif /* LDAP_REFERRALS */#define LDAP_OPT_RESTART	0x00000004	/* restart if EINTR occurs */	/* do not mess with the rest though */	char		*ld_defhost;	/* full name of default server */	int		ld_defport;	/* port of default server */	BERTranslateProc ld_lber_encode_translate_proc;	BERTranslateProc ld_lber_decode_translate_proc;#ifdef LDAP_REFERRALS	LDAPConn	*ld_defconn;	/* default connection */	LDAPConn	*ld_conns;	/* list of server connections */	void		*ld_selectinfo;	/* platform specifics for select */	int		(*ld_rebindproc)( struct ldap *ld, char **dnp,				char **passwdp, int *authmethodp, int freeit );				/* routine to get info needed for re-bind */#endif /* LDAP_REFERRALS */} LDAP;/* * structure for ldap friendly mapping routines */typedef struct friendly {	char	*f_unfriendly;	char	*f_friendly;} FriendlyMap;/* * handy macro to check whether LDAP struct is set up for CLDAP or not */#define LDAP_IS_CLDAP( ld )	( ld->ld_sb.sb_naddr > 0 )/* * types for ldap URL handling */typedef struct ldap_url_desc {    char	*lud_host;    int		lud_port;    char	*lud_dn;    char	**lud_attrs;    int		lud_scope;    char	*lud_filter;    char	*lud_string;	/* for internal use only */} LDAPURLDesc;#define NULLLDAPURLDESC	((LDAPURLDesc *)NULL)#define LDAP_URL_ERR_NOTLDAP	1	/* URL doesn't begin with "ldap://" */#define LDAP_URL_ERR_NODN	2	/* URL has no DN (required) */#define LDAP_URL_ERR_BADSCOPE	3	/* URL scope string is invalid */#define LDAP_URL_ERR_MEM	4	/* can't allocate memory space */#ifndef NEEDPROTOSextern LDAP *ldap_open();extern LDAP *ldap_init();#ifdef STR_TRANSLATIONextern void ldap_set_string_translators();#ifdef LDAP_CHARSET_8859extern int ldap_t61_to_8859();extern int ldap_8859_to_t61();#endif /* LDAP_CHARSET_8859 */#endif /* STR_TRANSLATION */extern LDAPMessage *ldap_first_entry();extern LDAPMessage *ldap_next_entry();extern char *ldap_get_dn();extern char *ldap_dn2ufn();extern char **ldap_explode_dn();extern char *ldap_first_attribute();extern char *ldap_next_attribute();extern char **ldap_get_values();extern struct berval **ldap_get_values_len();extern void ldap_value_free();extern void ldap_value_free_len();extern int ldap_count_values();extern int ldap_count_values_len();extern char *ldap_err2string();extern void ldap_getfilter_free();extern LDAPFiltDesc *ldap_init_getfilter();extern LDAPFiltDesc *ldap_init_getfilter_buf();extern LDAPFiltInfo *ldap_getfirstfilter();extern LDAPFiltInfo *ldap_getnextfilter();extern void ldap_setfilteraffixes();extern void ldap_build_filter();extern void ldap_flush_cache();extern void ldap_set_cache_options();extern void ldap_uncache_entry();extern void ldap_uncache_request();extern char *ldap_friendly_name();extern void ldap_free_friendlymap();extern LDAP *cldap_open();extern void cldap_setretryinfo();extern void cldap_close();extern LDAPFiltDesc *ldap_ufn_setfilter();extern int ldap_ufn_timeout();extern int ldap_sort_entries();extern int ldap_sort_values();extern int ldap_sort_strcasecmp();void ldap_free_urldesc();void ldap_set_rebind_proc();void ldap_enable_translation();#if defined(ultrix) || defined(VMS) || defined( nextstep )extern char *strdup();#endif#else /* NEEDPROTOS */#if !defined(MACOS) && !defined(DOS) && !defined(_WIN32) && !defined(WINSOCK)#include <sys/time.h>#endif#if defined(WINSOCK)#include "proto-ld.h"#else#include "proto-ldap.h"#endif#ifdef VMSextern char *strdup( const char *s );#endif#if defined(ultrix) || defined( nextstep )extern char *strdup();#endif#endif /* NEEDPROTOS */#ifdef __cplusplus}#endif#endif /* _LDAP_H */

⌨️ 快捷键说明

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