msg:context_exists_and_get — Check if a context variable exists and get it
type: numeric key: string
Check if a context variable exists and get it. Legal values for
local e, str = msg:context_exists_and_get(msys.core.ECMESS_CTX_MESS, 'key')
If the context variable
key was found,
e will be
str will be a string value. If the context variable
key was not found,
e will be
str will be nil.
This function is similar to msg:context_get(); however, msg:context_get() returns an empty string if the key does not exist. msg:context_exists_and_get() is more useful in the general case because policy scripts generally take a different path when the key does not exist and in those cases a default of empty string is not helpful.
The return value of this function should always be compared explicitly. For example:
local e, str = msg:context_exists_and_get(msys.core.ECMESS_CTX_MESS, 'key') if e == 1 then -- do something here that depends on the key existing end
Note that Lua treats the numeric value
0 as true, which can be confusing.
Because this function is in the
msys.core namespace, an explicit
require('msys.core') is not necessary.