diff options
Diffstat (limited to 'src/responder/pac/pacsrv.c')
-rw-r--r-- | src/responder/pac/pacsrv.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/responder/pac/pacsrv.c b/src/responder/pac/pacsrv.c index 98d1aabff..6421fee93 100644 --- a/src/responder/pac/pacsrv.c +++ b/src/responder/pac/pacsrv.c @@ -103,6 +103,16 @@ static void pac_dp_reconnect_init(struct sbus_connection *conn, /* nss_shutdown(rctx); */ } +static void *idmap_talloc(size_t size, void *pvt) +{ + return talloc_size(pvt, size); +} + +static void idmap_free(void *ptr, void *pvt) +{ + talloc_free(ptr); +} + int pac_process_init(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct confdb_ctx *cdb) @@ -111,6 +121,7 @@ int pac_process_init(TALLOC_CTX *mem_ctx, struct be_conn *iter; struct pac_ctx *pac_ctx; int ret, max_retries; + enum idmap_error_code err; pac_ctx = talloc_zero(mem_ctx, struct pac_ctx); if (!pac_ctx) { @@ -149,6 +160,14 @@ int pac_process_init(TALLOC_CTX *mem_ctx, pac_dp_reconnect_init, iter); } + + err = sss_idmap_init(idmap_talloc, pac_ctx, idmap_free, + &pac_ctx->idmap_ctx); + if (err != IDMAP_SUCCESS) { + DEBUG(SSSDBG_FATAL_FAILURE, ("sss_idmap_init failed.\n")); + return EFAULT; + } + DEBUG(SSSDBG_TRACE_FUNC, ("PAC Initialization complete\n")); return EOK; |