Skip to content

NTP client crashes if you pass an ntp server that the dns does not resolve #73

@mr-miky

Description

@mr-miky

I am using the library with ESP32 and I found that if you put an incorrect ntp server (I assume it happens even if the connection to the internet is absent) the esp 32 restarts.
What I found is that in NTPClient :: sendNTPPacket () the packet is sent to the ntp server but it is not checked whether this -> _ udp-> beginPacket (this -> _ poolServerName, 123)) was successful.
Even if beginPacket () fails immediately after you try to send the package with the request that causes the reboot.

Since

    // Start building up a packet to send to the remote host specific in host and port
    // Returns 1 if successful, 0 if there was a problem resolving the hostname or port
    virtual int beginPacket(const char *host, uint16_t port) =0;

I'd suggest checking this -> _ udp-> beginPacket (....).

// all NTP fields have been given values, now
// you can send a packet requesting a timestamp:
if (this->_udp->beginPacket(this->_poolServerName, 123)) {  //NTP requests are to port 123
    this->_udp->write(this->_packetBuffer, NTP_PACKET_SIZE);
    this->_udp->endPacket();
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: imperfectionPerceived defect in any part of project

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions