#include /* * DB *dbi : a database handler * int fd : a link to OpenLDAP backend * ------------- * *dbi provides : * dbi->base : LDAP client "dc" basedn part * dbi->ou : LDAP client "ou" basedn part * dbi->filter : LDAP client search filter */ int getgeneric(DB *dbi, int fd) { char query[MAXVAL]="",*suffix=NULL,*filtval,*val; char *ou=dbi->ou; char *filter=dbi->filter; int errcode=0; /* * new query, built with LDAP client "ou" basedn part * this portion of code associate conf file correspondant SQL query */ snprintf(query,MAXVAL,"%s%s",QUERY,ou); val=attr2val(query); if (!val) { return -1; } /* * get filter value ( uid=xxx ) * this portion of code extracts LDAP client filter value */ filtval=getval(filter,'='); if (!filtval) { free(val); return -1; } /* * get query result * this is where SQL statement is executed * this will send to OpenLDAP an LDIF formatted answer */ errcode=simplequery(dbi,fd,suffix,val,filtval); free(val); return errcode; }