File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / lighttpd / src / plugin.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Nov 2 10:35:00 2016 UTC (7 years, 8 months ago) by misho
Branches: lighttpd, MAIN
CVS tags: v1_4_41p8, HEAD
lighttpd 1.4.41

    1: #ifndef _PLUGIN_H_
    2: #define _PLUGIN_H_
    3: #include "first.h"
    4: 
    5: #include "base.h"
    6: #include "buffer.h"
    7: 
    8: #define SERVER_FUNC(x) \
    9: 		static handler_t x(server *srv, void *p_d)
   10: 
   11: #define CONNECTION_FUNC(x) \
   12: 		static handler_t x(server *srv, connection *con, void *p_d)
   13: 
   14: #define INIT_FUNC(x) \
   15: 		static void *x(void)
   16: 
   17: #define FREE_FUNC          SERVER_FUNC
   18: #define TRIGGER_FUNC       SERVER_FUNC
   19: #define SETDEFAULTS_FUNC   SERVER_FUNC
   20: #define SIGHUP_FUNC        SERVER_FUNC
   21: 
   22: #define SUBREQUEST_FUNC    CONNECTION_FUNC
   23: #define PHYSICALPATH_FUNC  CONNECTION_FUNC
   24: #define REQUESTDONE_FUNC   CONNECTION_FUNC
   25: #define URIHANDLER_FUNC    CONNECTION_FUNC
   26: 
   27: #define PLUGIN_DATA        size_t id
   28: 
   29: typedef struct {
   30: 	size_t version;
   31: 
   32: 	buffer *name; /* name of the plugin */
   33: 
   34: 	void *(* init)                       ();
   35: 	handler_t (* set_defaults)           (server *srv, void *p_d);
   36: 	handler_t (* cleanup)                (server *srv, void *p_d);
   37: 	                                                                                   /* is called ... */
   38: 	handler_t (* handle_trigger)         (server *srv, void *p_d);                     /* once a second */
   39: 	handler_t (* handle_sighup)          (server *srv, void *p_d);                     /* at a signup */
   40: 
   41: 	handler_t (* handle_uri_raw)         (server *srv, connection *con, void *p_d);    /* after uri_raw is set */
   42: 	handler_t (* handle_uri_clean)       (server *srv, connection *con, void *p_d);    /* after uri is set */
   43: 	handler_t (* handle_docroot)         (server *srv, connection *con, void *p_d);    /* getting the document-root */
   44: 	handler_t (* handle_physical)        (server *srv, connection *con, void *p_d);    /* mapping url to physical path */
   45: 	handler_t (* handle_request_done)    (server *srv, connection *con, void *p_d);    /* at the end of a request */
   46: 	handler_t (* handle_connection_close)(server *srv, connection *con, void *p_d);    /* at the end of a connection */
   47: 
   48: 
   49: 
   50: 	handler_t (* handle_subrequest_start)(server *srv, connection *con, void *p_d);
   51: 
   52: 	                                                                                   /* when a handler for the request
   53: 											    * has to be found
   54: 											    */
   55: 	handler_t (* handle_subrequest)      (server *srv, connection *con, void *p_d);    /* */
   56: 	handler_t (* connection_reset)       (server *srv, connection *con, void *p_d);    /* */
   57: 	void *data;
   58: 
   59: 	/* dlopen handle */
   60: 	void *lib;
   61: } plugin;
   62: 
   63: int plugins_load(server *srv);
   64: void plugins_free(server *srv);
   65: 
   66: handler_t plugins_call_handle_uri_raw(server *srv, connection *con);
   67: handler_t plugins_call_handle_uri_clean(server *srv, connection *con);
   68: handler_t plugins_call_handle_subrequest_start(server *srv, connection *con);
   69: handler_t plugins_call_handle_subrequest(server *srv, connection *con);
   70: handler_t plugins_call_handle_request_done(server *srv, connection *con);
   71: handler_t plugins_call_handle_docroot(server *srv, connection *con);
   72: handler_t plugins_call_handle_physical(server *srv, connection *con);
   73: handler_t plugins_call_handle_connection_close(server *srv, connection *con);
   74: handler_t plugins_call_connection_reset(server *srv, connection *con);
   75: 
   76: handler_t plugins_call_handle_trigger(server *srv);
   77: handler_t plugins_call_handle_sighup(server *srv);
   78: 
   79: handler_t plugins_call_init(server *srv);
   80: handler_t plugins_call_set_defaults(server *srv);
   81: handler_t plugins_call_cleanup(server *srv);
   82: 
   83: int config_insert_values_global(server *srv, array *ca, const config_values_t *cv, config_scope_type_t scope);
   84: int config_insert_values_internal(server *srv, array *ca, const config_values_t *cv, config_scope_type_t scope);
   85: int config_check_cond(server *srv, connection *con, data_config *dc);
   86: int config_append_cond_match_buffer(connection *con, data_config *dc, buffer *buf, int n);
   87: 
   88: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>