Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 61354a4

Browse files
committed
-Werror stream deprecations & inconsistent overloads
drop write(Stream&) implementations don't add virtual w/ override, distinguish from class virtuals fixup u8 vs. char, prefer u8 in all methods and entries
1 parent 0799f78 commit 61354a4

File tree

5 files changed

+58
-105
lines changed

5 files changed

+58
-105
lines changed

‎libraries/ESP8266WiFi/src/WiFiClient.cpp‎

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -220,29 +220,6 @@ size_t WiFiClient::write(const uint8_t *buf, size_t size)
220220
return _client->write((const char*)buf, size);
221221
}
222222

223-
size_t WiFiClient::write(Stream& stream)
224-
{
225-
// (this method is deprecated)
226-
227-
if (!_client || !stream.available())
228-
{
229-
return 0;
230-
}
231-
// core up to 2.7.4 was equivalent to this
232-
return stream.sendAll(this);
233-
}
234-
235-
size_t WiFiClient::write_P(PGM_P buf, size_t size)
236-
{
237-
if (!_client || !size)
238-
{
239-
return 0;
240-
}
241-
_client->setTimeout(_timeout);
242-
StreamConstPtr nopeek(buf, size);
243-
return nopeek.sendAll(this);
244-
}
245-
246223
int WiFiClient::available()
247224
{
248225
if (!_client)
@@ -439,14 +416,9 @@ uint8_t WiFiClient::getKeepAliveCount () const
439416
return _client->getKeepAliveCount();
440417
}
441418

442-
bool WiFiClient::hasPeekBufferAPI () const
443-
{
444-
return true;
445-
}
446-
447419
// return a pointer to available data buffer (size = peekAvailable())
448420
// semantic forbids any kind of read() before calling peekConsume()
449-
const char* WiFiClient::peekBuffer ()
421+
const void* WiFiClient::peekBuffer ()
450422
{
451423
return _client? _client->peekBuffer(): nullptr;
452424
}

‎libraries/ESP8266WiFi/src/WiFiClient.h‎

Lines changed: 22 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,7 @@
2727
#include "Client.h"
2828
#include "IPAddress.h"
2929
#include "include/slist.h"
30-
31-
#ifndef TCP_MSS
32-
#define TCP_MSS 1460 // lwip1.4
33-
#endif
34-
35-
#define WIFICLIENT_MAX_PACKET_SIZE TCP_MSS
36-
#define WIFICLIENT_MAX_FLUSH_WAIT_MS 300
37-
38-
#define TCP_DEFAULT_KEEPALIVE_IDLE_SEC 7200 // 2 hours
39-
#define TCP_DEFAULT_KEEPALIVE_INTERVAL_SEC 75 // 75 sec
40-
#define TCP_DEFAULT_KEEPALIVE_COUNT 9 // fault after 9 failures
30+
#include "include/internal.h"
4131

