Skip to content

Commit 6ba0efc

Browse files
author
Kimmo Vaisanen
committed
Cellular: Use more specific error codes for socket open and connect
- When calling socket APIs when socket is not open, NSAPI_ERROR_NO_SOCKET will be returned instead of generic NSAPI_ERROR_DEVICE_ERROR - If socket_send() is called when connection is not open, NSAPI_ERROR_NO_CONNECTION will be returned instead of generic NSAPI_ERROR_DEVICE_ERROR
1 parent b319be1 commit 6ba0efc

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

UNITTESTS/features/cellular/framework/AT/at_cellularstack/at_cellularstacktest.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ TEST_F(TestAT_CellularStack, test_AT_CellularStack_socket_bind)
244244
MyStack st(at, 0, IPV6_STACK);
245245
SocketAddress addr;
246246
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_ALREADY;
247-
EXPECT_EQ(st.socket_bind(NULL, addr), NSAPI_ERROR_DEVICE_ERROR);
247+
EXPECT_EQ(st.socket_bind(NULL, addr), NSAPI_ERROR_NO_SOCKET);
248248

249249
EXPECT_EQ(st.socket_bind(&st.socket, addr), NSAPI_ERROR_ALREADY);
250250
}
@@ -267,7 +267,7 @@ TEST_F(TestAT_CellularStack, test_AT_CellularStack_socket_connect)
267267

268268
MyStack st(at, 0, IPV6_STACK);
269269
SocketAddress addr;
270-
EXPECT_EQ(st.socket_connect(NULL, addr), NSAPI_ERROR_DEVICE_ERROR);
270+
EXPECT_EQ(st.socket_connect(NULL, addr), NSAPI_ERROR_NO_SOCKET);
271271

272272
EXPECT_EQ(st.socket_connect(&st.socket, addr), NSAPI_ERROR_OK);
273273
}
@@ -290,9 +290,9 @@ TEST_F(TestAT_CellularStack, test_AT_CellularStack_socket_send)
290290
ATHandler at(&fh1, que, 0, ",");
291291

292292
MyStack st(at, 0, IPV6_STACK);
293-
EXPECT_EQ(st.socket_send(NULL, "addr", 4), NSAPI_ERROR_DEVICE_ERROR);
293+
EXPECT_EQ(st.socket_send(NULL, "addr", 4), NSAPI_ERROR_NO_SOCKET);
294294

295-
EXPECT_EQ(st.socket_send(&st.socket, "addr", 4), NSAPI_ERROR_DEVICE_ERROR);
295+
EXPECT_EQ(st.socket_send(&st.socket, "addr", 4), NSAPI_ERROR_NO_CONNECTION);
296296

297297
SocketAddress addr;
298298
st.max_sock_value = 1;
@@ -312,7 +312,7 @@ TEST_F(TestAT_CellularStack, test_AT_CellularStack_socket_sendto)
312312
MyStack st(at, 0, IPV6_STACK);
313313

314314
SocketAddress addr;
315-
EXPECT_EQ(st.socket_sendto(NULL, addr, "addr", 4), NSAPI_ERROR_DEVICE_ERROR);
315+
EXPECT_EQ(st.socket_sendto(NULL, addr, "addr", 4), NSAPI_ERROR_NO_SOCKET);
316316

317317
st.max_sock_value = 1;
318318
st.bool_value = true;
@@ -334,7 +334,7 @@ TEST_F(TestAT_CellularStack, test_AT_CellularStack_socket_recv)
334334

335335
MyStack st(at, 0, IPV6_STACK);
336336
char table[4];
337-
EXPECT_EQ(st.socket_recv(NULL, table, 4), NSAPI_ERROR_DEVICE_ERROR);
337+
EXPECT_EQ(st.socket_recv(NULL, table, 4), NSAPI_ERROR_NO_SOCKET);
338338
}
339339

340340
TEST_F(TestAT_CellularStack, test_AT_CellularStack_socket_recvfrom)
@@ -345,7 +345,7 @@ TEST_F(TestAT_CellularStack, test_AT_CellularStack_socket_recvfrom)
345345

