From 55fc0b84f2398eda652bef8b4d7629f41e91a189 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 6 Jul 1997 21:04:41 +0000 Subject: [PATCH] config file update git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1976 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/krb5.h | 2 +- lib/krb5/krbhst.c | 33 ++++++++++++++++++--------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/lib/krb5/krb5.h b/lib/krb5/krb5.h index df4b63f43..55f2680c1 100644 --- a/lib/krb5/krb5.h +++ b/lib/krb5/krb5.h @@ -180,7 +180,7 @@ typedef struct krb5_cc_ops{ typedef struct krb5_context_data{ krb5_enctype *etypes; char *default_realm; - k5_cfile *cf; + krb5_config_section *cf; struct error_list *et_list; krb5_cc_ops *cc_ops; int num_ops; diff --git a/lib/krb5/krbhst.c b/lib/krb5/krbhst.c index 3fce565bc..8df1f6e7d 100644 --- a/lib/krb5/krbhst.c +++ b/lib/krb5/krbhst.c @@ -7,22 +7,28 @@ krb5_get_krbhst (krb5_context context, const krb5_realm *realm, char ***hostlist) { - krb5_error_code err; - char buf[BUFSIZ]; + char *r; char *val; - memset(buf, 0, sizeof(buf)); - strcpy(buf, "realms "); #ifdef USE_ASN1_PRINCIPAL - strcat(buf, *realm); + r = *realm; #else - strncat(buf, (char*)realm->data, realm->length); + r = malloc (realm->length + 1); + strncpy (r, realm->data, realm->length); + r[realm->length] = '\0'; #endif - strcat(buf, " kdc"); - err = krb5_get_config_tag (context->cf, buf, &val); - if (err) - return err; + val = krb5_config_get_string (context->cf, + "realms", + r, + "kdc", + NULL); +#ifndef USE_ASN1_PRINCIPAL + free (r); +#endif + if (val == NULL) + return KRB5_REALM_UNKNOWN; + *hostlist = malloc (2 * sizeof (char *)); (*hostlist)[0] = val; (*hostlist)[1] = NULL; @@ -33,9 +39,6 @@ krb5_error_code krb5_free_krbhst (krb5_context context, char *const *hostlist) { - char *const*p; - for(p = hostlist; *p; p++) - free(*p); - free ((void*)hostlist); - return 0; /* XXX */ + free ((void *)hostlist); + return 0; }