[378] in Kerberos-V5-bugs
small performance enhancement
daemon@ATHENA.MIT.EDU (Jim Miller)
Mon Oct 18 19:22:05 1993
From: jim@bilbo.suite.com (Jim Miller)
Date: Mon, 18 Oct 93 18:07:18 -0500
To: krb5-bugs@MIT.EDU
Reply-To: Jim_Miller@suite.com
For Kerberos 5, pre-beta 3...
Looking through lib/krb/parse.c I see an opportunity for a small performance
enhancement. Nothing major, but I thought I'd mention it.
Original krb5_parse_name:
/*
* If a realm was not found, then we need to find the defualt
* realm....
*/
if (!parsed_realm) {
if (!default_realm &&
(retval = krb5_get_default_realm(&default_realm)))
return(retval);
krb5_princ_realm(principal)->length = realmsize =
strlen(default_realm);
}
New code:
static int default_realm_size = 0;
.
.
.
/*
* If a realm was not found, then we need to find the default
* realm....
*/
if (!parsed_realm) {
if (!default_realm) {
if (retval = krb5_get_default_realm(&default_realm)) {
xfree(principal->data);
xfree((char *)principal);
return(retval);
}
default_realm_size = strlen(default_realm);
}
krb5_princ_realm(principal)->length = realmsize = default_realm_size;
}
The new code saves you from recomputing the length of the default realm string.
Not a biggie, but still...
I also added a couple of new "xfree" calls in the unlikely case where
krb5_parse exits because of a error in "krb5_get_default_realm".
Jim_Miller@suite.com