diff --git a/scapy/layers/ntp.py b/scapy/layers/ntp.py index 6d11966c9a51825cc443e213dbbfb2db862b9fb0..6560e397c57a764687035beafe71d2f933cfa315 100644 --- a/scapy/layers/ntp.py +++ b/scapy/layers/ntp.py @@ -8,6 +8,7 @@ NTP (Network Time Protocol). """ import time +import datetime from scapy.packet import * from scapy.fields import * from scapy.layers.inet import UDP @@ -29,9 +30,11 @@ class TimeStampField(FixedPointField): return time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime(val-_NTP_BASETIME)) def any2i(self, pkt, val): - if type(val) is str: - return int(time.mktime(time.strptime(val))) + _NTP_BASETIME + 3600 # XXX - return FixedPointField.any2i(self,pkt,val) + if isinstance(val, basestring): + val = int(time.mktime(time.strptime(val))) + _NTP_BASETIME + elif isinstance(val, datetime.datetime): + val = int(val.strftime("%s")) + _NTP_BASETIME + return FixedPointField.any2i(self, pkt, val) def i2m(self, pkt, val): if val is None: