(ms: number)
| 51 | |
| 52 | function readNtpTimestamp(buf: Buffer, offset: number): number | undefined { |
| 53 | if (!buf || buf.length < offset + 8) return undefined; |
| 54 | const sec = buf.readUInt32BE(offset); |
| 55 | const frac = buf.readUInt32BE(offset + 4); |
| 56 | if (sec === 0 && frac === 0) return undefined; // not provided |
| 57 | const ms = (sec - NTP_EPOCH_OFFSET) * 1000 + Math.floor((frac / 2 ** 32) * 1000); |
| 58 | return ms; |
| 59 | } |
| 60 |