Fawkes API  Fawkes Development Version
fawkes::WebServer Class Reference

Encapsulation of the libmicrohttpd webserver. More...

#include <>>

Public Member Functions

 WebServer (unsigned short int port, WebRequestDispatcher *dispatcher, fawkes::Logger *logger=0, bool enable_ipv4=true, bool enable_ipv6=true)
 Constructor. More...
 
 WebServer (unsigned short int port, WebRequestDispatcher *dispatcher, const char *key_pem_filepath, const char *cert_pem_filepath, const char *cipher_suite=WEBVIEW_DEFAULT_CIPHERS, fawkes::Logger *logger=0, bool enable_ipv4=true, bool enable_ipv6=true)
 SSL constructor. More...
 
 ~WebServer ()
 Destructor. More...
 
void process ()
 Process requests. More...
 
void setup_basic_auth (const char *realm, WebUserVerifier *verifier)
 Setup basic authentication. More...
 
void setup_request_manager (WebRequestManager *request_manager)
 Setup this server as request manager. More...
 
void setup_access_log (const char *filename)
 Setup access log. More...
 
unsigned int active_requests () const
 Get number of active requests. More...
 
Time last_request_completion_time () const
 Get time when last request was completed. More...
 

Detailed Description

Encapsulation of the libmicrohttpd webserver.

This class opens a port serving websites and calls the supplied dispatcher for requests.

Author
Tim Niemueller

Definition at line 43 of file server.h.

Constructor & Destructor Documentation

◆ WebServer() [1/2]

fawkes::WebServer::WebServer ( unsigned short int  port,
WebRequestDispatcher dispatcher,
fawkes::Logger logger = 0,
bool  enable_ipv4 = true,
bool  enable_ipv6 = true 
)

Constructor.

Parameters
portTCP port to listen on
dispatcherdispatcher to call for requests
loggeroptional logger, used to output possible run-time problems
enable_ipv4enable IPv4 support
enable_ipv6enable IPv6 support

Definition at line 58 of file server.cpp.

References fawkes::WebRequestDispatcher::process_request_cb(), fawkes::WebRequestDispatcher::request_completed_cb(), and fawkes::WebRequestDispatcher::uri_log_cb().

◆ WebServer() [2/2]

fawkes::WebServer::WebServer ( unsigned short int  port,
WebRequestDispatcher dispatcher,
const char *  key_pem_filepath,
const char *  cert_pem_filepath,
const char *  cipher_suite = WEBVIEW_DEFAULT_CIPHERS,
fawkes::Logger logger = 0,
bool  enable_ipv4 = true,
bool  enable_ipv6 = true 
)

SSL constructor.

Parameters
portTCP port to listen on
dispatcherdispatcher to call for requests
key_pem_filepathpath to PEM formatted file containing the key
cert_pem_filepathpath to PEM formatted file containing the certificate
cipher_suitewhich cipers to use for SSL/TLS connections
loggeroptional logger, used to output possible run-time problems
enable_ipv4enable IPv4 support
enable_ipv6enable IPv6 support

Definition at line 109 of file server.cpp.

References fawkes::WebRequestDispatcher::process_request_cb(), fawkes::WebRequestDispatcher::request_completed_cb(), and fawkes::WebRequestDispatcher::uri_log_cb().

◆ ~WebServer()

fawkes::WebServer::~WebServer ( )

Destructor.

Definition at line 159 of file server.cpp.

Member Function Documentation

◆ active_requests()

unsigned int fawkes::WebServer::active_requests ( ) const

Get number of active requests.

Returns
number of ongoing requests.

Definition at line 252 of file server.cpp.

References fawkes::WebRequestDispatcher::active_requests().

Referenced by fawkes::WebRequestManager::num_active_requests().

◆ last_request_completion_time()

Time fawkes::WebServer::last_request_completion_time ( ) const

Get time when last request was completed.

Returns
Time when last request was completed

Definition at line 261 of file server.cpp.

References fawkes::WebRequestDispatcher::last_request_completion_time().

Referenced by fawkes::WebRequestManager::last_request_completion_time().

◆ process()

void fawkes::WebServer::process ( )

Process requests.

This method waits for new requests and processes them when received.

Definition at line 271 of file server.cpp.

References fawkes::Thread::CANCEL_DISABLED, fawkes::Logger::log_warn(), and fawkes::Thread::set_cancel_state().

Referenced by XmlRpcThread::loop(), and WebviewThread::loop().

◆ setup_access_log()

void fawkes::WebServer::setup_access_log ( const char *  filename)

Setup access log.

Parameters
filenameaccess log file name

Definition at line 231 of file server.cpp.

References fawkes::WebRequestDispatcher::setup_access_log().

Referenced by WebviewThread::init().

◆ setup_basic_auth()

void fawkes::WebServer::setup_basic_auth ( const char *  realm,
WebUserVerifier verifier 
)

Setup basic authentication.

Parameters
realmauthentication realm to display to the user
verifierverifier to use for checking credentials

Definition at line 221 of file server.cpp.

References fawkes::WebRequestDispatcher::setup_basic_auth().

Referenced by WebviewThread::init().

◆ setup_request_manager()

void fawkes::WebServer::setup_request_manager ( WebRequestManager request_manager)

Setup this server as request manager.

The registration will be cancelled automatically on destruction.

Parameters
request_managerrequest manager to register with

Definition at line 242 of file server.cpp.

Referenced by WebviewThread::init().


The documentation for this class was generated from the following files: