From 5f72984d4c3745401231c74bb1321c1bb5356518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=99=E8=92=99plus?= Date: Fri, 21 Nov 2025 11:21:06 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(at=5Fsocket):=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dsocket=20=E5=9C=A8=E5=BC=80=E5=90=AFserver=E4=B8=8B?= =?UTF-8?q?=E7=9A=84connect=E8=BF=9E=E6=8E=A5=20=E4=BF=AE=E5=A4=8Daccept?= =?UTF-8?q?=E5=9C=A8=E9=94=99=E8=AF=AF=E6=89=A7=E8=A1=8C=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E4=B8=AD=E8=BF=94=E5=9B=9E=E6=97=A0=E6=95=88socket=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/net/at/at_socket/at_socket.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/components/net/at/at_socket/at_socket.c b/components/net/at/at_socket/at_socket.c index 4695d3c102c..58680e2b345 100644 --- a/components/net/at/at_socket/at_socket.c +++ b/components/net/at/at_socket/at_socket.c @@ -751,7 +751,15 @@ static void at_connect_notice_cb(struct at_socket *sock, at_socket_evt_t event, char *socket_info = RT_NULL; int base_socket = 0; + rt_sscanf(buff, "SOCKET:%d", &base_socket); + LOG_D("ACCEPT BASE SOCKET: %d", base_socket); /* avoid use bottom driver to alloc "socket" */ + new_sock = at_get_base_socket(base_socket); + if (new_sock) + { + new_sock->state = AT_SOCKET_CONNECT; + return; + } new_socket = at_socket(AF_AT, SOCK_STREAM, 0); if (new_socket == -1) { @@ -759,8 +767,6 @@ static void at_connect_notice_cb(struct at_socket *sock, at_socket_evt_t event, } new_sock = at_get_socket(new_socket); new_sock->state = AT_SOCKET_CONNECT; - rt_sscanf(buff, "SOCKET:%d", &base_socket); - LOG_D("ACCEPT BASE SOCKET: %d", base_socket); new_sock->user_data = (void *)base_socket; /* find out the listen socket */ @@ -995,6 +1001,7 @@ int at_accept(int socket, struct sockaddr *name, socklen_t *namelen) if (result < 0) { at_do_event_changes(sock, AT_EVENT_ERROR, RT_TRUE); + return result; } return new_sock->socket;