Browse Source

[fix] Sync the date with http if ntp can't (#37)

* [fix] Sync the date with http if ntp can't
ljf (zamentur) 6 years ago
parent
commit
84a4e1a319
1 changed files with 14 additions and 0 deletions
  1. 14 0
      conf/ynh-vpnclient

+ 14 - 0
conf/ynh-vpnclient

@@ -204,6 +204,20 @@ stop_openvpn() {
 sync_time() {
   systemctl stop ntp
   timeout 20 ntpd -qg &> /dev/null
+  
+  # Some networks drop ntp port (udp 123). 
+  # Try to get the date with an http request on the internetcube web site
+  if [ $? -ne 0 ]; then
+    http_date=`curl -sD - labriqueinter.net | grep '^Date:' | cut -d' ' -f3-6`
+    http_date_seconds=`date -d "${http_date}" +%s`
+    curr_date_seconds=`date +%s`
+
+    # Set the new date if it's greater than the current date
+    # So it does if 1970 year or if old fake-hwclock date is used
+    if [ $http_date_seconds -ge $curr_date_seconds ]; then
+      date -s "${http_date}"
+    fi
+  fi 
   systemctl start ntp
 }