From: Kurt Zeilenga Date: Mon, 26 Oct 1998 01:18:41 +0000 (+0000) Subject: update ldap/lber headers towards ldapext-ldap-c-api-01 X-Git-Tag: PHP3_TOOL_0_0~11 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=702109706b76fea49bde29d6351b2aaa4ee0e7fa;p=openldap update ldap/lber headers towards ldapext-ldap-c-api-01 --- diff --git a/clients/tools/ldapdelete.c b/clients/tools/ldapdelete.c index 36a325c850..1cebe171d4 100644 --- a/clients/tools/ldapdelete.c +++ b/clients/tools/ldapdelete.c @@ -6,8 +6,8 @@ #include #include -#include #include +#include #include #include @@ -107,7 +107,10 @@ main( argc, argv ) exit( 1 ); } - ld->ld_deref = LDAP_DEREF_NEVER; /* prudent, but probably unnecessary */ +#if LDAP_VERSION > LDAP_VERSION2 + /* this seems prudent */ + ldap_set_option( LDAP_OPT_DEREF, LDAP_DEREF_NEVER); +#endif if ( !kerberos ) { authmethod = LDAP_AUTH_SIMPLE; diff --git a/clients/tools/ldapmodify.c b/clients/tools/ldapmodify.c index 9734ab674e..fcceca8461 100644 --- a/clients/tools/ldapmodify.c +++ b/clients/tools/ldapmodify.c @@ -7,7 +7,6 @@ #include #include -#include #include #include @@ -169,7 +168,10 @@ main( int argc, char **argv ) exit( 1 ); } - ld->ld_deref = LDAP_DEREF_NEVER; /* this seems prudent */ +#if LDAP_VERSION > LDAP_VERSION2 + /* this seems prudent */ + ldap_set_option( LDAP_OPT_DEREF, LDAP_DEREF_NEVER); +#endif if ( !kerberos ) { authmethod = LDAP_AUTH_SIMPLE; diff --git a/clients/tools/ldapmodrdn.c b/clients/tools/ldapmodrdn.c index 8eae7ff01f..d2450103b9 100644 --- a/clients/tools/ldapmodrdn.c +++ b/clients/tools/ldapmodrdn.c @@ -1,6 +1,5 @@ /* ldapmodrdn.c - generic program to modify an entry's RDN using LDAP */ -#define DISABLE_BRIDGE #include "portable.h" #include @@ -8,7 +7,7 @@ #include #include -#include +#include #include #include @@ -132,7 +131,10 @@ main( argc, argv ) exit( 1 ); } - ld->ld_deref = LDAP_DEREF_NEVER; /* this seems prudent */ +#if LDAP_VERSION > LDAP_VERSION2 + /* this seems prudent */ + ldap_set_option( LDAP_OPT_DEREF, LDAP_DEREF_NEVER); +#endif if ( !kerberos ) { authmethod = LDAP_AUTH_SIMPLE; diff --git a/clients/tools/ldapsearch.c b/clients/tools/ldapsearch.c index 97ad7568b8..314af0e3ec 100644 --- a/clients/tools/ldapsearch.c +++ b/clients/tools/ldapsearch.c @@ -1,17 +1,21 @@ #include "portable.h" #include +#include #include -#include #include -#include #include #include #include #include +#if LDAP_VERSION == LDAP_VERSION2 +/* until we implement ldap_set_options() */ +#include "../libraries/libldap/ldap-int.h" +#endif + #include "ldapconfig.h" #define DEFSEP "=" diff --git a/include/lber.h b/include/lber.h index 6f7c165e37..d003873135 100644 --- a/include/lber.h +++ b/include/lber.h @@ -40,6 +40,7 @@ LDAP_BEGIN_DECL */ #define LBER_ERROR 0xffffffffL #define LBER_DEFAULT 0xffffffffL +#define LBER_END_SEQORSET 0xfffffffeL /* general BER types we know about */ #define LBER_BOOLEAN 0x01L @@ -54,62 +55,34 @@ LDAP_BEGIN_DECL #define OLD_LBER_SEQUENCE 0x10L /* w/o constructed bit - broken */ #define OLD_LBER_SET 0x11L /* w/o constructed bit - broken */ +/* get/set options for BerElement */ +#define LBER_SOCKBUF_OPT_TO_FILE 0x01 +#define LBER_SOCKBUF_OPT_TO_FILE_ONLY 0x02 +#define LBER_SOCKBUF_OPT_TO_MAX_INCOMING_SIZE 0x04 +#define LBER_SOCKBUF_OPT_TO_NO_READ_AHEAD 0x08 +#define LBER_SOCKBUF_OPT_TO_DESC 0x10 +#define LBER_SOCKBUF_OPT_TO_COPYDESC 0x20 +#define LBER_SOCKBUF_OPT_TO_READFN 0x40 +#define LBER_SOCKBUF_OPT_TO_WRITE_FN 0x80 + +/* LBER on/off values */ +#define LBER_OPT_ON ((void *) 1) +#define LBER_OPT_OFF ((void *) 0) + typedef int (*BERTranslateProc) LDAP_P(( char **bufp, unsigned long *buflenp, int free_input )); -typedef struct berelement { - char *ber_buf; - char *ber_ptr; - char *ber_end; - struct seqorset *ber_sos; - unsigned long ber_tag; - unsigned long ber_len; - int ber_usertag; - char ber_options; #define LBER_USE_DER 0x01 #define LBER_USE_INDEFINITE_LEN 0x02 #define LBER_TRANSLATE_STRINGS 0x04 - char *ber_rwptr; - BERTranslateProc ber_encode_translate_proc; - BERTranslateProc ber_decode_translate_proc; -} BerElement; + +typedef struct berelement BerElement; #define NULLBER ((BerElement *) 0) -typedef struct sockbuf { -#ifndef MACOS - int sb_sd; -#else /* MACOS */ - void *sb_sd; -#endif /* MACOS */ - BerElement sb_ber; - - int sb_naddr; /* > 0 implies using CLDAP (UDP) */ - void *sb_useaddr; /* pointer to sockaddr to use next */ - void *sb_fromaddr; /* pointer to message source sockaddr */ - void **sb_addrs; /* actually an array of pointers to - sockaddrs */ - - int sb_options; /* to support copying ber elements */ -#define LBER_TO_FILE 0x01 /* to a file referenced by sb_fd */ -#define LBER_TO_FILE_ONLY 0x02 /* only write to file, not network */ -#define LBER_MAX_INCOMING_SIZE 0x04 /* impose limit on incoming stuff */ -#define LBER_NO_READ_AHEAD 0x08 /* read only as much as requested */ - int sb_fd; - long sb_max_incoming; -} Sockbuf; +typedef struct sockbuf Sockbuf; #define READBUFSIZ 8192 -typedef struct seqorset { - BerElement *sos_ber; - unsigned long sos_clen; - unsigned long sos_tag; - char *sos_first; - char *sos_ptr; - struct seqorset *sos_next; -} Seqorset; -#define NULLSEQORSET ((Seqorset *) 0) - /* structure for returning a sequence of octet strings + length */ struct berval { unsigned long bv_len; @@ -167,7 +140,7 @@ LDAP_F int ber_start_set LDAP_P(( BerElement *ber, unsigned long tag )); LDAP_F int ber_put_seq LDAP_P(( BerElement *ber )); LDAP_F int ber_put_set LDAP_P(( BerElement *ber )); LDAP_F int ber_printf LDAP_P(( BerElement *ber, char *fmt, ... )); - +LDAP_F int ber_fatten LDAP_P(( BerElement *ber, struct berval **bvPtr)); /* * in io.c: */ diff --git a/include/ldap.h b/include/ldap.h index 0f90b1d508..a82b7fa51d 100644 --- a/include/ldap.h +++ b/include/ldap.h @@ -21,7 +21,8 @@ LDAP_BEGIN_DECL #define LDAP_VERSION1 1 #define LDAP_VERSION2 2 #define LDAP_VERSION3 3 -#define LDAP_VERSION LDAP_VERSION2 +#define LDAP_VERSION LDAP_VERSION2 +#define LDAP_VERSION_MAX LDAP_VERSION2 #define LDAP_COMPAT20 #define LDAP_COMPAT30 @@ -29,52 +30,54 @@ LDAP_BEGIN_DECL #define LDAP_COMPAT #endif +#define LDAP_OPT_API_INFO 0x00 +#define LDAP_OPT_DESC 0x01 +#define LDAP_OPT_DEREF 0x02 +#define LDAP_OPT_SIZELIMIT 0x03 +#define LDAP_OPT_TIMELIMIT 0x04 +#define LDAP_OPT_REFERRALS 0x08 +#define LDAP_OPT_RESTART 0x09 +#define LDAP_OPT_PROTOCOL_VERSION 0x11 +#define LDAP_OPT_SERVER_CONTROLS 0x12 +#define LDAP_OPT_CLIENT_CONTROLS 0x13 +#define LDAP_OPT_HOST_NAME 0x30 +#define LDAP_OPT_ERROR_NUMBER 0x31 +#define LDAP_OPT_ERROR_STRING 0x32 + +/* for LDAPv2 compatibility */ +#define LDAP_OPT_DNS 0x40 /* use DN & DNS */ + +/* on/off values */ +#define LDAP_OPT_ON ((void *) 1) +#define LDAP_OPT_OFF ((void *)) 0) + +#define LDAP_OPT_SUCCESS 0 +#define LDAP_OPT_ERROR (-1) + +LDAP_F int ldap_get_option LDAP_P((LDAP *ld, int option, void *outvalue)); +LDAP_F int ldap_set_option LDAP_P((LDAP *ld, int option, void *invalue)); + +typedef struct ldapapiinfo { + int ldapai_info_version; /* version of LDAPAPIInfo (1) */ + int ldapai_api_version; /* revision of API supported */ + int ldapai_protocol_version; /* highest LDAP version supported */ + char **ldapai_extensions; /* names of API extensions */ + char *ldapi_vendor_name; /* name of supplier */ + int ldapai_vendor_version; /* supplier-specific version times 100 */ +} LDAPAPIInfo; + +typedef struct ldapcontrol { + char *ldctl_oid; + struct berval ldctl_value; + char ldctl_iscritical; +} LDAPControl, *PLDAPControl; + +LDAP_F void ldap_control_free LDAP_P(( LDAPControl *ctrl )); +LDAP_F void ldap_controls_free LDAP_P(( LDAPControl **ctrls )); + + #define LDAP_MAX_ATTR_LEN 100 -/* debugging stuff */ -#ifdef LDAP_DEBUG -extern int ldap_debug; -#ifdef LDAP_SYSLOG -extern int ldap_syslog; -extern int ldap_syslog_level; -#endif /* LDAP_SYSLOG */ - -#define LDAP_DEBUG_TRACE 0x001 -#define LDAP_DEBUG_PACKETS 0x002 -#define LDAP_DEBUG_ARGS 0x004 -#define LDAP_DEBUG_CONNS 0x008 -#define LDAP_DEBUG_BER 0x010 -#define LDAP_DEBUG_FILTER 0x020 -#define LDAP_DEBUG_CONFIG 0x040 -#define LDAP_DEBUG_ACL 0x080 -#define LDAP_DEBUG_STATS 0x100 -#define LDAP_DEBUG_STATS2 0x200 -#define LDAP_DEBUG_SHELL 0x400 -#define LDAP_DEBUG_PARSE 0x800 -#define LDAP_DEBUG_ANY 0xffff - -/* this doesn't below as part of ldap.h */ -#ifdef LDAP_SYSLOG -#define Debug( level, fmt, arg1, arg2, arg3 ) \ - { \ - if ( ldap_debug & (level) ) \ - fprintf( stderr, (fmt), (arg1), (arg2), (arg3) ); \ - if ( ldap_syslog & level ) \ - syslog( ldap_syslog_level, (fmt), (arg1), (arg2), (arg3) ); \ - } -#else /* LDAP_SYSLOG */ -#ifndef WINSOCK -#define Debug( level, fmt, arg1, arg2, arg3 ) \ - if ( ldap_debug & (level) ) \ - fprintf( stderr, (fmt), (arg1), (arg2), (arg3) ); -#else /* !WINSOCK */ -extern void Debug( int level, char* fmt, ... ); -#endif /* !WINSOCK */ -#endif /* LDAP_SYSLOG */ -#else /* LDAP_DEBUG */ -#define Debug( level, fmt, arg1, arg2, arg3 ) -#endif /* LDAP_DEBUG */ - /* * specific LDAP instantiations of BER types we know about */ @@ -228,6 +231,11 @@ typedef struct ldapmod { #define LDAP_STRONG_AUTH_NOT_SUPPORTED 0x07 #define LDAP_STRONG_AUTH_REQUIRED 0x08 #define LDAP_PARTIAL_RESULTS 0x09 +#define LDAP_REFERRAL 0x0a /* LDAPv3 */ +#define LDAP_ADMINLIMIT_EXCEEDED 0x0b /* LDAPv3 */ +#define LDAP_UNAVAILABLE_CRITICIAL_EXTENSION 0x0c /* LDAPv3 */ +#define LDAP_CONFIDENTIALITY_REQUIRED 0x0d /* LDAPv3 */ +#define LDAP_SASL_BIND_IN_PROGRESS 0x0e /* LDAPv3 */ #define LDAP_NO_SUCH_ATTRIBUTE 0x10 #define LDAP_UNDEFINED_TYPE 0x11 @@ -239,7 +247,7 @@ typedef struct ldapmod { #define LDAP_NO_SUCH_OBJECT 0x20 #define LDAP_ALIAS_PROBLEM 0x21 #define LDAP_INVALID_DN_SYNTAX 0x22 -#define LDAP_IS_LEAF 0x23 +#define LDAP_IS_LEAF 0x23 /* not LDAPv3 */ #define LDAP_ALIAS_DEREF_PROBLEM 0x24 #define NAME_ERROR(n) ((n & 0xf0) == 0x20) @@ -258,7 +266,8 @@ typedef struct ldapmod { #define LDAP_NOT_ALLOWED_ON_RDN 0x43 #define LDAP_ALREADY_EXISTS 0x44 #define LDAP_NO_OBJECT_CLASS_MODS 0x45 -#define LDAP_RESULTS_TOO_LARGE 0x46 +#define LDAP_RESULTS_TOO_LARGE 0x46 /* CLDAP */ +#define LDAP_AFFECTS_MULTIPLE_DSAS 0x47 /* LDAPv3 */ #define LDAP_OTHER 0x50 #define LDAP_SERVER_DOWN 0x51 @@ -282,14 +291,7 @@ typedef struct ldapmod { * where a response has multiple messages. */ -typedef struct ldapmsg { - int lm_msgid; /* the message id */ - int lm_msgtype; /* the message type */ - BerElement *lm_ber; /* the ber encoded message contents */ - struct ldapmsg *lm_chain; /* for search - next msg in the resp */ - struct ldapmsg *lm_next; /* next response */ - unsigned int lm_time; /* used to maintain cache */ -} LDAPMessage; +typedef struct ldapmsg LDAPMessage; #define NULLMSG ((LDAPMessage *) NULL) @@ -406,64 +408,14 @@ typedef struct ldap_filt_desc { * 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 +typedef struct ldap LDAP; - LDAPFiltDesc *ld_filtd; /* from getfilter for ufn searches */ - char *ld_ufnprefix; /* for incomplete ufn's */ +#define LDAP_DEREF_NEVER 0x00 +#define LDAP_DEREF_SEARCHING 0x01 +#define LDAP_DEREF_FINDING 0x02 +#define LDAP_DEREF_ALWAYS 0x03 - 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 */ -#define LDAP_OPT_DNS 0x00000001 /* use DN & DNS */ -#define LDAP_OPT_REFERRALS 0x00000002 /* chase 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; +#define LDAP_NO_LIMIT 0 /* diff --git a/include/ldap_log.h b/include/ldap_log.h new file mode 100644 index 0000000000..7efc5872c7 --- /dev/null +++ b/include/ldap_log.h @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1990 Regents of the University of Michigan. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that this notice is preserved and that due credit is given + * to the University of Michigan at Ann Arbor. The name of the University + * may not be used to endorse or promote products derived from this + * software without specific prior written permission. This software + * is provided ``as is'' without express or implied warranty. + */ + +#ifndef _LDAP_LOG_H +#define _LDAP_LOG_H + +#include + +LDAP_BEGIN_DECL + +/* debugging stuff */ +#ifdef LDAP_DEBUG +extern int ldap_debug; +#ifdef LDAP_SYSLOG +extern int ldap_syslog; +extern int ldap_syslog_level; +#endif /* LDAP_SYSLOG */ + +#define LDAP_DEBUG_TRACE 0x001 +#define LDAP_DEBUG_PACKETS 0x002 +#define LDAP_DEBUG_ARGS 0x004 +#define LDAP_DEBUG_CONNS 0x008 +#define LDAP_DEBUG_BER 0x010 +#define LDAP_DEBUG_FILTER 0x020 +#define LDAP_DEBUG_CONFIG 0x040 +#define LDAP_DEBUG_ACL 0x080 +#define LDAP_DEBUG_STATS 0x100 +#define LDAP_DEBUG_STATS2 0x200 +#define LDAP_DEBUG_SHELL 0x400 +#define LDAP_DEBUG_PARSE 0x800 +#define LDAP_DEBUG_ANY 0xffff + +/* this doesn't below as part of ldap.h */ +#ifdef LDAP_SYSLOG +#define Debug( level, fmt, arg1, arg2, arg3 ) \ + { \ + if ( ldap_debug & (level) ) \ + fprintf( stderr, (fmt), (arg1), (arg2), (arg3) ); \ + if ( ldap_syslog & level ) \ + syslog( ldap_syslog_level, (fmt), (arg1), (arg2), (arg3) ); \ + } +#else /* LDAP_SYSLOG */ +#ifndef WINSOCK +#define Debug( level, fmt, arg1, arg2, arg3 ) \ + if ( ldap_debug & (level) ) \ + fprintf( stderr, (fmt), (arg1), (arg2), (arg3) ); +#else /* !WINSOCK */ +extern void Debug( int level, char* fmt, ... ); +#endif /* !WINSOCK */ +#endif /* LDAP_SYSLOG */ +#else /* LDAP_DEBUG */ +#define Debug( level, fmt, arg1, arg2, arg3 ) +#endif /* LDAP_DEBUG */ + +LDAP_END_DECL + +#endif /* _LDAP_H */ diff --git a/libraries/liblber/bprint.c b/libraries/liblber/bprint.c index 882facd70d..93f759fbdf 100644 --- a/libraries/liblber/bprint.c +++ b/libraries/liblber/bprint.c @@ -8,7 +8,7 @@ #include #endif /* LDAP_DEBUG && LDAP_LIBUI */ -#include "lber.h" +#include "lber-int.h" /* * Print arbitrary stuff, for debugging. diff --git a/libraries/liblber/decode.c b/libraries/liblber/decode.c index 9162339cc7..48effc5b7e 100644 --- a/libraries/liblber/decode.c +++ b/libraries/liblber/decode.c @@ -25,7 +25,7 @@ #include #include -#include "lber.h" +#include "lber-int.h" #ifdef LDAP_DEBUG int lber_debug; diff --git a/libraries/liblber/encode.c b/libraries/liblber/encode.c index c31bd3ce21..f036dfeef4 100644 --- a/libraries/liblber/encode.c +++ b/libraries/liblber/encode.c @@ -25,7 +25,7 @@ #include #include -#include "lber.h" +#include "lber-int.h" static int ber_put_len LDAP_P(( BerElement *ber, unsigned long len, int nosos )); diff --git a/libraries/liblber/io.c b/libraries/liblber/io.c index 798448f421..582a883d64 100644 --- a/libraries/liblber/io.c +++ b/libraries/liblber/io.c @@ -26,7 +26,7 @@ #include #endif -#include "lber.h" +#include "lber-int.h" static int ber_realloc LDAP_P(( BerElement *ber, unsigned long len )); static int ber_filbuf LDAP_P(( Sockbuf *sb, long len )); diff --git a/libraries/liblber/lber-int.h b/libraries/liblber/lber-int.h new file mode 100644 index 0000000000..eef5e18b39 --- /dev/null +++ b/libraries/liblber/lber-int.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 1990 Regents of the University of Michigan. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that this notice is preserved and that due credit is given + * to the University of Michigan at Ann Arbor. The name of the University + * may not be used to endorse or promote products derived from this + * software without specific prior written permission. This software + * is provided ``as is'' without express or implied warranty. + */ + +#ifndef _LBER_INT_H +#define _LBER_INT_H + +#include "lber.h" + +LDAP_BEGIN_DECL + +typedef struct berelement { + char *ber_buf; + char *ber_ptr; + char *ber_end; + struct seqorset *ber_sos; + unsigned long ber_tag; + unsigned long ber_len; + int ber_usertag; + char ber_options; +#define LBER_USE_DER 0x01 +#define LBER_USE_INDEFINITE_LEN 0x02 +#define LBER_TRANSLATE_STRINGS 0x04 + char *ber_rwptr; + BERTranslateProc ber_encode_translate_proc; + BERTranslateProc ber_decode_translate_proc; +} BerElement; +#define NULLBER ((BerElement *) 0) + +typedef struct sockbuf { +#ifndef MACOS + int sb_sd; +#else /* MACOS */ + void *sb_sd; +#endif /* MACOS */ + BerElement sb_ber; + + int sb_naddr; /* > 0 implies using CLDAP (UDP) */ + void *sb_useaddr; /* pointer to sockaddr to use next */ + void *sb_fromaddr; /* pointer to message source sockaddr */ + void **sb_addrs; /* actually an array of pointers to + sockaddrs */ + + int sb_options; /* to support copying ber elements */ +#define LBER_TO_FILE 0x01 /* to a file referenced by sb_fd */ +#define LBER_TO_FILE_ONLY 0x02 /* only write to file, not network */ +#define LBER_MAX_INCOMING_SIZE 0x04 /* impose limit on incoming stuff */ +#define LBER_NO_READ_AHEAD 0x08 /* read only as much as requested */ + int sb_fd; + long sb_max_incoming; +} Sockbuf; +#define READBUFSIZ 8192 + +typedef struct seqorset { + BerElement *sos_ber; + unsigned long sos_clen; + unsigned long sos_tag; + char *sos_first; + char *sos_ptr; + struct seqorset *sos_next; +} Seqorset; +#define NULLSEQORSET ((Seqorset *) 0) + +#endif /* _LBER_INT_H */ diff --git a/libraries/liblber/liblber.dsp b/libraries/liblber/liblber.dsp index e0457f90f6..a64a040276 100644 --- a/libraries/liblber/liblber.dsp +++ b/libraries/liblber/liblber.dsp @@ -92,6 +92,10 @@ SOURCE=.\io.c # End Source File # Begin Source File +SOURCE=".\lber-int.h" +# End Source File +# Begin Source File + SOURCE=..\..\include\lber.h # End Source File # End Target diff --git a/libraries/libldap/abandon.c b/libraries/libldap/abandon.c index 533695f3b5..21639d3305 100644 --- a/libraries/libldap/abandon.c +++ b/libraries/libldap/abandon.c @@ -18,8 +18,6 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" static int do_abandon LDAP_P(( LDAP *ld, int origid, int msgid )); diff --git a/libraries/libldap/add.c b/libraries/libldap/add.c index 73e84964c1..df7396c053 100644 --- a/libraries/libldap/add.c +++ b/libraries/libldap/add.c @@ -17,8 +17,6 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" /* diff --git a/libraries/libldap/addentry.c b/libraries/libldap/addentry.c index ce85e8cb35..8388c4adfa 100644 --- a/libraries/libldap/addentry.c +++ b/libraries/libldap/addentry.c @@ -19,8 +19,7 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" LDAPMessage * ldap_delete_result_entry( LDAPMessage **list, LDAPMessage *e ) diff --git a/libraries/libldap/bind.c b/libraries/libldap/bind.c index aec1a3b568..1668a3e73a 100644 --- a/libraries/libldap/bind.c +++ b/libraries/libldap/bind.c @@ -18,8 +18,7 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" /* diff --git a/libraries/libldap/cache.c b/libraries/libldap/cache.c index 8216461c1e..de09a7ae78 100644 --- a/libraries/libldap/cache.c +++ b/libraries/libldap/cache.c @@ -19,8 +19,6 @@ static char copyright[] = "@(#) Copyright (c) 1993 The Regents of the University #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" #ifndef LDAP_NOCACHE diff --git a/libraries/libldap/charset.c b/libraries/libldap/charset.c index 8371c62e3b..3f5c93c98d 100644 --- a/libraries/libldap/charset.c +++ b/libraries/libldap/charset.c @@ -24,8 +24,6 @@ static char copyright[] = "@(#) Copyright (c) 1995 Regents of the University of #include #endif -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" diff --git a/libraries/libldap/cldap.c b/libraries/libldap/cldap.c index 3f2fe861a0..5b9e806984 100644 --- a/libraries/libldap/cldap.c +++ b/libraries/libldap/cldap.c @@ -21,8 +21,6 @@ static char copyright[] = "@(#) Copyright (c) 1990, 1994 Regents of the Universi #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" #define DEF_CLDAP_TIMEOUT 3 diff --git a/libraries/libldap/compare.c b/libraries/libldap/compare.c index 4d89f59e7a..bc55055d9a 100644 --- a/libraries/libldap/compare.c +++ b/libraries/libldap/compare.c @@ -17,8 +17,6 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" /* diff --git a/libraries/libldap/delete.c b/libraries/libldap/delete.c index eb8f589198..5e8ea76056 100644 --- a/libraries/libldap/delete.c +++ b/libraries/libldap/delete.c @@ -17,8 +17,6 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" /* diff --git a/libraries/libldap/disptmpl.c b/libraries/libldap/disptmpl.c index f4aa230313..a15640846d 100644 --- a/libraries/libldap/disptmpl.c +++ b/libraries/libldap/disptmpl.c @@ -27,8 +27,7 @@ #include #endif -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" #include "disptmpl.h" static void free_disptmpl LDAP_P(( struct ldap_disptmpl *tmpl )); diff --git a/libraries/libldap/dsparse.c b/libraries/libldap/dsparse.c index 86ccf71360..3fdd7b9c44 100644 --- a/libraries/libldap/dsparse.c +++ b/libraries/libldap/dsparse.c @@ -28,8 +28,7 @@ #include #endif -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" int next_line_tokens LDAP_P(( char **bufp, long *blenp, char ***toksp )); void free_strarray LDAP_P(( char **sap )); diff --git a/libraries/libldap/error.c b/libraries/libldap/error.c index 26c8778047..d7b96c7ebe 100644 --- a/libraries/libldap/error.c +++ b/libraries/libldap/error.c @@ -7,8 +7,7 @@ #include #include -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" struct ldaperror { int e_code; diff --git a/libraries/libldap/free.c b/libraries/libldap/free.c index d0e47686e5..ebf2d623c5 100644 --- a/libraries/libldap/free.c +++ b/libraries/libldap/free.c @@ -19,8 +19,7 @@ static char copyright[] = "@(#) Copyright (c) 1994 The Regents of the University #include #include -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" void ldap_getfilter_free( LDAPFiltDesc *lfdp ) diff --git a/libraries/libldap/friendly.c b/libraries/libldap/friendly.c index 0f5aa6acad..12896aad83 100644 --- a/libraries/libldap/friendly.c +++ b/libraries/libldap/friendly.c @@ -20,8 +20,7 @@ static char copyright[] = "@(#) Copyright (c) 1993 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" char * ldap_friendly_name( char *filename, char *uname, FriendlyMap **map ) diff --git a/libraries/libldap/getattr.c b/libraries/libldap/getattr.c index 2975e674e0..9e69e934ae 100644 --- a/libraries/libldap/getattr.c +++ b/libraries/libldap/getattr.c @@ -19,8 +19,6 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" char * diff --git a/libraries/libldap/getdn.c b/libraries/libldap/getdn.c index fc2b326477..8144bb037c 100644 --- a/libraries/libldap/getdn.c +++ b/libraries/libldap/getdn.c @@ -19,8 +19,7 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" char * ldap_get_dn( LDAP *ld, LDAPMessage *entry ) diff --git a/libraries/libldap/getdxbyname.c b/libraries/libldap/getdxbyname.c index 0290cf4037..645b104818 100644 --- a/libraries/libldap/getdxbyname.c +++ b/libraries/libldap/getdxbyname.c @@ -17,8 +17,6 @@ #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" static char ** decode_answer LDAP_P(( unsigned char *answer, int len )); diff --git a/libraries/libldap/getentry.c b/libraries/libldap/getentry.c index 5d7776dea1..01d8f2c125 100644 --- a/libraries/libldap/getentry.c +++ b/libraries/libldap/getentry.c @@ -19,8 +19,7 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" /* ARGSUSED */ LDAPMessage * diff --git a/libraries/libldap/getfilter.c b/libraries/libldap/getfilter.c index 3e5ea7b511..dc053ed56a 100644 --- a/libraries/libldap/getfilter.c +++ b/libraries/libldap/getfilter.c @@ -25,8 +25,7 @@ static char copyright[] = "@(#) Copyright (c) 1993 Regents of the University of #include #endif -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" static int break_into_words LDAP_P(( char *str, char *delims, char ***wordsp )); int next_line_tokens LDAP_P(( char **bufp, long *blenp, char ***toksp )); diff --git a/libraries/libldap/getvalues.c b/libraries/libldap/getvalues.c index c3131ade09..cd2921856c 100644 --- a/libraries/libldap/getvalues.c +++ b/libraries/libldap/getvalues.c @@ -19,8 +19,7 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" char ** ldap_get_values( LDAP *ld, LDAPMessage *entry, char *target ) diff --git a/libraries/libldap/kbind.c b/libraries/libldap/kbind.c index 2831226ed8..90367171a9 100644 --- a/libraries/libldap/kbind.c +++ b/libraries/libldap/kbind.c @@ -21,12 +21,9 @@ static char copyright[] = "@(#) Copyright (c) 1993 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" - /* * ldap_kerberos_bind1 - initiate a bind to the ldap server using * kerberos authentication. The dn is supplied. It is assumed the user diff --git a/libraries/libldap/ldap-int.h b/libraries/libldap/ldap-int.h index 5a3fe703a2..f211429984 100644 --- a/libraries/libldap/ldap-int.h +++ b/libraries/libldap/ldap-int.h @@ -6,6 +6,12 @@ */ +#include "../liblber/lber-int.h" +#include "ldap_log.h" +#include "ldap.h" + +LDAP_BEGIN_DECL + #define LDAP_URL_PREFIX "ldap://" #define LDAP_URL_PREFIX_LEN 7 #define LDAP_URL_URLCOLON "URL:" @@ -22,7 +28,75 @@ #endif /* LDAP_DNS */ #endif /* LDAP_REFERRALS */ -LDAP_BEGIN_DECL +/* + * This structure represents both ldap messages and ldap responses. + * These are really the same, except in the case of search responses, + * where a response has multiple messages. + */ + +typedef struct ldapmsg { + int lm_msgid; /* the message id */ + int lm_msgtype; /* the message type */ + BerElement *lm_ber; /* the ber encoded message contents */ + struct ldapmsg *lm_chain; /* for search - next msg in the resp */ + struct ldapmsg *lm_next; /* next response */ + unsigned int lm_time; /* used to maintain cache */ +} LDAPMessage; + +/* + * 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; + int ld_timelimit; + int ld_sizelimit; + + 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 */ + + /* 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; + /* * in cache.c */ diff --git a/libraries/libldap/libldap.dsp b/libraries/libldap/libldap.dsp index 2d90c6392b..0565123b15 100644 --- a/libraries/libldap/libldap.dsp +++ b/libraries/libldap/libldap.dsp @@ -116,6 +116,10 @@ SOURCE=.\disptmpl.c # End Source File # Begin Source File +SOURCE=..\..\include\disptmpl.h +# End Source File +# Begin Source File + SOURCE=.\dsparse.c # End Source File # Begin Source File @@ -160,10 +164,22 @@ SOURCE=.\kbind.c # End Source File # Begin Source File +SOURCE=..\..\include\lber.h +# End Source File +# Begin Source File + SOURCE=".\ldap-int.h" # End Source File # Begin Source File +SOURCE=..\..\include\ldap.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\ldap_log.h +# End Source File +# Begin Source File + SOURCE=.\modify.c # End Source File # Begin Source File @@ -204,6 +220,10 @@ SOURCE=.\srchpref.c # End Source File # Begin Source File +SOURCE=..\..\include\srchpref.h +# End Source File +# Begin Source File + SOURCE=.\ufn.c # End Source File # Begin Source File diff --git a/libraries/libldap/modify.c b/libraries/libldap/modify.c index 42ffde0f2f..450d7e923c 100644 --- a/libraries/libldap/modify.c +++ b/libraries/libldap/modify.c @@ -17,8 +17,6 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" /* diff --git a/libraries/libldap/modrdn.c b/libraries/libldap/modrdn.c index 434ecb5d0b..8cee157a8b 100644 --- a/libraries/libldap/modrdn.c +++ b/libraries/libldap/modrdn.c @@ -17,8 +17,6 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" /* diff --git a/libraries/libldap/open.c b/libraries/libldap/open.c index ef3ceccde4..ad2ba4d1b0 100644 --- a/libraries/libldap/open.c +++ b/libraries/libldap/open.c @@ -22,8 +22,6 @@ static char copyright[] = "@(#) Copyright (c) 1995 Regents of the University of #include #endif -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" #ifdef LDAP_DEBUG diff --git a/libraries/libldap/os-ip.c b/libraries/libldap/os-ip.c index d5bd6715bf..03912ae2fa 100644 --- a/libraries/libldap/os-ip.c +++ b/libraries/libldap/os-ip.c @@ -26,8 +26,6 @@ #include #endif -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" int diff --git a/libraries/libldap/request.c b/libraries/libldap/request.c index a3dfc559bf..4732c639f3 100644 --- a/libraries/libldap/request.c +++ b/libraries/libldap/request.c @@ -20,8 +20,6 @@ static char copyright[] = "@(#) Copyright (c) 1995 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" #if defined( LDAP_REFERRALS ) || defined( LDAP_DNS ) diff --git a/libraries/libldap/result.c b/libraries/libldap/result.c index dd6f5dbd44..1fc61004a2 100644 --- a/libraries/libldap/result.c +++ b/libraries/libldap/result.c @@ -20,8 +20,6 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" diff --git a/libraries/libldap/sbind.c b/libraries/libldap/sbind.c index 17347d7cb2..1049756101 100644 --- a/libraries/libldap/sbind.c +++ b/libraries/libldap/sbind.c @@ -17,8 +17,6 @@ static char copyright[] = "@(#) Copyright (c) 1993 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" diff --git a/libraries/libldap/search.c b/libraries/libldap/search.c index 191d346710..2a45f1ce6d 100644 --- a/libraries/libldap/search.c +++ b/libraries/libldap/search.c @@ -19,8 +19,6 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" static char *find_right_paren LDAP_P(( char *s )); diff --git a/libraries/libldap/sort.c b/libraries/libldap/sort.c index 2ac3c31a81..a0137b0605 100644 --- a/libraries/libldap/sort.c +++ b/libraries/libldap/sort.c @@ -21,8 +21,7 @@ #include #include -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" struct entrything { diff --git a/libraries/libldap/srchpref.c b/libraries/libldap/srchpref.c index a603e6edb3..8920097c93 100644 --- a/libraries/libldap/srchpref.c +++ b/libraries/libldap/srchpref.c @@ -27,8 +27,7 @@ #include #endif -#include "lber.h" -#include "ldap.h" +#include "ldap-int.h" #include "srchpref.h" int next_line_tokens LDAP_P(( char **bufp, long *blenp, char ***toksp )); diff --git a/libraries/libldap/ufn.c b/libraries/libldap/ufn.c index f623c28525..d8cfa25f7c 100644 --- a/libraries/libldap/ufn.c +++ b/libraries/libldap/ufn.c @@ -19,9 +19,7 @@ static char copyright[] = "@(#) Copyright (c) 1993 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" - +#include "ldap-int.h" #include "ldapconfig.h" typedef int (*cancelptype) LDAP_P(( void *cancelparm )); diff --git a/libraries/libldap/unbind.c b/libraries/libldap/unbind.c index 2fc2727c3d..7de336d504 100644 --- a/libraries/libldap/unbind.c +++ b/libraries/libldap/unbind.c @@ -18,8 +18,6 @@ static char copyright[] = "@(#) Copyright (c) 1990 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" diff --git a/libraries/libldap/url.c b/libraries/libldap/url.c index 83ccbdc546..2f2cf942bc 100644 --- a/libraries/libldap/url.c +++ b/libraries/libldap/url.c @@ -31,8 +31,6 @@ static char copyright[] = "@(#) Copyright (c) 1996 Regents of the University of #include #include -#include "lber.h" -#include "ldap.h" #include "ldap-int.h" diff --git a/libraries/libldif/libldif.dsp b/libraries/libldif/libldif.dsp index e9fb0c2b97..a39e0fa065 100644 --- a/libraries/libldif/libldif.dsp +++ b/libraries/libldif/libldif.dsp @@ -76,6 +76,10 @@ LIB32=link.exe -lib # Name "libldif - Win32 Debug" # Begin Source File +SOURCE=..\..\include\ldif.h +# End Source File +# Begin Source File + SOURCE=.\line64.c # End Source File # End Target diff --git a/libraries/libldif/line64.c b/libraries/libldif/line64.c index 429e1d6ab1..ba72e01532 100644 --- a/libraries/libldif/line64.c +++ b/libraries/libldif/line64.c @@ -9,10 +9,10 @@ #include #include -#include "lber.h" -#include "ldap.h" +#include "ldap_log.h" #include "ldif.h" + #define RIGHT2 0x03 #define RIGHT4 0x0f #define CONTINUED_LINE_MARKER '\001'