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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
|
gflags Module
Jiri Kuthan
Edited by
Daniel-Constantin Mierla
Copyright 2004 FhG FOKUS
_________________________________________________________
Table of Contents
1. User's Guide
1.1. Overview
1.2. Dependencies
1.3. Exported Parameters
1.3.1. initial (integer)
1.4. Exported Functions
1.4.1. set_gflag(flag)
1.4.2. reset_gflag(flag)
1.4.3. is_gflag(flag)
1.5. FIFO Commands
1.5.1. set_gflag
1.5.2. reset_gflag
1.5.3. is_gflag
1.5.4. get_gflags
2. Developer's Guide
3. Frequently Asked Questions
List of Examples
1-1. initial parameter usage
1-2. set_gflag() usage
1-3. reset_gflag() usage
1-4. is_gflag() usage
1-5. set_gflag usage
1-6. reset_gflag usage
1-7. set_gflag usage
1-8. get_gflags usage
_________________________________________________________
Chapter 1. User's Guide
1.1. Overview
gflags module (global flags) keeps a bitmap of flags in shared
memory and may be used to change behaviour of server based on
value of the flags. E.g., if (is_gflag("1")) {
t_relay_to_udp("10.0.0.1","5060"); } else {
t_relay_to_udp("10.0.0.2","5060"); }.
The benefit of this module is the value of the switch flags
can be manipulated by external applications such as web
interface or command line tools. The size of bitmap is 32 or
64 on 64bit architectures.
The module exports commands to FIFO server that can be used to
change the global flags via FIFO interface. The FIFO commands
are: "set_gflag", "reset_gflag" and "is_gflag".
_________________________________________________________
1.2. Dependencies
The module depends on the following modules (in the other
words the listed modules must be loaded before this module):
* none
_________________________________________________________
1.3. Exported Parameters
1.3.1. initial (integer)
The initial value of global flags bitmap.
Default value is "0".
Example 1-1. initial parameter usage
modparam("gflags", "initial", 15)
_________________________________________________________
1.4. Exported Functions
1.4.1. set_gflag(flag)
Set the bit at the position "flag" in global flags.
"flag" can have a value from the range 1..31.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
ONREPLY_ROUTE and BRANCH_ROUTE.
Example 1-2. set_gflag() usage
...
set_gflag("4");
...
_________________________________________________________
1.4.2. reset_gflag(flag)
Reset the bit at the position "flag" in global flags.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
ONREPLY_ROUTE and BRANCH_ROUTE.
Example 1-3. reset_gflag() usage
...
reset_gflag("4");
...
_________________________________________________________
1.4.3. is_gflag(flag)
Check if bit at the position "flag" in global flags is set.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
ONREPLY_ROUTE and BRANCH_ROUTE.
Example 1-4. is_gflag() usage
...
if(is_gflag("4"))
{
log("global flag 4 is set\n");
} else {
log("global flag 4 is not set\n");
};
...
_________________________________________________________
1.5. FIFO Commands
1.5.1. set_gflag
Set the value of a flag to 1. The function accepts one
parameter which is the number of the flag to be set.
Example 1-5. set_gflag usage
...
$ openserctl fifo set_gflag 1
...
_________________________________________________________
1.5.2. reset_gflag
Reset the value of a flag to 0. The function accepts one
parameter which is the number of the flag to be reset.
Example 1-6. reset_gflag usage
...
$ openserctl fifo reset_gflag 1
...
_________________________________________________________
1.5.3. is_gflag
Return the status of a flag. The FIFO function would return
TRUE if the flag is set and FALSE if it is not set. The only
parameter of this function is the number of the flag.
Example 1-7. set_gflag usage
...
$ openserctl fifo is_gflag 1
...
_________________________________________________________
1.5.4. get_gflags
Return the bitmap with all flags. The FIFO function gets no
parameters and returns the bitmap in hexa format on the first
line and decimal format on the second line.
Example 1-8. get_gflags usage
...
$ openserctl fifo get_gflags
0x3039
12345
...
_________________________________________________________
Chapter 2. Developer's Guide
The module does not provide any API to use in other OpenSER
modules.
_________________________________________________________
Chapter 3. Frequently Asked Questions
3.1. Where can I find more about OpenSER?
3.2. Where can I post a question about this module?
3.3. How can I report a bug?
3.1. Where can I find more about OpenSER?
Take a look at http://openser.org/.
3.2. Where can I post a question about this module?
First at all check if your question was already answered on
one of our mailing lists:
* User Mailing List -
http://openser.org/cgi-bin/mailman/listinfo/users
* Developer Mailing List -
http://openser.org/cgi-bin/mailman/listinfo/devel
E-mails regarding any stable OpenSER release should be sent to
<users@openser.org> and e-mails regarding development versions
should be sent to <devel@openser.org>.
If you want to keep the mail private, send it to
<team@openser.org>.
3.3. How can I report a bug?
Please follow the guidelines provided at:
http://sourceforge.net/tracker/?group_id=139143.
|