Barracuda Application Server C/C++ Reference
NO
The Lua Server Pages (LSP) Plugin.

Detailed Description

balua.h is header file that provides the public symbols for creating, destroying and configuring an LSP VM.

Creating and initializing A Barracuda Lua VM consists of calling balua_create() and calling balua_loadconfig().

See the C startup source code for the two following examples for more information on how to initialize the LSP plugin:

Collaboration diagram for The Lua Server Pages (LSP) Plugin.:

Classes

struct  BaLua_param
 The startup and runtime parameters for a Barracuda Server Lua VM. More...
 
struct  baio_t
 
struct  LSharkSSLFuncs
 
struct  LHttpDir
 

Macros

#define balua_create(p)   _balua_create(p, BALUA_VERSION)
 Creates the Barracuda Lua VM.
 
#define balua_getmutex(L)   balua_getparam(L)->mutex
 Get the SoDisp mutex.
 
#define balua_releasemutex(m)   if(m) ThreadMutex_release(m)
 Release mutex 'm'.
 
#define balua_setmutex(m)   if(m) ThreadMutex_set(m)
 Set mutex 'm'.
 

Functions

BA_API void * baLMalloc (lua_State *L, size_t size)
 Same as baMalloc, but does an emergency GC if baMalloc returns NULL.
 
BA_API lua_State * _balua_create (const BaLua_param *p, int version)
 Creates the Barracuda Lua VM; Note: use macro balua_create(BaLua_param).
 
BA_API int balua_usertracker_create (lua_State *L, U32 noOfLoginTrackerNodes, U32 maxNumberOfLogins, BaTime banTime)
 Install Lua bindings for the default login tracker. More...
 
BA_API int balua_loadconfig (lua_State *L, struct IoIntf *io, const char *filename)
 Load a Lua script and run the script at startup. More...
 
BA_API int balua_loadconfigExt (lua_State *L, struct IoIntf *io, const char *filename, int nresults)
 Load a Lua script and run the script at startup. More...
 
BA_API IoIntfbalua_iointf (lua_State *L, const char *name, struct IoIntf *newio)
 Register an IoIntf instance with the Lua VM. More...
 

Function Documentation

◆ balua_iointf()

BA_API IoIntf * balua_iointf ( lua_State *  L,
const char *  name,
struct IoIntf newio 
)

Register an IoIntf instance with the Lua VM.

You may install any number of I/O interfaces, but each I/O interface must be registered with a unique name.

Parameters
Lthe Lua state.
namethe name makes it possible to fetch the I/O using the Lua function ba.openio(name).
newiothe IoIntf instance, such as DiskIo, ZipIo, NetIo, or your own implementation.

◆ balua_loadconfig()

BA_API int balua_loadconfig ( lua_State *  L,
struct IoIntf io,
const char *  filename 
)

Load a Lua script and run the script at startup.

You may call this function multiple times during startup.

Parameters
Lthe Lua state.
iothe I/O interface to use when loading script 'filename'.
filenamethe path+name of the Lua script. The name defaults to .config if this parameter is NULL.

◆ balua_loadconfigExt()

BA_API int balua_loadconfigExt ( lua_State *  L,
struct IoIntf io,
const char *  filename,
int  nresults 
)

Load a Lua script and run the script at startup.

You may call this function multiple times during startup. This function is extends balua_loadconfig and enables you to get return values from the script.

Parameters
Lthe Lua state.
iothe I/O interface to use when loading script 'filename'.
filenamethe path+name of the Lua script. The name defaults to .config if this parameter is NULL.
nresultsvalue passed to lua_pcall

◆ balua_usertracker_create()

BA_API int balua_usertracker_create ( lua_State *  L,
U32  noOfLoginTrackerNodes,
U32  maxNumberOfLogins,
BaTime  banTime 
)

Install Lua bindings for the default login tracker.

See one of the two following C code examples for how to use this function: MakoMain.c or LspAppMgr.c

Parameters
noOfLoginTrackerNodestracker size
maxNumberOfLoginshow many login attempts before user (IP address) is banned
banTimehow long in seconds to ban an IP address
See also
LoginTracker LoginTrackerIntf