COOKIE_T
The HTTP Cookie type provides operations for a
cookie as it appears in the Set-Cookie and Set-Cookie2 header.
In this type the Name-Value List operations are also available. The
first delimiter is = and the element delimiter is ;. Multiple
consecutive ; are treated as one. (Same as applying the method
IGNORE_EMPTY_ELEMENTS on a Name-Value List. You can use the
Name-value List operations to access cookie attributes.
In this type Text operations are also available.
Each cookie begins with a COOKIE_NAME=COOKIE_VALUE pair followed by
zero or more semi-colon separated attribute-value pairs. If an
attribute appears more than once in a cookie, the value associated
with the first appearance of the attribute is returned.
Format Cookie:
Cookie1=Value;Version=decimal;Value;Domain=Value;Path=Value
This topic lists the expressions that are provided by this class.
Note:Expressions with the *symbol are inherited/promoted from text_t, nvlist_at.
* AFTER_REGEX(re regex)
Selects the text after the portion that matches the given
regular expression argument. The first match is returned
when multiple matches occur in the text. The match may occur
anywhere within the text - if you wish to "anchor" this,
use "^" at the start of the regex and/or "$" at the end of
the regex. When the regular expression does not match the
given string, a Text object of length of 0 is returned.
Example:
HTTP.REQ.HEADER("etag").AFTER_REGEX(re/KX/) will select
"DAPPER" from "KXDAPPER".
Parameters(expressions not allowed):
regex -
Regular Expression
Returns: text_t
* AFTER_STR_ANY(text_tpatset_name)
Selects the Text that is present after the first occurrence
of any of the strings that are bound to the patset named by
the string argument. If there is no match to any of the strings
bound to the patset in the current Text object then the result
Text object has 0 length.
The patset cannot have strings longer than 255 characters.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: text_t
* AFTER_STR(text_ts)
Selects the Text that is present after the first occurrence
of the string argument. If there is no match for the
argument in the current Text then the result Text object has
0 length.
The input string cannot be bigger than 255 characters.
Parameters(expressions not allowed):
s -
String
Returns: text_t
* APPEND(bool_atb)
Appends the given boolean's string representation to the
current string.
Parameters:
b -
the boolean value to append.
Returns: text_t
* APPEND(double_ati)
Appends the given double's string representation to the current
string.
Parameters:
i -
the double value to append.
Returns: text_t
* APPEND(ip_address_ataddr)
Appends the given IPv4's string representation to the current string.
Parameters:
addr -
the IPv4 address to append.
Returns: text_t
* APPEND(num_ati)
Appends the given number's string representation to the current
string.
Parameters:
i -
the number value to append.
Returns: text_t
* APPEND(time_att)
Appends the given time's string representation to the current string.
Parameters:
t -
the time value to append.
Returns: text_t
* APPEND(unsigned_long_ati)
Appends the given unsigned long's string representation to the
current string.
Parameters:
i -
the unsigned long value to append.
Returns: text_t
* APPEND(ipv6_address_ataddr)
Appends the given IPv6's string representation to the current string.
Parameters:
addr -
the IPv6 address to append.
Returns: text_t
* APPEND(ipv6_subnet_ataddr)
Appends the given IPv6 subnet's string representation to the current string.
Parameters:
addr -
the IPv6 subnet to append.
Returns: text_t
* APPEND(mac_address_ataddr)
Appends the given MAC's string representation to the current string.
Parameters:
addr -
the MAC address to append.
Returns: text_t
* APPEND(text_tstr)
Appends the given string to the current string.
Parameters:
str -
the string to append.
Returns: text_t
* APPEND(time_att)
Appends the given time's string representation to the current string.
Parameters:
t -
the time value to append.
Returns: text_t
* B64DECODE
Decodes the selected text using base64 decoding.
For example, the string "TWFu" is converted to "Man"
Returns: text_t
* B64ENCODE
Encodes the selected text using base64 encoding.
For example, the string "Man" is converted to "TWFu"
Returns: text_t
* BEFORE_REGEX(re regex)
Selects the text before the portion that matches the given
regular expression argument. The first match is returned
when multiple matches occur in the text. The match may occur
anywhere within the text - if you wish to "anchor" this,
use "^" at the start of the regex and/or "$" at the end of
the regex. When the regular expression does not match the
given string, a Text object of length of 0 is returned.
For example:
HTTP.RES.HEADER("content-type").BEFORE_REGEX(re#/#) will select "text" from "text/plain".
Parameters(expressions not allowed):
regex -
Regular Expression
Returns: text_t
* BEFORE_STR_ANY(text_tpatset_name)
Selects the Text that is present before the first occurrence
of any of the strings that are bound to the patset or
datasetnamed by the string argument.
If there is no match to any of the strings
bound to the patset in the current Text object then the result
Text object has 0 length.
The patset cannot have strings longer than 255 characters.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: text_t
* BEFORE_STR(text_ts)
Selects the Text that is present before the first occurrence
of the string argument. If there is no match for the
argument in the current Text object then the result Text
object has 0 length.
The input string cannot be bigger than 255 characters.
Parameters(expressions not allowed):
s -
String
Returns: text_t
* BETWEEN(text_tstart, text_tend)
Results in Boolean TRUE value if length of the Text object
is greater than or equal to the sum of the Start and End argument
lengths and if the prefix of the Text object
matches the Start string argument and if the Suffix of the Text
object matches the End string argument.
Parameters:
start -
Start
end -
End
Returns: bool_at
* BIN_DECODE(binary_encoding_eencoding)
Decode the encoded input into its original byte sequence. An incorrectly
enooded input will result in an Undef error.
Parameters(expressions not allowed):
encoding -
specifies how the bytes are encoded.
Returns: text_t
* BIN_ENCODE(binary_encoding_eencoding)
Encode the input byte sequence. Note that BIN_ENCODE(hex_colons) is
equivalent to BLOB_TO_HEX().
Parameters(expressions not allowed):
encoding -
specifies how the bytes are to be encoded.
Returns: text_t
* BLOB_TO_HEX
Convert to hexadecimal representation and select text.
For example, the byte string abc is converted to 61:62:63.
Returns: text_t
* COMPARE(text_ts)
Results in a Number Value which is the result of comparison of
the input argument with the Text object. The result is
greater than 0 if the Text object is lexicographically
greater than the argument. The result is 0 if the Text
object and the argument match. The result is less than 0 if
the Text object is lexicographically lesser than the argument.
Parameters:
s -
String
Returns: num_at
* CONTAINS_ANY(text_tpatset_name)
Results in Boolean TRUE value if the Text contains any of
the strings that are bound to the patset or dataset named by the
string argument.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: bool_at
* CONTAINS_INDEX(text_tpatset_name)
Returns the numerical index of the matching string, if the Text
contains any of the strings that are bound to the patset or dataset
named by the string argument. Returns 0 if there is no
match.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: num_at
* CONTAINS(text_ts)
Results in Boolean TRUE value if the Text contains the
string given in the argument.
The input string cannot be bigger than 255 characters.
Parameters(expressions not allowed):
s -
String
Returns: bool_at
* COUNT
Return a Number Value giving the number of name-value
components in the list. If the last Name-Value List
component is of zero length or is all spaces then it is
ignored.
Returns: num_at
* CRC32
Returns a 32-bit integer computed by applying a
CRC (cyclic redundancy check) function to the selected
text. This is the CRC function used by Ethernet,
MPEG-2, PKZIP, GZIP, PNG, and many other applications.
For example, the expression to compute the CRC value
of the (first 1000 bytes of the) body of an HTTP request is:
HTTP.REQ.BODY(1000).CRC32
Returns: num_at
* DECODE_USING_TEXT_MODE
Decodes the selected text using the currently configured
text encoding methods like URLENCODED, BACKSLASH_ENCODED,
PLUS_AS_SPACE, NOURLENCODED, NO_BACKSLASH_ENCODED and
NO_PLUS_AS_SPACE. Text encoding methods are set
using SET_TEXT_MODE method.
Returns: text_t
* DECRYPT
Decrypt the selected base64-encoded ciphertext using the
configured encryptionParams.
Returns: text_t
* DECRYPT(binary_encoding_ein_encoding)
Decrypt the selected ciphertext using the configured encryptionParams.
Parameters(expressions not allowed):
in_encoding -
specifies how the input ciphertext is encoded.
If the ciphertext is not encoded as specified, causes an Undef error.
Returns: text_t
* DECRYPT(text_tencryptionKey)
Decrypt the selected base64-encoded encrypted bytes using the
configured encryption key.
Parameters(expressions not allowed):
encryptionKey -
identifies the encryptionKey object
to provide the cipher method, mode, padding, key, encrypted format
and optional initialization vector (IV).
Returns: text_t
* DECRYPT(text_tencryptionKey, binary_encoding_ein_encoding)
Decrypt the selected base64-encoded encrypted bytes using the
configured encryption key.
Parameters(expressions not allowed):
encryptionKey -
identifies the encryptionKey object
to provide the cipher method, mode, padding, key, encrypted format,
and optional initialization vector (IV).
in_encoding -
specifies how the input ciphertext is encoded.
If the ciphertext is not encoded as specified, causes an Undef error.
Returns: text_t
* DIGEST(digest_method_emethod)
Returns a byte sequence computed by applying the
the specified message digest method to the selected
text.
Parameters(expressions not allowed):
method -
digest method to apply to the input text
Returns: text_t
DOMAIN
Obtain the value of Domain field of the cookie.
If Multiple Domain fields are present the value associated with the
first instance is returned.
For eg:
Set-Cookie : Customer = "ABC"; DOMAIN=".abc.com"; DOMAIN=.xyz.com
then
HTTP.RES.SET_COOKIE.COOKIE("CUSTOMER").DOMAIN gives .abc.com .
Note that the quotes are stripped and value is returned.
String of zero length is returned in the following cases:
1) If the Domain field is not present.
2) If the Value of Domain field is not present.
Returns: text_t
* ENCRYPT
Encrypt the selected plaintext bytes using the configured
encryptionParams. The resulting ciphertext is base64-encoded.
Returns: text_t
* ENCRYPT(binary_encoding_eout_encoding)
Encrypt the selected plaintext bytes using the configured
encryptionParams.
Parameters(expressions not allowed):
out_encoding -
specifies how the resulting ciphertext is encoded.
Returns: text_t
* ENCRYPT(text_tencryptionKey)
Encrypt the selected cleartext bytes using the configured
encryption key.
Parameters(expressions not allowed):
encryptionKey -
identifies the encryptionKey object
to provide the cipher method, mode, padding, key, encrypted format
and optional initialization vector (IV).
Returns: text_t
* ENCRYPT(text_tencryptionKey, binary_encoding_eout_encoding)
Encrypt the selected cleartext bytes using the configured
encryption key.
Parameters(expressions not allowed):
encryptionKey -
identifies the encryptionKey object
to provide the cipher method, mode, padding, key, encrypted format
and optional initialization vector (IV).
out_encoding -
specifies how the resulting ciphertext is encoded.
Returns: text_t
* ENDSWITH_ANY(text_tpatset_name)
Results in Boolean TRUE value if the Text ends with any of
the strings that are bound to the patset or dataset named by the
string argument.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: bool_at
* ENDSWITH_INDEX(text_tpatset_name)
Returns the numerical index of the matching string, if the Text
ends with any of the strings that are bound to the patset or dataset
named by the string argument. Returns 0 if there is no match.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: num_at
* ENDSWITH(text_tend)
Results in Boolean TRUE value if a suffix of the Text
object matches the string argument.
Parameters:
end -
String
Returns: bool_at
* EQUALS_ANY(text_tpatset_name)
Results in Boolean TRUE value if the Text equals any of
the strings that are bound to the patset or
dataset named by the string argument.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: bool_at
* EQUALS_INDEX(text_tpatset_name)
Returns the numerical index of the matching string, if the Text
equals any of the strings that are bound to the patset or dataset
named by the string argument. Returns 0 if there is no match.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: num_at
* EQ(text_ts)
Results in Boolean TRUE value if the Text object matches the
input argument.
Parameters:
s -
String
Returns: bool_at
EXPIRES
Obtain the Expires field of the cookie which is date string.
The value of the Expires attribute can be operated upon as a
Time object. The Time object supports a number of date
formats.
If multiple Expires fields are present then the first one is
returned.
If the Expires attribute is absent then Text of length
zero will be returned.
Returns: time_t
* GET_SIGNED16(uint n, endian_eendianness)
Get the 16-bit signed binary integer at the given offset.
Parameters:
n -
Offset in bytes
endianness -
Select little or big endian
Returns: num_at
* GET_SIGNED32(uint n, endian_eendianness)
Get the 32-bit signed binary integer at the given offset.
Parameters:
n -
Offset in bytes
endianness -
Select little or big endian
Returns: num_at
* GET_SIGNED8(uint n)
Get the 8-bit signed binary integer at the given offset.
Parameters:
n -
Offset in bytes
Returns: num_at
* GET_UNSIGNED16(uint n, endian_eendianness)
Get the 16-bit unsigned binary integer at the given offset.
Parameters:
n -
Offset in bytes
endianness -
Select little or big endian
Returns: num_at
* GET_UNSIGNED32(uint n, endian_eendianness)
Get the 32-bit unsigned binary integer at the given offset.
Parameters:
n -
Offset in bytes
endianness -
Select little or big endian
Returns: unsigned_long_at
* GET_UNSIGNED64(uint n, endian_eendianness)
Get the 64-bit unsigned binary integer at the given offset.
Parameters:
n -
Offset in bytes
endianness -
Select little or big endian
Returns: unsigned_long_at
* GET_UNSIGNED8(uint n)
Get the 8-bit unsigned binary integer at the given offset.
Parameters:
n -
Offset in bytes
Returns: num_at
* GET_URLSET_METADATA(text_turlset_name)
Returns metadata value corresponding to pattern in the urlset.
The matching is case-insensitive for domains, but case-sensitive
for paths. If no pattern is matched within the urlset, the return
value is a NULL string.
For example:
- HTTP.REQ.HOST.APPEND(HTTP.REQ.URL).GET_URLSET_METADATA("urlset_forbidden")
returns value when the combined domain and URL is looked up in the
urlset whose name is "urlset_forbidden".
- HTTP.REQ.URL.IS_STRINGMAP_KEY("url_stringmap") returns
true if value of HTTP.REQ.URL is present as key in the
string map whose name is "url_stringmap".
- HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).
IS_STRINGMAP_KEY("url_stringmap")
returns true if value of HTTP.REQ.URL is present as key in
the string map whose name is "url_stringmap".
Key lookup in this case is done case-insensitively.
- HEADER is a base64-encoded JSON structure indicating a signature algorithm and
token type, e.g.'{"alg":"RS256","typ":"JWT"}'
- PAYLOAD is a base64-encoded JSON structure with asserted claims, e.g.
'{"loggedInAs":"admin","iat":1422779638}'
- SIGNATURE is the base64-encoded bytes for the signature on HEADER.PAYLOAD.
- HEADER is a base64-encoded JSON structure indicating a signature algorithm and
token type, e.g.'{"alg":"RS256","typ":"JWT"}'
- PAYLOAD is a base64-encoded JSON structure with asserted claims, e.g.
'{"loggedInAs":"admin","iat":1422779638}'
- SIGNATURE is the base64-encoded bytes for the signature on HEADER.PAYLOAD.
- HTTP.REQ.URL.MAP_STRING("url_stringmap") returns value
when the value of HTTP.REQ.URL is used as key in the
string map whose name is "url_stringmap".
- HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).
MAP_STRING("url_stringmap") returns value
when the value of HTTP.REQ.URL is used as key in the
string map whose name is "url_stringmap".
Key lookup in this case is done case-insensitively.
- HTTP.REQ.HOSTNAME.REGEX_MATCH(re/[[:alpha:]]+(abc){2,3}/)
- HTTP.REQ.URL.SET_TEXT_MODE(URLENCODED).REGEX_MATCH(re#(ab+c)#)
- HTTP.REQ.URL.REGEX_MATCH(re/a(?i)b/) matches ab and aB
- HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).REGEX_MATCH(re/ab/) matches
ab, aB, Ab and AB</li><li>HTTP.REQ.BODY.REGEX_MATCH(re/(?ixm) (^ab (.*) cd$) /) does a case-insensitive, multiline match where the dot metacharacter matches newline also. The regex itself can contain whitespace which will be ignored during the matching (x - extended regex).</li></ul></p><p><b>Parameters</b>(expressions not allowed):</p><div><p>regex - Regular Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>REGEX_SELECT</b>(re regex)</p><div><p>Selects the text that matches the given regular expression
argument. The first match is returned when multiple matches
occur in the text. The match may occur anywhere within the
text - if you wish to "anchor" this, use "^" at the start
of the regex and/or "$" at the end of the regex. When the
regular expression does not match the given string, a Text
object of length of 0 is returned.
For example:HTTP.REQ.HEADER("via").REGEX_SELECT(re!NS-CACHE-\d\.\d:\s*\d{1,3}!) will select "NS-CACHE-7.0: 70"</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>regex - Regular Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>REPEAT</b>(uint i)</p><div><p>Produces a string which contains 'i' sequential copies of the input
string.
Parameters:
i -
the number of times to repeat the string (0 or more)</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>REPLACE_ALL_VALUES</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>value)</p><div><p>Replaces all the values in each name-value pair with the specified
string argument.
For example, given argument string "?" the list 'a=b,c=d,e=f' will
result in the name-value list 'a=?,c=?,e=?'. Quotes will be stripped
from the values being replaced. Empty values will be replaced with
the value provided. Empty elements will be preserved.
Parameters(expressions not allowed):
value -
value to replace existing values</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/nvlist_t/nvlist_t.html">nvlist_t</a></p></div></div></div><div><div><p><b>* </b><b>SET_CHAR_SET</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/charset_e/charset_e.html">charset_e</a>charset)</p><div><p>Set the character set to use for subsequent functions that
use text.
Parameters(expressions not allowed):
charset -
Character Set</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/cookie_t/cookie_t.html">cookie_t</a></p></div></div></div><div><div><p><b>* </b><b>SET_TEXT_MODE</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/textmode_e/textmode_e.html">textmode_e</a>mode)</p><div><p>The mode setting of a Text object controls the behavior of
many Text operations. The Text mode settings may also
control the behavior of some operations in objects (like
List) that build upon the Text object.
IGNORECASE, NOIGNORECASE - controls whether string
comparison is case sensitive or not.
URLENCODED - If set then all Text operations are
carried out after translating all %HH or %uHHHH encodings in the
underlying byte stream.
-
%HH will be translated to the character Y where HH denotes the
ascii value of character Y in hexadecimal.
For example, the encoded text "http%3a//" will be decoded to
"http://"
-
%uWWHH will be translated to the character sequence YZ where
WW denotes the ascii value of character Y in hexadecimal and HH
denotes the ascii value of character Z in hexadecimal.
For example, the encoded text "http%u3a2f/" and "http%u003a//"
will both be decoded to"http://"
NOURLENCODED - Indicates that no percent encodings are present in
the Text object. No percent decoding will be performed on the Text
object.
PLUS_AS_SPACE - If set then all Text operations are carried out
after converting occurrences of the plus character to whitespace.
For example, the text "hello+world" will be decoded to "hello world"
NO_PLUS_AS_SPACE - If set, then the plus character will not be
converted to whitespace in the Text object.
BACKSLASH_ENCODED - If set, then all Text operations are carried
out after performing the following operations:
-
\XXX will be translated to the character Y where XXX denotes the
ascii value of character Y in octal. The valid range of octal
values for this type of encoding is \0 to \377.
For example, the encoded text "http\72//" and "http\072//" will
both be decoded to "http://"
-
\xHH will be translated to the character Y where HH denotes the
ascii value of character Y in hexadecimal.
For example, the encoded text "http\x3a//" will be decoded to
"http://"
-
\uWWXX will be translated to the character sequence YZ where WW
denotes the ascii value of character Y in hexadecimal and XX
denotes the ascii value of character Z in hexadecimal.
For example, the encoded text "http%u3a2f/" and "http%u003a//"
will both be decoded to"http://"
-
Occurences of "\b", "\n", "\t", "\f" and "\r" are translated to
the corresponding ascii characters.
NO_BACKSLASH_ENCODED - If set, then backslash decoding will not be
performed on the Text object.
BAD_ENCODE_RAISE_UNDEF - If set, then UNDEF is raised if either the
URLENCODED or BACKSLASH_ENCODED mode is set and a bad encoding
corresponding to the specified encoding mode is encountered.
NO_BAD_ENCODE_RAISE_UNDEF - If set, then UNDEF will not be raised
when a bad encoding is encountered in the Text object.
The Text operations operate on characters (as opposed to operating
on bytes). By default a single byte represents a character
using the ASCII encoding. But if URLENCODED mode is set then
3 bytes may represent a character. A PREFIX(3) operation
will select the first 3 characters in the Text object. That
means it may select up to 9 bytes for URLENCODED Text
object.
In the case of multibyte decodings as a result of %uXXXX or \uXXXX,
Text operations which attempt to treat the multiple decoded bytes as
distinct characters are not allowed.
Parameters(expressions not allowed):
mode -
Text Mode</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/cookie_t/cookie_t.html">cookie_t</a></p></div></div></div><div><div><p><b>* </b><b>SKIP</b>(char c, uint i)</p><div><p>Select the Text after skipping over a prefix of the current Text.
The skipped over prefix is the longest prefix that has at most
Count (2nd argument) occurrences of character in the 1st argument.
Parameters:
c -
Character</p><p>i - Count</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>SKIP</b>(uint i)</p><div><p>Select the Text after skipping over a prefix in the
current Text. The length of the prefix is equal to the
number in the argument. If there aren't enough characters in
the Text object then the entire Text is skipped over.
Parameters(expressions not allowed):
i -
Prefix Length</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>STARTSWITH_ANY</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>patset_name)</p><div><p>Results in Boolean TRUE value if the Text starts with any of
the strings that are bound to the patset or dataset named by the
string argument.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>STARTSWITH_INDEX</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>patset_name)</p><div><p>Returns the numerical index of the matching string, if the Text
starts with any of the strings that are bound to the patset
or dataset named by the string argument. Returns 0 if there
is no match.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/num_at/num_at.html">num_at</a></p></div></div></div><div><div><p><b>* </b><b>STARTSWITH</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>start)</p><div><p>Results in Boolean TRUE value if a prefix of the Text
object matches the string argument.
Parameters:
start -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>STRIP_CHARS</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>s)</p><div><p>From the selected text remove the characters specified
in the string.
For example: Say the selected text is / "foo.xyz=bar" /.Then on executing STRIP_CHARS('.=') or STRIP_CHARS('..=') the
selected text will become /fooxyzbar /. Note that repeating
character has same effect as it would be if it present only
once.
Parameters(expressions not allowed):
s -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>STRIP_END_CHARS</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>s)</p><div><p>Selects the Text after stripping off characters in the
end of the current Text object.
For example: Say the selected text is / "foo.xyz=bar" /.Then on executing STRIP_END_CHARS('ar') the
selected text will become /foo.xyz=b /. Note that repeating
character has same effect as it would be if it present only
once.
Parameters(expressions not allowed):
s -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>STRIP_END_WS</b></p><div><p>Selects the Text after stripping off white space in the
end of the current Text object.
Returns: text_t
* STRIP_START_CHARS(text_ts)
Selects the Text after stripping off characters in the
beginning of the current Text object.
For example: Say the selected text is / "foo.xyz=bar" /.Then on executing STRIP_START_CHARS('of') the
selected text will become /.xyz=bar /. Note that repeating
character has same effect as it would be if it present only
once.
Parameters(expressions not allowed):
s -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>STRIP_START_WS</b></p><div><p>Selects the Text after stripping off white space in the
beginning of the current Text object.
Returns: text_t
* SUBSTR_ANY(text_tpatset_name)
Select any one sub-string that matches any string
in the given patset or dataset.
The patset cannot have strings longer than 255 characters.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>SUBSTR</b>(uint start, uint len)</p><div><p>Select the Text object of the given length at the given
offset. Offset it 0 based. If there aren't enough characters
after the offset then all the remaining characters are
selected.
Parameters:
start -
Offset</p><p>len - Length</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>SUBSTR</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>s)</p><div><p>Select the first Text object that matches the input string
argument.
The input string cannot be bigger than 255 characters.
Parameters(expressions not allowed):
s -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>SUFFIX</b>(char c, uint i)</p><div><p>Select a suffix of the Text. The selected suffix is the
longest possible suffix containing at most Count (2nd arg)
occurrences of the character in the 1st argument.
Parameters:
c -
Character</p><p>i - Count</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>SUFFIX</b>(uint i)</p><div><p>Select a suffix of the Text. The length of the
suffix is equal to the number in the argument. If there
aren't enough characters in the Text object then the entire
Text is selected.
Parameters:
i -
Suffix Length</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TO_LOWER</b></p><div><p>Converts the selected text to lower case.<br /><br /><br /><br />For example, the string "ABCd" is converted to "abcd"</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TO_UPPER</b></p><div><p>Converts the selected text to upper case.<br /><br /><br /><br />For example, the string "abcD" is converted to "ABCD"</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TRUNCATE</b>(char c, uint i)</p><div><p>Select the Text after truncating a suffix from the current
Text object. The truncated suffix is the longest possible
suffix containing at most Count (2nd arg) occurrences of the
character in the 1st argument.
Parameters:
c -
Character</p><p>i - Count</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TRUNCATE</b>(uint i)</p><div><p>Select the Text after truncating a suffix of the Text. The
length of the suffix truncated is equal to the number in the
argument. If there aren't enough characters in the Text then
then all the characters are truncated.
Parameters:
i -
Suffix Length</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_AVP_T</b></p><div><p>Convert text_t to avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (avp_t : Operations that can be performed on the returned AVPs.
Note:An AVP can have multiple instances in a Diameter message.However, the system can access only the first 16 instances.
Example:- To get the first value of AVP code 266 from a request, use: DIAMETER.REQ.AVP(266).VALUE(0).
- To get the fourth value of AVP code 266 from a request, use: DIAMETER.REQ.AVP(266).VALUE(3).
- To check if AVP code 1000 in the response has the vendor-specific bit set, use: DIAMETER.RES.AVP(1000).IS_VENDOR_SPECIFIC.
Returns: avp_t
* TYPECAST_AVP_UNUM_T
Convert text_t to avp_unum_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (avp_unum_t : In Diameter AVP based expressions can be written as DIAMETER.REQ.AVP(<avpcode>).
For example Auth-Application-Id AVP (AVP code 258) can be extracted as DIAMETER.REQ.AVP(258)
For few of the important AVPs we provide aliases.
For example this AVP based expression can also be written as
DIAMETER.REQ.AUTH_APPLICATION_ID.
This expression returns either a object of class avp_t or
returns a numerical value (object of class unsigned_long_at).
The numerical value for this object is derived from the value in first instance of
the AVP.)
Returns: avp_unum_t
TYPECAST_BOOL_AT
Convert text_t to bool_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (bool_at : Boolean Operations)
Returns: bool_at
TYPECAST_COOKIE_T
Convert text_t to cookie_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (cookie_t : The HTTP Cookie type provides operations for a
cookie as it appears in the Set-Cookie and Set-Cookie2 header.
In this type the Name-Value List operations are also available. The
first delimiter is = and the element delimiter is ;. Multiple
consecutive ; are treated as one. (Same as applying the method
IGNORE_EMPTY_ELEMENTS on a Name-Value List. You can use the
Name-value List operations to access cookie attributes.
In this type Text operations are also available.
Each cookie begins with a COOKIE_NAME=COOKIE_VALUE pair followed byzero or more semi-colon separated attribute-value pairs. If an
attribute appears more than once in a cookie, the value associated
with the first appearance of the attribute is returned.
Format Cookie:Cookie1=Value;Version=decimal;Value;Domain=Value;Path=Value)
Returns: cookie_t
* TYPECAST_DIAMETER_FLAG_T
Convert text_t to diameter_flag_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (diameter_flag_t : Provides operation to treat the underlying 1 byte as set of bit
flags. then set/unset/test/reset_all operations can be done on flag)
Returns: diameter_flag_t
* TYPECAST_DNS_DOMAINNAME_T
Convert text_t to dns_domainname_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (dns_domainname_t : This object provides operations for parsing the DNS domain name as it
appears at various places in the DNS data. The format is
abc.foo.com.)
Returns: dns_domainname_t
TYPECAST_DNS_FLAG_T
Convert text_t to dns_flag_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (dns_flag_t : Provides operations to test/set/unset a flag in dns header.)
Returns: dns_flag_t
TYPECAST_DOUBLE_AT
Convert text_t to double_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_at : Double Value)
Returns: double_at
* TYPECAST_DOUBLE_T(double_format_eformat)
Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The
supported formats are DECIMAL, DECIMAL_PREFIX. All
the formats strip off the beginning white space. DECIMAL
also strips off trailing white space. DECIMAL requires that all
the remaining characters must be a proper double value.
DECIMAL_PREFIX requires that at least one or more
more characters in the prefix must be a proper double value. In
case of overflow, there will be a parsing error.)
Parameters(expressions not allowed):
format -
Format</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_DOUBLE_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_format_e/double_format_e.html">double_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_at/double_at.html">double_at</a>default_value)</p><div><p>Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The
supported formats are DECIMAL, DECIMAL_PREFIX. All
the formats strip off the beginning white space. DECIMAL
also strips off trailing white space. DECIMAL requires that all
the remaining characters must be a proper double value.
DECIMAL_PREFIX requires that at least one or more
more characters in the prefix must be a proper double value. In
case of overflow, there will be a parsing error.
In case of parsing error the default value will be assumed.)
Parameters(expressions not allowed):
format -
Format</p><p>default_value - Double</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_DOUBLE_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_format_e/double_format_e.html">double_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/13-0/ip_address_at/ip_address_at.html">ip_address_at</a>default_value)</p><div><p>Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The
supported formats are DECIMAL, DECIMAL_PREFIX. All
the formats strip off the beginning white space. DECIMAL
also strips off trailing white space. DECIMAL requires that all
the remaining characters must be a proper double value.
DECIMAL_PREFIX requires that at least one or more
more characters in the prefix must be a proper double value. In
case of overflow, there will be a parsing error.
In case of parsing error the default value will be assumed.)
Parameters(expressions not allowed):
format -
Format</p><p>default_value - Double</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_DOUBLE_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_format_e/double_format_e.html">double_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/13-0/num_at/num_at.html">num_at</a>default_value)</p><div><p>Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The
supported formats are DECIMAL, DECIMAL_PREFIX. All
the formats strip off the beginning white space. DECIMAL
also strips off trailing white space. DECIMAL requires that all
the remaining characters must be a proper double value.
DECIMAL_PREFIX requires that at least one or more
more characters in the prefix must be a proper double value. In
case of overflow, there will be a parsing error.
In case of parsing error the default value will be assumed.)
Parameters(expressions not allowed):
format -
Format</p><p>default_value - Double</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_DOUBLE_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_format_e/double_format_e.html">double_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/13-0/time_at/time_at.html">time_at</a>default_value)</p><div><p>Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The
supported formats are DECIMAL, DECIMAL_PREFIX. All
the formats strip off the beginning white space. DECIMAL
also strips off trailing white space. DECIMAL requires that all
the remaining characters must be a proper double value.
DECIMAL_PREFIX requires that at least one or more
more characters in the prefix must be a proper double value. In
case of overflow, there will be a parsing error.
In case of parsing error the default value will be assumed.)
Parameters(expressions not allowed):
format -
Format</p><p>default_value - Double</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_DOUBLE_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_format_e/double_format_e.html">double_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/13-0/unsigned_long_at/unsigned_long_at.html">unsigned_long_at</a>default_value)</p><div><p>Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The
supported formats are DECIMAL, DECIMAL_PREFIX. All
the formats strip off the beginning white space. DECIMAL
also strips off trailing white space. DECIMAL requires that all
the remaining characters must be a proper double value.
DECIMAL_PREFIX requires that at least one or more
more characters in the prefix must be a proper double value. In
case of overflow, there will be a parsing error.
In case of parsing error the default value will be assumed.)
Parameters(expressions not allowed):
format -
Format</p><p>default_value - Double</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_HTTP_CACHE_CONTROL_T</b></p><div><p>Convert text_t to http_cache_control_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_cache_control_t : This object provides for the ability to work on HTTP Cache-Control headers.)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/http_cache_control_t/http_cache_control_t.html">http_cache_control_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_HTTP_CONTENT_LENGTH_T</b></p><div><p>Convert text_t to http_content_length_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_content_length_t : The HTTP.REQ.CONTENT_LENGTH or HTTP.RES.CONTENT_LENGTH object can be
treated as a HTTP Header or as a Number. The numerical value for
this object is derived from the value in the last instance of the
Content-Length header.)
Returns: http_content_length_t
* TYPECAST_HTTP_COOKIE_T
Convert text_t to http_cookie_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_cookie_t : This object provides operations for parsing the HTTP cookie header.
The name-value pair is derived from the value in the last instance of
Cookie header. The format is Cookie : name0=value0; name1=value1;
An HTTP Cookie header can have multiple occurrences. COUNT will
return a Number containing how many headers of the current type
exist.
The system does not keep track of more than 15 HTTP headers. The
result will be undefined if there are more than 15 instances of
the header.)
Returns: http_cookie_t
* TYPECAST_HTTP_DATE_T
Convert text_t to http_date_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_date_t : The HTTP.REQ.DATE or HTTP.RES.DATE object can be treated as a HTTP
header or a Time object. The Time value is derived from the value in
the last instance of the Date header. The date formats supported are
RFC 822 (updated by RFC 1123), RFC 1036 (obsoletes RFC850) and ANSI C
asctime() formats.)
Returns: http_date_t
* TYPECAST_HTTP_HEADER_T(text_tname)
Convert text_t to http_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_header_t : When typecasting a Text object to HTTP Header a header name
must be provided.For example:
HTTP.REQ.HEADER("MyHdr").TYPECAST_HTTP_HEADER_T("InHdr"))
Parameters(expressions not allowed):
name -
Header Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/http_header_t/http_header_t.html">http_header_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_HTTP_HOSTNAME_T</b></p><div><p>Convert text_t to http_hostname_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_hostname_t : This object provides operations for parsing the HTTP hostname as it
appears at various places in the HTTP protocol data. The format is
abc.foo.com:8080.)
Returns: http_hostname_t
* TYPECAST_HTTP_METHOD_T
Convert text_t to http_method_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_method_t : This object provides Text operations and HTTP Request Method Enum
operations on the HTTP request method.)
Returns: http_method_t
* TYPECAST_HTTP_SET_COOKIE_T
Convert text_t to http_set_cookie_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_set_cookie_t : HTTP.RES.SET_COOKIE provides operations for parsing and operating on the
SET-COOKIE header that is present in the HTTP response.
HTTP Set-Cookie header supports Text and HTTP Header operations.
For most Text operations the value in the last Set-Cookie header is
selected.
HTTP Set-Cookie header also supports special operations to extract
cookies from the response. It is assumed that there will be only one
cookie in a Set-Cookie header.)
Returns: http_set_cookie_t
* TYPECAST_HTTP_URL_T
Convert text_t to http_url_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_url_t : HTTP.REQ.URL provides operations for parsing and operating on the
URL that is present in the first line of the HTTP request header.
The supported format is [<protocol>://<hostname>]<path>?<query>. TheText object backing a HTTP URL object has the Text Mode set to
URLENCODED by default.)
Returns: http_url_t
* TYPECAST_HTTP_VERSION_T
Convert text_t to http_version_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_version_t : HTTP.REQ.VERSION or HTTP.RES.VERSION provide operations to extract HTTP
version information.)
Returns: http_version_t
* TYPECAST_IPV6_ADDRESS_AT
Convert text_t to ipv6_address_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_address_at : Provides operations for the 128-bit IPv6 address value.
Some general information regarding IPv6 expressions:
IPv6 PIXL expressions can be combined with other PIXL expressionsusing the '+' operator. The output is expected to be the concatenation of the string representations of the individual PIXL expressions. No other operator other than '+' is expected to work when any of the operands is an IPv6 PIXL expression. Also, IPv6 PIXL expressions can be combined with any other type of PIXL expression except a PIXL expression that produces a bool result. In other words, if A and/or B are two IPv6 addresses, A+B should result in the string AB. When one of A or B is an IPv6 address, the other can only be a number or a string and not a boolean. Further, when A and/or B is an IPv6 address, the only operator allowed between them is '+'. <br /><br /><br /><br />Example: Let the client source IPv6 address be ABCD:1234::ABCD. Let the server destination IPv4 address be 10.100.10.100. Then the expression CLIENT.IPV6.SRC + SERVER.IP.DST should produce the output "ABCD:1234::ABCD10.100.10.100". <br /><br />Similarly, CLIENT.IPV6.SRC + 5 should produce the result ABCD:1234::ABCD5)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/ipv6_address_at/ipv6_address_at.html">ipv6_address_at</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_IPV6_ADDRESS_T</b></p><div><p>Convert text_t to ipv6_address_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_address_t : This object represents an IPv6 address present in the
1000:1001:CD10:0000:0000:89AB:4567:CDEF format.)
Returns: ipv6_address_t
TYPECAST_IPV6_SUBNET_AT
Convert text_t to ipv6_subnet_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_subnet_at : Provides operations for the integral IPv6 subnet address value.)
Returns: ipv6_subnet_at
TYPECAST_IPV6_SUBNET_T
Convert text_t to ipv6_subnet_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_subnet_t : This object represents an IPv6 subnet address present in the
1000:1001:CD10:0000:0000:89AB:4567:CDEF/64 format.)
Returns: ipv6_subnet_t
TYPECAST_IP_ADDRESS_AT
Convert text_t to ip_address_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ip_address_at : Provides operations for the 32-bit integral IP address value.)
Returns: ip_address_at
TYPECAST_IP_ADDRESS_T
Convert text_t to ip_address_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ip_address_t : Represents an IP address present in the 10.100.200.1
format.)
Returns: ip_address_t
* TYPECAST_LIST_T(char sep)
Convert text_t to list_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (list_t : The character separator has to be provided when typecasting
a textual context to list type. The current text mode has no
effect on the character separator. For example if the
current text mode is IGNORECASE and the separator is p then
P will not be treated as a separator.)
Parameters(expressions not allowed):
sep -
Separator</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/list_t/list_t.html">list_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_MAC_ADDRESS_AT</b></p><div><p>Convert text_t to mac_address_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (mac_address_at : Provides operations for the 48-bit MAC address value.)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/mac_address_at/mac_address_at.html">mac_address_at</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_MAC_ADDRESS_T</b></p><div><p>Convert text_t to mac_address_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (mac_address_t : Represents a MAC address present in the 12:34:56:78:9a:bc
format.)
Returns: mac_address_t
TYPECAST_NUM_AT
Convert text_t to num_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (num_at : Number Value)
Returns: num_at
TYPECAST_NUM_T(num_format_eformat)
Convert text_t to num_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (num_t : Treat the underlying text as a Number in the given format. The
supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All
the formats strip off the beginning white space. DECIMAL and HEX
also strip off trailing white space. DECIMAL and HEX require that all
the remaining characters must be proper digits.
DECIMAL_PREFIX and HEX_PREFIX require that at least one or more
more characters in the prefix must be proper digits. In case of
overflow, there will be a parsing error.)
Parameters(expressions not allowed):
format -
Format</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/num_t/num_t.html">num_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_NUM_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/num_format_e/num_format_e.html">num_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/13-0/num_at/num_at.html">num_at</a>default_value)</p><div><p>Convert text_t to num_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (num_t : Treat the underlying text as a Number in the given format. The
supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All
the formats strip off the beginning white space. DECIMAL and HEX
also strip off trailing white space. DECIMAL and HEX require that all
the remaining characters must be proper digits.
DECIMAL_PREFIX and HEX_PREFIX require that at least one or more
more characters in the prefix must be proper digits. In case of
overflow, there will be a parsing error. In case of parsing error the
default value will be assumed.)
Parameters(expressions not allowed):
format -
Format</p><p>default_value - Number</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/num_t/num_t.html">num_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_NVLIST_T</b>(char sep1, char sep2)</p><div><p>Convert text_t to nvlist_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (nvlist_t : Two character delimiters have to be provided when
typecasting a Text object to a Name-Value List.
The first delimited separates the name from the value.
The second delimiter separates list items.
For example typecast_nvlist_t('=', '&') handles a URL
query string.
The Text Mode has no effect on the character delimiters.
For example if the current text mode is IGNORECASE and a
delimiter is p then P will not be treated as a delimiter.)
Parameters(expressions not allowed):
sep1 -
delimiter1</p><p>sep2 - delimiter2</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/nvlist_t/nvlist_t.html">nvlist_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_NVLIST_T</b>(char sep1, char sep2, char quote)</p><div><p>Convert text_t to nvlist_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (nvlist_t : Two character delimiters and quote-character have to be provided
when typecasting a Text object to a Name-Value List that supports
quote-character.
The first delimited separates the name from the value.
The second delimiter separates list items.
The third value specifies the quote character.
For example typecast_nvlist_t('=', ';', '"') handles a
name-value list separated by semi-colons that allows quoting.
The quote-character specifies that the value can occur within the
quotes and the delimiters within the quote-characters should not
be taken into account.
The Text Mode has no effect on the character
delimiters. For example if the current text mode is IGNORECASE and
a delimiter is p then P will not be treated as a delimiter.)
Parameters(expressions not allowed):
sep1 -
delimiter1</p><p>sep2 - delimiter2</p><p>quote - quote-character.</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/nvlist_t/nvlist_t.html">nvlist_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_RADIUS_AVP_T</b></p><div><p>Convert text_t to radius_avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (radius_avp_t : Operations that can be performed on the returned AVPs.
Note:An AVP can have multiple instances in a radius message.However, the system can access only the first 16 instances.
Example:- To get the first value of AVP code 26 from a request, use: radius.REQ.AVP(26).VALUE(0).
- To get the fourth value of AVP code 26 from a request, use: radius.REQ.AVP(26).VALUE(3).
Returns: radius_avp_t
* TYPECAST_RADIUS_AVP_VALUE_T
Convert text_t to radius_avp_value_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (radius_avp_value_t : Provides operations to typecast RADIUS AVP value to
Integer value or IP Address.)
Returns: radius_avp_value_t
TYPECAST_SEQ_TEXT_T
Convert text_t to seq_text_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (seq_text_t : Represents the Text Sequence class.)
Returns: seq_text_t
TYPECAST_SERVICEPATH_T
Convert text_t to servicepath_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (servicepath_t : Operations that can be performed on the service path.
Example:- To get the name of the service path applicable to current subscriber, use: SUBSCRIBER.SERVICEPATH
- To determine If the service function is the next in the service path applicable to scubscriber,
use: SUBSCRIBER.SERVICEPATH.IS_NEXT(
).
Returns: servicepath_t
TYPECAST_SIP_CALLID_HEADER_T
Convert text_t to sip_callid_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_callid_header_t : This object provides operations for parsing the SIP callid header.)
Returns: sip_callid_header_t
TYPECAST_SIP_CONTENT_LENGTH_T
Convert text_t to sip_content_length_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_content_length_t : The SIP.REQ.CONTENT_LENGTH or SIP.RES.CONTENT_LENGTH object can be
treated as a SIP Header or as a Number. The numerical value for
this object is derived from the value in the last instance of the
Content-Length header.)
Returns: sip_content_length_t
TYPECAST_SIP_FROM_HEADER_T
Convert text_t to sip_from_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_from_header_t : This object provides operations for parsing the SIP From header.)
Returns: sip_from_header_t
TYPECAST_SIP_HEADER_T(text_tname)
Convert text_t to sip_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_header_t : When typecasting a Text object to SIP Header a header name
must be provided.For example:
SIP.REQ.HEADER("MyHdr").TYPECAST_SIP_HEADER_T("InHdr"))
Parameters(expressions not allowed):
name -
Header Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/sip_header_t/sip_header_t.html">sip_header_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_SIP_HOSTNAME_T</b></p><div><p>Convert text_t to sip_hostname_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_hostname_t : This object provides operations for parsing the SIP hostname as it
appears at various places in the SIP protocol data. The format is
abc.foo.com:5060.)
Returns: sip_hostname_t
* TYPECAST_SIP_METHOD_T
Convert text_t to sip_method_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_method_t : This object provides Text operations and SIP Request Method Enum
operations on the SIP request method.)
Returns: sip_method_t
TYPECAST_SIP_TO_HEADER_T
Convert text_t to sip_to_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_to_header_t : This object provides operations for parsing the SIP From header.)
Returns: sip_to_header_t
TYPECAST_SIP_URL_T
Convert text_t to sip_url_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_url_t : SIP.REQ.URL provides operations for parsing and operating on the
URL that is present in the first line of the SIP request header.
The supported format is [<protocol>://<hostname>]<path>?<query>. TheText object backing a SIP URL object has the Text Mode set to
URLENCODED by default.)
Returns: sip_url_t
* TYPECAST_SIP_VERSION_T
Convert text_t to sip_version_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_version_t : SIP.REQ.VERSION or SIP.RES.VERSION provide operations to extract SIP
version information.)
Returns: sip_version_t
TYPECAST_SIP_VIA_HEADER_T
Convert text_t to sip_via_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_via_header_t : This object provides operations for parsing the SIP Via header.)
Returns: sip_via_header_t
TYPECAST_SSLVPN_MODE_T
Convert text_t to sslvpn_mode_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sslvpn_mode_t : This object provides Text operations and SSLVPN Mode Enum
operations on the SSLVPN request method.)
Returns: sslvpn_mode_t
* TYPECAST_SSL_TEXT_T(text_tname)
Convert text_t to ssl_text_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ssl_text_t : Treat the underlying text object as SSL Text.)
Parameters(expressions not allowed):
name -
Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/ssl_text_t/ssl_text_t.html">ssl_text_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_TCP_OPTIONS_T</b></p><div><p>Convert text_t to tcp_options_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (tcp_options_t : TCP Protocol Options)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/tcp_options_t/tcp_options_t.html">tcp_options_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_TCP_OPTIONS_TYPE_T</b></p><div><p>Convert text_t to tcp_options_type_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (tcp_options_type_t : TCP Protocol Options Type)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/tcp_options_type_t/tcp_options_type_t.html">tcp_options_type_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_TCP_REPEATER_OPTION_T</b></p><div><p>Convert text_t to tcp_repeater_option_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (tcp_repeater_option_t : TCP Protocol Option : Repeater)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/tcp_repeater_option_t/tcp_repeater_option_t.html">tcp_repeater_option_t</a></p></div></div></div><div><div><p><b>TYPECAST_TEXT_T</b></p><div><p>Convert cookie_t to text_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (text_t : Designates any piece of text.)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_TIME_AT</b></p><div><p>Convert text_t to time_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (time_at : Treats a number value as number of seconds since GMT Jan 1
1970 0h 0m 0s.)
Returns: time_at
* TYPECAST_TIME_T
Convert text_t to time_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (time_t : This object treats a Text object as a date string. The formats
supported are
1. RFC822 :: Sun, 06 Nov 1994 08:49:37 GMT
2. RFC850 :: Sunday, 06-Nov-94 08:49:37 GMT
3. ASCTIME :: Sun Nov 6 08:49:37 1994
4. ASCTIME like :: Sun Nov 6 08:49:37 1994
5. ASCTIME like :: Sun Nov 06 08:49:37 1994
6. Http Set-Cookie Expiry date :: Sun, 06-Nov-1994 08:49:37 GMT)Returns: time_t
TYPECAST_UNSIGNED_LONG_AT
Convert text_t to unsigned_long_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_at : Unsigned Long(64bit) Value)
Returns: unsigned_long_at
TYPECAST_UNSIGNED_LONG_T(unsigned_long_format_eformat)
Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The
supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All
the formats strip off the beginning white space. DECIMAL and HEX
also strip off trailing white space. DECIMAL and HEX require that all
the remaining characters must be proper digits.
DECIMAL_PREFIX and HEX_PREFIX require that at least one or more
more characters in the prefix must be proper digits. In case of
overflow, there will be a parsing error.)
Parameters(expressions not allowed):
format -
Format</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/unsigned_long_t/unsigned_long_t.html">unsigned_long_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_UNSIGNED_LONG_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/unsigned_long_format_e/unsigned_long_format_e.html">unsigned_long_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/13-0/ip_address_at/ip_address_at.html">ip_address_at</a>default_value)</p><div><p>Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The
supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All
the formats strip off the beginning white space. DECIMAL and HEX
also strip off trailing white space. DECIMAL and HEX require that all
the remaining characters must be proper digits.
DECIMAL_PREFIX and HEX_PREFIX require that at least one or more
more characters in the prefix must be proper digits. In case of
overflow, there will be a parsing error. In case of parsing error the
default value will be assumed.)
Parameters(expressions not allowed):
format -
Format</p><p>default_value - Number</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/unsigned_long_t/unsigned_long_t.html">unsigned_long_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_UNSIGNED_LONG_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/unsigned_long_format_e/unsigned_long_format_e.html">unsigned_long_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/13-0/unsigned_long_at/unsigned_long_at.html">unsigned_long_at</a>default_value)</p><div><p>Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The
supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All
the formats strip off the beginning white space. DECIMAL and HEX
also strip off trailing white space. DECIMAL and HEX require that all
the remaining characters must be proper digits.
DECIMAL_PREFIX and HEX_PREFIX require that at least one or more
more characters in the prefix must be proper digits. In case of
overflow, there will be a parsing error. In case of parsing error the
default value will be assumed.)
Parameters(expressions not allowed):
format -
Format</p><p>default_value - Number</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/unsigned_long_t/unsigned_long_t.html">unsigned_long_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_UNSIGNED_LONG_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/unsigned_long_format_e/unsigned_long_format_e.html">unsigned_long_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/13-0/num_at/num_at.html">num_at</a>default_value)</p><div><p>Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The
supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All
the formats strip off the beginning white space. DECIMAL and HEX
also strip off trailing white space. DECIMAL and HEX require that all
the remaining characters must be proper digits.
DECIMAL_PREFIX and HEX_PREFIX require that at least one or more
more characters in the prefix must be proper digits. In case of
overflow, there will be a parsing error. In case of parsing error the
default value will be assumed.)
Parameters(expressions not allowed):
format -
Format</p><p>default_value - Number</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/unsigned_long_t/unsigned_long_t.html">unsigned_long_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_UNSIGNED_LONG_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/unsigned_long_format_e/unsigned_long_format_e.html">unsigned_long_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/13-0/time_at/time_at.html">time_at</a>default_value)</p><div><p>Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The
supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All
the formats strip off the beginning white space. DECIMAL and HEX
also strip off trailing white space. DECIMAL and HEX require that all
the remaining characters must be proper digits.
DECIMAL_PREFIX and HEX_PREFIX require that at least one or more
more characters in the prefix must be proper digits. In case of
overflow, there will be a parsing error. In case of parsing error the
default value will be assumed.)
Parameters(expressions not allowed):
format -
Format</p><p>default_value - Number</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/unsigned_long_t/unsigned_long_t.html">unsigned_long_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_UNUM_TEXT_T</b></p><div><p>Convert text_t to unum_text_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unum_text_t : Provides operations to treat the underlying OctectString as Binary
String or unsigned long value .)
Returns: unum_text_t
TYPECAST_URL_CATEGORY_T
Convert text_t to url_category_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (url_category_t : Retrieves URL category and attributes from an URL)
Returns: url_category_t
TYPECAST_VENDOR_SPEC_APPID_AVP_T
Convert text_t to vendor_spec_appid_avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (vendor_spec_appid_avp_t : Retrieves AVPs that are nested in the grouped AVP
Vendor-Specific-Application-Id (code 260). The nested AVPs are:
- Vendor-Id
- Auth-Application-Id
- Acct-Application-Id
Vendor-Specific-Application-Id AVP:
- For requests: DIAMETER.REQ.VENDOR_SPECIFIC_APPLICATION_ID.AUTH_APPLICATION_ID
- For responses: DIAMETER.RES.VENDOR_SPECIFIC_APPLICATION_ID.AUTH_APPLICATION_ID
Returns: vendor_spec_appid_avp_t
* TYPECAST_VENDOR_SPEC_RADIUS_AVP_T
Convert text_t to vendor_spec_radius_avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (vendor_spec_radius_avp_t :
- Vendor-Id
Vendor-Specific AVP:
- RADIUS.REQ.VENDOR_SPECIFIC.VENDORID
Returns: vendor_spec_radius_avp_t
* UNQUOTE(char c)
If selected text is quoted by character c, Remove character c from
beginning and end.
For example: Say the selected text is / "foo xyz bar " /.Then on executing UNQUOTE('"') the selected text will become
/foo xyz bar /
Parameters(expressions not allowed):
c -
Character</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>URLSET_MATCHES_ANY</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>urlset_name)</p><div><p>Results in Boolean TRUE value if and only if the Text matches any of
the patterns that are specified in the urlset named by the
string argument. The matching is case-insensitive for
domains, but case-sensitive for paths.
For example:
- HTTP.REQ.HOST.APPEND(HTTP.REQ.URL).URLSET_MATCHES_ANY("urlset_forbidden")
returns true when the combined domain and URL matches any pattern in the
urlset whose name is "urlset_forbidden".
Parameters(expressions not allowed):
urlset_name -
urlset name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>URL_CATEGORIZE</b>(uint min_reputation, uint max_reputation)</p><div><p>Returns the URL category for the supplied URL with the given minimum
and maximum reputation score. Where a score of 5 is most risky and 1
is least risky. If either score is set to 0, that bound would be ignored.
By specifying the reputation scores, the function will returned the category
with the highest score (most risky) based on the bounds.
If there was an error getting the category or if the URL is invalid then it
will result in an Undef error.
For example:
HTTP.REQ.HOST.APPEND(HTTP.REQ.URL).URL_CATEGORIZE(0, 0)returns value when the combined domain and URL is looked up for
the URL category with the highest reputation score (most risky).
Parameters(expressions not allowed):
min_reputation -
Minimum reputation score of URL category</p><p>max_reputation - Maximum reputation score of URL category</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/url_category_t/url_category_t.html">url_category_t</a></p></div></div></div><div><div><p><b>* </b><b>URL_RESERVED_CHARS_SAFE</b></p><div><p>Converts URL reserved characters to corresponding '%XX'
values and retains the rest. This is a read only operation.
Based on RFC3986, following are considered URL unreserved characters:
The rest are converted to %XX encoding, 'XX' is the hex-basedAlpha-numeric characters: a-z, A-Z, 0-9 Hyphen and underscore: "-", "_" Dot: "." Tilde: "~"
representation of the input character.
If the requirement is to encode all but URL safe characters,
please consider using HTTP_URL_SAFE method.
Returns: text_t
* VALUES
Extracts a list of only the values from the name-value pair list.
For example the list 'a=b,c=d,e=f' will result in the list
'b,d,f'. Note that lists do not honor the quote characters, so
any nvlist_at entry that has quotes and a quoted entry includes a
separator will be split at that embedded separator. Quote
characters will not be stripped from the values. Empty elements
and empty values will be ignored.
Returns: list_t
* VALUE(uint i)
Operate as Text on the value component of the specified
name-value component in the list. The index of the
name-value component given by the argument is 0-based. If
the specified index is greater than the number of components
then a zero length Text object is produced.
Parameters(expressions not allowed):
i -
Index</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>VALUE</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>name)</p><div><p>Operate as Text on the value component of the specified
name-value component in the list. The name-value component
is specified by the argument by providing the name whose
value is needed. The first component that matches the name
is selected. The matching process honors the IGNORECASE and
the NOIGNORECASE text modes. The URLENCODED and the
NOURLENCODED text modes are ignored.
Parameters(expressions not allowed):
name -
Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>VALUE</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>name, uint i)</p><div><p>Operate as Text on the value component of the specified
name-value component in the list. The name-value component
is specified by the argument by providing the name whose
value is needed. In a name-value list the same name can be
repeated multiple times. The Index argument controls which
occurence of the matching name-value component should be
selected. The Index is 0-based. If the Index is too big then
the Text object that is produced will have zero length. The
matching process honors the IGNORECASE and the NOIGNORECASE
text modes. The URLENCODED and the NOURLENCODED text modes
are ignored.
Parameters(expressions not allowed):
name -
Name</p><p>i - Index</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>VERSION</b></p><div><p>Obtain the Value of Version field of the cookie which is a
decimal integer. If Multiple version fields are present the
value associated with the first instance after the COOKIE
name-value pair is returned.
For eg: Set-Cookie : Customer = "ABC"; VERSION = "1";
VERSION = "0" then
HTTP.RES.SET_COOKIE.COOKIE("CUSTOMER").VERSION gives 1.
Note that the quotes are stripped and value is returned.
Default numerical value zero is returned in the following cases:
1) If the version field is not present. 2) If the value of
version field is not present. 3) If the version value is not
a decimal number.
Returns: num_t
* XML_DECRYPT(text_tcertKeyName)
Decrypt the selected content, which was encrypted using the W3C XML
Encryption standard.
Parameters(expressions not allowed):
certKeyName -
identifies the certkey object containing the RSA
private key to be used to decrypt the bulk encryption key in the
selected EncryptedData element.
Returns: text_t
* XML_ENCRYPT(text_tcertKeyName, encrypt_method_emethod)
Encrypt the selected cleartext using the W3C XML Encryption standard.
Parameters(expressions not allowed):
certKeyName -
identifies the certkey object containing an X.509
certificate with the RSA public key to be used to encrypt the
generated bulk encryption key. Note that the certKey object need not,
and usually will not, include the associated RSA private key.
method -
specifies the bulk encryption method (rc4, des3, aes128,
aes192, or aes256) used to encrypt the content.
Returns: text_t
* XML_ENCRYPT(text_tcertKeyName, encrypt_method_emethod, uint flags)
Encrypt the selected cleartext using the W3C XML Encryption standard.
Parameters(expressions not allowed):
certKeyName -
identifies the certkey object containing an X.509
certificate with the RSA public key to be used to encrypt the
generated bulk encryption key. Note that the certKey object need not,
and usually will not, include the associated RSA private key.
method -
specifies the bulk encryption method (rc4, des3, aes128,
aes192, or aes256) used to encrypt the content.
flags -
optional bit mask to specify optional elements in the
EncryptedData element. These are hints to tell the receiver what private
key to use to decrypt the bulk encryption key, providing information from
the certKey's X.509 certificate.
- 1 - include a KeyName element with the certKeyName;
- 2 - include a KeyValue element with the RSA public key from the
certificate;
- 4 - include an X509IssuerSerial element with the certificate serial
number and issuer DN;
- 8 - include an X509SubjectName element with the certificate subject
DN;
- 16 - include an X509Certificate element with the entire
certificate;
Returns: text_t
* XPATH_HTML_WITH_MARKUP(xpath_str xpathex)
Applies an XPath expression to the DOM for an HTML document
and returns the selected node-set or string, including
markup like element tags. node-sets are converted to
strings using the standard XPath string conversion routine.
The selected portion of the document can be used as the
target for rewrite actions.
Examples:HTTP.REQ.BODY(1000).XPATH_HTML_WITH_MARKUP(xp%//html/head/title%) returns the <title> element in the document's <head> This can be used in a rewrite action to replace or delete the <title> element.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_HTML</b>(xpath_bool xpathex)</p><div><p>Applies an XPath expression to the DOM for an HTML document
and a boolean value.
Examples:HTTP.RES.BODY(1000).XPATH_HTML(xp%boolean(/html/head/meta)%) returns true if the <meta> element exists as a child of <head> element.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_HTML</b>(xpath_double xpathex)</p><div><p>Applies an XPath expression to the DOM for an HTML document
and a double value.
Examples:HTTP.RES.BODY(1000).XPATH_HTML(xp%number(//video/@height)%) returns the numeric value of the height attribute of the first <video> element.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_at/double_at.html">double_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_HTML</b>(xpath_str xpathex)</p><div><p>Applies an XPath expression to the DOM for an HTML document
and returns the selected node-set or string. node-sets are
converted to strings using the standard XPath string
conversion routine.
Examples:HTTP.REQ.BODY(1000).XPATH_HTML(xp%//img/@src%) returns the string value of the src attribute of the first <img> element in the document.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_JSON_WITH_MARKUP</b>(xpath_str xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath_json_with_markup operates on
XML file and returns a string that contains the entire portion of the
document for the result node including markup, such as
including the enclosing element tags
Examples:For the JSON file: { "Book":{ "creator":{ "person":{ "name":'Milton' } }, "title":'Paradise Lost' } } HTTP.REQ.BODY(1000).XPATH_JSON_WITH_MARKUP(xp%/Top/Book/creator%) This expression when operated on the above JSON file, will select "all the nodes enclosed by /Book/creator" in the first 1000 bytes of the body which is creator:{ person:{ name:'Milton' } } The original JSON document is not disturbed but the part of the JSON body selected by the expression is marked for further processing.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_JSON</b>(xpath_bool xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath_json operates on JSON file
and returns boolean value.
Examples:For the JSON file: { "Book":{ "creator":{ "person":{ "name":'Milton' } }, "title":'Paradise Lost' } } HTTP.REQ.BODY(1000).XPATH_JSON(xp%boolean(/Top/Book/creator)%) This will return true as there is a node named 'creator' with parent 'Book' in the first 1000 bytes of the document.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Boolean Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_JSON</b>(xpath_double xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath_json operates on JSON file
and returns double value.
Examples:For the JSON file: { "Book":{ "creator":{ "person":{ "name":'Milton' } }, "title":'Paradise Lost', "price":"36" } } HTTP.REQ.BODY(1000).XPATH_JSON(xp%number(/Top/Book/price)%) This will convert the string '36' string to double if it is in the first 1000 bytes of the document.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Numeric Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_at/double_at.html">double_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_JSON</b>(xpath_str xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath_json operates on JSON file
and returns node-set or string.
node-sets are converted into corresponding strings using the
standard xpath string conversion routine.
Examples:For the JSON file: { "Book":{ "creator":{ "person":{ "name":'Milton' } }, "title":'Paradise Lost' } } HTTP.REQ.BODY(1000).XPATH_JSON(xp%/Top/Book%) This will select "all the nodes enclosed by /Book" in the first 1000 bytes of the body. Since this is a node-set the corresponding string value will be returned which is "MiltonParadise Lost".</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_WITH_MARKUP</b>(xpath_str xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath operates on XML file and
returns a string that contains the entire portion of the
document for the result node including markup, such as
including the enclosing element tags
Examples:<book><creator><person><name>Milton</name></person></creator><title>Paradise Lost</title></book>HTTP.REQ.BODY(1000).XPATH_WITH_MARKUP(xp%/Book/creator%) This expression when operated on the above XML file, will select "all the nodes enclosed by /Book/creator" in the first 1000 bytes of the body which is <creator><person><name>Milton</name></person></creator>The original XML document is not disturbed but the part of the XML body selected by the xpath expression is marked for further processing.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>XPATH</b>(xpath_bool xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath operates on XML file and
returns boolean value.
Examples:For the XML file: <book><creator><person><name>Milton</name></person></creator><title>Paradise Lost</title></book>HTTP.REQ.BODY(1000).XPATH(xp%boolean(//Book/creator)%) This will return true as there is a node called creator under the node Book with in the first 1000 bytes of the document.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Boolean Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH</b>(xpath_double xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath operates on XML file and
returns double value.
Examples:For the XML file: <book><creator><person><name>Milton</name></person></creator><title>Paradise Lost</title><price>36</price></book>HTTP.REQ.BODY(1000).XPATH(xp%number(/Book/price)%) This will convert the string '36' to double if it is in the first 1000 bytes of the document.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Numeric Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/double_at/double_at.html">double_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH</b>(xpath_str xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath operates on XML file and
returns node-set or string.
node-sets are converted into corresponding strings using the
standard xpath string conversion routine.
Examples:For the XML file: <book><creator><person><name>Milton</name></person></creator><title>Paradise Lost</title></book>HTTP.REQ.BODY(1000).XPATH(xp%/Book/creator%) This expression will select "all the nodes enclosed by /Book/creator" in the first 1000 bytes of the body. Since this is a node-set its string value is returned which is: "Milton"</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex - XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div></body></html>
-
Parameters(expressions not allowed):
urlset_name -
urlset name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>GE</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>s)</p><div><p>Results in Boolean TRUE value if the Text object is greater than or
equal to the input argument.
Parameters:
s -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>GT</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>s)</p><div><p>Results in Boolean TRUE value if the Text object is greater than the
input argument.
Parameters:
s -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>HASH</b></p><div><p>Returns a positive 31 bit integer value computed
by applying a proprietary Citrix ADC hash function
to the selected text. This function is not case-
sensitive and ignores whitespaces. For example,
applying the HASH function to two strings "Ab c"
and "abc" would produce the same value. This
function should not be used for security purposes;
use instead the DIGEST function with one of the
standard digest methods.
Returns: num_at
* HMAC(text_thmacKey)
Returns a byte sequence computed by applying the HMAC
(Hash Message Authenticastion Code) function to the selected
text using the configured HMAC key.
Parameters(expressions not allowed):
hmacKey -
indentifies the hmacKey object to provide the
digest (hash) method and the key.
Returns: text_t
* HMAC(text_thmacKey, binary_encoding_eout_encoding)
Returns a byte sequence computed by applying the HMAC
(Hash Message Authenticastion Code) function to the selected
text using the configured HMAC key .
Parameters(expressions not allowed):
hmacKey -
indentifies the hmacKey object to provide the
digest (hash) method and the key.
out_encoding -
specifies how the resulting HMAC is encoded.</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>HTML_XML_SAFE</b></p><div><p>Apply XML safe transform and select text.
Converts '<', '>' and ';'
in the input text to ';lt;', ';gt;' and ';amp;'
respectively; other characters in the input are not modified.
This transform safeguards against XSS based attacks.
This is a read only operation.
Returns: text_t
* HTTP_HEADER_SAFE
Apply Header safe transform and select text. Converts all new line
('\n') characters present in the input text to '%0A' so that they can
safely be used in HTTP headers. This transform safeguards against
response-splitting attacks. This is a read only operation.
Returns: text_t
* HTTP_URL_SAFE
Apply URL safe transform and select text. Converts URL unsafe
characters to corresponding '%xx' values and retains the rest.
This is a read only operation.
Based on RFC2396, following are considered URL safe characters:The rest are converted to %XX encoding, 'XX' is the hex-basedAlpha-numeric characters: a-z, A-Z, 0-9 Hyphen and underscore: "-", "_" Dot: "." Exclamation mark: "!" Tilde: "~" Asterix: "*" Single quote: "'" Open and close parentheses: "(", ")" Semi-colon: ";" Colon: ":" At symbol: "@" Question mark: "?" Equals: "=" Dollar: "$" Percent: "%" Ampersand: ";" Plus: "+" Comma: "," Forward slash: "/"
representation of the input character.
If the requirement is to encode all but URL unreserved
characters, please consider using URL_RESERVED_CHARS_SAFE
method.
Returns: text_t
IS_BOOL_AT
Results in Boolean TRUE value if the Text is of boolean type.
Returns: bool_at
IS_DOUBLE_AT
Results in Boolean TRUE value if the Text is of double data type.
Returns: bool_at
IS_IPV6_AT
Results in Boolean TRUE value if the Text is of IPv6 data type.
Returns: bool_at
IS_IPV6_SUBNET_AT
Results in Boolean TRUE value if the Text is of IPv6 subnet data type.
Returns: bool_at
IS_IP_AT
Results in Boolean TRUE value if the Text is of IPv4 data type.
Returns: bool_at
IS_MAC_ADDRESS_AT
Results in Boolean TRUE value if the Text is of mac address data type.
Returns: bool_at
IS_NUM_AT
Results in Boolean TRUE value if the Text is of number type.
Returns: bool_at
IS_NUM_AT(num_format_eformat)
Results in Boolean TRUE value if the Text is of number type
with given input base.
Parameters(expressions not allowed):
format -
number format</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>IS_STRINGMAP_KEY</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>string_map_name)</p><div><p>Returns true if the string that it operates on is
present in the string map.
IGNORECASE, NOIGNORECASE - controls whether key
lookup in string map is case sensitive or not.
For example:
Parameters(expressions not allowed):
string_map_name -
identifies the string map.</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>IS_TIME_AT</b></p><div><p>Results in Boolean TRUE if the Text follows any of the
standard time formats given below, otherwise false.
Tue, 05 Nov 1994 08:12:31 GMT RFC822
Tuesday, 05-Nov-94 08:12:31 GMT RFC850
Tue Nov 4 08:12:31 1994 asctime
Returns: bool_at
IS_UNSIGNED_LONG_AT
Results in Boolean TRUE value if the Text is of unsigned long data type.
Returns: bool_at
IS_UNSIGNED_LONG_AT(num_format_eformat)
Results in Boolean TRUE value if the Text is of unsigned long data type
with given input base.
Parameters(expressions not allowed):
format -
number format</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>JWT_VERIFY_CERTKEY</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>certkey_name)</p><div><p>Verifies the signature on the input JSON Web Token (JWT), using the RSA public key in
the X.509 certificate in the specified certkey object. The token has the format
HEADER.PAYLOAD.SIGNATURE
where
public key; false if the signature is not verified
Parameters:
certkey_name -
identifies the certkey object containing an X.509 certificate
holding the RSA public key.
Results in an Undef error if the certkey object does not exist or does not
contain an X.509 certificate with an RSA public key, if the token is not
correctly formatted, or if the verification operation cannot complete.
Returns: bool_at
* JWT_VERIFY_XML(text_txml_pkey)
Verifies the signature on the input JSON Web Token (JWT), using the RSA public key
supplied by the specified XML element. The token has the format
HEADER.PAYLOAD.SIGNATURE
where
public key; false if the signature is not verified
Parameters:
xml_pkey -
an expression that supplies an <RSAKeyValue> element with
the public key.
Results in an Undef error if the XML element is invalid or does not correctly
specify an RSA public key, if the token is not correctly formatted, or if the
verification operation cannot complete.
Returns: bool_at
* LENGTH
Results in a Number Value that is the number of characters
(not bytes) in the Text object.
Returns: num_at
* LE(text_ts)
Results in Boolean TRUE value if the Text object is less than or
equal to the input argument.
Parameters:
s -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>LOCATION_LONG</b></p><div><p>Get the location qualifier from CLIENT.IP.SRC.LOCATION.GET(n)
(ISO short name) and then convert it to human readable long name.
This conversion is valid only for country names. Correct Country
qualifier value (number) in GET(n) is left up to the user as
qualifiers are user configurable.
Expression example: CLIENT.IP.SRC.LOCATION.GET(1).LOCATION_LONG
For example: Data from each expression
CLIENT.IP.SRC.LOCATION: NA.US.California.SantaClara..
CLIENT.IP.SRC.LOCATION.GET(1): US
CLIENT.IP.SRC.LOCATION.GET(1).LOCATION_LONG: United States
Returns: text_t
* LT(text_ts)
Results in Boolean TRUE value if the Text object is less than the
input argument.
Parameters:
s -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>MAP_STRING_DEFAULT_TO_KEY</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>string_map_name)</p><div><p>Returns the value corresponding to the key in the
string map. This is similar to the MAP_STRING method, but if
the key is not present then instead of returning a null
string, it returns the key itself.
Parameters(expressions not allowed):
string_map_name -
identifies the string map.</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>MAP_STRING</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>string_map_name)</p><div><p>Returns value corresponding to key in the string map.
Key is the string that it is given as input.
IGNORECASE, NOIGNORECASE - controls whether key
lookup in string map is case sensitive or not.
For example:
Parameters(expressions not allowed):
string_map_name -
identifies the string map.</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>MARK_SAFE</b></p><div><p>Mark the PIXL expression safe without applying any safe transform.</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>MAX</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>s)</p><div><p>Compares the string argument with the current string and
returns the max string.
Parameters:
s -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>MIN</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>s)</p><div><p>Compares the string argument with the current string and
returns the min string.
Parameters:
s -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>NAMES</b></p><div><p>Extracts a list of only the names from the name-value pair list.
For example the list 'a=b,c="d=e,f",g=h' will result in the list
'a,c,g'. Empty elements will be ignored.
Returns: list_t
* NAME(uint i)
Operate as Text on the name component of the specified
name-value component in the list. The index of the
name-value component given by the argument is 0-based. If
the specified index is greater than the number of components
then a zero length Text object is produced.
Parameters(expressions not allowed):
i -
Index</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>NAME_VALUE</b>(uint i)</p><div><p>Returns the element in the list identified by the parameter.
The parameter is a 0-based index in to the list. The result
is a string. If the specified index is greater than the
number of components then a zero length string is produced.
Parameters(expressions not allowed):
i -
Index</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>NAME_VALUE</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>name)</p><div><p>Operate as Text on the name-value component
in the list. The name-value component
is specified by the argument by providing the name whose
name-value is needed. The first component that matches the name
is selected. The matching process honors the IGNORECASE and
the NOIGNORECASE text modes. The URLENCODED and the
NOURLENCODED text modes are ignored.
Parameters(expressions not allowed):
name -
Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>NAME_VALUE</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>name, uint i)</p><div><p>Operate as Text on the name-value component
in the list. The name-value component
is specified by the argument by providing the name whose
name-value is needed. In a name-value list the same name can be
repeated multiple times. The Index argument controls which
occurence of the matching name-value component should be
selected. The Index is 0-based. If the Index is too big then
the Text object that is produced will have zero length. The
matching process honors the IGNORECASE and the NOIGNORECASE
text modes. The URLENCODED and the NOURLENCODED text modes
are ignored.
Parameters(expressions not allowed):
name -
Name</p><p>i -
Index</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>NE</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>s)</p><div><p>Results in Boolean TRUE value if the Text object is not equal to the
input argument.
Parameters:
s -
String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>NORMALIZE_URL</b></p><div><p>Normalize URL.
Normalizes a URL by doing "percent" decoding. See the
description for URLENCODED in the SET_TEXT_MODE
function.
This performs the equivalent of
SET_TEXT_MODE(URLENCODED).DECODE_USING_TEXT_MODE,
except that it does not change the value of the
current text mode.
Returns: text_t
PATH
Obtain the value of Path field of the cookie, which is a '/'
separated list (Multiple / are treated as single /).
If Multiple path fields are present the value associated with the
first instance is returned.
For eg:
Set-Cookie : Customer = "ABC"; PATH="/a//b/c"; PATH= "/x/y/z"
then
HTTP.RES.SET_COOKIE.COOKIE("CUSTOMER").PATH gives /a//b/c.
HTTP.RES.SET_COOKIE.COOKIE("CUSTOMER").PATH.GET(2) gives b.
Note that the quotes are stripped and value is returned.
String of zero length is returned in the following cases:
1) If the Path field is not present.
2) If the value of Path field is not present.</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/list_t/list_t.html">list_t</a></p></div></div></div><div><div><p><b>* </b><b>PKEY_ENCRYPT_PEM_NO_PADDING</b>(<a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a>pem_pkey)</p><div><p>Encrypts the input text using the RSA public key provided by the PEM string
and RSA_NO_PADDING padding method. The input text to be encrypted cannot be
longer than the public key length minus 11 bytes for padding. For example,
for a 1024-bit (128 byte) key, the input text cannot be longer than
128 - 11 = 117 bytes. An Undef error will occur if the input text is
too long. A null input will also cause an Undef error.
Returns the (unencoded binary) encrypted text, which is typically
base-64 encoded for use in a message.
Parameters:
pem_pkey -
a text expression that supplies a RSA public key in the
PEM format. If the text value is not a valid PEM RSA PUBLIC KEY
encoding, an Undef error will occur. Example (a 1024-bit public key):
"-----BEGIN RSA PUBLIC KEY-----" +"MIGJAoGBAKl5vgQEj73Kxp+9yn1v5gPR1pnc4oLM2a0kaWwBOsB6rzCIy6znwnvw" +
"CY1xRvQhRlJSAyJbloL7wZFIJ2FOR8Cz+8ZQWXU2syG+udi4EnWqLgFYowF9zK+o" +
"79az597eNPAjsHZ/C2oL/+6qY5a/f1z8bQPrHC4GpFfAEJhh/+NnAgMBAAE=" +
"-----END RSA PUBLIC KEY-----"
Returns: text_t
* PKEY_ENCRYPT_PEM(text_tpem_pkey)
Encrypts the input text using the RSA public key provided by the PEM string
and the RSA_PKCS1_PADDING padding method. The input text to be encrypted
cannot be longer than the public key length minus 11 bytes for padding.
For example, for a 1024-bit (128 byte) key, the input text cannot be
longer than 128 - 11 = 117 bytes. An Undef error will occur if the input
text is too long. A null input will also cause an Undef error.
Returns the (unencoded binary) encrypted text, which is typically
base-64 encoded for use in a message.
Parameters:
pem_pkey -
a text expression that supplies a RSA public key in the
PEM format. If the text value is not a valid PEM RSA PUBLIC KEY
encoding, an Undef error will occur. Example (a 1024-bit public key):
"-----BEGIN RSA PUBLIC KEY-----" +"MIGJAoGBAKl5vgQEj73Kxp+9yn1v5gPR1pnc4oLM2a0kaWwBOsB6rzCIy6znwnvw" +
"CY1xRvQhRlJSAyJbloL7wZFIJ2FOR8Cz+8ZQWXU2syG+udi4EnWqLgFYowF9zK+o" +
"79az597eNPAjsHZ/C2oL/+6qY5a/f1z8bQPrHC4GpFfAEJhh/+NnAgMBAAE=" +
"-----END RSA PUBLIC KEY-----"
Returns: text_t
* PKEY_SIGN_CERTKEY(text_tcertkey_name)
Generates a binary digital signature using the SHA-256 message digest function
and an RSA private key from the specified SSL certKey object.
Parameters:
certkey_name -
identifies the configured certKey object.
Results in an Undef error if the certkey object does not exist or does not
contain an RSA private key, or if the signing operation cannot complete.
Returns: text_t
* PKEY_SIGN_XML(text_txml_pkey)
Generates a binary digital signature using the SHA-256 message digest function
and an RSA private key from the specified XML element.
Parameters:
xml_pkey -
an expression that supplies an <RSAKeyValue> element with
the private key. Example:
<RSAKeyValue>
<Modulus>qXm+BASPvcrGn73KfW/mA9HWmdzigszZrSRpbAE6wHqvMIjLrOfCe/AJjXFG9CFGUlIDIluWgvvBkUgnYU5HwLP7xlBZdTazIb652LgSdaouAVijAX3Mr6jv1rPn3t408COwdn8Lagv/7qpjlr9/XPxtA+scLgakV8AQmGH/42c=</Modulus>
<Exponent>AQAB</Exponent>
<P>08udZRun1Ts4Fs7ctk8znvr6LEoqIDaAI8GpmE8MXF9OCr0Z3847kNd/loKFgRZSV4KABJPu6T2l8Pr1xma8iQ==</P>
<Q>zNjysxcIJV/J9cTpIgPp2/x1IXHT5GTH8OMuNad0qtRSLjU1QYUmmkm9QcJJAN+7h8FEXWGabySUzBrHj/IEbw==</Q>
<DP>QavUDQLLQpnPJXtVAo6CYhxOMCd68mwTxYKKNLjmC0pd54SFHllTLPE1FZU5EjK6q3nCeijonpfH+XXHeZJniQ==</DP>
<DQ>EiXOKouJzzXTQJC3TqomF7Uf81yQNxWumOqnd11kepXgyfMwyqMvLlAGEkNSEF/Bz18R3Wv+MIZ/IC3nLBt2xQ==</DQ>
<InverseQ>ocuCmz36CP+N2aGqxaU+BKD5+3RLgRq9LFhULEz2jKx0iV9r76jsAxn3sLcTYYO9eqRPy2cz74AUToD6u1Q/nw==</InverseQ>
<D>fTBD773a3GzcmgVdfZlaBLpN1ux2mf5uUVrTUQf7eVFm9egm4/tzC5A9zjC+I/oscwTH8epL3UfRLdtp05Q6pWfJBXEnGo0QmOFFBK4pLx/5JJpPGZ69ovDFEVOUHyiCfKE/g97T4WX3us0nFe1272zwGlHarM1YYwvfeE08UdE=</D>
</RSAKeyValue>
Results in an Undef error if the XML element is invalid or does not correctly
specify an RSA private key, or if the signing operation cannot complete.
Returns: text_t
* PKEY_VERIFY_CERTKEY(text_tcertkey_name, text_tsignature)
Verifies if the input text matches the specified signature generated using the
SHA-256 messge digest function and the RSA private key associated with the specified
RSA public key in the X.509 certificate in the specified certKey object.
Returns true if the signature is verified, false otherwise.
Parameters:
certkey_name -
identifies the certkey object containing an X.509 certificate
holding the RSA public key.
signature -
the binary signature.
Results in an Undef error if the certkey object does not exist or does not
contain an X.509 certificate with an RSA public key, or if the verification
operation cannot complete.
Returns: bool_at
* PKEY_VERIFY_XML(text_txml_pkey, text_tsignature)
Verifies if the input text matches the specified signature generated using the
SHA-256 messge digest function and the RSA private key associated with the RSA
public key supplied by the specified XML element. Returns true if the signature
is verified, false otherwise.
Parameters:
xml_pkey -
an expression that supplies an <RSAKeyVAlue> element with
the public key. Example:
<RSAKeyValue>
<Modulus>qXm+BASPvcrGn73KfW/mA9HWmdzigszZrSRpbAE6wHqvMIjLrOfCe/AJjXFG9CFGUlIDIluWgvvBkUgnYU5HwLP7xlBZdTazIb652LgSdaouAVijAX3Mr6jv1rPn3t408COwdn8Lagv/7qpjlr9/XPxtA+scLgakV8AQmGH/42c=</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
signature -
the binary signature.
Results in an Undef error if the XML element is invalid or does not correctly
specify an RSA public key, or if the verification operation cannot complete.
Returns: bool_at
PORT
Obtain the value of PORT field of the cookie.
Operate as a ',' separated List on the PORT component of the COOKIE.
For eg:
Set-Cookie : Customer = "ABC"; PATH="/a/b/c"; PORT= "80, 2580"
then
HTTP.RES.SET_COOKIE.COOKIE("ABC").PORT gives 80, 2580.
Note that the quotes are stripped and value is returned.
String of zero length is returned in the following cases:
1) If the Port field is not present.
2) If the value of Port field is not present.</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/list_t/list_t.html">list_t</a></p></div></div></div><div><div><p><b>* </b><b>PREFIX</b>(char c, uint i)</p><div><p>Select a prefix of the Text. The selected prefix is the
longest prefix that has at most Count (2nd argument) occurrences
of character in the 1st argument.
Parameters:
c -
Character</p><p>i -
Count</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>PREFIX</b>(uint i)</p><div><p>Select a prefix of the Text. The length of the
prefix is equal to the number in the argument. If there
aren't enough characters in the Text object then the entire
Text is selected.
Parameters:
i -
Prefix Length</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/13-0/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>REGEX_MATCH</b>(re regex)</p><div><p>Returns TRUE if and only if the text contains at least one match
of the regular expression argument. The match may occur anywhere
within the text - if you wish to "anchor" this, use "^" at the
start of the regex and/or "$" at the end of the regex.
The regular expression has to be of the format:
<code>re<delimiter>regular expression<same delimiter>
</code><br /><br /><br /><br />The regular expression cannot be bigger than 1499 characters.
The regular expression should be acceptable by the PCRE regular
expression library. Look at http://www.pcre.org/pcre.txt for
documentation on the regular expression syntax. In particular,
look at the pcrepattern man page.
There are some differences in the allowed syntax w.r.t PCRE syntax.
Backreferences are not allowed. It is recommended not to use
recursive regular expressions. The dot metacharacter matches
newlines also. Unicode is not supported. SET_TEXT_MODE(IGNORECASE)
overrides the (?i) internal option specified in the regular
expression.
The PCRE library configuration can be seen in the system log, after
executing 'nsapimgr -B" call ns_pixl_regex_show_config()"' at the
shell prompt.
Some examples: