openldap/servers/slapd/back-ldbm/extended.c
Kurt Zeilenga d5edb4bff6 Reengineered ldappasswd(1). Uses extended operation to set
user password.  Likely to be modified to use bind control
instead.  Use of modify deprecated in favor mechanisms that
support passwords stored externally to the directory (such
as in a SASL service).
Modified slapd extended operation infrastructure to support
backend provided extended operations.
1999-12-08 04:37:59 +00:00

51 lines
968 B
C

/* extended.c - ldbm backend extended routines */
/* $OpenLDAP$ */
/*
* Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
#include "portable.h"
#include <stdio.h>
#include <ac/socket.h>
#include <ac/string.h>
#include "slap.h"
#include "back-ldbm.h"
#include "proto-back-ldbm.h"
struct exop {
char *oid;
SLAP_EXTENDED_FN extended;
} exop_table[] = {
{ LDAP_EXOP_X_MODIFY_PASSWD, ldbm_back_exop_passwd },
{ NULL, NULL }
};
int
ldbm_back_extended(
Backend *be,
Connection *conn,
Operation *op,
char *oid,
struct berval *reqdata,
struct berval **rspdata,
char** text
)
{
int i;
for( i=0; exop_table[i].oid != NULL; i++ ) {
if( strcmp( exop_table[i].oid, oid ) == 0 ) {
return (exop_table[i].extended)(
be, conn, op,
oid, reqdata, rspdata, text );
}
}
*text = ch_strdup("not supported within naming context");
return LDAP_OPERATIONS_ERROR;
}