Muninn/muninn.c

70 lines
2.3 KiB
C
Raw Normal View History

#include <ngx_config.h>
#include <ngx_core.h>
typedef struct {
ngx_uint_t read_state;
ngx_log_t *log;
ngx_pool_t *pool;
ngx_chain_t *output;
} mun_dns_request;
static ngx_command_t ngx_muninn_commands[] = {};
static ngx_core_module_t ngx_muninn_module_ctx = {
ngx_string("muninn"),
NULL, // create conf
NULL // init conf
};
ngx_module_t ngx_muninn_core_module = {
NGX_MODULE_V1,
&ngx_muninn_module_ctx, /* module context */
ngx_muninn_commands, /* module directives */
NGX_CORE_MODULE, /* module type */
NULL, /* init master */
NULL, /* init module */
NULL, /* init process */
NULL, /* init thread */
NULL, /* exit thread */
NULL, /* exit process */
NULL, /* exit master */
NGX_MODULE_V1_PADDING
};
static void (*mun_read_handler_list[])(ngx_event_t *) = {
// list of function pointers
};
static ngx_uint_t mun_read_handler_adjacency[][7] = {
/* Entries:
* { NGX_OK next handler
* NGX_ERROR next handler
* NGX_AGAIN next handler
* NGX_BUSY next handler
* NGX_DONE next handler
* NGX_DECLINED next handler
* NGX_ABORT next handler }
*
* next handler = index into mun_read_handler_list
* ALL INDEXES BETWEEN THIS AND mun_read_handler_list MUST Match
*/
};
// configuration directives to make a configuration interface
// postconfiguration hook that actually does the work of setting up an event loop
// - calls ngx_create_listening based on sockaddr and socklen
// - sets listening->handler (see ngx_http_init_connection)
// - sets listening->pool_size
// - sets all this shit (see ngx_http_add_listening)
// listening-> init connection handler
// close connection function for error handling
// set up read event handler for conn->read->handler
// set up write event handler for conn->write->handler
// make a new request obj and set c->data
// figure out how a read is actually done
// figure out how a write is actually done