From 5a38a1f0a11e684748c1f3c24460c0a96215f986 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Fri, 3 Mar 2000 14:11:17 +0000 Subject: [PATCH] (kerberos5_init): check that we do have a keytab before saying that we will support KERBEROS5 git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8000 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/telnet/libtelnet/kerberos5.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/appl/telnet/libtelnet/kerberos5.c b/appl/telnet/libtelnet/kerberos5.c index ae3332703..dd50a4066 100644 --- a/appl/telnet/libtelnet/kerberos5.c +++ b/appl/telnet/libtelnet/kerberos5.c @@ -139,11 +139,27 @@ Data(Authenticator *ap, int type, void *d, int c) int kerberos5_init(Authenticator *ap, int server) { - if (server) - str_data[3] = TELQUAL_REPLY; - else - str_data[3] = TELQUAL_IS; krb5_init_context(&context); + if (server) { + krb5_error_code ret; + krb5_keytab kt; + krb5_kt_cursor cursor; + + ret = krb5_kt_default(context, &kt); + if (ret) + return 0; + + ret = krb5_kt_start_seq_get (context, kt, &cursor); + if (ret) { + krb5_kt_close (context, kt); + return 0; + } + krb5_kt_end_seq_get (context, kt, &cursor); + krb5_kt_close (context, kt); + + str_data[3] = TELQUAL_REPLY; + } else + str_data[3] = TELQUAL_IS; return(1); }