summaryrefslogtreecommitdiff
path: root/source4/kdc
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2005-06-04 11:17:05 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:17:34 -0500
commitd26f46f72c4149cbe404ef23a43a76d7605edc96 (patch)
treea8abad4aa2dcab5114469094d522153657a691d0 /source4/kdc
parent8cd92242b9f247630e17d396014f6f671f577f4c (diff)
downloadsamba-d26f46f72c4149cbe404ef23a43a76d7605edc96.tar.gz
samba-d26f46f72c4149cbe404ef23a43a76d7605edc96.tar.bz2
samba-d26f46f72c4149cbe404ef23a43a76d7605edc96.zip
r7270: A big revamp to the way we handle kerberos errors in Samba4. We now
fill in the function pointers to handle the logging, and catch all the kerberos warnings. (Currently at level 3). To avoid a memory leak, this requries a new function: krb5_freelog(), which I've added to lorikeet/heimdal. This also required a revamp to how we handle the krb5_context, so as to make it easier to handle with talloc destructors. Andrew Bartlett (This used to be commit 63272794c41231b335b73e7ccf349282f295c4d2)
Diffstat (limited to 'source4/kdc')
-rw-r--r--source4/kdc/hdb-ldb.c2
-rw-r--r--source4/kdc/kdc.c15
-rw-r--r--source4/kdc/kdc.h2
3 files changed, 8 insertions, 11 deletions
diff --git a/source4/kdc/hdb-ldb.c b/source4/kdc/hdb-ldb.c
index caa5a5c801..d4c281de82 100644
--- a/source4/kdc/hdb-ldb.c
+++ b/source4/kdc/hdb-ldb.c
@@ -1035,8 +1035,6 @@ krb5_error_code hdb_ldb_create(krb5_context context, struct HDB **db, const char
}
}
- krb5_warnx(context, "hdb_ldb_create: hdb_name '%s'\n", (*db)->hdb_name);
-
(*db)->hdb_openp = 0;
(*db)->hdb_open = LDB_open;
(*db)->hdb_close = LDB_close;
diff --git a/source4/kdc/kdc.c b/source4/kdc/kdc.c
index 21461c0f09..40250bbc3a 100644
--- a/source4/kdc/kdc.c
+++ b/source4/kdc/kdc.c
@@ -107,7 +107,7 @@ static void kdc_recv_handler(struct kdc_socket *kdc_socket)
src_sock_addr.sin_family = PF_INET;
/* Call krb5 */
- if (krb5_kdc_process_krb5_request(kdc_socket->kdc->krb5_context,
+ if (krb5_kdc_process_krb5_request(kdc_socket->kdc->smb_krb5_context->krb5_context,
kdc_socket->kdc->config,
blob.data, blob.length,
&reply,
@@ -157,7 +157,7 @@ static void kdc_socket_handler(struct event_context *ev, struct fd_event *fde,
*/
static NTSTATUS kdc_add_socket(struct kdc_server *kdc, const char *address)
{
- struct kdc_socket *kdc_socket;
+ struct kdc_socket *kdc_socket;
NTSTATUS status;
kdc_socket = talloc(kdc, struct kdc_socket);
@@ -251,7 +251,7 @@ static void kdc_task_init(struct task_server *task)
initialize_krb5_error_table();
- ret = krb5_init_context(&kdc->krb5_context);
+ ret = smb_krb5_init_context(kdc, &kdc->smb_krb5_context);
if (ret) {
DEBUG(1,("kdc_task_init: krb5_init_context failed (%s)\n",
error_message(ret)));
@@ -259,9 +259,7 @@ static void kdc_task_init(struct task_server *task)
return;
}
- /* TODO: Fill in the hdb and logging details */
- kdc_openlog(kdc->krb5_context, kdc->config);
-
+ kdc->config->logf = kdc->smb_krb5_context->logf;
kdc->config->db = talloc(kdc->config, struct HDB *);
if (!kdc->config->db) {
task_terminate(task, "kdc: out of memory");
@@ -269,10 +267,11 @@ static void kdc_task_init(struct task_server *task)
}
kdc->config->num_db = 1;
- ret = hdb_ldb_create(kdc->krb5_context, &kdc->config->db[0], lp_sam_url());
+ ret = hdb_ldb_create(kdc->smb_krb5_context->krb5_context,
+ &kdc->config->db[0], lp_sam_url());
if (ret != 0) {
DEBUG(1, ("kdc_task_init: hdb_ldb_create fails: %s\n",
- smb_get_krb5_error_message(kdc->krb5_context, ret, kdc)));
+ smb_get_krb5_error_message(kdc->smb_krb5_context->krb5_context, ret, kdc)));
task_terminate(task, "kdc: hdb_ldb_create failed");
return;
}
diff --git a/source4/kdc/kdc.h b/source4/kdc/kdc.h
index 2e81679e57..d766e21e6e 100644
--- a/source4/kdc/kdc.h
+++ b/source4/kdc/kdc.h
@@ -41,7 +41,7 @@ struct kdc_reply {
struct kdc_server {
struct task_server *task;
struct krb5_kdc_configuration *config;
- krb5_context krb5_context;
+ struct smb_krb5_context *smb_krb5_context;
};
/* hold information about one kdc socket */