diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2004-06-15 17:52:23 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2004-06-15 17:52:23 +0000 |
| commit | f72d1775ac0c5b9bb4d04d9081bac959ff08cb7a (patch) | |
| tree | 4872f1e9fb23feae0a4c96d3418b3da5f291b559 /src | |
| parent | e66eabedb6a2db38dbfcb5ac9188be8715e924f1 (diff) | |
| download | krb5-f72d1775ac0c5b9bb4d04d9081bac959ff08cb7a.tar.gz krb5-f72d1775ac0c5b9bb4d04d9081bac959ff08cb7a.tar.xz krb5-f72d1775ac0c5b9bb4d04d9081bac959ff08cb7a.zip | |
* rc_io.c (dir, dirlen): Top-level variables deleted.
(getdir): Now returns the pointer, doesn't set top-level variables.
(GETDIR): Set local variables dir and dirlen using the function's return value.
(krb5_rc_io_creat, krb5_rc_io_open_internal): Add the new local variables.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16450 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/krb5/rcache/ChangeLog | 10 | ||||
| -rw-r--r-- | src/lib/krb5/rcache/rc_io.c | 19 |
2 files changed, 19 insertions, 10 deletions
diff --git a/src/lib/krb5/rcache/ChangeLog b/src/lib/krb5/rcache/ChangeLog index 496cd57b5..185874199 100644 --- a/src/lib/krb5/rcache/ChangeLog +++ b/src/lib/krb5/rcache/ChangeLog @@ -1,3 +1,13 @@ +2004-06-15 Ken Raeburn <raeburn@mit.edu> + + * rc_io.c (dir, dirlen): Top-level variables deleted. + (getdir): Now returns the pointer, doesn't set top-level + variables. + (GETDIR): Set local variables dir and dirlen using the function's + return value. + (krb5_rc_io_creat, krb5_rc_io_open_internal): Add the new local + variables. + 2004-06-02 Ken Raeburn <raeburn@mit.edu> * rc-int.h (struct krb5_rc_st, struct _krb5_rc_ops, krb5_rc_ops): diff --git a/src/lib/krb5/rcache/rc_io.c b/src/lib/krb5/rcache/rc_io.c index 706bd759a..e2e81dede 100644 --- a/src/lib/krb5/rcache/rc_io.c +++ b/src/lib/krb5/rcache/rc_io.c @@ -42,18 +42,13 @@ #define FREE(x) ((void) free((char *) (x))) #define UNIQUE getpid() /* hopefully unique number */ -static unsigned int dirlen = 0; -static char *dir; +#define GETDIR (dir = getdir(), dirlen = strlen(dir) + sizeof(PATH_SEPARATOR) - 1) -/* The do ... while(0) is required to insure that GETDIR looks like a - single statement in all situations (just {}'s may cause troubles in - certain situations, such as nested if/else clauses. */ - -#define GETDIR do { if (!dirlen) getdir(); } while(0) - -static void +static char * getdir(void) { + char *dir; + if (!(dir = getenv("KRB5RCACHEDIR"))) { #if defined(_WIN32) if (!(dir = getenv("TEMP"))) @@ -69,7 +64,7 @@ getdir(void) } #endif } - dirlen = strlen(dir) + sizeof(PATH_SEPARATOR) - 1; + return dir; } krb5_error_code @@ -79,6 +74,8 @@ krb5_rc_io_creat(krb5_context context, krb5_rc_iostuff *d, char **fn) krb5_int16 rc_vno = htons(KRB5_RC_VNO); krb5_error_code retval = 0; int do_not_unlink = 0; + char *dir; + size_t dirlen; GETDIR; if (fn && *fn) @@ -182,6 +179,8 @@ krb5_rc_io_open_internal(krb5_context context, krb5_rc_iostuff *d, char *fn, #ifndef NO_USERID struct stat statb; #endif + char *dir; + size_t dirlen; GETDIR; if (full_pathname) { |
