mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-05-31 03:38:02 +08:00
🐞 fix(at_socket):修复socket 在开启server下的connect连接
RT-Thread BSP Static Build Check / 🔍 Summary of Git Diff Changes (push) Has been cancelled
RT-Thread BSP Static Build Check / ${{ matrix.legs.RTT_BSP }} (push) Has been cancelled
RT-Thread BSP Static Build Check / collect-artifacts (push) Has been cancelled
pkgs_test / change (push) Has been cancelled
utest_auto_run / A9 :components/dfs.cfg (push) Has been cancelled
utest_auto_run / A9 :components/lwip.cfg (push) Has been cancelled
utest_auto_run / A9 :components/netdev.cfg (push) Has been cancelled
utest_auto_run / A9 :components/sal.cfg (push) Has been cancelled
utest_auto_run / A9 :cpp11/cpp11.cfg (push) Has been cancelled
utest_auto_run / AARCH64-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / A9-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / XUANTIE-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64 :default.cfg (push) Has been cancelled
utest_auto_run / A9 :default.cfg (push) Has been cancelled
utest_auto_run / A9-smp :default.cfg (push) Has been cancelled
utest_auto_run / RISCV :default.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / RISCV :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/mem.cfg (push) Has been cancelled
Weekly CI Scheduler / Trigger and Monitor CIs (push) Has been cancelled
Weekly CI Scheduler / Create Discussion Report (push) Has been cancelled
RT-Thread BSP Static Build Check / 🔍 Summary of Git Diff Changes (push) Has been cancelled
RT-Thread BSP Static Build Check / ${{ matrix.legs.RTT_BSP }} (push) Has been cancelled
RT-Thread BSP Static Build Check / collect-artifacts (push) Has been cancelled
pkgs_test / change (push) Has been cancelled
utest_auto_run / A9 :components/dfs.cfg (push) Has been cancelled
utest_auto_run / A9 :components/lwip.cfg (push) Has been cancelled
utest_auto_run / A9 :components/netdev.cfg (push) Has been cancelled
utest_auto_run / A9 :components/sal.cfg (push) Has been cancelled
utest_auto_run / A9 :cpp11/cpp11.cfg (push) Has been cancelled
utest_auto_run / AARCH64-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / A9-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / XUANTIE-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64 :default.cfg (push) Has been cancelled
utest_auto_run / A9 :default.cfg (push) Has been cancelled
utest_auto_run / A9-smp :default.cfg (push) Has been cancelled
utest_auto_run / RISCV :default.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / RISCV :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/mem.cfg (push) Has been cancelled
Weekly CI Scheduler / Trigger and Monitor CIs (push) Has been cancelled
Weekly CI Scheduler / Create Discussion Report (push) Has been cancelled
修复accept在错误执行过程中返回无效socket问题
This commit is contained in:
@@ -751,7 +751,15 @@ static void at_connect_notice_cb(struct at_socket *sock, at_socket_evt_t event,
|
|||||||
char *socket_info = RT_NULL;
|
char *socket_info = RT_NULL;
|
||||||
int base_socket = 0;
|
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" */
|
/* 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);
|
new_socket = at_socket(AF_AT, SOCK_STREAM, 0);
|
||||||
if (new_socket == -1)
|
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 = at_get_socket(new_socket);
|
||||||
new_sock->state = AT_SOCKET_CONNECT;
|
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;
|
new_sock->user_data = (void *)base_socket;
|
||||||
|
|
||||||
/* find out the listen socket */
|
/* find out the listen socket */
|
||||||
@@ -995,6 +1001,7 @@ __exit:
|
|||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
at_do_event_changes(sock, AT_EVENT_ERROR, RT_TRUE);
|
at_do_event_changes(sock, AT_EVENT_ERROR, RT_TRUE);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new_sock->socket;
|
return new_sock->socket;
|
||||||
|
|||||||
Reference in New Issue
Block a user