From 479b628dc54d7d45d76d27e91571c7a59d38348e Mon Sep 17 00:00:00 2001 From: Keith Vetter Date: Wed, 29 Mar 1995 05:06:42 +0000 Subject: 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 --- src/lib/krb5/os/osconfig.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'src/lib/krb5/os/osconfig.c') 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; +} -- cgit