diff options
author | Pavel Březina <pbrezina@redhat.com> | 2012-10-19 11:43:47 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-03-20 13:29:29 +0100 |
commit | 7c9fe57ad82747a32721ca0a08c5569282f3e0c4 (patch) | |
tree | 05f8ba655d1f6a0a77ed0e823f7d5c422ad2cc93 /src/responder/ssh | |
parent | 6f8ae17869f4f8a1496e3f171ae6b5c11af1845c (diff) | |
download | sssd-7c9fe57ad82747a32721ca0a08c5569282f3e0c4.tar.gz sssd-7c9fe57ad82747a32721ca0a08c5569282f3e0c4.tar.bz2 sssd-7c9fe57ad82747a32721ca0a08c5569282f3e0c4.zip |
change responder contexts hierarchy
https://fedorahosted.org/sssd/ticket/1575
The hierarchy is now:
main_ctx -> responder_ctx -> specific_ctx
where specific_ctx is one of sudo, pam, etc.
Diffstat (limited to 'src/responder/ssh')
-rw-r--r-- | src/responder/ssh/sshsrv.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/responder/ssh/sshsrv.c b/src/responder/ssh/sshsrv.c index fe6956ab..8a66f223 100644 --- a/src/responder/ssh/sshsrv.c +++ b/src/responder/ssh/sshsrv.c @@ -85,20 +85,15 @@ int ssh_process_init(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct confdb_ctx *cdb) { + struct resp_ctx *rctx; struct sss_cmd_table *ssh_cmds; struct ssh_ctx *ssh_ctx; struct be_conn *iter; int ret; int max_retries; - ssh_ctx = talloc_zero(mem_ctx, struct ssh_ctx); - if (!ssh_ctx) { - DEBUG(SSSDBG_FATAL_FAILURE, ("fatal error initializing ssh_ctx\n")); - return ENOMEM; - } - ssh_cmds = get_ssh_cmds(); - ret = sss_process_init(ssh_ctx, ev, cdb, + ret = sss_process_init(mem_ctx, ev, cdb, ssh_cmds, SSS_SSH_SOCKET_NAME, NULL, CONFDB_SSH_CONF_ENTRY, @@ -107,10 +102,20 @@ int ssh_process_init(TALLOC_CTX *mem_ctx, &monitor_ssh_interface, "SSH", &ssh_dp_interface, - &ssh_ctx->rctx); + &rctx); if (ret != EOK) { + DEBUG(SSSDBG_FATAL_FAILURE, ("sss_process_init() failed\n")); + return ret; + } + + ssh_ctx = talloc_zero(rctx, struct ssh_ctx); + if (!ssh_ctx) { + DEBUG(SSSDBG_FATAL_FAILURE, ("fatal error initializing ssh_ctx\n")); + ret = ENOMEM; goto fail; } + + ssh_ctx->rctx = rctx; ssh_ctx->rctx->pvt_ctx = ssh_ctx; /* Enable automatic reconnection to the Data Provider */ @@ -158,7 +163,7 @@ int ssh_process_init(TALLOC_CTX *mem_ctx, return EOK; fail: - talloc_free(ssh_ctx); + talloc_free(rctx); return ret; } |