diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-02-12 11:30:33 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:09:45 -0500 |
commit | ff4797a9e4b01fe8cc9421e911371677433d070c (patch) | |
tree | 2f0dc8148ffb8fae5eb2bb08be227d96e3f6bbe3 | |
parent | 907d1d413d8c907876ae832a462a21839ac3d19a (diff) | |
download | samba-ff4797a9e4b01fe8cc9421e911371677433d070c.tar.gz samba-ff4797a9e4b01fe8cc9421e911371677433d070c.tar.bz2 samba-ff4797a9e4b01fe8cc9421e911371677433d070c.zip |
r5357: added ldb_msg_add_fmt(), for creating formatted ldb record values
(This used to be commit 18fb48204f4c0e22ea7e61575b3f174f30ff035c)
-rw-r--r-- | source4/lib/ldb/common/ldb_msg.c | 22 | ||||
-rw-r--r-- | source4/lib/ldb/include/ldb.h | 2 |
2 files changed, 24 insertions, 0 deletions
diff --git a/source4/lib/ldb/common/ldb_msg.c b/source4/lib/ldb/common/ldb_msg.c index 3ef25e566f..b145565a84 100644 --- a/source4/lib/ldb/common/ldb_msg.c +++ b/source4/lib/ldb/common/ldb_msg.c @@ -213,6 +213,28 @@ int ldb_msg_add_string(struct ldb_context *ldb, struct ldb_message *msg, } /* + add a printf formatted element to a message +*/ +int ldb_msg_add_fmt(struct ldb_context *ldb, struct ldb_message *msg, + const char *attr_name, const char *fmt, ...) +{ + struct ldb_val val; + va_list ap; + char *str; + + va_start(ap, fmt); + str = talloc_vasprintf(msg, fmt, ap); + va_end(ap); + + if (str == NULL) return -1; + + val.data = str; + val.length = strlen(str); + + return ldb_msg_add_value(ldb, msg, attr_name, &val); +} + +/* compare two ldb_message_element structures assumes case senistive comparison */ diff --git a/source4/lib/ldb/include/ldb.h b/source4/lib/ldb/include/ldb.h index 310000b244..c6f96f6dea 100644 --- a/source4/lib/ldb/include/ldb.h +++ b/source4/lib/ldb/include/ldb.h @@ -259,6 +259,8 @@ int ldb_msg_add_value(struct ldb_context *ldb, const struct ldb_val *val); int ldb_msg_add_string(struct ldb_context *ldb, struct ldb_message *msg, const char *attr_name, const char *str); +int ldb_msg_add_fmt(struct ldb_context *ldb, struct ldb_message *msg, + const char *attr_name, const char *fmt, ...) PRINTF_ATTRIBUTE(4,5); /* compare two message elements - return 0 on match */ int ldb_msg_element_compare(struct ldb_message_element *el1, |