]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-sql/search.c
First commit of Hallvard's backend documentation effort
[openldap] / servers / slapd / back-sql / search.c
index 708b0ed643772fc3c1c4e775a84b41e64fcf5482..2dca484832374d894fbdfefd902a7cf738688a0f 100644 (file)
@@ -46,9 +46,9 @@ int backsql_attrlist_add(backsql_srch_info *bsi,char *at_name)
 
 void backsql_init_search(backsql_srch_info *bsi,backsql_info *bi,char *nbase,int scope,
                                                 int slimit,int tlimit,time_t stoptime,Filter *filter,
-                                                SQLHDBC dbh,BackendDB *be,Connection *conn,Operation *op,struct berval **attrs)
+                                                SQLHDBC dbh,BackendDB *be,Connection *conn,Operation *op,AttributeName *attrs)
 {
struct berval **p;
AttributeName *p;
  bsi->base_dn=nbase;
  bsi->scope=scope;
  bsi->slimit=slimit;
@@ -62,11 +62,11 @@ void backsql_init_search(backsql_srch_info *bsi,backsql_info *bi,char *nbase,int
  {
   bsi->attrs=(char**)ch_calloc(1,sizeof(char*));
   bsi->attrs[0]=NULL;
-  for(p=attrs;*p!=NULL;p++)
-   backsql_attrlist_add(bsi,(*p)->bv_val);
+  for(p=attrs;p->an_name.bv_val;p++)
+   backsql_attrlist_add(bsi,p->an_name.bv_val);
  }
  else
-  bsi->attrs=attrs;
+  bsi->attrs=NULL;
  bsi->abandon=0;
  bsi->id_list=NULL;
  bsi->stoptime=stoptime;
@@ -518,7 +518,7 @@ SQL_SUCCESS)
 
 int backsql_search(BackendDB *be,Connection *conn,Operation *op,
        const char *base, const char *nbase, int scope,int deref,int slimit,int tlimit,
-       Filter *filter, const char *filterstr,struct berval **attrs,int attrsonly)
+       Filter *filter, const char *filterstr,AttributeName *attrs,int attrsonly)
 {
  backsql_info *bi=(backsql_info*)be->be_private;
  SQLHDBC dbh;
@@ -584,13 +584,10 @@ int backsql_search(BackendDB *be,Connection *conn,Operation *op,
  for(eid=srch_info.id_list;eid!=NULL;eid=eid->next)
   {
    /* check for abandon */
-   ldap_pvt_thread_mutex_lock(&op->o_abandonmutex);
    if (op->o_abandon)
     {
-     ldap_pvt_thread_mutex_unlock(&op->o_abandonmutex);
      break;
     }
-   ldap_pvt_thread_mutex_unlock(&op->o_abandonmutex);
 
    /* check time limit */
    if ( tlimit != -1 && slap_get_time() > stoptime)