Skip to content

Commit f4c37bb

Browse files
giulcioffiaentinger
authored andcommitted
Retry send up to 5 times, then close socket
1 parent 08f534e commit f4c37bb

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

src/WiFiClient.cpp

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -207,19 +207,29 @@ size_t WiFiClient::write(const uint8_t *buf, size_t size) {
207207
if (size==0)
208208
{
209209
setWriteError();
210-
return 0;
210+
return 0;
211211
}
212212

213-
size_t written = ServerDrv::sendData(_sock, buf, size);
214-
if (!written)
215-
{
216-
setWriteError();
217-
return 0;
213+
bool success = false;
214+
size_t written = 0;
215+
for (int i=0; i<5; i++) {
216+
written = ServerDrv::sendData(_sock, buf, size);
217+
if (written) {
218+
success = true;
219+
break;
220+
}
218221
}
219-
if (!ServerDrv::checkDataSent(_sock))
220-
{
221-
setWriteError();
222-
return 0;
222+
if (success) {
223+
if (!ServerDrv::checkDataSent(_sock))
224+
{
225+
setWriteError();
226+
return 0;
227+
}
228+
} else {
229+
// close socket
230+
ServerDrv::stopClient(_sock);
231+
setWriteError();
232+
return 0;
223233
}
224234

225235
return written;

0 commit comments

Comments
 (0)