diff options
author | Keith Vetter <keithv@fusion.com> | 1995-03-29 05:06:42 +0000 |
---|---|---|
committer | Keith Vetter <keithv@fusion.com> | 1995-03-29 05:06:42 +0000 |
commit | 479b628dc54d7d45d76d27e91571c7a59d38348e (patch) | |
tree | be061947ef827238f6c84c0e6aff4c65d7ff7db1 /src/lib/krb5/os/osconfig.c | |
parent | fda7c12e0e03e759d404b4d280b6fe5703b5285a (diff) | |
download | krb5-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.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/lib/krb5/os/osconfig.c b/src/lib/krb5/os/osconfig.c index 84ec68c2f..07a3d045a 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; +} |