diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/include/tldap_util.h | 4 | ||||
-rw-r--r-- | source3/lib/tldap_util.c | 28 |
2 files changed, 24 insertions, 8 deletions
diff --git a/source3/include/tldap_util.h b/source3/include/tldap_util.h index 9b0393eefc..f257afc0b0 100644 --- a/source3/include/tldap_util.h +++ b/source3/include/tldap_util.h @@ -45,6 +45,10 @@ bool tldap_make_mod_fmt(struct tldap_message *existing, TALLOC_CTX *mem_ctx, const char *tldap_errstr(TALLOC_CTX *mem_ctx, struct tldap_context *ld, int rc); +int tldap_search_va(struct tldap_context *ld, const char *base, int scope, + const char *attrs[], int num_attrs, int attrsonly, + TALLOC_CTX *mem_ctx, struct tldap_message ***res, + const char *fmt, va_list ap); int tldap_search_fmt(struct tldap_context *ld, const char *base, int scope, const char *attrs[], int num_attrs, int attrsonly, TALLOC_CTX *mem_ctx, struct tldap_message ***res, diff --git a/source3/lib/tldap_util.c b/source3/lib/tldap_util.c index f4fffb57d4..f3a8c71216 100644 --- a/source3/lib/tldap_util.c +++ b/source3/lib/tldap_util.c @@ -325,22 +325,19 @@ const char *tldap_errstr(TALLOC_CTX *mem_ctx, struct tldap_context *ld, int rc) return res; } -int tldap_search_fmt(struct tldap_context *ld, const char *base, int scope, - const char *attrs[], int num_attrs, int attrsonly, - TALLOC_CTX *mem_ctx, struct tldap_message ***res, - const char *fmt, ...) +int tldap_search_va(struct tldap_context *ld, const char *base, int scope, + const char *attrs[], int num_attrs, int attrsonly, + TALLOC_CTX *mem_ctx, struct tldap_message ***res, + const char *fmt, va_list ap) { - va_list ap; char *filter; int ret; - va_start(ap, fmt); filter = talloc_vasprintf(talloc_tos(), fmt, ap); - va_end(ap); - if (filter == NULL) { return TLDAP_NO_MEMORY; } + ret = tldap_search(ld, base, scope, filter, attrs, num_attrs, attrsonly, NULL /*sctrls*/, 0, NULL /*cctrls*/, 0, @@ -350,6 +347,21 @@ int tldap_search_fmt(struct tldap_context *ld, const char *base, int scope, return ret; } +int tldap_search_fmt(struct tldap_context *ld, const char *base, int scope, + const char *attrs[], int num_attrs, int attrsonly, + TALLOC_CTX *mem_ctx, struct tldap_message ***res, + const char *fmt, ...) +{ + va_list ap; + int ret; + + va_start(ap, fmt); + ret = tldap_search_va(ld, base, scope, attrs, num_attrs, attrsonly, + mem_ctx, res, fmt, ap); + va_end(ap); + return ret; +} + bool tldap_pull_uint64(struct tldap_message *msg, const char *attr, uint64_t *presult) { |