Skip to content

Commit 6ab057b

Browse files
meng-plusRbb666
authored andcommitted
🐞 fix(at_socket):修复socket 在开启server下的connect连接
修复accept在错误执行过程中返回无效socket问题
1 parent 25e98bd commit 6ab057b

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

components/net/at/at_socket/at_socket.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -751,16 +751,22 @@ static void at_connect_notice_cb(struct at_socket *sock, at_socket_evt_t event,
751751
char *socket_info = RT_NULL;
752752
int base_socket = 0;
753753

754+
rt_sscanf(buff, "SOCKET:%d", &base_socket);
755+
LOG_D("ACCEPT BASE SOCKET: %d", base_socket);
754756
/* avoid use bottom driver to alloc "socket" */
757+
new_sock = at_get_base_socket(base_socket);
758+
if (new_sock)
759+
{
760+
new_sock->state = AT_SOCKET_CONNECT;
761+
return;
762+
}
755763
new_socket = at_socket(AF_AT, SOCK_STREAM, 0);
756764
if (new_socket == -1)
757765
{
758766
return;
759767
}
760768
new_sock = at_get_socket(new_socket);
761769
new_sock->state = AT_SOCKET_CONNECT;
762-
rt_sscanf(buff, "SOCKET:%d", &base_socket);
763-
LOG_D("ACCEPT BASE SOCKET: %d", base_socket);
764770
new_sock->user_data = (void *)base_socket;
765771

766772
/* find out the listen socket */
@@ -995,6 +1001,7 @@ int at_accept(int socket, struct sockaddr *name, socklen_t *namelen)
9951001
if (result < 0)
9961002
{
9971003
at_do_event_changes(sock, AT_EVENT_ERROR, RT_TRUE);
1004+
return result;
9981005
}
9991006

10001007
return new_sock->socket;

0 commit comments

Comments
 (0)