Windows: Use roken gettimeofday implementation
authorSimon Wilkinson <sxw@your-file-system.com>
Sun, 3 Apr 2011 15:31:56 +0000 (16:31 +0100)
committerJeffrey Altman <jaltman@openafs.org>
Fri, 8 Apr 2011 12:21:12 +0000 (05:21 -0700)
Use the gettimeofday implementation from roken, rather than brewing
our own on Windows.

Change-Id: I02fc1a7f0f6aded2e16e2ed53e04054546fc0535
Reviewed-on: http://gerrit.openafs.org/4433
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

22 files changed:
NTMakefile
acinclude.m4
src/WINNT/bosctlsvc/NTMakefile
src/WINNT/client_exp/NTMakefile
src/comerr/NTMakefile
src/comerr/error_table_nt.c
src/config/NTMakefile.amd64_w2k
src/config/NTMakefile.i386_nt40
src/config/NTMakefile.i386_w2k
src/libadmin/adminutil/NTMakefile
src/libadmin/bos/NTMakefile
src/libadmin/cfg/NTMakefile
src/libadmin/client/NTMakefile
src/libadmin/kas/NTMakefile
src/libadmin/pts/NTMakefile
src/libadmin/test/NTMakefile
src/libadmin/vos/NTMakefile
src/roken/NTMakefile
src/roken/afsroken.def
src/roken/librokenafs.map
src/util/afsutil.h
src/util/winsock_nt.c

index 9222668..10b5544 100644 (file)
@@ -110,7 +110,7 @@ pthread: hcrypto_headers
        $(NTMAKE)
        $(CD) ..\..\..
 
-util: procmgmt_headers afsreg_headers lwp_headers rx_headers pthread
+util: procmgmt_headers afsreg_headers lwp_headers rx_headers hcrypto
      @echo ***** $@
        $(DOCD) $(SRC)\$@
        $(CD) $(SRC)\$@
@@ -173,14 +173,14 @@ hcrypto: roken
        $(NTMAKE)
        $(CD) ..\..\..
 
-roken: rxgen
+roken: pthread
      @echo ***** $@
         $(DOCD) $(SRC)\roken
        $(CD) $(SRC)\roken
        $(NTMAKE)
        $(CD) ..\..
 
-rx: hcrypto
+rx: rxgen
      @echo ***** $@
        $(DOCD) $(SRC)\$@
        $(CD) $(SRC)\$@
