diff options
author | Karl Ramm <kcr@mit.edu> | 2007-12-25 00:56:08 +0000 |
---|---|---|
committer | Karl Ramm <kcr@mit.edu> | 2007-12-25 00:56:08 +0000 |
commit | 1a0e03eb19998ab496a6ea845ff2c42d9a02df0b (patch) | |
tree | 29b47c8532e1f1678063fbb1b851ee4208134626 /server/client.c | |
parent | 3f120f880be9ae9aa1612ddc2412e9acb9a8e85e (diff) |
applied athena-update-branch patch
Diffstat (limited to 'server/client.c')
-rw-r--r-- | server/client.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/server/client.c b/server/client.c index 85918e7..9098ac0 100644 --- a/server/client.c +++ b/server/client.c @@ -84,9 +84,13 @@ client_register(notice, host, client_p, wantdefaults) if (!client) return ENOMEM; memset(&client->addr, 0, sizeof(struct sockaddr_in)); -#ifdef KERBEROS +#ifdef HAVE_KRB5 + client->session_keyblock = NULL; +#else +#ifdef HAVE_KRB4 memset(&client->session_key, 0, sizeof(client->session_key)); #endif +#endif client->last_send = 0; client->last_ack = NOW; client->addr.sin_family = AF_INET; @@ -122,6 +126,10 @@ client_deregister(client, flush) nack_release(client); subscr_cancel_client(client); free_string(client->principal); +#ifdef HAVE_KRB5 + if (client->session_keyblock) + krb5_free_keyblock(Z_krb5_ctx, client->session_keyblock); +#endif if (flush) uloc_flush_client(&client->addr); free(client); |