Skip to content

Commit d5eb265

Browse files
authored
WiFi config(): warning for legacy idioms (#9050)
1 parent cb9734c commit d5eb265

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed

cores/esp8266/LwipIntfDev.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,10 @@ class LwipIntfDev: public LwipIntf, public RawDev
6969
const IPAddress& arg3 = IPADDR_NONE, const IPAddress& dns2 = IPADDR_NONE);
7070

7171
// two and one parameter version. 2nd parameter is DNS like in Arduino. IPv4 only
72-
boolean config(IPAddress local_ip, IPAddress dns = INADDR_ANY);
72+
[[deprecated("It is discouraged to use this 1 or 2 parameters network configuration legacy "
73+
"function config(ip[,dns]) as chosen defaults may not match the local network "
74+
"configuration")]] boolean
75+
config(IPAddress local_ip, IPAddress dns = INADDR_ANY);
7376

7477
// default mac-address is inferred from esp8266's STA interface
7578
boolean begin(const uint8_t* macAddress = nullptr, const uint16_t mtu = DEFAULT_MTU);

doc/esp8266wifi/station-class.rst

+9-7
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,11 @@ config
9999

100100
Disable `DHCP <https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol>`__ client (Dynamic Host Configuration Protocol) and set the IP configuration of station interface to user defined arbitrary values. The interface will be a static IP configuration instead of values provided by DHCP.
101101

102-
Note that to reenable DHCP, all three parameters as 0.0.0.0 (local_ip, gateway and subnet as ``INADDR_ANY``) must be passed back to config() and re-connecting is needed.
102+
Note that to reenable DHCP, all three parameters (local_ip, gateway and subnet) as IPv4 ``0U`` (= 0.0.0.0) must be passed back to config() and re-connecting is needed.
103103

104104
.. code:: cpp
105105
106-
WiFi.config(local_ip, gateway, subnet)
106+
WiFi.config(local_ip, gateway, subnet) (for Arduino API portability, discouraged as chosen defaults may not match the local network configuration)
107107
WiFi.config(local_ip, gateway, subnet, dns1)
108108
WiFi.config(local_ip, gateway, subnet, dns1, dns2)
109109
@@ -122,16 +122,18 @@ The following IP configuration may be provided:
122122
(like e.g. *www.google.co.uk*) and translate them for us to IP
123123
addresses
124124

125-
For Arduino networking API compatibilty the ESP8266WiFi library supports for IPv4 additional versions of the ``config`` function.
125+
For Arduino networking API compatibility, the ESP8266WiFi library supports IPv4-only additional versions of the ``config`` function:
126126

127127
.. code:: cpp
128128
129-
WiFi.config(local_ip)
130-
WiFi.config(local_ip, dns)
131-
WiFi.config(local_ip, dns, gateway)
129+
WiFi.config(local_ip) (for Arduino API portability, discouraged as chosen defaults may not match the local network configuration)
130+
WiFi.config(local_ip, dns) (for Arduino API portability, discouraged as chosen defaults may not match the local network configuration)
131+
WiFi.config(local_ip, dns, gateway) (for Arduino API portability, discouraged as chosen defaults may not match the local network configuration)
132132
WiFi.config(local_ip, dns, gateway, subnet)
133133
134-
Versions where some of ``dns``, ``gateway`` and ``subnet`` parameters are not specified use a default value. Default ``subnet`` is 255.255.255.0. Default ``gateway`` and ``dns`` are derived from ``local_ip`` by changing the last number to 1. To return to DHCP you can use ``WiFi.config(INADDR_NONE);``.
134+
Versions where some of ``dns``, ``gateway`` and ``subnet`` parameters are not specified use a default value. Default ``subnet`` is 255.255.255.0. Default ``gateway`` and ``dns`` are derived from ``local_ip`` by changing the last number to 1. It is discouraged to use these default values as they may not apply to every network configuration.
135+
136+
Reminder : To reenable DHCP you can use ``WiFi.config(0U, 0U, 0U);``.
135137

136138
**Warning: The default values for dns, gateway and subnet may not match your router's settings.** Also please note, that ``config(local_ip, gateway)`` is not supported and ``WiFi.config(local_ip, gateway, subnet)`` doesn't set the DNS server IP.
137139

libraries/ESP8266WiFi/src/ESP8266WiFiSTA.h

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class ESP8266WiFiSTAClass: public LwipIntf {
4949

5050
// two and one parameter version. 2nd parameter is DNS like in Arduino
5151
// IPv4 only
52+
[[deprecated("It is discouraged to use this 1 or 2 parameters network configuration legacy function config(ip[,dns]) as chosen defaults may not match the local network configuration")]]
5253
bool config(IPAddress local_ip, IPAddress dns = INADDR_ANY);
5354

5455
bool setDNS(IPAddress dns1, IPAddress dns2 = INADDR_ANY);

0 commit comments

Comments
 (0)