Author: metze Date: 2007-01-13 15:03:00 +0000 (Sat, 13 Jan 2007) New Revision: 20731
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20731 Log: we need the complex memmove() handling for removing an attribute only in one place metze Modified: branches/SAMBA_4_0/source/lib/ldb/common/ldb_msg.c Changeset: Modified: branches/SAMBA_4_0/source/lib/ldb/common/ldb_msg.c =================================================================== --- branches/SAMBA_4_0/source/lib/ldb/common/ldb_msg.c 2007-01-13 15:01:39 UTC (rev 20730) +++ branches/SAMBA_4_0/source/lib/ldb/common/ldb_msg.c 2007-01-13 15:03:00 UTC (rev 20731) @@ -728,23 +728,7 @@ return ldb_msg_rename_attr(msg, attr, replace); } - /* - remove the specified attribute in a search result -*/ -void ldb_msg_remove_attr(struct ldb_message *msg, const char *attr) -{ - struct ldb_message_element *el = ldb_msg_find_element(msg, attr); - if (el) { - int n = (el - msg->elements); - if (n != msg->num_elements-1) { - memmove(el, el+1, ((msg->num_elements-1) - n)*sizeof(*el)); - } - msg->num_elements--; - } -} - -/* remove the specified element in a search result */ void ldb_msg_remove_element(struct ldb_message *msg, struct ldb_message_element *el) @@ -756,7 +740,19 @@ msg->num_elements--; } + /* + remove the specified attribute in a search result +*/ +void ldb_msg_remove_attr(struct ldb_message *msg, const char *attr) +{ + struct ldb_message_element *el = ldb_msg_find_element(msg, attr); + if (el) { + ldb_msg_remove_element(msg, el); + } +} + +/* return a LDAP formatted GeneralizedTime string */ char *ldb_timestring(TALLOC_CTX *mem_ctx, time_t t)