secdev / scapy

Scapy: the Python-based interactive packet manipulation program & library.
https://scapy.net
GNU General Public License v2.0
10.8k stars 2.03k forks source link

UTCTimeField EPOCH is confusing #4557

Closed douniwan5788 closed 1 month ago

douniwan5788 commented 1 month ago

https://github.com/secdev/scapy/blob/c38a5de175be8e59742be473f4fb2dd6edef5503/scapy/data.py#L270-L271

The comment is confusing. On Windows, the epoch is not 01/02/1970 at 00:00. It's just a bug bpo-29097 in the Python Windows version. By switching from time.mktime to calendar.timegm, we have already bypassed the bug. Just use normal calendar.timegm((1970, 1, 1, 0, 0, 0, 3, 1, 0)).

Also, 01/02/1970 is (1970, 1, 2, 0, 0, 0, 4, 2, 0), and we can always use 0 instead.

douniwan5788 commented 1 month ago

And The datetime object was not given any timezone information. Therefore, the %z in the strf format is always empty.

gpotter2 commented 1 month ago

Is there a bug? This is a bug tracker.

douniwan5788 commented 1 month ago

And The datetime object was not given any timezone information. Therefore, the %z in the strf format is always empty.

This is the bug

gpotter2 commented 1 month ago

Unless you can provide a reproducible example of failing code, and what's expected, I don't consider this a bug.

douniwan5788 commented 1 month ago

Well... How to provide a reproducible example of code that never executes?

gpotter2 commented 1 month ago

If this does not cause any bug that has some sort of effect in the real world, it's not an issue and likely a waste of time.

I agree that Scapy contains code that is suboptimal, but don't open issues for code that you simply "don't like" yet works fine. For issues like that, my stance would rather be "make a PR or don't bother".