Movatterモバイル変換


[0]ホーム

URL:


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

Commit53819fc

Browse files
JAndrassypennam
authored andcommitted
SocketWrapper MbedClient debugging readSocket
1 parent68d70a8 commit53819fc

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

‎libraries/SocketWrapper/src/MbedClient.cpp‎

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,28 +22,30 @@ void arduino::MbedClient::readSocket() {
2222
int ret = NSAPI_ERROR_WOULD_BLOCK;
2323
do {
2424
mutex->lock();
25-
if (sock !=nullptr && rxBuffer.availableForStore() ==0) {
25+
if (sock ==nullptr) {
26+
mutex->unlock();
27+
goto cleanup;
28+
}
29+
if (rxBuffer.availableForStore() ==0) {
2630
mutex->unlock();
2731
yield();
2832
continue;
29-
}elseif (sock ==nullptr) {
30-
goto cleanup;
3133
}
3234
ret = sock->recv(data, rxBuffer.availableForStore());
3335
if (ret <0 && ret != NSAPI_ERROR_WOULD_BLOCK) {
36+
mutex->unlock();
3437
goto cleanup;
3538
}
3639
if (ret == NSAPI_ERROR_WOULD_BLOCK || ret ==0) {
37-
yield();
3840
mutex->unlock();
39-
continue;
41+
break;
4042
}
4143
for (int i =0; i < ret; i++) {
4244
rxBuffer.store_char(data[i]);
4345
}
4446
mutex->unlock();
4547
_status =true;
46-
}while (ret == NSAPI_ERROR_WOULD_BLOCK || ret >0);
48+
}while (true);
4749
}
4850
cleanup:
4951
_status =false;
@@ -92,6 +94,7 @@ int arduino::MbedClient::connect(SocketAddress socketAddress) {
9294
}
9395

9496
if (static_cast<TCPSocket *>(sock)->open(getNetwork()) != NSAPI_ERROR_OK) {
97+
_status =false;
9598
return0;
9699
}
97100

@@ -111,6 +114,7 @@ int arduino::MbedClient::connect(SocketAddress socketAddress) {
111114
configureSocket(sock);
112115
_status =true;
113116
}else {
117+
sock->close();
114118
_status =false;
115119
}
116120

@@ -145,6 +149,7 @@ int arduino::MbedClient::connectSSL(SocketAddress socketAddress) {
145149
}
146150

147151
if (static_cast<TLSSocket *>(sock)->open(getNetwork()) != NSAPI_ERROR_OK) {
152+
_status =false;
148153
return0;
149154
}
150155

@@ -176,6 +181,7 @@ int arduino::MbedClient::connectSSL(SocketAddress socketAddress) {
176181
configureSocket(sock);
177182
_status =true;
178183
}else {
184+
sock->close();
179185
_status =false;
180186
}
181187

@@ -221,8 +227,9 @@ int arduino::MbedClient::available() {
221227
}
222228

223229
intarduino::MbedClient::read() {
224-
if (sock ==nullptr)
230+
if (mutex ==nullptr) {
225231
return -1;
232+
}
226233
mutex->lock();
227234
if (!available()) {
228235
mutex->unlock();
@@ -235,8 +242,9 @@ int arduino::MbedClient::read() {
235242
}
236243

237244
intarduino::MbedClient::read(uint8_t *data,size_t len) {
238-
if (sock ==nullptr)
245+
if (mutex ==nullptr) {
239246
return0;
247+
}
240248
mutex->lock();
241249
int avail =available();
242250

@@ -258,7 +266,14 @@ int arduino::MbedClient::read(uint8_t *data, size_t len) {
258266
}
259267

260268
intarduino::MbedClient::peek() {
261-
return rxBuffer.peek();
269+
if (mutex ==nullptr) {
270+
return0;
271+
}
272+
mutex->lock();
273+
int res = rxBuffer.peek();
274+
mutex->unlock();
275+
276+
return res;
262277
}
263278

264279
voidarduino::MbedClient::flush() {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp