fix: CONNECT 事件到达 TCP_LISTEN socket(1) 而非 TCP socket(0)

WCHNET 将 CONNECT 事件投递到 TCP_LISTEN 内部 socket (sock 1),
而非用户创建的 TCP socket (sock 0)。之前的路由只检查
socketid==g_json_socket_listen(0),遗漏了 sock 1。

修复:
- NET_SSC_ENABLE=1 时同时路由 sock N 和 sock N+1 到 JSON handler
- NET_SSC_ENABLE=0 时所有 socket 事件都路由到 JSON handler
- tcp_json_handle_sock_int 移除 socket 限定,处理任意 socket 事件
This commit is contained in:
wangfq
2026-07-01 14:06:04 +08:00
parent 32d613a54f
commit 4e75312a0f
2 changed files with 6 additions and 7 deletions

View File

@@ -484,15 +484,15 @@ void WCHNET_DataManage(uint8_t id)
*/
void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
{
#if NET_SSC_ENABLE
uint8_t i;
// Route JSON protocol socket events (same socket handles listen + data)
if (socketid == g_json_socket_listen) {
// Route JSON protocol socket events (both TCP + TCP_LISTEN internal)
if (socketid == g_json_socket_listen || socketid == (g_json_socket_listen + 1)) {
tcp_json_handle_sock_int(socketid, intstat);
return;
}
#if NET_SSC_ENABLE
g_net_state.intstat = intstat;
if (intstat & SINT_STAT_RECV) //receive data
@@ -539,7 +539,9 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
g_net_state.flag = 1;
// WCHNET_CreateTcpSocket();
}
#endif /* NET_SSC_ENABLE */
#else /* !NET_SSC_ENABLE — all sockets belong to JSON handler */
tcp_json_handle_sock_int(socketid, intstat);
#endif
}

View File

@@ -623,9 +623,6 @@ void tcp_json_srv_init(void) {
}
void tcp_json_handle_sock_int(uint8_t socketid, uint8_t intstat) {
// Only process events on our TCP listen/data socket
if (socketid != g_json_socket_listen) return;
// === CONNECT: client connected — configure recv buffer, init auth state ===
if (intstat & SINT_STAT_CONNECT) {
WCHNET_ModifyRecvBuf(socketid, (uint32_t)g_json_wchnet_buf, RECE_BUF_LEN);