summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/os/osconfig.c
diff options
context:
space:
mode:
authorKeith Vetter <keithv@fusion.com>1995-03-29 05:06:42 +0000
committerKeith Vetter <keithv@fusion.com>1995-03-29 05:06:42 +0000
commit479b628dc54d7d45d76d27e91571c7a59d38348e (patch)
treebe061947ef827238f6c84c0e6aff4c65d7ff7db1 /src/lib/krb5/os/osconfig.c
parentfda7c12e0e03e759d404b4d280b6fe5703b5285a (diff)
downloadkrb5-479b628dc54d7d45d76d27e91571c7a59d38348e.tar.gz
krb5-479b628dc54d7d45d76d27e91571c7a59d38348e.tar.xz
krb5-479b628dc54d7d45d76d27e91571c7a59d38348e.zip
Added functionality for windows to read default file locations from
windows ini files. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5307 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/os/osconfig.c')
-rw-r--r--src/lib/krb5/os/osconfig.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/lib/krb5/os/osconfig.c b/src/lib/krb5/os/osconfig.c
index 84ec68c2f2..07a3d045ae 100644
--- a/src/lib/krb5/os/osconfig.c
+++ b/src/lib/krb5/os/osconfig.c
@@ -24,6 +24,7 @@
* Definition of default configuration parameters.
*/
+#define NEED_WINDOWS
#include "k5-int.h"
char *krb5_config_file = DEFAULT_CONFIG_FILENAME;
@@ -49,3 +50,41 @@ char *krb5_kdc_sec_udp_portname = 0;
char *krb5_default_pwd_prompt1 = DEFAULT_PWD_STRING1;
char *krb5_default_pwd_prompt2 = DEFAULT_PWD_STRING2;
+
+/*
+ * On Windows, we want to let the user specify in the kerberos.ini file
+ * where the config and realms files, krb.con and krb.rea, reside. If they
+ * aren't specified then we fall back to having them in the windows
+ * directory. We use the same format as the K4 version for compatability.
+ *
+ * Note: these values can change asynchronously so we can't cache the values.
+ */
+krb5_error_code
+krb5_find_config_files ()
+{
+#ifdef _WINDOWS
+ static char cnfname[160]; /* For krb.con */
+ static char realmsname[160]; /* For krb.rea */
+ char defname[160]; /* Default value */
+
+ /* First locate krb.con file */
+ GetWindowsDirectory(defname, sizeof(defname));
+ strcat (defname, "\\");
+ strcat (defname, DEFAULT_CONFIG_FILENAME);
+ GetPrivateProfileString(INI_FILES, INI_KRB_CONF, defname,
+ cnfname, sizeof(cnfname), KERBEROS_INI);
+
+ /* Now locate krb.rea file */
+ GetWindowsDirectory(defname, sizeof(defname));
+ strcat (defname, "\\");
+ strcat (defname, DEFAULT_TRANS_FILENAME);
+ GetPrivateProfileString(INI_FILES, INI_KRB_REALMS, defname,
+ realmsname, sizeof(realmsname), KERBEROS_INI);
+
+ krb5_config_file = cnfname;
+ krb5_trans_file = realmsname;
+
+#endif /* _WINDOWS */
+
+ return 0;
+}