Fortinet white logo
Fortinet white logo

Script Reference Guide

PROXY:shared_table_insert()

PROXY:shared_table_insert()

Inserts a pair of <key, value> as an entry into the shared table. If the key already exists in the table or if the table is full, the function will do nothing. The key can be a Lua string or integer while the value can be a Lua string, integer, or table.

This function will fail if the table has not been created yet; it will not trigger the creation of a new table.

Returns Boolean true if successful, otherwise, returns Boolean false.

Syntax

PROXY:shared_table_insert(table_name, key, value);

Arguments

Name Description
table_name

A Lua string as the name of the shared table. This is the unique identification of a shared table. This parameter is mandatory.

The maximum length of this table name is 255.

key

The key can be a Lua string or integer. This parameter is mandatory.

The maximum length for the string is 255.

value

The value can be a Lua string, integer, or table. The table will be serialized before storing into the shared table. This parameter is mandatory.

The maximum length of any value is 64K.

Events

Applicable in the following events:

  • RULE_INIT

  • HTTP events: HTTP_REQUEST, HTTP_RESPONSE, HTTP_DATA_REQUEST, HTTP_DATA_RESPONSE, BEFORE_AUTH, AUTH_RESULT, COOKIE_BAKE

  • SSL events: CLIENTSSL_HANDSHAKE, SERVERSSL_HANDSHAKE, CLIENTSSL_RENEGOTIATE, SERVERSSL_RENEGOTIATE

  • TCP events: TCP_ACCEPTED, TCP_CLOSED, SERVER_CONNECTED, SERVER_CLOSED, VS_LISTENER_BIND, SERVER_BEFORE_CONNECT

  • WAF events: WAF_REQUEST_BEFORE_SCAN, WAF_RESPONSE_BEFORE_SCAN, WAF_REQUEST_ATTACK_DETECTED, WAF_RESPONSE_ATTACK_DETECTED

Example

when HTTP_REQUEST { 
	table_name = "TableDemo1" 
	key1="keyString101" 
	val1="valString101" 
	ret = RPXOY:shared_table_insert(table_name, key1, val1) 
	if ret then 
	   debug("===>>shared_table_insert success:[Table:%s] [%s]=[%s]\n",table_name, key1, val1) 
	else 
	   debug("===>>shared_table_insert failed:[Table:%s] [%s]=[%s]\n",table_name, key1, val1) 
	end  
} 

Supported Version

FortiADC version 7.4.2 and later.

PROXY:shared_table_insert()

PROXY:shared_table_insert()

Inserts a pair of <key, value> as an entry into the shared table. If the key already exists in the table or if the table is full, the function will do nothing. The key can be a Lua string or integer while the value can be a Lua string, integer, or table.

This function will fail if the table has not been created yet; it will not trigger the creation of a new table.

Returns Boolean true if successful, otherwise, returns Boolean false.

Syntax

PROXY:shared_table_insert(table_name, key, value);

Arguments

Name Description
table_name

A Lua string as the name of the shared table. This is the unique identification of a shared table. This parameter is mandatory.

The maximum length of this table name is 255.

key

The key can be a Lua string or integer. This parameter is mandatory.

The maximum length for the string is 255.

value

The value can be a Lua string, integer, or table. The table will be serialized before storing into the shared table. This parameter is mandatory.

The maximum length of any value is 64K.

Events

Applicable in the following events:

  • RULE_INIT

  • HTTP events: HTTP_REQUEST, HTTP_RESPONSE, HTTP_DATA_REQUEST, HTTP_DATA_RESPONSE, BEFORE_AUTH, AUTH_RESULT, COOKIE_BAKE

  • SSL events: CLIENTSSL_HANDSHAKE, SERVERSSL_HANDSHAKE, CLIENTSSL_RENEGOTIATE, SERVERSSL_RENEGOTIATE

  • TCP events: TCP_ACCEPTED, TCP_CLOSED, SERVER_CONNECTED, SERVER_CLOSED, VS_LISTENER_BIND, SERVER_BEFORE_CONNECT

  • WAF events: WAF_REQUEST_BEFORE_SCAN, WAF_RESPONSE_BEFORE_SCAN, WAF_REQUEST_ATTACK_DETECTED, WAF_RESPONSE_ATTACK_DETECTED

Example

when HTTP_REQUEST { 
	table_name = "TableDemo1" 
	key1="keyString101" 
	val1="valString101" 
	ret = RPXOY:shared_table_insert(table_name, key1, val1) 
	if ret then 
	   debug("===>>shared_table_insert success:[Table:%s] [%s]=[%s]\n",table_name, key1, val1) 
	else 
	   debug("===>>shared_table_insert failed:[Table:%s] [%s]=[%s]\n",table_name, key1, val1) 
	end  
} 

Supported Version

FortiADC version 7.4.2 and later.