#include <stdlib.h>
#include <ctype.h>
-#include <ac/socket.h>
#include <ac/string.h>
+#include <ac/unistd.h>
#include <lber.h>
#include <ldap.h>
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;
#include <ctype.h>
#include <ac/string.h>
-#include <ac/socket.h>
#include <ac/unistd.h>
#include <sys/stat.h>
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;
/* ldapmodrdn.c - generic program to modify an entry's RDN using LDAP */
-#define DISABLE_BRIDGE
#include "portable.h"
#include <stdio.h>
#include <ctype.h>
#include <ac/string.h>
-#include <ac/time.h>
+#include <ac/unistd.h>
#include <lber.h>
#include <ldap.h>
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;
#include "portable.h"
#include <stdio.h>
+#include <stdlib.h>
#include <ctype.h>
-#include <ac/socket.h>
#include <ac/string.h>
-#include <ac/time.h>
#include <ac/unistd.h>
#include <lber.h>
#include <ldap.h>
#include <ldif.h>
+#if LDAP_VERSION == LDAP_VERSION2
+/* until we implement ldap_set_options() */
+#include "../libraries/libldap/ldap-int.h"
+#endif
+
#include "ldapconfig.h"
#define DEFSEP "="
*/
#define LBER_ERROR 0xffffffffL
#define LBER_DEFAULT 0xffffffffL
+#define LBER_END_SEQORSET 0xfffffffeL
/* general BER types we know about */
#define LBER_BOOLEAN 0x01L
#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;
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:
*/
#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
#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
*/
#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
#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)
#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
* 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)
* 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
/*
--- /dev/null
+/*
+ * 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_cdefs.h>
+
+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 */
#include <ac/string.h>
#endif /* LDAP_DEBUG && LDAP_LIBUI */
-#include "lber.h"
+#include "lber-int.h"
/*
* Print arbitrary stuff, for debugging.
#include <ac/string.h>
#include <ac/socket.h>
-#include "lber.h"
+#include "lber-int.h"
#ifdef LDAP_DEBUG
int lber_debug;
#include <ac/socket.h>
#include <ac/string.h>
-#include "lber.h"
+#include "lber-int.h"
static int ber_put_len LDAP_P(( BerElement *ber,
unsigned long len, int nosos ));
#include <io.h>
#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 ));
--- /dev/null
+/*
+ * 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 */
# 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
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
static int do_abandon LDAP_P(( LDAP *ld, int origid, int msgid ));
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
/*
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
+#include "ldap-int.h"
LDAPMessage *
ldap_delete_result_entry( LDAPMessage **list, LDAPMessage *e )
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
+#include "ldap-int.h"
/*
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
#ifndef LDAP_NOCACHE
#include <sys/param.h>
#endif
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
#define DEF_CLDAP_TIMEOUT 3
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
/*
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
/*
#include <sys/file.h>
#endif
-#include "lber.h"
-#include "ldap.h"
+#include "ldap-int.h"
#include "disptmpl.h"
static void free_disptmpl LDAP_P(( struct ldap_disptmpl *tmpl ));
#include <sys/file.h>
#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 ));
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
+#include "ldap-int.h"
struct ldaperror {
int e_code;
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
+#include "ldap-int.h"
void
ldap_getfilter_free( LDAPFiltDesc *lfdp )
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
+#include "ldap-int.h"
char *
ldap_friendly_name( char *filename, char *uname, FriendlyMap **map )
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
char *
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
+#include "ldap-int.h"
char *
ldap_get_dn( LDAP *ld, LDAPMessage *entry )
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
static char ** decode_answer LDAP_P(( unsigned char *answer, int len ));
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
+#include "ldap-int.h"
/* ARGSUSED */
LDAPMessage *
#include <sys/file.h>
#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 ));
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
+#include "ldap-int.h"
char **
ldap_get_values( LDAP *ld, LDAPMessage *entry, char *target )
#include <ac/string.h>
#include <ac/time.h>
-#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
*/
+#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:"
#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
*/
# 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
# 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
# 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
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
/*
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
/*
#include <sys/param.h>
#endif
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
#ifdef LDAP_DEBUG
#include <sys/ioctl.h>
#endif
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
int
#include <ac/time.h>
#include <ac/unistd.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
#if defined( LDAP_REFERRALS ) || defined( LDAP_DNS )
#include <ac/time.h>
#include <ac/unistd.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
static char *find_right_paren LDAP_P(( char *s ));
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
+#include "ldap-int.h"
struct entrything {
#include <sys/file.h>
#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 ));
#include <ac/socket.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
-
+#include "ldap-int.h"
#include "ldapconfig.h"
typedef int (*cancelptype) LDAP_P(( void *cancelparm ));
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
#include <ac/string.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
#include "ldap-int.h"
# 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
#include <ac/socket.h>
#include <ac/time.h>
-#include "lber.h"
-#include "ldap.h"
+#include "ldap_log.h"
#include "ldif.h"
+
#define RIGHT2 0x03
#define RIGHT4 0x0f
#define CONTINUED_LINE_MARKER '\001'