@@ -51,7 +51,7 @@ nsapi_error_t QUECTEL_BC95_CellularStack::socket_connect(nsapi_socket_t handle,
51
51
CellularSocket *socket = (CellularSocket *)handle;
52
52
53
53
_at.lock ();
54
- if (! socket->created ) {
54
+ if (socket->id == - 1 ) {
55
55
const nsapi_error_t error_create = create_socket_impl (socket);
56
56
if (error_create != NSAPI_ERROR_OK) {
57
57
return error_create;
@@ -187,23 +187,26 @@ nsapi_error_t QUECTEL_BC95_CellularStack::create_socket_impl(CellularSocket *soc
187
187
// Check for duplicate socket id delivered by modem
188
188
for (int i = 0 ; i < BC95_SOCKET_MAX; i++) {
189
189
CellularSocket *sock = _socket[i];
190
- if (sock && sock->created && sock->id == sock_id) {
191
- tr_error (" Duplicate socket index: %d created:%d , sock_id: %d" , i, sock-> created , sock_id);
190
+ if (sock && sock->id != - 1 && sock->id == sock_id) {
191
+ tr_error (" Duplicate socket index: %d, sock_id: %d" , i, sock_id);
192
192
return NSAPI_ERROR_NO_SOCKET;
193
193
}
194
194
}
195
195
196
196
tr_info (" Socket create id: %d" , sock_id);
197
197
198
198
socket->id = sock_id;
199
- socket->created = true ;
200
199
201
200
return NSAPI_ERROR_OK;
202
201
}
203
202
204
203
nsapi_size_or_error_t QUECTEL_BC95_CellularStack::socket_sendto_impl (CellularSocket *socket, const SocketAddress &address,
205
204
const void *data, nsapi_size_t size)
206
205
{
206
+ // AT_CellularStack::socket_sendto(...) will create a socket on modem if it wasn't
207
+ // open already.
208
+ MBED_ASSERT (socket->id != -1 );
209
+
207
210
int sent_len = 0 ;
208
211
209
212
if (size > PACKET_SIZE_MAX) {
@@ -250,6 +253,10 @@ nsapi_size_or_error_t QUECTEL_BC95_CellularStack::socket_sendto_impl(CellularSoc
250
253
nsapi_size_or_error_t QUECTEL_BC95_CellularStack::socket_recvfrom_impl (CellularSocket *socket, SocketAddress *address,
251
254
void *buffer, nsapi_size_t size)
252
255
{
256
+ // AT_CellularStack::socket_recvfrom(...) will create a socket on modem if it wasn't
257
+ // open already.
258
+ MBED_ASSERT (socket->id != -1 );
259
+
253
260
nsapi_size_or_error_t recv_len = 0 ;
254
261
int port;
255
262
char ip_address[NSAPI_IP_SIZE];
0 commit comments