From cc3f33db7a8d3c4ad373e646b199808e01bc5d9b Mon Sep 17 00:00:00 2001 From: sss Date: Tue, 17 Jan 2023 00:38:19 +0300 Subject: added webrdp public code --- src/core/ws_session.h | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/core/ws_session.h (limited to 'src/core/ws_session.h') diff --git a/src/core/ws_session.h b/src/core/ws_session.h new file mode 100644 index 0000000..0e8f95d --- /dev/null +++ b/src/core/ws_session.h @@ -0,0 +1,59 @@ +/* BSD-2-Clause license + * + * Copyright (c) 2018-2023 NST , sss . + * + */ + +#pragma once + +#include +#include + +#include + +typedef enum ws_server_state_e +{ + ws_server_state_http_handshake = 0, + ws_server_state_ws_running +} ws_server_state; + +typedef enum +{ + ws_session_initial, + ws_session_approved, + ws_session_denied, + ws_session_started, + ws_session_ended, + ws_session_error +} ws_session_state; + +typedef struct +{ + /* set session time limit and session idle timeout */ + int64_t session_time_limit, session_idle_timeout; +} ws_session_settings; + +typedef struct ws_session_s +{ + ws_server_state http_state; + ws_session_state session_state; + ev_io ev_con_fd_r, ev_con_fd_w; + int connection_fd; + char read_buf[2048], *sid_base64, *attach_sid_base64, *token_base64, + *backend_module_name; + size_t read_size, prev_read_size; + wslay_event_context_ptr wslay_ctx; + bool token_verified; + void *task_info, *wrdp_thpool_task, *curlm; + + /* backend settings cache */ + SLIST_HEAD(settings_head, backend_setting_s) backend_settings_head; + + SLIST_HEAD(curl_head, curls_easy_s) curls_easy_head; +} ws_session; + +int ws_server_init(); + +int ws_server_init_unix(); + +bool ws_server_handle_data(ws_session *session); -- cgit v1.2.3