blob: 6677739838143e3f3de2f86f32d732379d761345 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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;
|