2004-06-27 12:03:06 +00:00
/*
Unix SMB / CIFS implementation .
common share info functions
Copyright ( C ) Andrew Tridgell 2004
Copyright ( C ) Tim Potter 2004
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 2 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; if not , write to the Free Software
Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*/
# include "includes.h"
2004-11-16 09:00:52 +00:00
# include "lib/ldb/include/ldb.h"
2004-06-27 12:03:06 +00:00
/*
search the sam for the specified attributes - va_list variant
*/
int gendb_search_v ( struct ldb_context * ldb ,
TALLOC_CTX * mem_ctx ,
const char * basedn ,
struct ldb_message * * * res ,
const char * const * attrs ,
const char * format ,
2004-08-25 07:15:21 +00:00
va_list ap ) _PRINTF_ATTRIBUTE ( 6 , 0 )
2004-06-27 12:03:06 +00:00
{
char * expr = NULL ;
int count ;
vasprintf ( & expr , format , ap ) ;
if ( expr = = NULL ) {
return - 1 ;
}
2005-01-02 07:51:13 +00:00
* res = NULL ;
2004-06-27 12:03:06 +00:00
count = ldb_search ( ldb , basedn , LDB_SCOPE_SUBTREE , expr , attrs , res ) ;
2005-01-02 07:51:13 +00:00
if ( * res ) talloc_steal ( mem_ctx , * res ) ;
2004-07-15 10:08:56 +00:00
DEBUG ( 4 , ( " gendb_search_v: %s %s -> %d (%s) \n " ,
basedn ? basedn : " NULL " , expr , count ,
count = = - 1 ? ldb_errstring ( ldb ) : " OK " ) ) ;
2004-06-27 12:03:06 +00:00
free ( expr ) ;
return count ;
}