summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/krb5/os/ChangeLog5
-rw-r--r--src/lib/krb5/os/ktdefname.c15
2 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/krb5/os/ChangeLog b/src/lib/krb5/os/ChangeLog
index bec11f9fb..ce3b729af 100644
--- a/src/lib/krb5/os/ChangeLog
+++ b/src/lib/krb5/os/ChangeLog
@@ -1,3 +1,8 @@
+Sat Feb 24 18:57:56 1996 Theodore Y. Ts'o <tytso@dcl>
+
+ * ktdefname.c (krb5_kt_default_name): Under Windows, assume that
+ the keytab file is located in the Windows directory.
+
Thu Feb 22 13:16:16 1996 Ezra Peisach <epeisach@kangaroo.mit.edu>
* Makefile.in (check-unix): Set LD_LIBRARY_PATH for kdb5_anadd.
diff --git a/src/lib/krb5/os/ktdefname.c b/src/lib/krb5/os/ktdefname.c
index 5db076f5a..b431b945c 100644
--- a/src/lib/krb5/os/ktdefname.c
+++ b/src/lib/krb5/os/ktdefname.c
@@ -24,6 +24,8 @@
* Return default keytab file name.
*/
+#define NEED_WINDOWS
+
#include "k5-int.h"
extern char *krb5_defkeyname;
@@ -42,9 +44,22 @@ krb5_kt_default_name(context, name, namesize)
if (strlen(cp) >= (size_t) namesize)
return KRB5_CONFIG_NOTENUFSPACE;
} else {
+#if defined (_WINDOWS) || defined(WIN32)
+ {
+ char defname[160];
+ int len;
+
+ len= GetWindowsDirectory( defname, sizeof(defname)-2 );
+ defname[len]= '\0';
+ if ( (len + strlen(krb5_defkeyname) + 1) > namesize )
+ return KRB5_CONFIG_NOTENUFSPACE;
+ sprintf(name, krb5_defkeyname, defname);
+ }
+#else
strncpy(name, krb5_defkeyname, namesize);
if ((size_t) namesize < strlen(krb5_defkeyname))
return KRB5_CONFIG_NOTENUFSPACE;
+#endif
}
return 0;
}