/* BSD-2-Clause license * * Copyright (c) 2018-2023 NST , sss . * */ #pragma once #include typedef enum { ctl_session_ssl_handshake = 0, ctl_session_connected } ctl_session_state; typedef struct ctl_session_s { ev_io ev_con_fd_r, ev_con_fd_w; int connection_fd; SSL *ssl; ctl_session_state state; char *read_buf; uint32_t cmd_size, read_size; bool cmd_size_known; } ctl_session; #include "ctl_task.h" int ctl_server_init_tcp(); int ctl_server_init_unix(); void init_remote_control(); ctl_task_info *ctl_create_task(int connection_fd); bool ctl_server_handle_data(void *taskdata); void ctl_destroy_task(wrdp_thpool_task *task);