Core: new argument '-b' to print build information to stdout

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Event: if wakeup fails, do not stop the server, just warn and return -1

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Event: check that socket is alive before trigger hooks.

When the events take place in the worker epoll queue, the timeout
routine can remove and inactivate a client session, but sometimes
a write event reporeted by the same epoll_wait() loop can be queued
and can cause some inconsistences.

For safety this patch makes the read and write event connection hooks
to validate the epoll state before to proceed.

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Event: move event check to plugin logic

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Event: verbose message on error when waking up connection

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Core: on segfault... abort

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
HTTP: add support for OPTIONS method

Signed-off-by: Nil Croustillac <nilcroustillac@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Core: initialize clock before load plugins.

Some plugins could use the core clock API or buffer cache to perform
some timing operations (or format strings), before this patch the plugin
would crash as the clock was not initialized before spawn it.

This patch moves the sequential initialization before to load the plugins.

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Mimetype: replace bsearch by red-black-tree (50% improvement)

The mime types lookup algorithm was using a qsort()ed array plus a
binary search with two main arrays: a top ten list (common) and another
one for the rest.

Even the solution was optimal for some cases, it have a huge dependency
of a righ configuration of the top ten list, and considering the support
of virtual host and different types of content we need a more generic
solution that scale and optimize for all cases.

This patch deprecate the top-ten list and replace the binary search by a
red-black-tree solution, looking at the results after a benchmark we can
see the following:

                       +-----------+-----------------+--------+
                       | bsearch   | red-black-tree  |   gain |
 +---------------------+-----------+-----------------+--------+
 |  mk_mimetype_find   |   11.54   |           5.82  |   ~50% |
 +---------------------+-----------+-----------------+--------+

More graphical details here:

 http://edsiper.linuxchile.cl/mimetype_performance_improvement_001.png

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
HTML: refactor index page with Bootstrap 3

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Core: upgrade red-black-tree implementation to the latest on Linux Kernel

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
HTML: image logo scaled

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
HTML: little style changes

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Debian: update changelog

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Mimetype: use also linked list and adapt mk_lib

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Configure: add new htdocs/ files

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Move roadmap to v1.4

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Mimetype: fix linking to global linked list head

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Socket: on IP format error, use errno code number

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Red-Black-Tree: remove unused augmented function

Signed-off-by: Eduardo Silva <edsiper@gmail.com>