4232
class ClientContext;
4333
class WiFiServer;
@@ -65,31 +55,30 @@ class WiFiClient : public Client, public SList<WiFiClient> {
6555
virtual std::unique_ptr<WiFiClient> clone() const;
6656

6757
virtual uint8_t status();
68-
virtualint connect(IPAddress ip, uint16_t port) override;
69-
virtualint connect(const char *host, uint16_t port) override;
58+
int connect(IPAddress ip, uint16_t port) override;
59+
int connect(const char *host, uint16_t port) override;
7060
virtual int connect(const String& host, uint16_t port);
71-
virtual size_t write(uint8_t) override;
72-
virtual size_t write(const uint8_t *buf, size_t size) override;
73-
virtual size_t write_P(PGM_P buf, size_t size);
74-
[[ deprecated("use stream.sendHow(client...)") ]]
75-
size_t write(Stream& stream);
76-
77-
virtual int available() override;
78-
virtual int read() override;
79-
virtual int read(uint8_t* buf, size_t size) override;
61+
62+
using Print::write;
63+
size_t write(uint8_t) override;
64+
size_t write(const uint8_t *buf, size_t size) override;
65+
66+
int available() override;
67+
int read() override;
68+
int read(uint8_t* buf, size_t size) override;
8069
int read(char* buf, size_t size);
8170

82-
virtualint peek() override;
71+
int peek() override;
8372
virtual size_t peekBytes(uint8_t *buffer, size_t length);
8473
size_t peekBytes(char *buffer, size_t length) {
8574
return peekBytes((uint8_t *) buffer, length);
8675
}
87-
virtualvoid flush() override { (void)flush(0); } // wait for all outgoing characters to be sent, output buffer should be empty after this call
88-
virtualvoid stop() override { (void)stop(0); }
76+
void flush() override { (void)flush(0); } // wait for all outgoing characters to be sent, output buffer should be empty after this call
77+
void stop() override { (void)stop(0); }
8978
bool flush(unsigned int maxWaitMs);
9079
bool stop(unsigned int maxWaitMs);
91-
virtualuint8_t connected() override;
92-
virtualoperator bool() override;
80+
uint8_t connected() override;
81+
operator bool() override;
9382

9483
virtual IPAddress remoteIP();
9584
virtual uint16_t remotePort();
@@ -102,8 +91,6 @@ class WiFiClient : public Client, public SList<WiFiClient> {
10291

10392
friend class WiFiServer;
10493

105-
using Print::write;
106-
10794
static void stopAll();
10895
static void stopAllExcept(WiFiClient * c);
10996

@@ -133,27 +120,26 @@ class WiFiClient : public Client, public SList<WiFiClient> {
133120
void setSync(bool sync);
134121

135122
// peek buffer API is present
136-
virtualbool hasPeekBufferAPI () const override;
123+
bool hasPeekBufferAPI () const override { returntrue; }
137124

138125
// return number of byte accessible by peekBuffer()
139-
virtualsize_t peekAvailable () override;
126+
size_t peekAvailable () override;
140127

141128
// return a pointer to available data buffer (size = peekAvailable())
142129
// semantic forbids any kind of read() before calling peekConsume()
143-
virtualconst char* peekBuffer () override;
130+
const void* peekBuffer () override;
144131

145132
// consume bytes after use (see peekBuffer)
146-
virtualvoid peekConsume (size_t consume) override;
133+
void peekConsume (size_t consume) override;
147134

148-
virtualbool outputCanTimeout () override { return connected(); }
149-
virtualbool inputCanTimeout () override { return connected(); }
135+
bool outputCanTimeout () override { return connected(); }
136+
bool inputCanTimeout () override { return connected(); }
150137

151138
// Immediately stops this client instance.
152139
// Unlike stop(), does not wait to gracefuly shutdown the connection.
153140
void abort();
154141

155142
protected:
156-
157143
static int8_t _s_connected(void* arg, void* tpcb, int8_t err);
158144
static void _s_err(void* arg, int8_t err);
159145

‎libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp‎

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ int WiFiClientSecureCtx::availableForWrite () {
294294
return 0;
295295
}
296296

297-
size_t WiFiClientSecureCtx::_write(const uint8_t *buf, size_t size, bool pmem) {
297+
size_t WiFiClientSecureCtx::_write(const uint8_t *buf, size_t size) {
298298
size_t sent_bytes = 0;
299299

300300
if (!size || !_engineConnected()) {
@@ -316,11 +316,7 @@ size_t WiFiClientSecureCtx::_write(const uint8_t *buf, size_t size, bool pmem) {
316316
size_t sendapp_len;
317317
unsigned char *sendapp_buf = br_ssl_engine_sendapp_buf(_eng, &sendapp_len);
318318
int to_send = size > sendapp_len ? sendapp_len : size;
319-
if (pmem) {
320-
memcpy_P(sendapp_buf, buf, to_send);
321-
} else {
322-
memcpy(sendapp_buf, buf, to_send);
323-
}
319+
memcpy(sendapp_buf, buf, to_send);
324320
br_ssl_engine_sendapp_ack(_eng, to_send);
325321
br_ssl_engine_flush(_eng, 0);
326322
flush();
@@ -336,20 +332,11 @@ size_t WiFiClientSecureCtx::_write(const uint8_t *buf, size_t size, bool pmem) {
336332
}
337333

338334
size_t WiFiClientSecureCtx::write(const uint8_t *buf, size_t size) {
339-
return _write(buf, size, false);
340-
}
341-
342-
size_t WiFiClientSecureCtx::write_P(PGM_P buf, size_t size) {
343-
return _write((const uint8_t *)buf, size, true);
335+
return _write(buf, size);
344336
}
345337

346-
size_t WiFiClientSecureCtx::write(Stream& stream) {
347-
if (!_engineConnected()) {
348-
DEBUG_BSSL("write: no br_ssl engine to work with\n");
349-
return 0;
350-
}
351-
352-
return stream.sendAll(this);
338+
size_t WiFiClientSecureCtx::write(uint8_t c) {
339+
return _write(&c, 1);
353340
}
354341

355342
int WiFiClientSecureCtx::read(uint8_t *buf, size_t size) {
@@ -395,9 +382,9 @@ int WiFiClientSecureCtx::read(uint8_t *buf, size_t size) {
395382

396383
// return a pointer to available data buffer (size = peekAvailable())
397384
// semantic forbids any kind of read() before calling peekConsume()
398-
const char* WiFiClientSecureCtx::peekBuffer ()
385+
const void* WiFiClientSecureCtx::peekBuffer ()
399386
{
400-
return (constchar*)_recvapp_buf;
387+
return _recvapp_buf;
401388
}
402389

403390
// consume bytes after use (see peekBuffer)

‎libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.h‎

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,11 @@ class WiFiClientSecureCtx : public WiFiClient {
5151
int connect(const char* name, uint16_t port) override;
5252

5353
uint8_t connected() override;
54+
55+
using Print::write;
56+
size_t write(uint8_t) override;
5457
size_t write(const uint8_t *buf, size_t size) override;
55-
size_t write_P(PGM_P buf, size_t size) override;
56-
size_t write(Stream& stream); // Note this is not virtual
58+
5759
int read(uint8_t *buf, size_t size) override;
5860
int read(char *buf, size_t size) { return read((uint8_t*)buf, size); }
5961
int available() override;
@@ -135,17 +137,17 @@ class WiFiClientSecureCtx : public WiFiClient {
135137
bool setSSLVersion(uint32_t min = BR_TLS10, uint32_t max = BR_TLS12);
136138

137139
// peek buffer API is present
138-
virtualbool hasPeekBufferAPI () const override { return true; }
140+
bool hasPeekBufferAPI () const override { return true; }
139141

140142
// return number of byte accessible by peekBuffer()
141-
virtualsize_t peekAvailable () override { return WiFiClientSecureCtx::available(); }
143+
size_t peekAvailable () override { return WiFiClientSecureCtx::available(); }
142144

143145
// return a pointer to available data buffer (size = peekAvailable())
144146
// semantic forbids any kind of read() before calling peekConsume()
145-
virtualconst char* peekBuffer () override;
147+
const void* peekBuffer () override;
146148

147149
// consume bytes after use (see peekBuffer)
148-
virtualvoid peekConsume (size_t consume) override;
150+
void peekConsume (size_t consume) override;
149151

150152
protected:
151153
bool _connectSSL(const char *hostName); // Do initial SSL handshake
@@ -205,7 +207,7 @@ class WiFiClientSecureCtx : public WiFiClient {
205207
std::shared_ptr<unsigned char> _alloc_iobuf(size_t sz);
206208
void _freeSSL();
207209
int _run_until(unsigned target, bool blocking = true);
208-
size_t _write(const uint8_t *buf, size_t size, bool pmem);
210+
size_t _write(const uint8_t *buf, size_t size);
209211
bool _wait_for_handshake(); // Sets and return the _handshake_done after connecting
210212

211213
// Optional client certificate
@@ -268,11 +270,11 @@ class WiFiClientSecure : public WiFiClient {
268270
int connect(const char* name, uint16_t port) override { return _ctx->connect(name, port); }
269271

270272
uint8_t connected() override { return _ctx->connected(); }
273+
274+
using Print::write;
275+
size_t write(uint8_t c) override { return _ctx->write(c); }
271276
size_t write(const uint8_t *buf, size_t size) override { return _ctx->write(buf, size); }
272-
size_t write_P(PGM_P buf, size_t size) override { return _ctx->write_P(buf, size); }
273-
size_t write(const char *buf) { return write((const uint8_t*)buf, strlen(buf)); }
274-
size_t write_P(const char *buf) { return write_P((PGM_P)buf, strlen_P(buf)); }
275-
size_t write(Stream& stream) /* Note this is not virtual */ { return _ctx->write(stream); }
277+
276278
int read(uint8_t *buf, size_t size) override { return _ctx->read(buf, size); }
277279
int available() override { return _ctx->available(); }
278280
int availableForWrite() override { return _ctx->availableForWrite(); }
@@ -346,17 +348,17 @@ class WiFiClientSecure : public WiFiClient {
346348
static bool probeMaxFragmentLength(const String& host, uint16_t port, uint16_t len);
347349

348350
// peek buffer API is present
349-
virtualbool hasPeekBufferAPI () const override { return true; }
351+
bool hasPeekBufferAPI () const override { return true; }
350352

351353
// return number of byte accessible by peekBuffer()
352-
virtualsize_t peekAvailable () override { return _ctx->available(); }
354+
size_t peekAvailable () override { return _ctx->available(); }
353355

354356
// return a pointer to available data buffer (size = peekAvailable())
355357
// semantic forbids any kind of read() before calling peekConsume()
356-
virtualconst char* peekBuffer () override { return _ctx->peekBuffer(); }
358+
const void* peekBuffer () override { return _ctx->peekBuffer(); }
357359

358360
// consume bytes after use (see peekBuffer)
359-
virtualvoid peekConsume (size_t consume) override { return _ctx->peekConsume(consume); }
361+
void peekConsume (size_t consume) override { return _ctx->peekConsume(consume); }
360362

361363
void keepAlive(uint16_t idle_sec = TCP_DEFAULT_KEEPALIVE_IDLE_SEC, uint16_t intv_sec = TCP_DEFAULT_KEEPALIVE_INTERVAL_SEC, uint8_t count = TCP_DEFAULT_KEEPALIVE_COUNT) override
362364
{

‎libraries/ESP8266WiFi/src/include/ClientContext.h‎

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,16 @@ class WiFiClient;
2626

2727
typedef void (*discard_cb_t)(void*, ClientContext*);
2828

29+
#include <debug.h>
2930
#include <assert.h>
3031
#include <esp_priv.h>
3132
#include <coredecls.h>
3233

34+
#include <lwip/init.h>
35+
#include <lwip/tcp.h>
36+
37+
#include "internal.h"
38+
3339
bool getDefaultPrivateGlobalSyncValue ();
3440

3541
class ClientContext
@@ -313,7 +319,7 @@ class ClientContext
313319
_rx_buf_offset = 0;
314320
}
315321

316-
bool wait_until_acked(int max_wait_ms = WIFICLIENT_MAX_FLUSH_WAIT_MS)
322+
bool wait_until_acked(int max_wait_ms)
317323
{
318324
// https://github.com/esp8266/Arduino/pull/3967#pullrequestreview-83451496
319325
// option 1 done
@@ -422,11 +428,11 @@ class ClientContext
422428

423429
// return a pointer to available data buffer (size = peekAvailable())
424430
// semantic forbids any kind of read() before calling peekConsume()
425-
const char* peekBuffer ()
431+
const void* peekBuffer ()
426432
{
427433
if (!_rx_buf)
428434
return nullptr;
429-
return (const char*)_rx_buf->payload + _rx_buf_offset;
435+
return (const uint8_t*)_rx_buf->payload + _rx_buf_offset;
430436
}
431437

432438
// return number of byte accessible by peekBuffer()
@@ -460,7 +466,7 @@ class ClientContext
460466
}
461467
}
462468

463-
size_t _write_from_source(const char* ds, constsize_t dl)
469+
size_t _write_from_source(const char* ds, size_t dl)
464470
{
465471
assert(_datasource == nullptr);
466472
assert(!_send_waiting);
@@ -489,7 +495,7 @@ class ClientContext
489495
} while(true);
490496

491497
if (_sync)
492-
wait_until_acked();
498+
wait_until_acked(_timeout_ms);
493499

494500
return _written;
495501
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /