1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-07 21:21:31 +00:00
Files
nmap/nselib/datetime.lua
2016-07-21 17:05:25 +00:00

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