put referral test code in separate function, and test for
KRB5_NT_SRV_INST git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9904 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1316,6 +1316,17 @@ find_rpath(Realm r)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
krb5_boolean
|
||||||
|
need_referral(krb5_principal server, krb5_realm **realms)
|
||||||
|
{
|
||||||
|
if(server->name.name_type != KRB5_NT_SRV_INST ||
|
||||||
|
server->name.name_string.len != 2)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return krb5_get_host_realm_int(context, server->name.name_string.val[1],
|
||||||
|
FALSE, realms) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
static krb5_error_code
|
static krb5_error_code
|
||||||
tgs_rep2(KDC_REQ_BODY *b,
|
tgs_rep2(KDC_REQ_BODY *b,
|
||||||
PA_DATA *tgs_req,
|
PA_DATA *tgs_req,
|
||||||
@@ -1588,11 +1599,7 @@ tgs_rep2(KDC_REQ_BODY *b,
|
|||||||
goto server_lookup;
|
goto server_lookup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if(sp->name.name_string.len == 2
|
} else if(need_referral(sp, &realms)) {
|
||||||
&& (ret = krb5_get_host_realm_int(context,
|
|
||||||
sp->name.name_string.val[1],
|
|
||||||
FALSE,
|
|
||||||
&realms)) == 0) {
|
|
||||||
if (strcmp(realms[0], sp->realm) != 0) {
|
if (strcmp(realms[0], sp->realm) != 0) {
|
||||||
kdc_log(5, "returning a referral to realm %s for "
|
kdc_log(5, "returning a referral to realm %s for "
|
||||||
"server %s that was not found",
|
"server %s that was not found",
|
||||||
|
Reference in New Issue
Block a user