* configure.in: Check for the stat call, since profile_update_file
authorTheodore Tso <tytso@mit.edu>
Thu, 21 Dec 1995 23:25:19 +0000 (23:25 +0000)
committerTheodore Tso <tytso@mit.edu>
Thu, 21 Dec 1995 23:25:19 +0000 (23:25 +0000)
needs to know whether it exists.  (It doesn't on the Mac.)

* prof_file.c (profile_update_file): Change use of HAS_STAT to
HAVE_STAT, to confirm with autoconf test.  If the stat() call does not
exist, assume that our in-core memory image is correct, and never
re-read the profile file unless we explicitly close it.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7242 dc483132-0cff-0310-8789-dd5450dbe970

src/util/profile/ChangeLog
src/util/profile/configure.in
src/util/profile/prof_file.c

index bbeb16db1338c72d9355531968d505ca1cea797e..908c22695a04f2c81d65e8ee2307359638c91ea3 100644 (file)
@@ -1,3 +1,14 @@
+Thu Dec 21 18:20:46 1995  Theodore Y. Ts'o  <tytso@dcl>
+
+       * configure.in: Check for the stat call, since profile_update_file
+               needs to know whether it exists.  (It doesn't on the Mac.)
+
+       * prof_file.c (profile_update_file): Change use of HAS_STAT to
+               HAVE_STAT, to confirm with autoconf test.  If the stat()
+               call does not exist, assume that our in-core memory image
+               is correct, and never re-read the profile file unless we
+               explicitly close it.
+
 Fri Oct  6 22:07:01 1995  Theodore Y. Ts'o  <tytso@dcl>
 
        * Makefile.in: Remove ##DOS!include of config/windows.in.
index f58fe61a89a30ce5bed8b6b4e1825a582a3f652e..100df4529cd72f3185861e89a991bde5f0932b74 100644 (file)
@@ -7,6 +7,7 @@ AC_PROG_RANLIB
 AC_CHECK_SIZEOF(short)
 AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(long)
+AC_HAVE_FUNCS(stat)
 ET_RULES
 V5_SHARED_LIB_OBJS
 CopyHeader(profile.h,$(BUILDTOP)/include)
index b0de1cd3ae931ea669a2010975544e4df827fcbc..468de74a838783cee66261cea06e2ff5f4b3e946 100644 (file)
@@ -53,19 +53,27 @@ errcode_t profile_update_file(prf)
        prf_file_t prf;
 {
        errcode_t retval;
-#ifdef HAS_STAT
+#ifdef HAVE_STAT
        struct stat st;
 #endif
        FILE *f;
 
-#ifdef HAS_STAT
+#ifdef HAVE_STAT
        if (stat(prf->filename, &st))
                return errno;
        if (st.st_mtime == prf->timestamp)
                return 0;
-#endif
        if (prf->root)
                profile_free_node(prf->root);
+#else
+       /*
+        * If we don't have the stat() call, assume that our in-core
+        * memory image is correct.  That is, we won't reread the
+        * profile file if it changes.
+        */
+       if (prf->root)
+               return 0;
+#endif
        f = fopen(prf->filename, "r");
        if (f == NULL)
                return errno;
@@ -73,7 +81,7 @@ errcode_t profile_update_file(prf)
        fclose(f);
        if (retval)
                return retval;
-#ifdef HAS_STAT
+#ifdef HAVE_STAT
        prf->timestamp = st.st_mtime;
 #endif
        return 0;