| 496 | |
| 497 | |
| 498 | class ICMPTimeStampField(IntField): |
| 499 | re_hmsm = re.compile("([0-2]?[0-9])[Hh:](([0-5]?[0-9])([Mm:]([0-5]?[0-9])([sS:.]([0-9]{0,3}))?)?)?$") # noqa: E501 |
| 500 | |
| 501 | def i2repr(self, pkt, val): |
| 502 | if val is None: |
| 503 | return "--" |
| 504 | else: |
| 505 | sec, milli = divmod(val, 1000) |
| 506 | min, sec = divmod(sec, 60) |
| 507 | hour, min = divmod(min, 60) |
| 508 | return "%d:%d:%d.%d" % (hour, min, sec, int(milli)) |
| 509 | |
| 510 | def any2i(self, pkt, val): |
| 511 | if isinstance(val, str): |
| 512 | hmsms = self.re_hmsm.match(val) |
| 513 | if hmsms: |
| 514 | h, _, m, _, s, _, ms = hmsms.groups() |
| 515 | ms = int(((ms or "") + "000")[:3]) |
| 516 | val = ((int(h) * 60 + int(m or 0)) * 60 + int(s or 0)) * 1000 + ms # noqa: E501 |
| 517 | else: |
| 518 | val = 0 |
| 519 | elif val is None: |
| 520 | val = int((time.time() % (24 * 60 * 60)) * 1000) |
| 521 | return val |
| 522 | |
| 523 | |
| 524 | class DestIPField(IPField, DestField): |
no outgoing calls
no test coverage detected