index 84669f0..f896bd4 100644 (file)
@@ -1370,7 +1370,6 @@ AC_CHECK_FUNCS([ \
        chown \
        fchown \
        gethostname \
-       gettimeofday \
        lstat \
        inet_aton \
        inet_ntop \
@@ -1407,6 +1406,7 @@ AC_REPLACE_FUNCS([ \
        getdtablesize \
        getopt \
        getprogname \
+       gettimeofday \
        localtime_r \
        mkstemp \
        strcasecmp \
index 2e4f4a0..397575e 100644 (file)
@@ -23,7 +23,8 @@ EXELIBS =\
        $(DESTDIR)\lib\afs\afseventlog.lib \
        $(DESTDIR)\lib\afs\afsreg.lib \
        $(DESTDIR)\lib\afs\afsprocmgmt.lib \
-    $(DESTDIR)\lib\afsicf.obj
+        $(DESTDIR)\lib\afsroken.lib \
+        $(DESTDIR)\lib\afsicf.obj
 
 EXESDKLIBS=\
     ole32.lib \
index ba62a6a..7b99792 100644 (file)
@@ -70,7 +70,8 @@ DLLLIBS =\
        $(DESTDIR)\lib\libosi.lib \
         $(DESTDIR)\lib\afs\afsreg.lib  \
        $(DESTDIR)\lib\afs\TaLocaleU.lib \
-       $(DESTDIR)\lib\afs\afsutil.lib
+       $(DESTDIR)\lib\afs\afsutil.lib \
+        $(DESTDIR)\lib\afsroken.lib
 
 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
        $(DLLCONLINK) /DEF:afs_shl_ext.def $(DLLSDKLIBS)
index 331f287..7301cc2 100644 (file)
@@ -60,7 +60,8 @@ $(COMPILE_ET_EXEOBJS): $$(@B).c
     $(C2OBJ) $**
 
 COMPILE_ET_EXELIBS =\
-       $(DESTDIR)\lib\afs\afsutil.lib
+       $(DESTDIR)\lib\afs\afsutil.lib \
+       $(DESTDIR)\lib\afsroken.lib
 
 $(COMPILE_ET_EXEFILE): $(COMPILE_ET_EXEOBJS) $(COMPILE_ET_EXERES) $(COMPILE_ET_EXELIBS)  
        $(EXECONLINK)
index 5a1690a..822df2f 100755 (executable)
@@ -15,6 +15,7 @@
 #include <afsconfig.h>
 #include <afs/param.h>
 
+#include <roken.h>
 
 
 /*
index bc54f0c..6bf9e24 100644 (file)
@@ -70,8 +70,6 @@ AFSDEV_BUILDTYPE = NONE
 !ENDIF
 INCLUDE = $(AFSDEV_INCLUDE)
 
-PATH = $(AFSDEV_BIN);$(PATH)
-
 !IFNDEF AFSDEV_LIB
 !ERROR Must define AFSDEV_LIB to be the default library directories.
 !ENDIF
@@ -192,6 +190,8 @@ OUT=$(OJT)\$(RELDIR)
 APPVER=5.02
 !ENDIF
 
+PATH = $(AFSDEV_BIN);$(DESTDIR)\lib;$(PATH)
+
 !INCLUDE <WIN32.MAK>
 
 # Extend and/or supplement definitions in WIN32.MAK.
index 9fe2f3b..63a8413 100644 (file)
@@ -70,8 +70,6 @@ AFSDEV_BUILDTYPE = NONE
 !ENDIF
 INCLUDE = $(AFSDEV_INCLUDE)
 
-PATH = $(AFSDEV_BIN);$(PATH)
-
 !IFNDEF AFSDEV_LIB
 !ERROR Must define AFSDEV_LIB to be the default library directories.
 !ENDIF
@@ -196,7 +194,7 @@ OUT=$(OJT)\$(RELDIR)
 APPVER=5.0
 !ENDIF
 
-
+PATH = $(AFSDEV_BIN);$(DESTDIR)\lib;$(PATH)
 
 !INCLUDE <WIN32.MAK>
 
index a6283fe..16efeca 100644 (file)
@@ -74,8 +74,6 @@ AFSDEV_BUILDTYPE = NONE
 !ENDIF
 INCLUDE = $(AFSDEV_INCLUDE)
 
-PATH = $(AFSDEV_BIN);$(PATH)
-
 !IFNDEF AFSDEV_LIB
 !ERROR Must define AFSDEV_LIB to be the default library directories.
 !ENDIF
@@ -200,7 +198,7 @@ OUT=$(OJT)\$(RELDIR)
 APPVER=5.0
 !ENDIF
 
-
+PATH = $(AFSDEV_BIN);$(DESTDIR)\lib;$(PATH)
 
 !INCLUDE <WIN32.MAK>
 
index 64d3543..776d78d 100644 (file)
@@ -140,7 +140,8 @@ DLLLIBS =\
        $(DESTDIR)\lib\afsrpc.lib \
         $(DESTDIR)\lib\afs\afsutil.lib \
        $(DESTDIR)\lib\afsauthent.lib \
-        $(DESTDIR)\lib\afs\afsreg.lib
+        $(DESTDIR)\lib\afs\afsreg.lib \
+        $(DESTDIR)\lib\afsroken.lib
 
 !IF "$(CPU)" == "IA64" || "$(CPU)" == "AMD64" || "$(CPU)" == "ALPHA64"
 KFWLIBS = \
index 8dcf1fd..31dcb86 100644 (file)
@@ -39,7 +39,8 @@ DLLLIBS =\
        $(DESTDIR)\lib\afs\afsvosadmin.lib \
        $(DESTDIR)\lib\afsauthent.lib \
        $(DESTDIR)\lib\afsrpc.lib \
-       $(DESTDIR)\lib\afspthread.lib
+       $(DESTDIR)\lib\afspthread.lib \
+        $(DESTDIR)\lib\afsroken.lib
 
 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
        $(DLLCONLINK) /DEF:bosadmin.def
index 509f0fc..860c421 100644 (file)
@@ -56,7 +56,8 @@ DLLLIBS =\
        $(DESTDIR)\lib\afsrpc.lib \
        $(DESTDIR)\lib\afsauthent.lib \
        $(DESTDIR)\lib\afs\afsreg.lib \
-        $(DESTDIR)\lib\libafsconf.lib
+        $(DESTDIR)\lib\libafsconf.lib \
+        $(DESTDIR)\lib\afsroken.lib
 
 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
        $(DLLCONLINK) /DEF:afscfgadmin.def shell32.lib
index 8f51cc4..5fa1efa 100644 (file)
@@ -27,7 +27,8 @@ DLLLIBS =\
        $(DESTDIR)\lib\afsauthent.lib \
        $(DESTDIR)\lib\afsrpc.lib \
        $(DESTDIR)\lib\afspthread.lib \
-        $(DESTDIR)\lib\afs\afsutil.lib
+        $(DESTDIR)\lib\afs\afsutil.lib \
+        $(DESTDIR)\lib\afsroken.lib
 
 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
        $(DLLCONLINK) /DEF:clientadmin.def
index 16c5edd..2c3eed9 100644 (file)
@@ -36,7 +36,8 @@ DLLLIBS =\
        $(DESTDIR)\lib\afsauthent.lib \
        $(DESTDIR)\lib\afsrpc.lib \
        $(DESTDIR)\lib\afspthread.lib \
-       $(DESTDIR)\lib\afs\afsutil.lib
+       $(DESTDIR)\lib\afs\afsutil.lib \
+        $(DESTDIR)\lib\afsroken.lib
 
 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
        $(DLLCONLINK) /DEF:kasadmin.def
index 76627ca..0a75936 100644 (file)
@@ -39,7 +39,8 @@ DLLLIBS =\
        $(DESTDIR)\lib\afsauthent.lib \
        $(DESTDIR)\lib\afsrpc.lib \
        $(DESTDIR)\lib\afspthread.lib \
-       $(DESTDIR)\lib\afs\afsutil.lib
+       $(DESTDIR)\lib\afs\afsutil.lib \
+        $(DESTDIR)\lib\afsroken.lib
 
 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
        $(DLLCONLINK) /DEF:ptsadmin.def
index 85cd632..3b86ef9 100644 (file)
@@ -23,7 +23,8 @@ AFSCP_EXELIBS =\
        $(DESTDIR)\lib\afsauthent.lib \
        $(DESTDIR)\lib\afsrpc.lib \
         $(DESTDIR)\lib\afs\afsutil.lib \
-       $(DESTDIR)\lib\afs\afscmd.lib  # static library
+        $(DESTDIR)\lib\afsroken.lib \
+       $(DESTDIR)\lib\afs\afscmd.lib # static library
 
 AFSCP_EXEOBJS =\
        $(OUT)\bos.obj \
index e893169..611f72c 100644 (file)
@@ -60,7 +60,8 @@ DLLLIBS =\
        $(DESTDIR)\lib\afs\afsadminutil.lib \
        $(DESTDIR)\lib\afsauthent.lib \
        $(DESTDIR)\lib\afsrpc.lib \
-       $(DESTDIR)\lib\afs\afsutil.lib
+       $(DESTDIR)\lib\afs\afsutil.lib \
+        $(DESTDIR)\lib\afsroken.lib
 
 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
        $(DLLCONLINK) /DEF:vosadmin.def
index 9c3ba09..91bc1c6 100644 (file)
@@ -35,6 +35,7 @@ ROKEN_OBJS = \
        $(OUT)\flock.obj \
        $(OUT)\getopt.obj \
         $(OUT)\getprogname.obj \
+       $(OUT)\gettimeofday.obj \
        $(OUT)\hex.obj \
         $(OUT)\issuid.obj \
        $(OUT)\localtime_r.obj \
index aa7e820..6c581d4 100644 (file)
@@ -36,3 +36,4 @@ EXPORTS
         rk_vsnprintf            @40
         rk_vasnprintf           @41
        rk_flock                @42
+       rk_gettimeofday         @43
index 2cf5d9f..f9085fd 100644 (file)
@@ -19,6 +19,7 @@
                rk_emalloc;
                rk_erealloc;
                rk_flock;
+               rk_gettimeofday;
                rk_hex_encode;
                rk_localtime_r;
                rk_mkstemp;
index fe4ad9d..45a3940 100644 (file)
@@ -72,13 +72,6 @@ extern void SetupLogSignals(void);
      extern int afs_winsockInit(void);
      extern void afs_winsockCleanup(void);
 
-     struct timezone {
-        int tz_minuteswest;    /* of Greenwich */
-        int tz_dsttime;        /* type of dst correction to apply */
-     };
-#define gettimeofday afs_gettimeofday
-     int afs_gettimeofday(struct timeval *tv, struct timezone *tz);
-
 /* Unbuffer output when Un*x would do line buffering. */
 #define setlinebuf(S) setvbuf(S, NULL, _IONBF, 0)
 
index b2ea614..7418b75 100644 (file)
@@ -12,6 +12,7 @@
 #include <afsconfig.h>
 #include <afs/param.h>
 
+#include <roken.h>
 
 #ifdef AFS_NT40_ENV
 #include <winsock2.h>
@@ -46,19 +47,10 @@ afs_winsockCleanup(void)
     WSACleanup();
 }
 
-/* This function will begin to fail in the year 2038 */
+/* exported from libafsauthent.dll */
 int
 afs_gettimeofday(struct timeval *tv, struct timezone *tz)
 {
-    struct _timeb myTime;
-
-    _ftime(&myTime);
-    tv->tv_sec = myTime.time;
-    tv->tv_usec = myTime.millitm * 1000;
-    if (tz) {
-       tz->tz_minuteswest = myTime.timezone;
-       tz->tz_dsttime = myTime.dstflag;
-    }
-    return 0;
+    return rk_gettimeofday(tv, tz);
 }
 #endif