#ifndef NOCACHE
/* try the replay lookaside buffer */
- if (kdc_check_lookaside(pkt, from, response)) {
+ if (kdc_check_lookaside(pkt, response)) {
/* a hit! */
const char *name = 0;
char buf[46];
#ifndef NOCACHE
/* put the response into the lookaside buffer */
if (!retval)
- kdc_insert_lookaside(pkt, from, *response);
+ kdc_insert_lookaside(pkt, *response);
#endif
return retval;
krb5_key_data *client_key, krb5_keyblock *encrypting_key);
/* replay.c */
-krb5_boolean kdc_check_lookaside (krb5_data *, const krb5_fulladdr *,
- krb5_data **);
-void kdc_insert_lookaside (krb5_data *, const krb5_fulladdr *,
- krb5_data *);
+krb5_boolean kdc_check_lookaside (krb5_data *, krb5_data **);
+void kdc_insert_lookaside (krb5_data *, krb5_data *);
void kdc_free_lookaside(krb5_context);
/* which way to convert key? */
time_t db_age;
krb5_data *req_packet;
krb5_data *reply_packet;
- krb5_address *addr; /* XXX should these not be pointers? */
} krb5_kdc_replay_ent;
static krb5_kdc_replay_ent root_ptr = {0};
#define MATCH(ptr) (((ptr)->req_packet->length == inpkt->length) && \
!memcmp((ptr)->req_packet->data, inpkt->data, \
inpkt->length) && \
- ((ptr)->addr->length == from->address->length) && \
- !memcmp((ptr)->addr->contents, \
- from->address->contents, \
- from->address->length)&& \
((ptr)->db_age == db_age))
/* XXX
Todo: quench the size of the queue...
FALSE if the caller should do the work */
krb5_boolean
-kdc_check_lookaside(krb5_data *inpkt, const krb5_fulladdr *from,
- krb5_data **outpkt)
+kdc_check_lookaside(krb5_data *inpkt, krb5_data **outpkt)
{
krb5_int32 timenow;
register krb5_kdc_replay_ent *eptr, *last, *hold;
max_hits_per_entry = max(max_hits_per_entry, eptr->num_hits);
krb5_free_data(kdc_context, eptr->req_packet);
krb5_free_data(kdc_context, eptr->reply_packet);
- krb5_free_address(kdc_context, eptr->addr);
hold = eptr;
last->next = eptr->next;
eptr = last;
already there, and can fail softly due to other weird errors. */
void
-kdc_insert_lookaside(krb5_data *inpkt, const krb5_fulladdr *from,
- krb5_data *outpkt)
+kdc_insert_lookaside(krb5_data *inpkt, krb5_data *outpkt)
{
register krb5_kdc_replay_ent *eptr;
krb5_int32 timenow;
free(eptr);
return;
}
- if (krb5_copy_addr(kdc_context, from->address, &eptr->addr)) {
- krb5_free_data(kdc_context, eptr->req_packet);
- krb5_free_data(kdc_context, eptr->reply_packet);
- free(eptr);
- return;
- }
eptr->next = root_ptr.next;
root_ptr.next = eptr;
num_entries++;
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;