summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2013-01-23 17:17:38 +0100
committerJakub Hrozek <jhrozek@redhat.com>2013-01-23 18:31:43 +0100
commitb1ea4ec53e90bd2897abf47e7af02d157d89d7ae (patch)
tree3c3231eda7fbdf61ef01007ddbd1e08bd381442b
parent94cbf1cfb0f88c967f1fb0a4cf23723148868e4a (diff)
downloadsssd-b1ea4ec53e90bd2897abf47e7af02d157d89d7ae.tar.gz
sssd-b1ea4ec53e90bd2897abf47e7af02d157d89d7ae.tar.bz2
sssd-b1ea4ec53e90bd2897abf47e7af02d157d89d7ae.zip
SYSDB: make the sss_ldb_modify_permissive function public
-rw-r--r--src/db/sysdb.h4
-rw-r--r--src/db/sysdb_ops.c9
2 files changed, 11 insertions, 2 deletions
diff --git a/src/db/sysdb.h b/src/db/sysdb.h
index d4af5fa6..5c33ab28 100644
--- a/src/db/sysdb.h
+++ b/src/db/sysdb.h
@@ -482,6 +482,10 @@ int sysdb_get_netgroup_attr(TALLOC_CTX *mem_ctx,
* they have to be called within a transaction
* See sysdb_transaction_send()/_recv() */
+/* Permissive modify */
+int sss_ldb_modify_permissive(struct ldb_context *ldb,
+ struct ldb_message *msg);
+
/* Delete Entry */
int sysdb_delete_entry(struct sysdb_ctx *sysdb,
struct ldb_dn *dn,
diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c
index 46ab64d3..0fb8ed49 100644
--- a/src/db/sysdb_ops.c
+++ b/src/db/sysdb_ops.c
@@ -74,8 +74,13 @@ static uint32_t get_attr_as_uint32(struct ldb_message *msg, const char *attr)
return l;
}
-static int sss_ldb_modify_permissive(struct ldb_context *ldb,
- struct ldb_message *msg)
+/*
+ * The wrapper around ldb_modify that uses LDB_CONTROL_PERMISSIVE_MODIFY_OID
+ * so that on adds entries that already exist are skipped and similarly
+ * entries that are missing are ignored on deletes
+ */
+int sss_ldb_modify_permissive(struct ldb_context *ldb,
+ struct ldb_message *msg)
{
struct ldb_request *req;
int ret = EOK;