Hm, the old AOLserver 4.0.7 version of Ns_GetTime() had a Windows
ifdef which is entirely missing from Naviserver!  (See below.)

I found two relevant commits in Mercurial, from 2009 and 2012, below.
>From those logs, it looks like what happened is that in 2009, Zoran
removed the platform specific C code and instead made Naviserver call
Tcl_GetTime (somehow).  Then in 2012, Gustaf added back the old
Unix-specific gettimeofday() implementation for performance reasons.

So should we just add back the old Windows-specific C implementation
too?  Or is it better to use Zoran's way of invoking Tcl_GetTime?  Do
we even know for sure if that method really is "platform-independent"
as Zoran thought it was?  E.g., did Zoran or someone else at Archiware
test it on Windows?


Part of Ns_GetTime() from ancient AOLserver 4.0.7 sources:
------------------------------------------------------------
#ifdef _WIN32
/*
 * Number of 100 nanosecond units from 1/1/1601 to 1/1/1970
 */
#define EPOCH_BIAS  116444736000000000i64
    union {
        unsigned __int64    i;
        FILETIME            s;
    } ft;

    GetSystemTimeAsFileTime(&ft.s);
    timePtr->sec = (time_t)((ft.i - EPOCH_BIAS) / 10000000i64);
    timePtr->usec =(long)((ft.i / 10i64) % 1000000i64);
#else
#endif


changeset:   2435:16508ab4b3de
user:        Gustaf Neumann <neum...@wu-wien.ac.at>
date:        Fri Nov 02 01:54:38 2012 +0100
files:       configure.in include/nsconfig.h.in nsthread/time.c
description:
use gettimeofday() if available instead of the rount trip to tcl

changeset:   2009:4bf1ee6ebf84
user:        Zoran Vasiljevic <z...@archiware.com>
date:        Sat Sep 29 14:14:03 2007 +0100
files:       ChangeLog nsproxy/nsproxylib.c nsthread/time.c
description:
Ns_GetTime now relies on Tcl_GetTime to be platform-independent

-- 
Andrew Piskorski <a...@piskorski.com>

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to