]> git.sur5r.net Git - openldap/commitdiff
Check LOCK_ID() return
authorKurt Zeilenga <kurt@openldap.org>
Thu, 22 Aug 2002 02:29:46 +0000 (02:29 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Thu, 22 Aug 2002 02:29:46 +0000 (02:29 +0000)
servers/slapd/back-bdb/attribute.c
servers/slapd/back-bdb/bind.c
servers/slapd/back-bdb/compare.c
servers/slapd/back-bdb/group.c
servers/slapd/back-bdb/referral.c
servers/slapd/back-bdb/search.c

index b41177b4e74fdb4750091ca0a8c567b27646af43..6ad4b30e78d0a21f3d3eae9de98f2a231e59107a 100644 (file)
@@ -67,10 +67,17 @@ bdb_attribute(
                txn = boi->boi_txn;
        }
 
-       if ( txn != NULL )
+       if ( txn != NULL ) {
                locker = TXN_ID ( txn );
-       else
-               LOCK_ID ( bdb->bi_dbenv, &locker );
+       } else {
+               rc = LOCK_ID ( bdb->bi_dbenv, &locker );
+               switch(rc) {
+               case 0:
+                       break;
+               default:
+                       return LDAP_OTHER;
+               }
+       }
 
        if (target != NULL && dn_match(&target->e_nname, entry_ndn)) {
                /* we already have a LOCKED copy of the entry */
index ebd4880642383e15872e3fc971ed94ef295cfc55..7a9230dcdc355291fae7a7323585a3396a5a6e49 100644 (file)
@@ -49,7 +49,15 @@ bdb_bind(
        Debug( LDAP_DEBUG_ARGS, "==> bdb_bind: dn: %s\n", dn->bv_val, 0, 0);
 #endif
 
-       LOCK_ID(bdb->bi_dbenv, &locker);
+       rc = LOCK_ID(bdb->bi_dbenv, &locker);
+       switch(rc) {
+       case 0:
+               break;
+       default:
+               send_ldap_result( conn, op, rc=LDAP_OTHER,
+                       NULL, "internal error", NULL, NULL );
+               return rc;
+       }
 
 dn2entry_retry:
        /* get entry */
index 25c8cf4f9554480bd81db6913ce5238dda08b2ba..c22c4311c71c269796052f3e6c959e9829559140 100644 (file)
@@ -34,7 +34,15 @@ bdb_compare(
        u_int32_t       locker;
        DB_LOCK         lock;
 
-       LOCK_ID ( bdb->bi_dbenv, &locker );
+       rc = LOCK_ID(bdb->bi_dbenv, &locker);
+       switch(rc) {
+       case 0:
+               break;
+       default:
+               send_ldap_result( conn, op, rc=LDAP_OTHER,
+                       NULL, "internal error", NULL, NULL );
+               return rc;
+       }
 
 dn2entry_retry:
        /* get entry */
index 59a33e94b387b6d93699bc98394b1fd4206fc281..d4fb4de09e0bdc23912ab7de3faaf56a2e21600c 100644 (file)
@@ -79,10 +79,17 @@ bdb_group(
                txn = boi->boi_txn;
        }
 
-       if ( txn )
+       if ( txn ) {
                locker = TXN_ID( txn );
-       else
+       } else {
                LOCK_ID ( bdb->bi_dbenv, &locker );
+               switch(rc) {
+               case 0:
+                       break;
+               default:
+                       return 1;
+               }
+       }
 
        if (dn_match(&target->e_name, gr_ndn)) {
                /* we already have a LOCKED copy of the entry */
index 07c85df4b360f08e9ecdb8430e91542cbb169ec7..1ecbf1dddce1b3c1f16c867836c8e67adf61914c 100644 (file)
@@ -39,7 +39,13 @@ bdb_referrals(
                return rc;
        } 
 
-       LOCK_ID ( bdb->bi_dbenv, &locker );
+       rc = LOCK_ID(bdb->bi_dbenv, &locker);
+       switch(rc) {
+       case 0:
+               break;
+       default:
+               return LDAP_OTHER;
+       }
 
 dn2entry_retry:
        /* get entry */
index 3bea37794c7c29de6cfcd5e97767fc7a143e7632..a7b07367195079ad7ae16eb03848c32dbb2b6052 100644 (file)
@@ -71,7 +71,15 @@ bdb_search(
 
        manageDSAit = get_manageDSAit( op );
 
-       LOCK_ID (bdb->bi_dbenv, &locker );
+       rc = LOCK_ID (bdb->bi_dbenv, &locker );
+       switch(rc) {
+       case 0:
+               break;
+       default:
+               send_ldap_result( conn, op, rc=LDAP_OTHER,
+                       NULL, "internal error", NULL, NULL );
+               return rc;
+       }
 
        if ( nbase->bv_len == 0 ) {
                /* DIT root special case */