Embedding Civetweb ========= Civetweb is primarily designed so applications can easily add HTTP server functionality. For example, an application server could use Civetweb to enable a web service interface for automation or remote control. Files ------ There is no library, it is just a small set of files to compile in to the application. #### Required Files 1. HTTP Server API - civetweb.c - civetweb.h 2. MD5 API - md5.h - md5.c 3. C++ Wrapper (Optional) - cpp/CivetServer.cpp - cpp/CivetServer.h #### Other Files 1. Reference C Server - main.c 2. Reference C++ Server - cpp/example.cpp Quick Start ------ By default, the server will automatically serve up files like a normal HTTP server. An embedded server is most likely going to overload this functionality. ### C - Use mg_start() to start the server. - Use mg_stop() to stop the server. - Use mg_start() options to select the port and document root among other things. - Use mg_start() callbacks to add your own hooks. The *begin_request* callback is almost always what is needed. ### C++ - Create CivetHandlers for each URI. - Register the handlers with CivertServer::addHandler() - CivetServer starts on contruction and stops on destruction. - Use contructor options to select the port and document root among other things. - Use constructor callbacks to add your own hooks. LUA Support ------ LUA is a server side include functionality. Files ending in .la will be processed with LUA. ##### Add the following CFLAGS - -DLUA_COMPAT_ALL - -DUSE_LUA - -DUSE_LUA_SQLITE3 ##### Add the following sources - mod_lua.c - lua-5.2.1/src + lapi.c + lauxlib.c + lbaselib.c + lbitlib.c + lcode.c + lcorolib.c + lctype.c + ldblib.c + ldebug.c + ldo.c + ldump.c + lfunc.c + lgc.c + linit.c + liolib.c + llex.c + lmathlib.c + lmem.c + loadlib.c + lobject.c + lopcodes.c + loslib.c + lparser.c + lstate.c + lstring.c + lstrlib.c + ltable.c + ltablib.c + ltm.c + lundump.c + lvm.c + lzio.c - build/sqlite3.c - build/sqlite3.h - build/lsqlite3.c