From 11f3a4fe2d376983c2ec432255c99540ea7a8046 Mon Sep 17 00:00:00 2001
From: Pierre LALET <pierre.lalet@cea.fr>
Date: Thu, 28 Apr 2016 08:26:54 +0200
Subject: [PATCH] TimeStampField.any2i() accepts a datetime object

---
 scapy/layers/ntp.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/scapy/layers/ntp.py b/scapy/layers/ntp.py
index 566eb987..6560e397 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,8 +30,10 @@ 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:
+        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):
-- 
GitLab