mirror of
https://github.com/nmap/nmap.git
synced 2025-12-07 21:21:31 +00:00
34 lines
1.2 KiB
Lua
34 lines
1.2 KiB
Lua
--- Functions for dealing with dates and timestamps
|
|
--
|
|
-- @copyright Same as Nmap--See https://nmap.org/book/man-legal.html
|
|
-- @class module
|
|
-- @name datetime
|
|
-- @author Daniel Miller
|
|
|
|
local stdnse = require "stdnse"
|
|
local os = require "os"
|
|
local math = require "math"
|
|
_ENV = stdnse.module("datetime", stdnse.seeall)
|
|
|
|
--- Record a time difference between the scanner and the target
|
|
--
|
|
-- The skew will be recorded in the host's registry for later retrieval and
|
|
-- analysis. Adjusts for network distance by subtracting half the smoothed
|
|
-- round-trip time.
|
|
--
|
|
--@param host The host being scanned
|
|
--@param timestamp The target timestamp, in seconds.
|
|
--@param received The local time the stamp was received, in seconds.
|
|
function record_skew(host, timestamp, received)
|
|
local skew_tab = host.registry.datetime_skew
|
|
skew_tab = skew_tab or {}
|
|
-- No srtt? I suppose we'll ignore it, but this could cause problems
|
|
local srtt = host.times and host.times.srtt or 0
|
|
local adjusted = os.difftime(math.floor(timestamp), math.floor(received)) - srtt / 2.0
|
|
skew_tab[#skew_tab + 1] = adjusted
|
|
stdnse.debug2("record_skew: %s", adjusted)
|
|
host.registry.datetime_skew = skew_tab
|
|
end
|
|
|
|
return _ENV
|