This is a fork of the NTPClient Library to work with the mbed-os 5 way of doing networking

Fork of NTPClient by Dieter Graef

Files at this revision

API Documentation at this revision

Comitter:
jhd25
Date:
Sun Feb 25 11:13:37 2018 +0000
Parent:
1:52e0f030d00e
Commit message:
Changed to stdint.h from cstdint

Changed in this revision

NTPClient.cpp Show annotated file Show diff for this revision Revisions of this file
NTPClient.h Show annotated file Show diff for this revision Revisions of this file
diff -r 52e0f030d00e -r eda6db3ada54 NTPClient.cpp
--- a/NTPClient.cpp	Fri Apr 28 14:17:00 2017 +0000
+++ b/NTPClient.cpp	Sun Feb 25 11:13:37 2018 +0000
@@ -17,27 +17,9 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
-//Debug is disabled by default
-#if 0
-//Enable debug
-#define __DEBUG__
-#include <cstdio>
-#define DBG(x, ...) std::printf("[NTPClient : DBG]"x"\r\n", ##__VA_ARGS__); 
-#define WARN(x, ...) std::printf("[NTPClient : WARN]"x"\r\n", ##__VA_ARGS__); 
-#define ERR(x, ...) std::printf("[NTPClient : ERR]"x"\r\n", ##__VA_ARGS__); 
-
-#else
-//Disable debug
-#define DBG(x, ...) 
-#define WARN(x, ...)
-#define ERR(x, ...) 
-
-#endif
-
 #include "NTPClient.h"
 #include "EthernetInterface.h"
 #include "UDPSocket.h"
-
 #include "mbed.h" //time() and set_time()
 #include "lwip/opt.h"
 #include "lwip/def.h"
@@ -53,14 +35,8 @@
 
 NTPResult NTPClient::setTime(const char* host, uint16_t port, uint32_t timeout)
 {
-#ifdef __DEBUG__
-  time_t ctTime;
-  ctTime = time(NULL);
-  DBG("Time is set to (UTC): %s", ctime(&ctTime));
-#endif
 
   //Create & bind socket
-  DBG("Binding socket");
   SocketAddress inEndpoint("0.0.0.0", 0);
   m_sock.bind(inEndpoint); //Bind to a random port 
   m_sock.set_blocking(false); //Set not blocking
@@ -68,7 +44,6 @@
   struct NTPPacket pkt;
 
   //Now ping the server and wait for response
-  DBG("Ping");
   //Prepare NTP Packet:
   pkt.li = 0; //Leap Indicator : No warning
   pkt.vn = 4; //Version Number : 4
@@ -88,31 +63,23 @@
 
   pkt.refTm_f = pkt.origTm_f = pkt.rxTm_f = pkt.txTm_f = 0;
 
-
-    DBG("Ping2");
-
-    
   //Set timeout, non-blocking and wait using select
   int ret = m_sock.sendto(outEndpoint, &pkt, sizeof(NTPPacket));
-    DBG("Ping4");
  
   if (ret < 0 )
   {
-    ERR("Could not send packet");
     m_sock.close();
     return NTP_CONN;
   }
 
   //Read response
   // Set the inEndpoint address property
-  DBG("Pong");
-int tries =0;
-while (true)  {  
+    int tries =0;
+    while (true)  {  
     ret = m_sock.recvfrom( &inEndpoint, (char*)&pkt, sizeof(NTPPacket) ); //FIXME need a DNS Resolver to actually compare the incoming address with the DNS name
     wait(0.01);
     if((ret < 0 && ret != -3001) || tries >100)
     {
-      ERR("Could not receive packet");
       m_sock.close();
       return NTP_CONN;
     }
@@ -122,14 +89,12 @@
   printf("NTP Server Address: %s \r\n",outEndpoint.get_ip_address());
   if(ret < sizeof(NTPPacket)) //TODO: Accept chunks
   {
-    ERR("Receive packet size does not match");
     m_sock.close();
     return NTP_PRTCL;
   }
 
   if( pkt.stratum == 0)  //Kiss of death message : Not good !
   {
-    ERR("Kissed to death!");
     m_sock.close();
     return NTP_PRTCL;
   }
@@ -147,15 +112,9 @@
   //Compute offset, see RFC 4330 p.13
   uint32_t destTm_s = (NTP_TIMESTAMP_DELTA + time(NULL));
   int64_t offset = ( (int64_t)( pkt.rxTm_s - pkt.origTm_s ) + (int64_t) ( pkt.txTm_s - destTm_s ) ) / 2; //Avoid overflow
-  DBG("Sent @%ul", pkt.txTm_s);
-  DBG("Offset: %lld", offset);
   //Set time accordingly
   set_time( time(NULL) + offset );
 
-#ifdef __DEBUG__
-  ctTime = time(NULL);
-  DBG("Time is now (UTC): %s", ctime(&ctTime));
-#endif
 
   m_sock.close();
 
diff -r 52e0f030d00e -r eda6db3ada54 NTPClient.h
--- a/NTPClient.h	Fri Apr 28 14:17:00 2017 +0000
+++ b/NTPClient.h	Sun Feb 25 11:13:37 2018 +0000
@@ -24,11 +24,8 @@
 #ifndef NTPCLIENT_H_
 #define NTPCLIENT_H_
 
-#include <cstdint>
+#include "stdint.h"
 
-using std::uint8_t;
-using std::uint16_t;
-using std::uint32_t;
 #include "UDPSocket.h"
 #include "EthernetInterface.h"