diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2004-12-08 06:04:49 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2004-12-08 06:04:49 +0000 |
| commit | 61b07513ee6f0e85b33a705cec403651b2fe28e7 (patch) | |
| tree | 3648fdf17ec5b3b2a903093be643a9e1aa56ebde /src/lib | |
| parent | 7503bb9b3d4db8bc3a9b78d93acdb8d67c28ac31 (diff) | |
| download | krb5-61b07513ee6f0e85b33a705cec403651b2fe28e7.tar.gz krb5-61b07513ee6f0e85b33a705cec403651b2fe28e7.tar.xz krb5-61b07513ee6f0e85b33a705cec403651b2fe28e7.zip | |
* include/k5-int.h (struct _krb5int_access): Add function pointer field
use_dns_kdc.
* lib/krb5/os/accessor.c (krb5int_accessor): Set new field use_dns_kdc.
* lib/krb4/RealmsConfig-glue.c (krb_get_krbhst): Check if DNS should be used
for getting KDC names before actually using it.
ticket: 2772
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16920 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/krb4/ChangeLog | 5 | ||||
| -rw-r--r-- | src/lib/krb4/RealmsConfig-glue.c | 29 | ||||
| -rw-r--r-- | src/lib/krb5/os/ChangeLog | 4 | ||||
| -rw-r--r-- | src/lib/krb5/os/accessor.c | 2 |
4 files changed, 27 insertions, 13 deletions
diff --git a/src/lib/krb4/ChangeLog b/src/lib/krb4/ChangeLog index 63ef3ec97..b9258c750 100644 --- a/src/lib/krb4/ChangeLog +++ b/src/lib/krb4/ChangeLog @@ -1,3 +1,8 @@ +2004-12-08 Ken Raeburn <raeburn@mit.edu> + + * RealmsConfig-glue.c (krb_get_krbhst): Check if DNS should be + used for getting KDC names before actually using it. + 2004-07-16 Ken Raeburn <raeburn@mit.edu> * macsock.c: Deleted. diff --git a/src/lib/krb4/RealmsConfig-glue.c b/src/lib/krb4/RealmsConfig-glue.c index 0635284c0..dbdfe54cd 100644 --- a/src/lib/krb4/RealmsConfig-glue.c +++ b/src/lib/krb4/RealmsConfig-glue.c @@ -536,21 +536,24 @@ krb_get_krbhst( if (err) break; - realmdat.data = realm; - realmdat.length = strlen(realm); - err = k5.make_srv_query_realm(&realmdat, "_kerberos-iv", "_udp", &srv); - if (err) - break; + if (k5.use_dns_kdc(krb5__krb4_context)) { + realmdat.data = realm; + realmdat.length = strlen(realm); + err = k5.make_srv_query_realm(&realmdat, "_kerberos-iv", "_udp", + &srv); + if (err) + break; - if (srv == 0) - break; + if (srv == 0) + break; - if (dnscache.srv) - k5.free_srv_dns_data(dnscache.srv); - dnscache.srv = srv; - strncpy(dnscache.realm, realm, REALM_SZ); - dnscache.when = now; - goto get_from_dnscache; + if (dnscache.srv) + k5.free_srv_dns_data(dnscache.srv); + dnscache.srv = srv; + strncpy(dnscache.realm, realm, REALM_SZ); + dnscache.when = now; + goto get_from_dnscache; + } } while (0); #endif return KFAILURE; diff --git a/src/lib/krb5/os/ChangeLog b/src/lib/krb5/os/ChangeLog index 9c1fd0b71..1c0876503 100644 --- a/src/lib/krb5/os/ChangeLog +++ b/src/lib/krb5/os/ChangeLog @@ -1,3 +1,7 @@ +2004-12-08 Ken Raeburn <raeburn@mit.edu> + + * accessor.c (krb5int_accessor): Set new field use_dns_kdc. + 2004-12-06 Tom Yu <tlyu@mit.edu> * locate_kdc.c (krb5_locate_srv_dns_1): Don't compile if diff --git a/src/lib/krb5/os/accessor.c b/src/lib/krb5/os/accessor.c index 4e907b1c4..078e036fe 100644 --- a/src/lib/krb5/os/accessor.c +++ b/src/lib/krb5/os/accessor.c @@ -45,9 +45,11 @@ krb5int_accessor(krb5int_access *internals, krb5_int32 version) #ifdef KRB5_DNS_LOOKUP internals_temp.make_srv_query_realm = krb5int_make_srv_query_realm; internals_temp.free_srv_dns_data = krb5int_free_srv_dns_data; + internals_temp.use_dns_kdc = _krb5_use_dns_kdc; #else internals_temp.make_srv_query_realm = 0; internals_temp.free_srv_dns_data = 0; + internals_temp.use_dns_kdc = 0; #endif #ifdef KRB5_KRB4_COMPAT internals_temp.krb_life_to_time = krb5int_krb_life_to_time; |