346346
MyStack st(at, 0, IPV6_STACK);
347347
char table[4];
348-
EXPECT_EQ(st.socket_recvfrom(NULL, NULL, table, 4), NSAPI_ERROR_DEVICE_ERROR);
348+
EXPECT_EQ(st.socket_recvfrom(NULL, NULL, table, 4), NSAPI_ERROR_NO_SOCKET);
349349

350350
SocketAddress addr;
351351
st.max_sock_value = 1;

features/cellular/framework/AT/AT_CellularStack.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ nsapi_error_t AT_CellularStack::socket_close(nsapi_socket_t handle)
156156

157157
struct CellularSocket *socket = (struct CellularSocket *)handle;
158158
if (!socket) {
159-
return err;
159+
return NSAPI_ERROR_NO_SOCKET;
160160
}
161161
int sock_id = socket->id;
162162

@@ -192,7 +192,7 @@ nsapi_error_t AT_CellularStack::socket_bind(nsapi_socket_t handle, const SocketA
192192
{
193193
struct CellularSocket *socket = (CellularSocket *)handle;
194194
if (!socket) {
195-
return NSAPI_ERROR_DEVICE_ERROR;
195+
return NSAPI_ERROR_NO_SOCKET;
196196
}
197197

198198
if (addr) {
@@ -220,14 +220,14 @@ nsapi_error_t AT_CellularStack::socket_bind(nsapi_socket_t handle, const SocketA
220220

221221
nsapi_error_t AT_CellularStack::socket_listen(nsapi_socket_t handle, int backlog)
222222
{
223-
return NSAPI_ERROR_UNSUPPORTED;;
223+
return NSAPI_ERROR_UNSUPPORTED;
224224
}
225225

226226
nsapi_error_t AT_CellularStack::socket_connect(nsapi_socket_t handle, const SocketAddress &addr)
227227
{
228228
CellularSocket *socket = (CellularSocket *)handle;
229229
if (!socket) {
230-
return NSAPI_ERROR_DEVICE_ERROR;
230+
return NSAPI_ERROR_NO_SOCKET;
231231
}
232232
socket->remoteAddress = addr;
233233
socket->connected = true;
@@ -237,14 +237,17 @@ nsapi_error_t AT_CellularStack::socket_connect(nsapi_socket_t handle, const Sock
237237

238238
nsapi_error_t AT_CellularStack::socket_accept(void *server, void **socket, SocketAddress *addr)
239239
{
240-
return NSAPI_ERROR_UNSUPPORTED;;
240+
return NSAPI_ERROR_UNSUPPORTED;
241241
}
242242

243243
nsapi_size_or_error_t AT_CellularStack::socket_send(nsapi_socket_t handle, const void *data, unsigned size)
244244
{
245245
CellularSocket *socket = (CellularSocket *)handle;
246-
if (!socket || !socket->connected) {
247-
return NSAPI_ERROR_DEVICE_ERROR;
246+
if (!socket) {
247+
return NSAPI_ERROR_NO_SOCKET;
248+
}
249+
if (!socket->connected) {
250+
return NSAPI_ERROR_NO_CONNECTION;
248251
}
249252
return socket_sendto(handle, socket->remoteAddress, data, size);
250253
}
@@ -253,7 +256,7 @@ nsapi_size_or_error_t AT_CellularStack::socket_sendto(nsapi_socket_t handle, con
253256
{
254257
CellularSocket *socket = (CellularSocket *)handle;
255258
if (!socket) {
256-
return NSAPI_ERROR_DEVICE_ERROR;
259+
return NSAPI_ERROR_NO_SOCKET;
257260
}
258261

259262
if (socket->closed && !socket->rx_avail) {
@@ -319,7 +322,7 @@ nsapi_size_or_error_t AT_CellularStack::socket_recvfrom(nsapi_socket_t handle, S
319322
{
320323
CellularSocket *socket = (CellularSocket *)handle;
321324
if (!socket) {
322-
return NSAPI_ERROR_DEVICE_ERROR;
325+
return NSAPI_ERROR_NO_SOCKET;
323326
}
324327

325328
if (socket->closed) {

0 commit comments

Comments
 (0)