fixed a bug where under one condition DNS was not tried for resolving host IP
This commit is contained in:
parent
e09ffcbb53
commit
92de3e9f87
@ -57,20 +57,25 @@ bool HttpPowerMeterClass::queryPhase(int phase, const String& url, Auth authType
|
|||||||
extractUrlComponents(url, protocol, host, uri);
|
extractUrlComponents(url, protocol, host, uri);
|
||||||
|
|
||||||
IPAddress ipaddr((uint32_t)0);
|
IPAddress ipaddr((uint32_t)0);
|
||||||
//first check if the urlHostname is already an IP adress
|
//first check if "host" is already an IP adress
|
||||||
if (!ipaddr.fromString(host))
|
if (!ipaddr.fromString(host))
|
||||||
{
|
{
|
||||||
//urlHostname is not an IP address so try to resolve the IP adress
|
//"host"" is not an IP address so try to resolve the IP adress
|
||||||
//first try locally via mDNS, then via DNS (WiFiGeneric::hostByName() will spam the console if done the otherway around)
|
//first try locally via mDNS, then via DNS. WiFiGeneric::hostByName() will spam the console if done the otherway around.
|
||||||
const bool mdnsEnabled = Configuration.get().Mdns.Enabled;
|
const bool mdnsEnabled = Configuration.get().Mdns.Enabled;
|
||||||
if (!mdnsEnabled) {
|
if (!mdnsEnabled) {
|
||||||
snprintf_P(httpPowerMeterError, sizeof(httpPowerMeterError), PSTR("Error resolving host %s via DNS, try to enable mDNS in Network Settings"), host.c_str());
|
snprintf_P(httpPowerMeterError, sizeof(httpPowerMeterError), PSTR("Error resolving host %s via DNS, try to enable mDNS in Network Settings"), host.c_str());
|
||||||
|
//ensure we try resolving via DNS even if mDNS is disabled
|
||||||
|
if(!WiFiGenericClass::hostByName(host.c_str(), ipaddr)){
|
||||||
|
snprintf_P(httpPowerMeterError, sizeof(httpPowerMeterError), PSTR("Error resolving host %s via DNS"), host.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ipaddr = MDNS.queryHost(host);
|
ipaddr = MDNS.queryHost(host);
|
||||||
if (ipaddr == INADDR_NONE){
|
if (ipaddr == INADDR_NONE){
|
||||||
snprintf_P(httpPowerMeterError, sizeof(httpPowerMeterError), PSTR("Error resolving host %s via mDNS"), host.c_str());
|
snprintf_P(httpPowerMeterError, sizeof(httpPowerMeterError), PSTR("Error resolving host %s via mDNS"), host.c_str());
|
||||||
|
//when we cannot find local server via mDNS, try resolving via DNS
|
||||||
if(!WiFiGenericClass::hostByName(host.c_str(), ipaddr)){
|
if(!WiFiGenericClass::hostByName(host.c_str(), ipaddr)){
|
||||||
snprintf_P(httpPowerMeterError, sizeof(httpPowerMeterError), PSTR("Error resolving host %s via DNS"), host.c_str());
|
snprintf_P(httpPowerMeterError, sizeof(httpPowerMeterError), PSTR("Error resolving host %s via DNS"), host.c_str());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user