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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
use crateTypedData;
/// <https://github.com/haproxy/haproxy/blob/master/doc/SPOE.txt#L1053>
///
/// ```text
/// 3.4. Actions
/// -------------
///
/// An agent must acknowledge each NOTIFY frame by sending the corresponding ACK
/// frame. Actions can be added in these frames to dynamically take action on the
/// processing of a stream.
///
/// Here is the list of supported actions:
///
/// * set-var set the value for an existing variable. 3 arguments must be
/// attached to this action: the variable scope (proc, sess, txn,
/// req or res), the variable name (a string) and its value.
///
/// ACTION-SET-VAR : <SET-VAR:1 byte><NB-ARGS:1 byte><VAR-SCOPE:1 byte><VAR-NAME><VAR-VALUE>
///
/// SET-VAR : <1>
/// NB-ARGS : <3>
/// VAR-SCOPE : <PROCESS> | <SESSION> | <TRANSACTION> | <REQUEST> | <RESPONSE>
/// VAR-NAME : <STRING>
/// VAR-VALUE : <TYPED-DATA>
///
/// PROCESS : <0>
/// SESSION : <1>
/// TRANSACTION : <2>
/// REQUEST : <3>
/// RESPONSE : <4>
///
/// * unset-var unset the value for an existing variable. 2 arguments must be
/// attached to this action: the variable scope (proc, sess, txn,
/// req or res) and the variable name (a string).
///
/// ACTION-UNSET-VAR : <UNSET-VAR:1 byte><NB-ARGS:1 byte><VAR-SCOPE:1 byte><VAR-NAME>
///
/// UNSET-VAR : <2>
/// NB-ARGS : <2>
/// VAR-SCOPE : <PROCESS> | <SESSION> | <TRANSACTION> | <REQUEST> | <RESPONSE>
/// VAR-NAME : <STRING>
///
/// PROCESS : <0>
/// SESSION : <1>
/// TRANSACTION : <2>
/// REQUEST : <3>
/// RESPONSE : <4>
///
///
/// NOTE: Name of the variables will be automatically prefixed by HAProxy to avoid
/// name clashes with other variables used in HAProxy. Moreover, unknown
/// variable will be silently ignored.
/// ```
/// ```text
/// VAR-SCOPE: <PROCESS> | <SESSION> | <TRANSACTION> | <REQUEST> | <RESPONSE>
/// ```