initial
(integer)set_gflag(flag)
reset_gflag(flag)
is_gflag(flag)
set_gflag
reset_gflag
is_gflag
get_gflags
initial
parameter usageset_gflag()
usagereset_gflag()
usageis_gflag()
usageset_gflag
usagereset_gflag
usageis_gflag
usageget_gflags
usagegflags 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. Example:
if (is_gflag("1")) { t_relay("udp:10.0.0.1:5060"); } else { t_relay("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.
The module exports external commands that can be used to change the global flags via Management Interface. The MI commands are: "set_gflag", "reset_gflag" and "is_gflag".
The module depends on the following modules (in the other words the listed modules must be loaded before this module):
none
set_gflag(flag)
Set the bit at the position "flag" in global flags.
"flag" can have a value in the range of 0..31.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE and BRANCH_ROUTE.
reset_gflag(flag)
Reset the bit at the position "flag" in global flags.
"flag" can have a value in the range of 0..31.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE and BRANCH_ROUTE.
is_gflag(flag)
Check if bit at the position "flag" in global flags is set.
"flag" can have a value in the range of 0..31.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE and BRANCH_ROUTE.
Functions that check or change some flags accepts one parameter which is the flag bitmap/mask specifing the corresponding flags. It is not possible to specify directly the flag position that should be changed as in the functions available in the routing script.
set_gflag
Set the value of some flags (specified by bitmask) to 1.
The parameter value must be a bitmask in decimal or hexadecimal format. The bitmask has a 32 bit size.
reset_gflag
Reset the value of some flags to 0.
The parameter value must be a bitmask in decimal or hexadecimal format. The bitmask has a 32 bit size.
is_gflag
Returns true if the all the flags from the bitmask are set.
The parameter value must be a bitmask in decimal or hexadecimal format. The bitmask has a 32 bit size.
The function returns TRUE if all the flags from the set are set and FALSE if at least one is not set.
Example 1-7. is_gflag
usage
... $ openserctl fifo set_gflag 1024 $ openserctl fifo is_gflag 1024 TRUE $ openserctl fifo is_gflag 1025 TRUE $ openserctl fifo is_gflag 1023 FALSE $ openserctl fifo set_gflag 0x10 $ openserctl fifo is_gflag 1023 TRUE $ openserctl fifo is_gflag 1007 FALSE $ openserctl fifo is_gflag 16 TRUE ...
get_gflags
Return the bitmap with all flags. The function gets no parameters and returns the bitmap in hexadecimal and decimal format.
Take a look at http://www.openser-project.org/.
First at all check if your question was already answered on one of our mailing lists:
User Mailing List - http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
Developer Mailing List - http://lists.openser-project.org/cgi-bin/mailman/listinfo/devel
E-mails regarding any stable OpenSER release should be sent to
<users@lists.openser-project.org>
and e-mails regarding development versions
should be sent to <devel@lists.openser-project.org>
.
If you want to keep the mail private, send it to
<team@lists.openser-project.org>
.
Please follow the guidelines provided at: http://sourceforge.net/tracker/?group_id=139143.