Skip to content

Commit f401f08

Browse files
authored
WiFiServer - 'rename' available() to accept() (#8419)
* WiFiServer - 'rename' available() to accept() * use server.accept() instead of available() * WiFiServer.accept() and ArduinoWiFiServer class doc update
1 parent 2f58f67 commit f401f08

File tree

20 files changed

+53
-27
lines changed

20 files changed

+53
-27
lines changed

Diff for: doc/esp8266wifi/server-class.rst

+17-1
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,29 @@ Methods documented for the `Server Class <https://www.arduino.cc/en/Reference/Wi
1212
5. `print() <https://www.arduino.cc/en/Reference/WiFiServerPrint>`__
1313
6. `println() <https://www.arduino.cc/en/Reference/WiFiServerPrintln>`__
1414

15+
In ESP8266WiFi library the ``ArduinoWiFiServer`` class implements ``available`` and the write-to-all-clients functionality as described in the Arduino WiFi library reference. The PageServer example shows how ``available`` and the write-to-all-clients works.
16+
17+
For most use cases the basic WiFiServer class of the ESP8266WiFi library is suitable.
18+
1519
Methods and properties described further down are specific to ESP8266. They are not covered in `Arduino WiFi library <https://www.arduino.cc/en/Reference/WiFi>`__ documentation. Before they are fully documented please refer to information below.
1620

21+
accept
22+
~~~~~~
23+
24+
Method ``accept()`` returns a waiting client connection. `accept() is documented <https://www.arduino.cc/en/Reference/EthernetServerAccept>`__ for the Arduino Ethernet library.
25+
26+
available
27+
~~~~~~~~~
28+
.. deprecated:: 3.1.0
29+
see ``accept``
30+
31+
``available`` in the ESP8266WiFi library's WiFiServer class doesn't work as documented for the Arduino WiFi library. It works the same way as ``accept``.
32+
1733
write (write to all clients) not supported
1834
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1935

2036
Please note that the ``write`` method on the ``WiFiServer`` object is not implemented and returns failure always. Use the returned
21-
``WiFiClient`` object from the ``WiFiServer::available()`` method to communicate with individual clients. If you need to send
37+
``WiFiClient`` object from the ``WiFiServer::accept()`` method to communicate with individual clients. If you need to send
2238
the exact same packets to a series of clients, your application must maintain a list of connected clients and iterate over them manually.
2339

2440
setNoDelay

Diff for: doc/esp8266wifi/server-examples.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ Serving of this web page will be done in the ``loop()`` where server is waiting
9292
9393
void loop()
9494
{
95-
WiFiClient client = server.available();
95+
WiFiClient client = server.accept();
9696
if (client)
9797
{
9898
// we have a new client sending some request
@@ -196,7 +196,7 @@ Complete sketch is presented below.
196196
197197
void loop()
198198
{
199-
WiFiClient client = server.available();
199+
WiFiClient client = server.accept();
200200
// wait for a client (web browser) to connect
201201
if (client)
202202
{

Diff for: libraries/ESP8266AVRISP/src/ESP8266AVRISP.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ AVRISPState_t ESP8266AVRISP::update() {
7272
switch (_state) {
7373
case AVRISP_STATE_IDLE: {
7474
if (_server.hasClient()) {
75-
_client = _server.available();
75+
_client = _server.accept();
7676
_client.setNoDelay(true);
7777
AVRISP_DEBUG("client connect %s:%d", _client.remoteIP().toString().c_str(), _client.remotePort());
7878
_client.setTimeout(100); // for getch()
@@ -121,7 +121,7 @@ AVRISPState_t ESP8266AVRISP::serve() {
121121
}
122122

123123
inline void ESP8266AVRISP::_reject_incoming(void) {
124-
while (_server.hasClient()) _server.available().stop();
124+
while (_server.hasClient()) _server.accept().stop();
125125
}
126126

127127
uint8_t ESP8266AVRISP::getch() {

Diff for: libraries/ESP8266WebServer/src/ESP8266WebServer-impl.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ void ESP8266WebServerTemplate<ServerType>::serveStatic(const char* uri, FS& fs,
281281
template <typename ServerType>
282282
void ESP8266WebServerTemplate<ServerType>::handleClient() {
283283
if (_currentStatus == HC_NONE) {
284-
ClientType client = _server.available();
284+
ClientType client = _server.accept();
285285
if (!client) {
286286
return;
287287
}

Diff for: libraries/ESP8266WiFi/examples/BearSSL_Server/BearSSL_Server.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ static const char *HTTP_RES =
207207

208208
void loop() {
209209
static int cnt;
210-
BearSSL::WiFiClientSecure incoming = server.available();
210+
BearSSL::WiFiClientSecure incoming = server.accept();
211211
if (!incoming) {
212212
return;
213213
}

Diff for: libraries/ESP8266WiFi/examples/BearSSL_ServerClientCert/BearSSL_ServerClientCert.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ static const char *HTTP_RES =
227227
"</html>\r\n";
228228

229229
void loop() {
230-
BearSSL::WiFiClientSecure incoming = server.available();
230+
BearSSL::WiFiClientSecure incoming = server.accept();
231231
if (!incoming) {
232232
return;
233233
}

Diff for: libraries/ESP8266WiFi/examples/IPv6/IPv6.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ unsigned long statusTimeMs = 0;
175175
void loop() {
176176

177177
if (statusServer.hasClient()) {
178-
WiFiClient cli = statusServer.available();
178+
WiFiClient cli = statusServer.accept();
179179
status(cli);
180180
}
181181

Diff for: libraries/ESP8266WiFi/examples/WiFiEcho/WiFiEcho.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ void loop() {
7777

7878
//check if there are any new clients
7979
if (server.hasClient()) {
80-
client = server.available();
80+
client = server.accept();
8181
Serial.println("New client");
8282
}
8383

Diff for: libraries/ESP8266WiFi/examples/WiFiManualWebServer/WiFiManualWebServer.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ void setup() {
5454

5555
void loop() {
5656
// Check if a client has connected
57-
WiFiClient client = server.available();
57+
WiFiClient client = server.accept();
5858
if (!client) {
5959
return;
6060
}

Diff for: libraries/ESP8266WiFi/examples/WiFiTelnetToSerial/WiFiTelnetToSerial.ino

+3-3
Original file line numberDiff line numberDiff line change
@@ -130,16 +130,16 @@ void loop() {
130130
int i;
131131
for (i = 0; i < MAX_SRV_CLIENTS; i++)
132132
if (!serverClients[i]) { // equivalent to !serverClients[i].connected()
133-
serverClients[i] = server.available();
133+
serverClients[i] = server.accept();
134134
logger->print("New client: index ");
135135
logger->print(i);
136136
break;
137137
}
138138

139139
//no free/disconnected spot so reject
140140
if (i == MAX_SRV_CLIENTS) {
141-
server.available().println("busy");
142-
// hints: server.available() is a WiFiClient with short-term scope
141+
server.accept().println("busy");
142+
// hints: server.accept() is a WiFiClient with short-term scope
143143
// when out of scope, a WiFiClient will
144144
// - flush() - all data will be sent
145145
// - stop() - automatically too

Diff for: libraries/ESP8266WiFi/src/ArduinoWiFiServer.h

+1-6
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,6 @@ class ArduinoCompatibleWiFiServerTemplate : public TServer, public Print {
3535
ArduinoCompatibleWiFiServerTemplate(uint16_t port) : TServer(port) {}
3636
virtual ~ArduinoCompatibleWiFiServerTemplate() {}
3737

38-
// https://www.arduino.cc/en/Reference/EthernetServerAccept
39-
TClient accept() {
40-
return TServer::available();
41-
}
42-
4338
// https://www.arduino.cc/en/Reference/WiFiServerAvailable
4439
TClient available() {
4540

@@ -132,7 +127,7 @@ class ArduinoCompatibleWiFiServerTemplate : public TServer, public Print {
132127
void acceptClients() {
133128
for (uint8_t i = 0; i < MAX_MONITORED_CLIENTS; i++) {
134129
if (!connectedClients[i]) {
135-
connectedClients[i] = accept();
130+
connectedClients[i] = TServer::accept();
136131
}
137132
}
138133
}

Diff for: libraries/ESP8266WiFi/src/WiFiServer.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,10 @@ bool WiFiServer::hasMaxPendingClients() {
130130

131131
WiFiClient WiFiServer::available(byte* status) {
132132
(void) status;
133+
return accept();
134+
}
135+
136+
WiFiClient WiFiServer::accept() {
133137
if (_unclaimed) {
134138
WiFiClient result(_unclaimed);
135139

Diff for: libraries/ESP8266WiFi/src/WiFiServer.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ class WiFiServer {
8080
WiFiServer(const IPAddress& addr, uint16_t port);
8181
WiFiServer(uint16_t port);
8282
virtual ~WiFiServer() {}
83-
WiFiClient available(uint8_t* status = NULL);
83+
WiFiClient accept(); // https://www.arduino.cc/en/Reference/EthernetServerAccept
84+
WiFiClient available(uint8_t* status = NULL) __attribute__((deprecated("Renamed to accept().")));
8485
bool hasClient();
8586
// hasClientData():
8687
// returns the amount of data available from the first client

Diff for: libraries/ESP8266WiFi/src/WiFiServerSecureBearSSL.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ void WiFiServerSecure::setECCert(const X509List *chain, unsigned cert_issuer_key
7777
// then any validation (i.e. client cert checking) will have succeeded.
7878
WiFiClientSecure WiFiServerSecure::available(uint8_t* status) {
7979
(void) status; // Unused
80+
return accept();
81+
}
82+
83+
WiFiClientSecure WiFiServerSecure::accept() {
8084
if (_unclaimed) {
8185
if (_sk && _sk->isRSA()) {
8286
WiFiClientSecure result(_unclaimed, _chain, _sk, _iobuf_in_size, _iobuf_out_size, _cache, _client_CA_ta, _tls_min, _tls_max);

Diff for: libraries/ESP8266WiFi/src/WiFiServerSecureBearSSL.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ class WiFiServerSecure : public WiFiServer {
6565
bool setSSLVersion(uint32_t min = BR_TLS10, uint32_t max = BR_TLS12);
6666

6767
// If awaiting connection available and authenticated (i.e. client cert), return it.
68-
WiFiClientSecure available(uint8_t* status = NULL);
68+
WiFiClientSecure accept(); // https://www.arduino.cc/en/Reference/EthernetServerAccept
69+
WiFiClientSecure available(uint8_t* status = NULL) __attribute__((deprecated("Renamed to accept().")));
6970

7071
WiFiServerSecure& operator=(const WiFiServerSecure&) = default;
7172

Diff for: libraries/ESP8266WiFiMesh/src/ESP8266WiFiMesh.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,7 @@ void ESP8266WiFiMesh::acceptRequest()
624624
if(_handler != NULL)
625625
{
626626
while (true) {
627-
_client = _server.available();
627+
_client = _server.accept();
628628
if (!_client)
629629
break;
630630

@@ -647,7 +647,7 @@ void ESP8266WiFiMesh::acceptRequest()
647647
{
648648
////////////////////////////</DEPRECATED> TODO: REMOVE IN 2.5.0////////////////////////////
649649
while (true) {
650-
WiFiClient _client = _server.available();
650+
WiFiClient _client = _server.accept();
651651

652652
if (!_client)
653653
break;

Diff for: libraries/ESP8266WiFiMesh/src/TcpIpMeshBackend.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@ void TcpIpMeshBackend::acceptRequests()
533533
}
534534

535535
while (true) {
536-
WiFiClient _client = _server.available();
536+
WiFiClient _client = _server.accept();
537537

538538
if (!_client)
539539
break;

Diff for: libraries/ESP8266mDNS/examples/mDNS_Web_Server/mDNS_Web_Server.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ void loop(void) {
7676
MDNS.update();
7777

7878
// Check if a client has connected
79-
WiFiClient client = server.available();
79+
WiFiClient client = server.accept();
8080
if (!client) {
8181
return;
8282
}

Diff for: libraries/Netdump/src/Netdump.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ void Netdump::tcpDumpLoop(WiFiServer &tcpDumpServer, const Filter nf)
193193
{
194194
if (tcpDumpServer.hasClient())
195195
{
196-
tcpDumpClient = tcpDumpServer.available();
196+
tcpDumpClient = tcpDumpServer.accept();
197197
tcpDumpClient.setNoDelay(true);
198198

199199
bufferIndex = 0;

Diff for: tests/host/common/MockWiFiServer.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ WiFiServer::WiFiServer (uint16_t port)
5858
WiFiClient WiFiServer::available (uint8_t* status)
5959
{
6060
(void)status;
61+
return accept();
62+
}
63+
64+
WiFiClient WiFiServer::accept ()
65+
{
6166
if (hasClient())
6267
return WiFiClient(new ClientContext(serverAccept(pcb2int(_listen_pcb))));
6368
return WiFiClient();

0 commit comments

Comments
 (0)