]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-bdb/extended.c
ITS#3556: 64-bit portability
[openldap] / servers / slapd / back-bdb / extended.c
index 057acc8f1d997010973285dcb9ca5adda046c35b..740b43228ced458976af8e35b700ef28ab9070b9 100644 (file)
@@ -1,8 +1,17 @@
 /* extended.c - bdb backend extended routines */
 /* $OpenLDAP$ */
-/*
- * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 2000-2005 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
  */
 
 #include "portable.h"
 
 #include "back-bdb.h"
 #include "external.h"
+#include "lber_pvt.h"
 
 static struct exop {
-       char *oid;
+       struct berval *oid;
        BI_op_extended  *extended;
 } exop_table[] = {
-       { LDAP_EXOP_MODIFY_PASSWD, bdb_exop_passwd },
        { NULL, NULL }
 };
 
 int
-bdb_extended(
-       Backend         *be,
-       Connection              *conn,
-       Operation               *op,
-       const char              *reqoid,
+bdb_extended( Operation *op, SlapReply *rs )
+/*     struct berval           *reqoid,
        struct berval   *reqdata,
        char            **rspoid,
        struct berval   **rspdata,
        LDAPControl *** rspctrls,
        const char**    text,
        BerVarray       *refs 
-)
+) */
 {
        int i;
 
-       for( i=0; exop_table[i].oid != NULL; i++ ) {
-               if( strcmp( exop_table[i].oid, reqoid ) == 0 ) {
-                       return (exop_table[i].extended)(
-                               be, conn, op,
-                               reqoid, reqdata,
-                               rspoid, rspdata, rspctrls,
-                               text, refs );
+       for( i=0; exop_table[i].extended != NULL; i++ ) {
+               if( ber_bvcmp( exop_table[i].oid, &op->oq_extended.rs_reqoid ) == 0 ) {
+                       return (exop_table[i].extended)( op, rs );
                }
        }
 
-       *text = "not supported within naming context";
-       return LDAP_OPERATIONS_ERROR;
+       rs->sr_text = "not supported within naming context";
+       return LDAP_UNWILLING_TO_PERFORM;
 }