diff options
Diffstat (limited to 'src/core/task.h')
-rw-r--r-- | src/core/task.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/core/task.h b/src/core/task.h new file mode 100644 index 0000000..6677739 --- /dev/null +++ b/src/core/task.h @@ -0,0 +1,59 @@ +/* BSD-2-Clause license + * + * Copyright (c) 2018-2023 NST <www.newinfosec.ru>, sss <sss at dark-alexandr dot net>. + * + */ + +#pragma once + +#include <sys/queue.h> + +enum backend_setting_type_e +{ + setting_int, + setting_string +}; + +struct backend_setting_s +{ + union + { + backend_setting_int setting_int; + backend_setting_str setting_string; + }; + enum backend_setting_type_e type; + SLIST_ENTRY(backend_setting_s) entries; +}; + +struct ws_session_list_entry_s +{ + ws_session *session; + ws_session_settings settings; + SLIST_ENTRY(ws_session_list_entry_s) entries; +}; + +typedef struct task_info_s +{ + /* name of backend handling this task */ + char backend_name[64]; + + /* backend instance */ + wrdp_backend_module *backend; + + /* pointer to wrdp_thpool_task* used by some internals */ + void *wrdp_thpool_task; + + /* if true, all calls should return immediataely + * and do not touch any data */ + bool stopped; + + /* libev based session timer */ + ev_timer *ev_timer_watcher; + + /* task total run time, task idle time */ + int64_t run_time, idle_time; + + /* session related settings like timeouts */ + ws_session_settings settings; + +} task_info; |