]> git.sur5r.net Git - openldap/commitdiff
Add connection and operation arguments to backend callbacks.
authorKurt Zeilenga <kurt@openldap.org>
Fri, 29 Sep 2000 05:25:44 +0000 (05:25 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Fri, 29 Sep 2000 05:25:44 +0000 (05:25 +0000)
Needed for transactions.

servers/slapd/acl.c
servers/slapd/add.c
servers/slapd/back-ldbm/attribute.c
servers/slapd/back-ldbm/external.h
servers/slapd/back-ldbm/group.c
servers/slapd/backend.c
servers/slapd/proto-slap.h
servers/slapd/result.c
servers/slapd/slap.h

index 8079bdd15eddbf015d86a8c5fe23bf7b23d5f4f6..98b3ea32b0351e1fa528ba96af730a80f118cf21 100644 (file)
@@ -619,7 +619,7 @@ acl_mask(
                                buf[sizeof(buf) - 1] = 0;
                        }
 
-                       if (backend_group(be, e, buf, op->o_ndn,
+                       if (backend_group(be, conn, op, e, buf, op->o_ndn,
                                b->a_group_oc, b->a_group_at) != 0)
                        {
                                continue;
index e2aad2ef7058d4c3898b176f018f73d5115656a7..86030d638e2e95f52482476162639cd58fe5ad5d 100644 (file)
@@ -237,7 +237,7 @@ do_add( Connection *conn, Operation *op )
                                {
                                        replog( be, op, e->e_dn, e );
                                }
-                               be_entry_release_w( be, e );
+                               be_entry_release_w( be, conn, op, e );
                                e = NULL;
                        }
 
index a76d4374153f4eeb41b81d98f31950541113bae0..eebada043e57933680b34de7bb83f898e8b2b4f6 100644 (file)
@@ -28,8 +28,7 @@ ldbm_back_attribute(
        Entry   *target,
        const char      *e_ndn,
        AttributeDescription *entry_at,
-       struct berval ***vals
-)
+       struct berval ***vals )
 {
        struct ldbminfo *li = (struct ldbminfo *) be->be_private;    
        Entry        *e;
index 2bdac2f06930879149431f0f117a88aa9b576d11..76a3771f0501c5cc3e4547451766071354be06b5 100644 (file)
@@ -74,6 +74,7 @@ extern int    ldbm_back_abandon LDAP_P(( BackendDB *bd,
        Connection *conn, Operation *op, ber_int_t msgid ));
 
 extern int     ldbm_back_group LDAP_P(( BackendDB *bd,
+       Connection *conn, Operation *op,
        Entry *target,
        const char* gr_ndn,
        const char* op_ndn,
index 512f8e6b80c5a4f698b6ae0be0e595bdc5647fef..decb1930721eecc6c33ba7fff77fe4b3f8c4f7e0 100644 (file)
@@ -24,6 +24,8 @@
 int
 ldbm_back_group(
        Backend *be,
+       Connection *conn,
+       Operation *op,
        Entry   *target,
        const char      *gr_ndn,
        const char      *op_ndn,
index 2900d1b13409e1214ff7c4c49b49057973e6306b..8f061ffff18ecaeffa31e38317ff3c7348461dd8 100644 (file)
@@ -539,11 +539,16 @@ be_isroot_pw( Backend *be,
 }
 
 int
-be_entry_release_rw( Backend *be, Entry *e, int rw )
+be_entry_release_rw(
+       BackendDB *be,
+       Connection *conn,
+       Operation *op,
+       Entry *e,
+       int rw )
 {
        if ( be->be_release ) {
                /* free and release entry from backend */
-               return be->be_release( be, e, rw );
+               return be->be_release( be, conn, op, e, rw );
        } else {
                /* free entry */
                entry_free( e );
@@ -831,6 +836,8 @@ int backend_check_referrals(
 int 
 backend_group(
        Backend *be,
+       Connection *conn,
+       Operation *op,
        Entry   *target,
        const char      *gr_ndn,
        const char      *op_ndn,
@@ -849,7 +856,8 @@ backend_group(
        } 
 
        if( be->be_group ) {
-               return be->be_group( be, target, gr_ndn, op_ndn,
+               return be->be_group( be, conn, op,
+                       target, gr_ndn, op_ndn,
                        group_oc, group_at );
        }
 
@@ -887,6 +895,8 @@ backend_attribute(
 
 Attribute *backend_operational(
        Backend *be,
+       Connection *conn,
+       Operation *op,
        Entry *e )
 {
        Attribute *a = NULL;
index ae4fb17e5659ac2134917757106629f181daaa2e..140f0e44fc231a8b87ba9911b6b16d7b57895e03 100644 (file)
@@ -154,21 +154,22 @@ LDAP_SLAPD_F (int) be_isroot LDAP_P(( Backend *be, const char *ndn ));
 LDAP_SLAPD_F (int) be_isroot_pw LDAP_P(( Backend *be,
        Connection *conn, const char *ndn, struct berval *cred ));
 LDAP_SLAPD_F (char *) be_root_dn LDAP_P(( Backend *be ));
-LDAP_SLAPD_F (int) be_entry_release_rw LDAP_P(( Backend *be, Entry *e, int rw ));
-#define be_entry_release_r( be, e ) be_entry_release_rw( be, e, 0 )
-#define be_entry_release_w( be, e ) be_entry_release_rw( be, e, 1 )
+LDAP_SLAPD_F (int) be_entry_release_rw LDAP_P((
+       BackendDB *be, Connection *c, Operation *o, Entry *e, int rw ));
+#define be_entry_release_r( be, c, o, e ) be_entry_release_rw( be, c, o, e, 0 )
+#define be_entry_release_w( be, c, o, e ) be_entry_release_rw( be, c, o, e, 1 )
 
 LDAP_SLAPD_F (int) backend_unbind LDAP_P((Connection *conn, Operation *op));
 
 LDAP_SLAPD_F( int )    backend_check_restrictions LDAP_P((
-       Backend *be,
+       BackendDB *be,
        Connection *conn,
        Operation *op,
        const char *extoid,
        const char **text ));
 
 LDAP_SLAPD_F( int )    backend_check_referrals LDAP_P((
-       Backend *be,
+       BackendDB *be,
        Connection *conn,
        Operation *op,
        const char *dn,
@@ -177,7 +178,9 @@ LDAP_SLAPD_F( int ) backend_check_referrals LDAP_P((
 LDAP_SLAPD_F (int) backend_connection_init LDAP_P((Connection *conn));
 LDAP_SLAPD_F (int) backend_connection_destroy LDAP_P((Connection *conn));
 
-LDAP_SLAPD_F (int) backend_group LDAP_P((Backend *be,
+LDAP_SLAPD_F (int) backend_group LDAP_P((BackendDB *be,
+       Connection *conn,
+       Operation *op,
        Entry *target,
        const char *gr_ndn,
        const char *op_ndn,
@@ -185,7 +188,7 @@ LDAP_SLAPD_F (int) backend_group LDAP_P((Backend *be,
        AttributeDescription *group_at
 ));
 
-LDAP_SLAPD_F (int) backend_attribute LDAP_P((Backend *be,
+LDAP_SLAPD_F (int) backend_attribute LDAP_P((BackendDB *be,
        Connection *conn,
        Operation *op,
        Entry *target,
@@ -194,7 +197,11 @@ LDAP_SLAPD_F (int) backend_attribute LDAP_P((Backend *be,
        struct berval ***vals
 ));
 
-LDAP_SLAPD_F (Attribute *) backend_operational( Backend *, Entry * );
+LDAP_SLAPD_F (Attribute *) backend_operational(
+       BackendDB *,
+       Connection *conn,
+       Operation *op,
+       Entry * );
 
 
 
index 681dabad3147f84885f4ac219b460dfad784489b..55da3e6f404fce7c11889e2897b02b40940be6e2 100644 (file)
@@ -694,7 +694,7 @@ send_search_entry(
 
        /* eventually will loop through generated operational attributes */
        /* only have subschemaSubentry implemented */
-       aa = backend_operational( be, e );
+       aa = backend_operational( be, conn, op, e );
        
        for (a = aa ; a != NULL; a = a->a_next ) {
                AttributeDescription *desc = a->a_desc;
index 4054963328daa4c80dc037a2cbcb434a92d4d69d..e4cad6f12912d37da8bce0d47828e1c0f2b5ceaf 100644 (file)
@@ -906,7 +906,7 @@ struct slap_op;
 
 typedef int (*SLAP_EXTENDED_FN) LDAP_P((
     BackendDB          *be,
-    struct slap_conn           *conn,
+    struct slap_conn   *conn,
     struct slap_op             *op,
        const char              *reqoid,
     struct berval * reqdata,
@@ -1014,7 +1014,9 @@ struct slap_backend_info {
        SLAP_EXTENDED_FN bi_extended;
 
        /* Auxilary Functions */
-       int     (*bi_entry_release_rw) LDAP_P((BackendDB *bd, Entry *e, int rw));
+       int     (*bi_entry_release_rw) LDAP_P((BackendDB *bd,
+               struct slap_conn *c, struct slap_op *o,
+               Entry *e, int rw));
 
        int     (*bi_chk_referrals) LDAP_P((BackendDB *bd,
                struct slap_conn *c, struct slap_op *o,
@@ -1022,6 +1024,7 @@ struct slap_backend_info {
                const char **text ));
 
        int     (*bi_acl_group)  LDAP_P((Backend *bd,
+               struct slap_conn *c, struct slap_op *o,
                Entry *e, const char *bdn, const char *edn,
                ObjectClass *group_oc,
                AttributeDescription *group_at ));