File tree Expand file tree Collapse file tree 1 file changed +20
-10
lines changed
Expand file tree Collapse file tree 1 file changed +20
-10
lines changed Original file line number Diff line number Diff 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;
You can’t perform that action at this time.
0 commit comments