summaryrefslogtreecommitdiffstats
path: root/src/db
diff options
context:
space:
mode:
Diffstat (limited to 'src/db')
-rw-r--r--src/db/sysdb.h3
-rw-r--r--src/db/sysdb_ops.c9
2 files changed, 10 insertions, 2 deletions
diff --git a/src/db/sysdb.h b/src/db/sysdb.h
index c133072dd..190e8120e 100644
--- a/src/db/sysdb.h
+++ b/src/db/sysdb.h
@@ -495,7 +495,8 @@ int sysdb_add_user(TALLOC_CTX *mem_ctx,
int sysdb_add_fake_user(struct sysdb_ctx *ctx,
struct sss_domain_info *domain,
- const char *name);
+ const char *name,
+ const char *original_dn);
/* Add group (only basic attrs and w/o checks) */
int sysdb_add_basic_group(TALLOC_CTX *mem_ctx,
diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c
index d6260b97c..1fb389da9 100644
--- a/src/db/sysdb_ops.c
+++ b/src/db/sysdb_ops.c
@@ -934,7 +934,8 @@ done:
int sysdb_add_fake_user(struct sysdb_ctx *ctx,
struct sss_domain_info *domain,
- const char *name)
+ const char *name,
+ const char *original_dn)
{
TALLOC_CTX *tmpctx;
struct ldb_message *msg;
@@ -983,6 +984,12 @@ int sysdb_add_fake_user(struct sysdb_ctx *ctx,
(unsigned long) now-1);
if (ret) goto done;
+ if (original_dn) {
+ ret = add_string(msg, LDB_FLAG_MOD_ADD,
+ SYSDB_ORIG_DN, original_dn);
+ if (ret) goto done;
+ }
+
ret = ldb_add(ctx->ldb, msg);
ret = sysdb_error_to_errno(ret);