Skip to content

mDNS problem #7210

@BbIKTOP

Description

@BbIKTOP

I've been told to open an issue about it, so here it is: (edited by maintainer)

#include <Arduino.h>

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>


char *wifiNet = "mywifi";
char *wifiPassword = "mywifipasswd";

char *apName = "box";
char *apPassword = "box";
char *apIp = "10.1.1.1";
char *apMask = "255.255.255.0";


void setup()
{
  int res;

  Serial.begin(115200);
  Serial.println("\nStarting");

  WiFi.persistent(false);
  WiFi.disconnect();

  WiFi.mode(WIFI_AP_STA);

  IPAddress localIp;
  IPAddress localMask;
  IPAddress localGw;

  localIp.fromString(apIp);
  localMask.fromString(apMask);
  localGw.fromString(apIp);

  res = WiFi.softAPConfig(localIp, localGw, localMask);
  Serial.printf("After softAPConfig: %d\n", res);

  res = WiFi.softAP(apName, apPassword, 2, false, 20);
  Serial.printf("After softAP: %d\n", res);

  Serial.printf("After softAP IP: %s\n", WiFi.softAPIP().toString().c_str());

  WiFi.hostname(apName);
  WiFi.setAutoReconnect(true);
  WiFi.begin();

  if (!MDNS.begin(apName))
  {
    Serial.printf("Cannot start mDNS responder\n");
  }
  else
  {
    Serial.printf("mDNS responder started\n");
  }
  MDNS.addService("http", "tcp", 80);

  Serial.println("Started");
}

void loop()
{
  static int counter = 0;
  static int counter2 = 0;

  MDNS.update();

  if (counter++ > 10)
  {
    static int lastStatus = WiFi.status();

    if (WiFi.status() == WL_IDLE_STATUS)
    {
      Serial.println("Reconnecting...");
      WiFi.begin(wifiNet, wifiPassword);
      WiFi.reconnect();
    }

    if (WiFi.status() == WL_CONNECTED && lastStatus != WL_CONNECTED)
    {
      Serial.printf("Connected, IP is: %s\n", WiFi.localIP().toString().c_str());
      counter = 0;

      MDNS.end();
      if (!MDNS.begin(apName))
      {
        Serial.printf("Cannot restart mDNS responder\n");
      }
      else
      {
        Serial.printf("mDNS responder restarted\n");
      }
      MDNS.addService("http", "tcp", 80);
    }
    lastStatus = WiFi.status();
  }

  if (counter2++ > 10)
  {
    int sc = MDNS.queryService("http", "tcp");
    Serial.printf("MDNS: %d services found\n", sc);
    counter2 = 0;
  }

  delay(1000);
}

Produces

Starting
After softAPConfig: 1
After softAP: 0
After softAP IP: 10.1.1.1
mDNS responder started
Started
Reconnecting...
MDNS: 0 services found
Connected, IP is: 172.16.5.79
mDNS responder restarted
MDNS: 0 services found
MDNS: 0 services found
MDNS: 0 services found
MDNS: 0 services found
MDNS: 0 services found
MDNS: 0 services found
MDNS: 0 services found
MDNS: 0 services found
MDNS: 0 services found
MDNS: 0 services found

And no services are visible in service discovery like dns-sd -B

viktor@Work:~ $ telnet box.local 80
box.local: nodename nor servname provided, or not known
viktor@Work:~ $

Versions:

$ platformio update
Updating tool-unity                      @ 1.20500.200322 [Up-to-date]
Updating contrib-piohome                 @ 3.1.1          [Up-to-date]
Updating tool-scons                      @ 2.20501.191222 [Up-to-date]
Updating contrib-pysite                  @ 2.27.191017    [Up-to-date]

Platform Manager
================
Platform Espressif 8266
--------
Updating espressif8266                   @ 2.4.0          [Up-to-date]
Updating tool-esptoolpy                  @ 1.20800.0      [Up-to-date]
Updating tool-mkspiffs                   @ 1.200.0        [Up-to-date]
Updating tool-esptool                    @ 1.413.0        [Up-to-date]
Updating framework-arduinoespressif8266  @ 3.20603.200130 [Up-to-date]
Updating toolchain-xtensa                @ 2.40802.191122 [Up-to-date]


Library Manager
===============
Library Storage: /Users/viktor/.platformio/lib
Updating ESPAsyncTCP                     @ 1.2.2          [Up-to-date]

A quick update:

  1. Downloaded latest arduino 1.8.12
  2. Made a clean install
  3. Added https://arduino.esp8266.com/stable/package_esp8266com_index.json to the "Additional Boards manager URLs"
  4. Installed esp8266 2.6.3
  5. Tested this sketch and observed the same result

image

viktor@Work:~ $ telnet box.local 80
box.local: nodename nor servname provided, or not known
viktor@Work:~ $

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions