diff options
author | Rich Megginson <rmeggins@redhat.com> | 2009-07-06 12:11:01 -0600 |
---|---|---|
committer | Rich Megginson <rmeggins@redhat.com> | 2009-07-07 08:32:42 -0600 |
commit | 209521323f731daad54682fd98715f7b22c88c78 (patch) | |
tree | 74a1fa8df06641fe543c8518e4db4357ab610828 /ldap/include | |
parent | 3116dbec570b65d2d0a1df5bd000f6e63439e8ee (diff) | |
download | ds-209521323f731daad54682fd98715f7b22c88c78.tar.gz ds-209521323f731daad54682fd98715f7b22c88c78.tar.xz ds-209521323f731daad54682fd98715f7b22c88c78.zip |
OpenLDAP support
These changes allow the server to be built with OpenLDAP (2.4.17+). A brief summary of the changes:
* #defines not provided by OpenLDAP were copied into slapi-plugin.h and protected with #ifndef blocks
* where it made sense, I created slapi wrapper functions for things like URL and LDIF processing to abstract way the differences in the APIs
* I created a new file utf8.c which contains the UTF8 functions from MozLDAP - this is only compiled when using OpenLDAP
* I tried to clean up the code - use the _ext versions of LDAP functions everywhere since the older versions should be considered deprecated
* I removed some unused code
NOTE that this should still be considered a work in progress since it depends on functionality not yet present in a released version of OpenLDAP, for NSS crypto and for the LDIF public API.
Diffstat (limited to 'ldap/include')
-rw-r--r-- | ldap/include/ldaprot.h | 136 | ||||
-rw-r--r-- | ldap/include/regex.h | 16 |
2 files changed, 143 insertions, 9 deletions
diff --git a/ldap/include/ldaprot.h b/ldap/include/ldaprot.h index aa7b5139..1c1ab562 100644 --- a/ldap/include/ldaprot.h +++ b/ldap/include/ldaprot.h @@ -78,50 +78,130 @@ extern "C" { */ /* general stuff */ +#ifndef LDAP_TAG_MESSAGE #define LDAP_TAG_MESSAGE 0x30L /* tag is 16 + constructed bit */ +#endif +#ifndef OLD_LDAP_TAG_MESSAGE #define OLD_LDAP_TAG_MESSAGE 0x10L /* forgot the constructed bit */ +#endif +#ifndef LDAP_TAG_MSGID #define LDAP_TAG_MSGID 0x02L /* INTEGER */ +#endif +#ifndef LDAP_TAG_LDAPDN #define LDAP_TAG_LDAPDN 0x04L /* OCTET STRING */ +#endif +#ifndef LDAP_TAG_CONTROLS #define LDAP_TAG_CONTROLS 0xa0L /* context specific + constructed + 0 */ +#endif +#ifndef LDAP_TAG_REFERRAL #define LDAP_TAG_REFERRAL 0xa3L /* context specific + constructed */ +#endif +#ifndef LDAP_TAG_NEWSUPERIOR #define LDAP_TAG_NEWSUPERIOR 0x80L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_MRA_OID #define LDAP_TAG_MRA_OID 0x81L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_MRA_TYPE #define LDAP_TAG_MRA_TYPE 0x82L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_MRA_VALUE #define LDAP_TAG_MRA_VALUE 0x83L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_MRA_DNATTRS #define LDAP_TAG_MRA_DNATTRS 0x84L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_EXOP_REQ_OID #define LDAP_TAG_EXOP_REQ_OID 0x80L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_EXOP_REQ_VALUE #define LDAP_TAG_EXOP_REQ_VALUE 0x81L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_EXOP_RES_OID #define LDAP_TAG_EXOP_RES_OID 0x8aL /* context specific + primitive + 10 */ +#endif +#ifndef LDAP_TAG_EXOP_RES_VALUE #define LDAP_TAG_EXOP_RES_VALUE 0x8bL /* context specific + primitive + 11 */ +#endif +#ifndef LDAP_TAG_SK_MATCHRULE #define LDAP_TAG_SK_MATCHRULE 0x80L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_SK_REVERSE #define LDAP_TAG_SK_REVERSE 0x81L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_SR_ATTRTYPE #define LDAP_TAG_SR_ATTRTYPE 0x80L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_SASL_RES_CREDS #define LDAP_TAG_SASL_RES_CREDS 0x87L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_VLV_BY_INDEX #define LDAP_TAG_VLV_BY_INDEX 0xa0L /* context specific + constructed + 0 */ +#endif +#ifndef LDAP_TAG_VLV_BY_VALUE #define LDAP_TAG_VLV_BY_VALUE 0x81L /* context specific + primitive + 1 */ +#endif +#ifndef LDAP_TAG_PWP_WARNING #define LDAP_TAG_PWP_WARNING 0xA0 /* context specific + constructed + 0 */ +#endif +#ifndef LDAP_TAG_PWP_SECSLEFT #define LDAP_TAG_PWP_SECSLEFT 0x80L /* context specific + primitive */ +#endif +#ifndef LDAP_TAG_PWP_GRCLOGINS #define LDAP_TAG_PWP_GRCLOGINS 0x81L /* context specific + primitive + 1 */ +#endif +#ifndef LDAP_TAG_PWP_ERROR #define LDAP_TAG_PWP_ERROR 0x81L /* context specific + primitive + 1 */ +#endif /* possible operations a client can invoke */ +#ifndef LDAP_REQ_BIND #define LDAP_REQ_BIND 0x60L /* application + constructed */ +#endif +#ifndef LDAP_REQ_UNBIND #define LDAP_REQ_UNBIND 0x42L /* application + primitive */ +#endif +#ifndef LDAP_REQ_SEARCH #define LDAP_REQ_SEARCH 0x63L /* application + constructed */ +#endif +#ifndef LDAP_REQ_MODIFY #define LDAP_REQ_MODIFY 0x66L /* application + constructed */ +#endif +#ifndef LDAP_REQ_ADD #define LDAP_REQ_ADD 0x68L /* application + constructed */ +#endif +#ifndef LDAP_REQ_DELETE #define LDAP_REQ_DELETE 0x4aL /* application + primitive */ +#endif +#ifndef LDAP_REQ_MODRDN #define LDAP_REQ_MODRDN 0x6cL /* application + constructed */ +#endif +#ifndef LDAP_REQ_MODDN #define LDAP_REQ_MODDN 0x6cL /* application + constructed */ +#endif +#ifndef LDAP_REQ_RENAME #define LDAP_REQ_RENAME 0x6cL /* application + constructed */ +#endif +#ifndef LDAP_REQ_COMPARE #define LDAP_REQ_COMPARE 0x6eL /* application + constructed */ +#endif +#ifndef LDAP_REQ_ABANDON #define LDAP_REQ_ABANDON 0x50L /* application + primitive */ +#endif +#ifndef LDAP_REQ_EXTENDED #define LDAP_REQ_EXTENDED 0x77L /* application + constructed */ +#endif /* version 3.0 compatibility stuff */ +#ifndef LDAP_REQ_UNBIND_30 #define LDAP_REQ_UNBIND_30 0x62L +#endif +#ifndef LDAP_REQ_DELETE_30 #define LDAP_REQ_DELETE_30 0x6aL +#endif +#ifndef LDAP_REQ_ABANDON_30 #define LDAP_REQ_ABANDON_30 0x70L +#endif /* * old broken stuff for backwards compatibility - forgot application tag @@ -163,16 +243,40 @@ extern "C" { #define LDAP_FILTER_PRESENT_30 0xa7L /* context specific + constructed */ /* filter types */ +#ifndef LDAP_FILTER_AND #define LDAP_FILTER_AND 0xa0L /* context specific + constructed */ +#endif +#ifndef LDAP_FILTER_OR #define LDAP_FILTER_OR 0xa1L /* context specific + constructed */ +#endif +#ifndef LDAP_FILTER_NOT #define LDAP_FILTER_NOT 0xa2L /* context specific + constructed */ +#endif +#ifndef LDAP_FILTER_EQUALITY #define LDAP_FILTER_EQUALITY 0xa3L /* context specific + constructed */ +#endif +#ifndef LDAP_FILTER_SUBSTRINGS #define LDAP_FILTER_SUBSTRINGS 0xa4L /* context specific + constructed */ +#endif +#ifndef LDAP_FILTER_GE #define LDAP_FILTER_GE 0xa5L /* context specific + constructed */ +#endif +#ifndef LDAP_FILTER_LE #define LDAP_FILTER_LE 0xa6L /* context specific + constructed */ +#endif +#ifndef LDAP_FILTER_PRESENT #define LDAP_FILTER_PRESENT 0x87L /* context specific + primitive */ +#endif +#ifndef LDAP_FILTER_APPROX #define LDAP_FILTER_APPROX 0xa8L /* context specific + constructed */ -#define LDAP_FILTER_EXTENDED 0xa9L /* context specific + constructed */ +#endif +#ifndef LDAP_FILTER_EXTENDED +#ifdef LDAP_FILTER_EXT +#define LDAP_FILTER_EXTENDED LDAP_FILTER_EXT +#else +#define LDAP_FILTER_EXTENDED 0xa9L +#endif +#endif /* old broken stuff */ #define OLD_LDAP_FILTER_AND 0x00L @@ -186,15 +290,45 @@ extern "C" { #define OLD_LDAP_FILTER_APPROX 0x08L /* substring filter component types */ +#ifndef LDAP_SUBSTRING_INITIAL #define LDAP_SUBSTRING_INITIAL 0x80L /* context specific */ +#endif +#ifndef LDAP_SUBSTRING_ANY #define LDAP_SUBSTRING_ANY 0x81L /* context specific */ +#endif +#ifndef LDAP_SUBSTRING_FINAL #define LDAP_SUBSTRING_FINAL 0x82L /* context specific */ +#endif /* extended filter component types */ +#ifndef LDAP_FILTER_EXTENDED_OID +#ifdef LDAP_FILTER_EXT_OID +#define LDAP_FILTER_EXTENDED_OID LDAP_FILTER_EXT_OID +#else #define LDAP_FILTER_EXTENDED_OID 0x81L /* context specific */ +#endif +#endif +#ifndef LDAP_FILTER_EXTENDED_TYPE +#ifdef LDAP_FILTER_EXT_TYPE +#define LDAP_FILTER_EXTENDED_TYPE LDAP_FILTER_EXT_TYPE +#else #define LDAP_FILTER_EXTENDED_TYPE 0x82L /* context specific */ +#endif +#endif +#ifndef LDAP_FILTER_EXTENDED_VALUE +#ifdef LDAP_FILTER_EXT_VALUE +#define LDAP_FILTER_EXTENDED_VALUE LDAP_FILTER_EXT_VALUE +#else #define LDAP_FILTER_EXTENDED_VALUE 0x83L /* context specific */ +#endif +#endif +#ifndef LDAP_FILTER_EXTENDED_DNATTRS +#ifdef LDAP_FILTER_EXT_DNATTRS +#define LDAP_FILTER_EXTENDED_DNATTRS LDAP_FILTER_EXT_DNATTRS +#else #define LDAP_FILTER_EXTENDED_DNATTRS 0x84L /* context specific */ +#endif +#endif /* 3.0 compatibility substring filter component types */ #define LDAP_SUBSTRING_INITIAL_30 0xa0L /* context specific */ diff --git a/ldap/include/regex.h b/ldap/include/regex.h index 11fd870a..7748dcf4 100644 --- a/ldap/include/regex.h +++ b/ldap/include/regex.h @@ -78,18 +78,18 @@ extern "C" { int re_init( void ); void re_lock( void ); int re_unlock( void ); -char * LDAP_CALL re_comp( char *pat ); -int LDAP_CALL re_exec( char *lp ); -void LDAP_CALL re_modw( char *s ); -int LDAP_CALL re_subs( char *src, char *dst ); +char * re_comp( char *pat ); +int re_exec( char *lp ); +void re_modw( char *s ); +int re_subs( char *src, char *dst ); #else /* NEEDPROTOS */ int re_init(); void re_lock(); int re_unlock(); -char * LDAP_CALL re_comp(); -int LDAP_CALL re_exec(); -void LDAP_CALL re_modw(); -int LDAP_CALL re_subs(); +char * re_comp(); +int re_exec(); +void re_modw(); +int re_subs(); #endif /* NEEDPROTOS */ #define re_fail( m, p ) |