summaryrefslogtreecommitdiff
path: root/source4/kdc/kdc.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2009-07-27 16:09:25 +1000
committerAndrew Bartlett <abartlet@samba.org>2009-07-27 22:41:42 +1000
commit56f4516399431cc508ca0c3e0dd7f179cc7ab62c (patch)
tree917157ee7f661927edd5535a5ed939d8bfe6a928 /source4/kdc/kdc.c
parentb50ab318c1c66aaffd68c01b19140d0221c3e9c1 (diff)
downloadsamba-56f4516399431cc508ca0c3e0dd7f179cc7ab62c.tar.gz
samba-56f4516399431cc508ca0c3e0dd7f179cc7ab62c.tar.bz2
samba-56f4516399431cc508ca0c3e0dd7f179cc7ab62c.zip
s4:kdc Push context to hdb_samba4 by way of the 'name' of the DB
This overloads the 'name' part of the keytab name to supply a context pointer, and so avoids 3 global variables! To do this, we had to stop putting the entry for kpasswd into the secrets.ldb. (I don't consider this a big loss, and any entry left there by an upgrade will be harmless). Andrew Bartlett
Diffstat (limited to 'source4/kdc/kdc.c')
-rw-r--r--source4/kdc/kdc.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/source4/kdc/kdc.c b/source4/kdc/kdc.c
index 28d8da9d9f..746781f02d 100644
--- a/source4/kdc/kdc.c
+++ b/source4/kdc/kdc.c
@@ -729,15 +729,20 @@ static void kdc_task_init(struct task_server *task)
kdc->smb_krb5_context->krb5_context,
&kdc->config->db[0]);
if (!NT_STATUS_IS_OK(status)) {
- task_server_terminate(task, "kdc: hdb_ldb_create (setup KDC database) failed");
+ task_server_terminate(task, "kdc: hdb_samba4_create_kdc (setup KDC database) failed");
return;
}
- /* Register hdb-samba4 hooks */
+ /* Register hdb-samba4 hooks for use as a keytab */
- hdb_samba4_mem_ctx = kdc->smb_krb5_context;
- hdb_samba4_ev_ctx = task->event_ctx;
- hdb_samba4_lp_ctx = task->lp_ctx;
+ kdc->hdb_samba4_context = talloc(kdc, struct hdb_samba4_context);
+ if (!kdc->hdb_samba4_context) {
+ task_server_terminate(task, "kdc: out of memory");
+ return;
+ }
+
+ kdc->hdb_samba4_context->ev_ctx = task->event_ctx;
+ kdc->hdb_samba4_context->lp_ctx = task->lp_ctx;
ret = krb5_plugin_register(kdc->smb_krb5_context->krb5_context,
PLUGIN_TYPE_DATA, "hdb",