diff options
Diffstat (limited to 'usr/src/cmd/krb5/krb5kdc/replay.c')
-rw-r--r-- | usr/src/cmd/krb5/krb5kdc/replay.c | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/usr/src/cmd/krb5/krb5kdc/replay.c b/usr/src/cmd/krb5/krb5kdc/replay.c index dd96cb1d96..d944bbada7 100644 --- a/usr/src/cmd/krb5/krb5kdc/replay.c +++ b/usr/src/cmd/krb5/krb5kdc/replay.c @@ -74,10 +74,8 @@ static int num_entries = 0; FALSE if the caller should do the work */ krb5_boolean -kdc_check_lookaside(inpkt, from, outpkt) - register krb5_data *inpkt; - register const krb5_fulladdr *from; - register krb5_data **outpkt; +kdc_check_lookaside(krb5_data *inpkt, const krb5_fulladdr *from, + krb5_data **outpkt) { krb5_int32 timenow; register krb5_kdc_replay_ent *eptr, *last, *hold; @@ -130,10 +128,8 @@ kdc_check_lookaside(inpkt, from, outpkt) already there, and can fail softly due to other weird errors. */ void -kdc_insert_lookaside(inpkt, from, outpkt) - register krb5_data *inpkt; - register const krb5_fulladdr *from; - register krb5_data *outpkt; +kdc_insert_lookaside(krb5_data *inpkt, const krb5_fulladdr *from, + krb5_data *outpkt) { register krb5_kdc_replay_ent *eptr; krb5_int32 timenow; @@ -175,4 +171,23 @@ kdc_insert_lookaside(inpkt, from, outpkt) return; } +/* frees memory associated with the lookaside queue for memory profiling */ +void +kdc_free_lookaside(krb5_context kcontext) +{ + register krb5_kdc_replay_ent *eptr, *last, *hold; + if (root_ptr.next) { + for (last = &root_ptr, eptr = root_ptr.next; + eptr; eptr = eptr->next) { + krb5_free_data(kcontext, eptr->req_packet); + krb5_free_data(kcontext, eptr->reply_packet); + krb5_free_address(kcontext, eptr->addr); + hold = eptr; + last->next = eptr->next; + eptr = last; + free(hold); + } + } +} + #endif /* NOCACHE */ |