This is a pointer to an element pointer. If it is not null it will be
filled with the pointer of the manipulated element.
Will avoid double searches on the elements list in some cases.
(This used to be commit
0fa5d4bc225b83e9f63ac6d75bffc4c08eb6b620)
21 files changed:
server_state.length = sizeof(creds->server.data);
ldb_msg_add_string(msg, "objectClass", "schannelState");
server_state.length = sizeof(creds->server.data);
ldb_msg_add_string(msg, "objectClass", "schannelState");
- ldb_msg_add_value(msg, "sessionKey", &val);
- ldb_msg_add_value(msg, "seed", &seed);
- ldb_msg_add_value(msg, "clientState", &client_state);
- ldb_msg_add_value(msg, "serverState", &server_state);
+ ldb_msg_add_value(msg, "sessionKey", &val, NULL);
+ ldb_msg_add_value(msg, "seed", &seed, NULL);
+ ldb_msg_add_value(msg, "clientState", &client_state, NULL);
+ ldb_msg_add_value(msg, "serverState", &server_state, NULL);
ldb_msg_add_string(msg, "negotiateFlags", f);
ldb_msg_add_string(msg, "secureChannelType", sct);
ldb_msg_add_string(msg, "accountName", creds->account_name);
ldb_msg_add_string(msg, "negotiateFlags", f);
ldb_msg_add_string(msg, "secureChannelType", sct);
ldb_msg_add_string(msg, "accountName", creds->account_name);
ares->message->elements[i].name);
if (!el) {
if (ldb_msg_add_empty(local_context->remote_res->message,
ares->message->elements[i].name);
if (!el) {
if (ldb_msg_add_empty(local_context->remote_res->message,
- ares->message->elements[i].name, 0) != LDB_SUCCESS) {
+ ares->message->elements[i].name, 0, &el) != LDB_SUCCESS) {
talloc_free(ares);
return LDB_ERR_OPERATIONS_ERROR;
}
talloc_free(ares);
return LDB_ERR_OPERATIONS_ERROR;
}
- el = ldb_msg_find_element(local_context->remote_res->message,
- ares->message->elements[i].name);
*el = ares->message->elements[i];
}
}
*el = ares->message->elements[i];
}
}
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
- ret = ldb_msg_add_value(msg, "objectGUID", &v);
+ ret = ldb_msg_add_value(msg, "objectGUID", &v, NULL);
if (ret) {
talloc_free(down_req);
return ret;
if (ret) {
talloc_free(down_req);
return ret;
- if (ldb_msg_add_empty(msg, "ntPwdHash", LDB_FLAG_MOD_REPLACE) != 0) {
+ if (ldb_msg_add_empty(msg, "ntPwdHash", LDB_FLAG_MOD_REPLACE, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
- if (ldb_msg_add_empty(msg, "lmPwdHash", LDB_FLAG_MOD_REPLACE) != 0) {
+ if (ldb_msg_add_empty(msg, "lmPwdHash", LDB_FLAG_MOD_REPLACE, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
}
return LDB_ERR_OPERATIONS_ERROR;
}
}
hdb_free_keys (smb_krb5_context->krb5_context, num_keys, keys);
return LDB_ERR_OPERATIONS_ERROR;
}
hdb_free_keys (smb_krb5_context->krb5_context, num_keys, keys);
return LDB_ERR_OPERATIONS_ERROR;
}
- ret = ldb_msg_add_value(msg, "krb5Key", &val);
+ ret = ldb_msg_add_value(msg, "krb5Key", &val, NULL);
if (ret != LDB_SUCCESS) {
hdb_free_keys (smb_krb5_context->krb5_context, num_keys, keys);
return ret;
if (ret != LDB_SUCCESS) {
hdb_free_keys (smb_krb5_context->krb5_context, num_keys, keys);
return ret;
if (!val.data) {
return LDB_ERR_OPERATIONS_ERROR;
}
if (!val.data) {
return LDB_ERR_OPERATIONS_ERROR;
}
- if (ldb_msg_add_value(msg, "krb5Key", &val) != 0) {
+ if (ldb_msg_add_value(msg, "krb5Key", &val, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
/* be sure there isn't a 0 value set (eg. coming from the template) */
ldb_msg_remove_attr(msg, "pwdLastSet");
/* add */
/* be sure there isn't a 0 value set (eg. coming from the template) */
ldb_msg_remove_attr(msg, "pwdLastSet");
/* add */
- if (ldb_msg_add_empty(msg, "pwdLastSet", LDB_FLAG_MOD_ADD) != 0) {
+ if (ldb_msg_add_empty(msg, "pwdLastSet", LDB_FLAG_MOD_ADD, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
} else {
/* replace */
return LDB_ERR_OPERATIONS_ERROR;
}
} else {
/* replace */
- if (ldb_msg_add_empty(msg, "pwdLastSet", LDB_FLAG_MOD_REPLACE) != 0) {
+ if (ldb_msg_add_empty(msg, "pwdLastSet", LDB_FLAG_MOD_REPLACE, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
}
return LDB_ERR_OPERATIONS_ERROR;
}
}
static int add_keyVersionNumber(struct ldb_module *module, struct ldb_message *msg, int previous)
{
/* replace or add */
static int add_keyVersionNumber(struct ldb_module *module, struct ldb_message *msg, int previous)
{
/* replace or add */
- if (ldb_msg_add_empty(msg, "msDS-KeyVersionNumber", LDB_FLAG_MOD_REPLACE) != 0) {
+ if (ldb_msg_add_empty(msg, "msDS-KeyVersionNumber", LDB_FLAG_MOD_REPLACE, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
} else {
ZERO_STRUCT(new_nt_history[0]);
}
} else {
ZERO_STRUCT(new_nt_history[0]);
}
- if (ldb_msg_add_empty(msg, "sambaNTPwdHistory", LDB_FLAG_MOD_REPLACE) != LDB_SUCCESS) {
+ if (ldb_msg_add_empty(msg, "sambaNTPwdHistory", LDB_FLAG_MOD_REPLACE, NULL) != LDB_SUCCESS) {
return LDB_ERR_OPERATIONS_ERROR;
}
if (samdb_msg_add_hashes(msg, msg, "sambaNTPwdHistory", new_nt_history, nt_hist_len) != LDB_SUCCESS) {
return LDB_ERR_OPERATIONS_ERROR;
}
if (samdb_msg_add_hashes(msg, msg, "sambaNTPwdHistory", new_nt_history, nt_hist_len) != LDB_SUCCESS) {
} else {
ZERO_STRUCT(new_lm_history[0]);
}
} else {
ZERO_STRUCT(new_lm_history[0]);
}
- if (ldb_msg_add_empty(msg, "sambaLMPwdHistory", LDB_FLAG_MOD_REPLACE) != LDB_SUCCESS) {
+ if (ldb_msg_add_empty(msg, "sambaLMPwdHistory", LDB_FLAG_MOD_REPLACE, NULL) != LDB_SUCCESS) {
return LDB_ERR_OPERATIONS_ERROR;
}
if (samdb_msg_add_hashes(msg, msg, "sambaLMPwdHistory", new_lm_history, lm_hist_len) != LDB_SUCCESS) {
return LDB_ERR_OPERATIONS_ERROR;
}
if (samdb_msg_add_hashes(msg, msg, "sambaLMPwdHistory", new_lm_history, lm_hist_len) != LDB_SUCCESS) {
}
/* we are going to replace the existing krb5key or delete it */
}
/* we are going to replace the existing krb5key or delete it */
- if (ldb_msg_add_empty(msg, "krb5key", LDB_FLAG_MOD_REPLACE) != 0) {
+ if (ldb_msg_add_empty(msg, "krb5key", LDB_FLAG_MOD_REPLACE, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
if (!NT_STATUS_IS_OK(status)) {
return -1;
}
if (!NT_STATUS_IS_OK(status)) {
return -1;
}
- return (ldb_msg_add_value(msg, name, &v) == 0);
+ return (ldb_msg_add_value(msg, name, &v, NULL) == 0);
/* rebuild the objectclass list */
ldb_msg_remove_attr(msg, "objectClass");
/* rebuild the objectclass list */
ldb_msg_remove_attr(msg, "objectClass");
- ret = ldb_msg_add_empty(msg, "objectClass", 0);
+ ret = ldb_msg_add_empty(msg, "objectClass", 0, NULL);
if (ret != LDB_SUCCESS) {
return ret;
}
if (ret != LDB_SUCCESS) {
return ret;
}
if (!NT_STATUS_IS_OK(status)) {
return -1;
}
if (!NT_STATUS_IS_OK(status)) {
return -1;
}
- return ldb_msg_add_value(msg, attr_name, &v);
+ return ldb_msg_add_value(msg, attr_name, &v, NULL);
{
/* we use an empty replace rather than a delete, as it allows for
samdb_replace() to be used everywhere */
{
/* we use an empty replace rather than a delete, as it allows for
samdb_replace() to be used everywhere */
- return ldb_msg_add_empty(msg, attr_name, LDB_FLAG_MOD_REPLACE);
+ return ldb_msg_add_empty(msg, attr_name, LDB_FLAG_MOD_REPLACE, NULL);
return -1;
}
val.length = 16;
return -1;
}
val.length = 16;
- return ldb_msg_add_value(msg, attr_name, &val);
+ return ldb_msg_add_value(msg, attr_name, &val, NULL);
for (i=0;i<count;i++) {
memcpy(i*16 + (char *)val.data, hashes[i].hash, 16);
}
for (i=0;i<count;i++) {
memcpy(i*16 + (char *)val.data, hashes[i].hash, 16);
}
- return ldb_msg_add_value(msg, attr_name, &val);
+ return ldb_msg_add_value(msg, attr_name, &val, NULL);
struct ldb_val val;
val.length = hours->units_per_week / 8;
val.data = hours->bits;
struct ldb_val val;
val.length = hours->units_per_week / 8;
val.data = hours->bits;
- return ldb_msg_add_value(msg, attr_name, &val);
+ return ldb_msg_add_value(msg, attr_name, &val, NULL);
int samdb_msg_add_value(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, struct ldb_message *msg,
const char *attr_name, const struct ldb_val *val)
{
int samdb_msg_add_value(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, struct ldb_message *msg,
const char *attr_name, const struct ldb_val *val)
{
- return ldb_msg_add_value(msg, attr_name, val);
+ return ldb_msg_add_value(msg, attr_name, val, NULL);
if (el) {
el->num_values = 0;
}
if (el) {
el->num_values = 0;
}
- return ldb_msg_add_value(msg, attr_name, val);
+ return ldb_msg_add_value(msg, attr_name, val, NULL);
- if (ldb_msg_add_empty(msg, (char *)value.data, flags) != 0) {
+ if (ldb_msg_add_empty(msg, (char *)value.data, flags, NULL) != 0) {
/*
add an empty element to a message
*/
/*
add an empty element to a message
*/
-int ldb_msg_add_empty(struct ldb_message *msg, const char *attr_name, int flags)
+int ldb_msg_add_empty( struct ldb_message *msg,
+ const char *attr_name,
+ int flags,
+ struct ldb_message_element **return_el)
{
struct ldb_message_element *els;
{
struct ldb_message_element *els;
msg->elements = els;
msg->num_elements++;
msg->elements = els;
msg->num_elements++;
+ if (return_el) {
+ *return_el = &els[msg->num_elements-1];
+ }
+
const struct ldb_message_element *el,
int flags)
{
const struct ldb_message_element *el,
int flags)
{
- if (ldb_msg_add_empty(msg, el->name, flags) != 0) {
+ if (ldb_msg_add_empty(msg, el->name, flags, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
*/
int ldb_msg_add_value(struct ldb_message *msg,
const char *attr_name,
*/
int ldb_msg_add_value(struct ldb_message *msg,
const char *attr_name,
- const struct ldb_val *val)
+ const struct ldb_val *val,
+ struct ldb_message_element **return_el)
{
struct ldb_message_element *el;
struct ldb_val *vals;
el = ldb_msg_find_element(msg, attr_name);
if (!el) {
{
struct ldb_message_element *el;
struct ldb_val *vals;
el = ldb_msg_find_element(msg, attr_name);
if (!el) {
- ldb_msg_add_empty(msg, attr_name, 0);
- el = ldb_msg_find_element(msg, attr_name);
+ ldb_msg_add_empty(msg, attr_name, 0, &el);
}
if (!el) {
return LDB_ERR_OPERATIONS_ERROR;
}
if (!el) {
return LDB_ERR_OPERATIONS_ERROR;
el->values[el->num_values] = *val;
el->num_values++;
el->values[el->num_values] = *val;
el->num_values++;
+ if (return_el) {
+ *return_el = el;
+ }
+
struct ldb_val *val)
{
int ret;
struct ldb_val *val)
{
int ret;
- ret = ldb_msg_add_value(msg, attr_name, val);
+ struct ldb_message_element *el;
+
+ ret = ldb_msg_add_value(msg, attr_name, val, &el);
if (ret == LDB_SUCCESS) {
if (ret == LDB_SUCCESS) {
- struct ldb_message_element *el;
- el = ldb_msg_find_element(msg, attr_name);
talloc_steal(el->values, val->data);
}
return ret;
talloc_steal(el->values, val->data);
}
return ret;
- return ldb_msg_add_value(msg, attr_name, &val);
+ return ldb_msg_add_value(msg, attr_name, &val, NULL);
if (!el) {
if (ldb_msg_add_empty(mod,
msg1->elements[i].name,
if (!el) {
if (ldb_msg_add_empty(mod,
msg1->elements[i].name,
- LDB_FLAG_MOD_DELETE) != 0) {
+ LDB_FLAG_MOD_DELETE, NULL) != 0) {
/**
add a new empty element to a ldb_message
*/
/**
add a new empty element to a ldb_message
*/
-int ldb_msg_add_empty(struct ldb_message *msg, const char *attr_name, int flags);
+int ldb_msg_add_empty(struct ldb_message *msg,
+ const char *attr_name,
+ int flags,
+ struct ldb_message_element **return_el);
/**
add a element to a ldb_message
/**
add a element to a ldb_message
const struct ldb_message_element *el,
int flags);
int ldb_msg_add_value(struct ldb_message *msg,
const struct ldb_message_element *el,
int flags);
int ldb_msg_add_value(struct ldb_message *msg,
- const char *attr_name,
- const struct ldb_val *val);
+ const char *attr_name,
+ const struct ldb_val *val,
+ struct ldb_message_element **return_el);
int ldb_msg_add_steal_value(struct ldb_message *msg,
const char *attr_name,
struct ldb_val *val);
int ldb_msg_add_steal_value(struct ldb_message *msg,
const char *attr_name,
struct ldb_val *val);
if (dn == NULL) {
goto failed;
}
if (dn == NULL) {
goto failed;
}
- if (ldb_msg_add_empty(msg, IS_MAPPED, LDB_FLAG_MOD_REPLACE) != 0) {
+ if (ldb_msg_add_empty(msg, IS_MAPPED, LDB_FLAG_MOD_REPLACE, NULL) != 0) {
goto failed;
}
if (ldb_msg_add_string(msg, IS_MAPPED, dn) != 0) {
goto failed;
}
if (ldb_msg_add_string(msg, IS_MAPPED, dn) != 0) {
/* Add local 'IS_MAPPED' */
/* TODO: use GUIDs here instead */
dn = ldb_dn_linearize(msg, ac->remote_req->op.mod.message->dn);
/* Add local 'IS_MAPPED' */
/* TODO: use GUIDs here instead */
dn = ldb_dn_linearize(msg, ac->remote_req->op.mod.message->dn);
- if (ldb_msg_add_empty(msg, IS_MAPPED, LDB_FLAG_MOD_ADD) != 0) {
+ if (ldb_msg_add_empty(msg, IS_MAPPED, LDB_FLAG_MOD_ADD, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
if (ldb_msg_add_string(msg, IS_MAPPED, dn) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
if (ldb_msg_add_string(msg, IS_MAPPED, dn) != 0) {
/* no local result, add as new element */
if (old == NULL) {
/* no local result, add as new element */
if (old == NULL) {
- if (ldb_msg_add_empty(msg, el->name, 0) != 0) {
- return -1;
- }
-
- old = ldb_msg_find_element(msg, el->name);
- if (old == NULL) {
+ if (ldb_msg_add_empty(msg, el->name, 0, &old) != 0) {
}
ldb_msg_remove_attr(msg, "objectClass");
}
ldb_msg_remove_attr(msg, "objectClass");
- ret = ldb_msg_add_empty(msg, "objectClass", 0);
+ ret = ldb_msg_add_empty(msg, "objectClass", 0, NULL);
if (ret != LDB_SUCCESS) {
talloc_free(mem_ctx);
if (ret != LDB_SUCCESS) {
talloc_free(mem_ctx);
* because we need it sorted */
ldb_msg_remove_attr(msg, "objectClass");
* because we need it sorted */
ldb_msg_remove_attr(msg, "objectClass");
- ret = ldb_msg_add_empty(msg, "objectClass", LDB_FLAG_MOD_REPLACE);
+ ret = ldb_msg_add_empty(msg, "objectClass", LDB_FLAG_MOD_REPLACE, NULL);
if (ret != LDB_SUCCESS) {
talloc_free(mem_ctx);
if (ret != LDB_SUCCESS) {
talloc_free(mem_ctx);
* We could do a constrained add/del, but we are meant to be
* in a transaction... */
* We could do a constrained add/del, but we are meant to be
* in a transaction... */
- ret = ldb_msg_add_empty(msg, "objectClass", LDB_FLAG_MOD_REPLACE);
+ ret = ldb_msg_add_empty(msg, "objectClass", LDB_FLAG_MOD_REPLACE, NULL);
if (ret != LDB_SUCCESS) {
ldb_set_errstring(ac->module->ldb, "objectclass: could not clear objectclass in modify msg");
talloc_free(mem_ctx);
if (ret != LDB_SUCCESS) {
ldb_set_errstring(ac->module->ldb, "objectclass: could not clear objectclass in modify msg");
talloc_free(mem_ctx);
attribute->num_values = 0;
}
attribute->num_values = 0;
}
- if (ldb_msg_add_value(msg, "name", &rdn->value) != 0) {
+ if (ldb_msg_add_value(msg, "name", &rdn->value, NULL) != 0) {
talloc_free(down_req);
return LDB_ERR_OPERATIONS_ERROR;
}
talloc_free(down_req);
return LDB_ERR_OPERATIONS_ERROR;
}
attribute = rdn_name_find_attribute(msg, rdn->name);
if (!attribute) {
attribute = rdn_name_find_attribute(msg, rdn->name);
if (!attribute) {
- if (ldb_msg_add_value(msg, rdn->name, &rdn->value) != 0) {
+ if (ldb_msg_add_value(msg, rdn->name, &rdn->value, NULL) != 0) {
talloc_free(down_req);
return LDB_ERR_OPERATIONS_ERROR;
}
talloc_free(down_req);
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
- if (ldb_msg_add_empty(msg, rdn->name, LDB_FLAG_MOD_REPLACE) != 0) {
+ if (ldb_msg_add_empty(msg, rdn->name, LDB_FLAG_MOD_REPLACE, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
- if (ldb_msg_add_value(msg, rdn->name, &rdn->value) != 0) {
+ if (ldb_msg_add_value(msg, rdn->name, &rdn->value, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
- if (ldb_msg_add_empty(msg, "name", LDB_FLAG_MOD_REPLACE) != 0) {
+ if (ldb_msg_add_empty(msg, "name", LDB_FLAG_MOD_REPLACE, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
- if (ldb_msg_add_value(msg, "name", &rdn->value) != 0) {
+ if (ldb_msg_add_value(msg, "name", &rdn->value, NULL) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
return LDB_ERR_OPERATIONS_ERROR;
}
case REG_SZ:
case REG_EXPAND_SZ:
val.length = convert_string_talloc(mem_ctx, CH_UTF16, CH_UTF8, (void *)data.data, data.length, (void **)&val.data);
case REG_SZ:
case REG_EXPAND_SZ:
val.length = convert_string_talloc(mem_ctx, CH_UTF16, CH_UTF8, (void *)data.data, data.length, (void **)&val.data);
- ldb_msg_add_value(msg, "data", &val);
+ ldb_msg_add_value(msg, "data", &val, NULL);
break;
case REG_DWORD:
ldb_msg_add_string(msg, "data", talloc_asprintf(mem_ctx, "0x%x", IVAL(data.data, 0)));
break;
default:
break;
case REG_DWORD:
ldb_msg_add_string(msg, "data", talloc_asprintf(mem_ctx, "0x%x", IVAL(data.data, 0)));
break;
default:
- ldb_msg_add_value(msg, "data", &data);
+ ldb_msg_add_value(msg, "data", &data, NULL);
- ldb_msg_add_value(msg, "objectGUID", &v);
+ ldb_msg_add_value(msg, "objectGUID", &v, NULL);
}
} else if (database == SAM_DATABASE_BUILTIN) {
/* work out the builtin_dn - useful for so many calls its worth
}
} else if (database == SAM_DATABASE_BUILTIN) {
/* work out the builtin_dn - useful for so many calls its worth
- ret = ldb_msg_add_empty(msg, "objectClass", LDB_FLAG_MOD_REPLACE);
+ ret = ldb_msg_add_empty(msg, "objectClass", LDB_FLAG_MOD_REPLACE, NULL);
if (ret != 0) goto failed;
ret = ldb_msg_add_string(msg, "objectClass", "winsMaxVersion");
if (ret != 0) goto failed;
if (ret != 0) goto failed;
ret = ldb_msg_add_string(msg, "objectClass", "winsMaxVersion");
if (ret != 0) goto failed;
- ret = ldb_msg_add_empty(msg, "maxVersion", LDB_FLAG_MOD_REPLACE);
+ ret = ldb_msg_add_empty(msg, "maxVersion", LDB_FLAG_MOD_REPLACE, NULL);
if (ret != 0) goto failed;
ret = ldb_msg_add_fmt(msg, "maxVersion", "%llu", (long long)newMaxVersion);
if (ret != 0) goto failed;
if (ret != 0) goto failed;
ret = ldb_msg_add_fmt(msg, "maxVersion", "%llu", (long long)newMaxVersion);
if (ret != 0) goto failed;
val.data = discard_const_p(uint8_t, str);
val.length = strlen(str);
val.data = discard_const_p(uint8_t, str);
val.length = strlen(str);
- return ldb_msg_add_value(msg, attr_name, &val);
+ return ldb_msg_add_value(msg, attr_name, &val, NULL);
}
struct winsdb_addr **winsdb_addr_list_make(TALLOC_CTX *mem_ctx)
}
struct winsdb_addr **winsdb_addr_list_make(TALLOC_CTX *mem_ctx)
ret |= ldb_msg_add_fmt(msg, "recordState", "%u", rec->state);
ret |= ldb_msg_add_fmt(msg, "nodeType", "%u", rec->node);
ret |= ldb_msg_add_fmt(msg, "isStatic", "%u", rec->is_static);
ret |= ldb_msg_add_fmt(msg, "recordState", "%u", rec->state);
ret |= ldb_msg_add_fmt(msg, "nodeType", "%u", rec->node);
ret |= ldb_msg_add_fmt(msg, "isStatic", "%u", rec->is_static);
- ret |= ldb_msg_add_empty(msg, "expireTime", 0);
+ ret |= ldb_msg_add_empty(msg, "expireTime", 0, NULL);
if (!(rec->is_static && rec->state == WREPL_STATE_ACTIVE)) {
ret |= ldb_msg_add_string(msg, "expireTime", expire_time);
}
ret |= ldb_msg_add_fmt(msg, "versionID", "%llu", (long long)rec->version);
ret |= ldb_msg_add_string(msg, "winsOwner", rec->wins_owner);
if (!(rec->is_static && rec->state == WREPL_STATE_ACTIVE)) {
ret |= ldb_msg_add_string(msg, "expireTime", expire_time);
}
ret |= ldb_msg_add_fmt(msg, "versionID", "%llu", (long long)rec->version);
ret |= ldb_msg_add_string(msg, "winsOwner", rec->wins_owner);
- ret |= ldb_msg_add_empty(msg, "address", 0);
+ ret |= ldb_msg_add_empty(msg, "address", 0, NULL);
for (i=0;rec->addresses[i];i++) {
ret |= ldb_msg_add_winsdb_addr(msg, rec, "address", rec->addresses[i]);
}
for (i=0;rec->addresses[i];i++) {
ret |= ldb_msg_add_winsdb_addr(msg, rec, "address", rec->addresses[i]);
}
- ret |= ldb_msg_add_empty(msg, "registeredBy", 0);
+ ret |= ldb_msg_add_empty(msg, "registeredBy", 0, NULL);
if (rec->registered_by) {
ret |= ldb_msg_add_string(msg, "registeredBy", rec->registered_by);
if (ret != 0) goto failed;
if (rec->registered_by) {
ret |= ldb_msg_add_string(msg, "registeredBy", rec->registered_by);
if (ret != 0) goto failed;
} } while(0)
#define SHARE_ADD_BLOB(name, value) do { \
} } while(0)
#define SHARE_ADD_BLOB(name, value) do { \
- err = ldb_msg_add_value(msg, name, value); \
+ err = ldb_msg_add_value(msg, name, value, NULL); \
if (err != LDB_SUCCESS) { \
DEBUG(2,("ERROR: unable to add blob share option %s to ldb msg\n", name)); \
ret = NT_STATUS_UNSUCCESSFUL; \
if (err != LDB_SUCCESS) { \
DEBUG(2,("ERROR: unable to add blob share option %s to ldb msg\n", name)); \
ret = NT_STATUS_UNSUCCESSFUL; \
}
#define SHARE_MOD_STRING(name, value) do { \
}
#define SHARE_MOD_STRING(name, value) do { \
- err = ldb_msg_add_empty(msg, name, LDB_FLAG_MOD_REPLACE); \
+ err = ldb_msg_add_empty(msg, name, LDB_FLAG_MOD_REPLACE, NULL); \
if (err != LDB_SUCCESS) { \
DEBUG(2,("ERROR: unable to add string share option %s to ldb msg\n", name)); \
ret = NT_STATUS_UNSUCCESSFUL; \
if (err != LDB_SUCCESS) { \
DEBUG(2,("ERROR: unable to add string share option %s to ldb msg\n", name)); \
ret = NT_STATUS_UNSUCCESSFUL; \
} } while(0)
#define SHARE_MOD_INT(name, value) do { \
} } while(0)
#define SHARE_MOD_INT(name, value) do { \
- err = ldb_msg_add_empty(msg, name, LDB_FLAG_MOD_REPLACE); \
+ err = ldb_msg_add_empty(msg, name, LDB_FLAG_MOD_REPLACE, NULL); \
if (err != LDB_SUCCESS) { \
DEBUG(2,("ERROR: unable to add string share option %s to ldb msg\n", name)); \
ret = NT_STATUS_UNSUCCESSFUL; \
if (err != LDB_SUCCESS) { \
DEBUG(2,("ERROR: unable to add string share option %s to ldb msg\n", name)); \
ret = NT_STATUS_UNSUCCESSFUL; \
} } while(0)
#define SHARE_MOD_BLOB(name, value) do { \
} } while(0)
#define SHARE_MOD_BLOB(name, value) do { \
- err = ldb_msg_add_empty(msg, name, LDB_FLAG_MOD_REPLACE); \
+ err = ldb_msg_add_empty(msg, name, LDB_FLAG_MOD_REPLACE, NULL); \
if (err != LDB_SUCCESS) { \
DEBUG(2,("ERROR: unable to add string share option %s to ldb msg\n", name)); \
ret = NT_STATUS_UNSUCCESSFUL; \
goto done; \
} \
if (err != LDB_SUCCESS) { \
DEBUG(2,("ERROR: unable to add string share option %s to ldb msg\n", name)); \
ret = NT_STATUS_UNSUCCESSFUL; \
goto done; \
} \
- err = ldb_msg_add_value(msg, name, value); \
+ err = ldb_msg_add_value(msg, name, value, NULL); \
if (err != LDB_SUCCESS) { \
DEBUG(2,("ERROR: unable to add blob share option %s to ldb msg\n", name)); \
ret = NT_STATUS_UNSUCCESSFUL; \
if (err != LDB_SUCCESS) { \
DEBUG(2,("ERROR: unable to add blob share option %s to ldb msg\n", name)); \
ret = NT_STATUS_UNSUCCESSFUL; \
return NT_STATUS_NO_SUCH_USER;
}
return NT_STATUS_NO_SUCH_USER;
}
- if (ldb_msg_add_empty(msg, "privilege", ldb_flag)) {
+ if (ldb_msg_add_empty(msg, "privilege", ldb_flag, NULL)) {
return NT_STATUS_NO_MEMORY;
}
return NT_STATUS_NO_MEMORY;
}