mirror of
https://github.com/emqx/neuron.git
synced 2026-10-17 04:40:42 +08:00
simulator: close fd
This commit is contained in:
@@ -305,5 +305,6 @@ int is_ipv6(const char *ip);
|
||||
|
||||
bool neu_conn_is_connected(neu_conn_t *conn);
|
||||
uint16_t neu_conn_udp_act_port(neu_conn_t *conn);
|
||||
bool conn_tcp_server_is_listen(neu_conn_t *conn);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -90,6 +90,7 @@ static void sig_handler(int sig)
|
||||
for (uint32_t i = 0; i < sizeof(c_events) / sizeof(struct client_event);
|
||||
i++) {
|
||||
if (c_events[i].fd > 0) {
|
||||
close(c_events[i].fd);
|
||||
neu_event_del_io(events, c_events[i].client);
|
||||
}
|
||||
}
|
||||
@@ -149,6 +150,11 @@ int main(int argc, char *argv[])
|
||||
|
||||
events = neu_event_new("modbus_simulator");
|
||||
conn = neu_conn_new(¶m, NULL, connected, disconnected);
|
||||
while (conn_tcp_server_is_listen(conn) == false) {
|
||||
neu_msleep(1000);
|
||||
neu_conn_destory(conn);
|
||||
conn = neu_conn_new(¶m, NULL, connected, disconnected);
|
||||
}
|
||||
|
||||
signal(SIGINT, sig_handler);
|
||||
signal(SIGTERM, sig_handler);
|
||||
|
||||
@@ -732,6 +732,11 @@ static void conn_init_param(neu_conn_t *conn, neu_conn_param_t *param)
|
||||
}
|
||||
}
|
||||
|
||||
bool conn_tcp_server_is_listen(neu_conn_t *conn)
|
||||
{
|
||||
return conn->tcp_server.is_listen;
|
||||
}
|
||||
|
||||
static void conn_tcp_server_listen(neu_conn_t *conn)
|
||||
{
|
||||
if (conn->param.type == NEU_CONN_TCP_SERVER &&
|
||||
|
||||
Reference in New Issue
Block a user