]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-sql/operational.c
re-fix previus commit the other way 'round (rids are < 1000)
[openldap] / servers / slapd / back-sql / operational.c
index 2fc2ac0855b40fa6c20cb4cd75973214e1b883ed..60252f6d49f3c129bae71b0c03bc8e09b46e47e0 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1999-2005 The OpenLDAP Foundation.
+ * Copyright 1999-2007 The OpenLDAP Foundation.
  * Portions Copyright 1999 Dmitry Kovalev.
  * Portions Copyright 2002 Pierangelo Masarati.
  * All rights reserved.
@@ -53,8 +53,7 @@ backsql_operational_entryUUID( backsql_info *bi, backsql_entryID *id )
                return NULL;
        }
 
-       a = ch_malloc( sizeof( Attribute ) );
-       a->a_desc = desc;
+       a = attr_alloc( desc );
 
        a->a_vals = (BerVarray) ch_malloc( 2 * sizeof( struct berval ) );
        a->a_vals[ 0 ] = val;
@@ -63,9 +62,6 @@ backsql_operational_entryUUID( backsql_info *bi, backsql_entryID *id )
        a->a_nvals = (BerVarray) ch_malloc( 2 * sizeof( struct berval ) );
        a->a_nvals[ 0 ] = nval;
        BER_BVZERO( &a->a_nvals[ 1 ] );
-       
-       a->a_next = NULL;
-       a->a_flags = 0;
 
        return a;
 }
@@ -77,13 +73,12 @@ backsql_operational_entryCSN( Operation *op )
        struct berval   entryCSN;
        Attribute       *a;
 
-       a = ch_malloc( sizeof( Attribute ) );
-       a->a_desc = slap_schema.si_ad_entryCSN;
+       a = attr_alloc( slap_schema.si_ad_entryCSN );
        a->a_vals = ch_malloc( 2 * sizeof( struct berval ) );
        BER_BVZERO( &a->a_vals[ 1 ] );
 
 #ifdef BACKSQL_SYNCPROV
-       if ( op->o_sync && op->o_tag == LDAP_REQ_SEARCH ) {
+       if ( op->o_sync && op->o_tag == LDAP_REQ_SEARCH && op->o_private != NULL ) {
                assert( op->o_private != NULL );
 
                entryCSN = *((struct berval *)op->o_private);
@@ -91,16 +86,15 @@ backsql_operational_entryCSN( Operation *op )
        } else
 #endif /* BACKSQL_SYNCPROV */
        {
-               slap_get_csn( op, csnbuf, sizeof(csnbuf), &entryCSN, 0 );
+               entryCSN.bv_val = csnbuf;
+               entryCSN.bv_len = sizeof( csnbuf );
+               slap_get_csn( op, &entryCSN, 0 );
        }
 
        ber_dupbv( &a->a_vals[ 0 ], &entryCSN );
 
        a->a_nvals = a->a_vals;
 
-       a->a_next = NULL;
-       a->a_flags = 0;
-
        return a;
 }
 
@@ -184,7 +178,6 @@ backsql_operational(
 
                rc = backsql_init_search( &bsi, &rs->sr_entry->e_nname,
                                LDAP_SCOPE_BASE,
-                               SLAP_NO_LIMIT, SLAP_NO_LIMIT,
                                (time_t)(-1), NULL, dbh, op, rs, NULL,
                                BACKSQL_ISF_GET_ID );
                if ( rc != LDAP_SUCCESS ) {