From c6f1f4748170c8692cff4d086408f05782bb5d7c Mon Sep 17 00:00:00 2001 From: Rob Janssen Date: Thu, 2 Jan 2020 20:47:51 +0100 Subject: [PATCH] Update NTPTimeProvider.php --- lib/Providers/Time/NTPTimeProvider.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/Providers/Time/NTPTimeProvider.php b/lib/Providers/Time/NTPTimeProvider.php index 862de79..d69a3a6 100644 --- a/lib/Providers/Time/NTPTimeProvider.php +++ b/lib/Providers/Time/NTPTimeProvider.php @@ -11,7 +11,7 @@ class NTPTimeProvider implements ITimeProvider public $port; public $timeout; - function __construct($host = 'pool.ntp.org', $port = 123, $timeout = 1) + function __construct($host = 'time.google.com', $port = 123, $timeout = 1) { $this->host = $host; @@ -28,6 +28,7 @@ class NTPTimeProvider implements ITimeProvider try { /* Create a socket and connect to NTP server */ $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); + socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, ['sec' => $this->timeout, 'usec' => 0]); socket_connect($sock, $this->host, $this->port); /* Send request */ @@ -35,7 +36,8 @@ class NTPTimeProvider implements ITimeProvider socket_send($sock, $msg, strlen($msg), 0); /* Receive response and close socket */ - socket_recv($sock, $recv, 48, MSG_WAITALL); + if (socket_recv($sock, $recv, 48, MSG_WAITALL) === false) + throw new \Exception(socket_strerror(socket_last_error($sock))); socket_close($sock); /* Interpret response */ @@ -49,4 +51,4 @@ class NTPTimeProvider implements ITimeProvider throw new \TimeException(sprintf('Unable to retrieve time from %s (%s)', $this->host, $ex->getMessage())); } } -} \ No newline at end of file +}