add very preliminary support for <draft-sermersheim-ldap-distproc>

This commit is contained in:
Pierangelo Masarati 2005-11-27 23:23:59 +00:00
parent 26a83119fd
commit 4fe032e9be
6 changed files with 1050 additions and 9 deletions

View file

@ -297,10 +297,10 @@ typedef struct ldapcontrol {
/* LDAP Persistent Search Control *//* not implemented in slapd(8) */
#define LDAP_CONTROL_PERSIST_REQUEST "2.16.840.1.113730.3.4.3"
#define LDAP_CONTROL_PERSIST_ENTRY_CHANGE_NOTICE "2.16.840.1.113730.3.4.7"
#define LDAP_CONTROL_PERSSIT_ENTRY_CHANGE_ADD 0x1
#define LDAP_CONTROL_PERSSIT_ENTRY_CHANGE_DELETE 0x2
#define LDAP_CONTROL_PERSSIT_ENTRY_CHANGE_MODIFY 0x4
#define LDAP_CONTROL_PERSSIT_ENTRY_CHANGE_RENAME 0x8
#define LDAP_CONTROL_PERSIST_ENTRY_CHANGE_ADD 0x1
#define LDAP_CONTROL_PERSIST_ENTRY_CHANGE_DELETE 0x2
#define LDAP_CONTROL_PERSIST_ENTRY_CHANGE_MODIFY 0x4
#define LDAP_CONTROL_PERSIST_ENTRY_CHANGE_RENAME 0x8
/* LDAP VLV *//* not implemented in slapd(8) */
#define LDAP_CONTROL_VLVREQUEST "2.16.840.1.113730.3.4.9"
@ -345,6 +345,25 @@ typedef struct ldapcontrol {
#define LDAP_GROUP_TRANSACTION "1.3.6.1.4.1.4203.666.10.4"
#endif
/* LDAP Distributed Procedures <draft-sermersheim-ldap-distproc> */
/* a work in progress */
#ifdef LDAP_DEVEL
/* FIXME: allocate an OID arc under OpenLDAP experimental arc */
#define LDAP_X_DISTPROC_BASE "1.3.6.1.4.1.4203.666.999999"
#define LDAP_EXOP_X_CHAINEDREQUEST LDAP_X_DISTPROC_BASE ".1"
#define LDAP_FEATURE_X_CANCHAINOPS LDAP_X_DISTPROC_BASE ".2"
#define LDAP_CONTROL_X_RETURNCONTREF LDAP_X_DISTPROC_BASE ".3"
#define LDAP_URLEXT_X_LOCALREFOID LDAP_X_DISTPROC_BASE ".4"
#define LDAP_URLEXT_X_REFTYPEOID LDAP_X_DISTPROC_BASE ".5"
#define LDAP_URLEXT_X_SEARCHEDSUBTREEOID \
LDAP_X_DISTPROC_BASE ".6"
#define LDAP_URLEXT_X_FAILEDNAMEOID LDAP_X_DISTPROC_BASE ".7"
#define LDAP_URLEXT_X_LOCALREF "x-localReference"
#define LDAP_URLEXT_X_REFTYPE "x-referenceType"
#define LDAP_URLEXT_X_SEARCHEDSUBTREE "x-searchedSubtree"
#define LDAP_URLEXT_X_FAILEDNAME "x-failedName"
#endif
/* LDAP Features */
#define LDAP_FEATURE_ALL_OP_ATTRS "1.3.6.1.4.1.4203.1.5.1" /* RFC 3673 */
#define LDAP_FEATURE_OBJECTCLASS_ATTRS \
@ -596,9 +615,13 @@ typedef struct ldapcontrol {
* see <draft-sermersheim-ldap-chaining> ) */
#ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR
#define LDAP_X_NO_REFERRALS_FOUND 0x4110
#define LDAP_X_CANNOT_CHAIN 0x4111
#define LDAP_X_CANNOT_CHAIN 0x4111
#endif
/* for Distributed Procedures (see <draft-sermersheim-ldap-distproc>) */
#ifdef LDAP_X_DISTPROC_BASE
#define LDAP_X_INVALIDREFERENCE 0x4112
#endif
/* API Error Codes
*

View file

@ -14,9 +14,11 @@
## <http://www.OpenLDAP.org/license.html>.
SRCS = init.c config.c search.c bind.c unbind.c add.c compare.c \
delete.c modify.c modrdn.c extended.c chain.c
delete.c modify.c modrdn.c extended.c chain.c \
distproc.c
OBJS = init.lo config.lo search.lo bind.lo unbind.lo add.lo compare.lo \
delete.lo modify.lo modrdn.lo extended.lo chain.lo
delete.lo modify.lo modrdn.lo extended.lo chain.lo \
distproc.lo
LDAP_INCDIR= ../../../include
LDAP_LIBDIR= ../../../libraries

View file

@ -1762,7 +1762,7 @@ ldap_chain_parse_ctrl(
static slap_overinst ldapchain;
int
chain_init( void )
chain_initialize( void )
{
int rc;

File diff suppressed because it is too large Load diff

View file

@ -74,6 +74,12 @@ ldap_back_initialize( BackendInfo *bi )
return -1;
}
#ifdef LDAP_DEVEL
if ( distproc_initialize() ) {
return -1;
}
#endif
return ldap_back_init_cf( bi );
}

View file

@ -74,7 +74,10 @@ ldap_back_proxy_authz_ctrl_free(
Operation *op,
LDAPControl ***pctrls );
extern int chain_init( void );
extern int chain_initialize( void );
#ifdef LDAP_DEVEL
extern int distproc_initialize( void );
#endif
extern LDAP_REBIND_PROC *ldap_back_rebind_f;