The class handler_base is a base class for all handlers. All handlers
should inherit and implement the handle method.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
The request object was originally taken from the boost server example
and was modified in the OSv http implementation.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This patch adds some of the common functionalities from std:string to
sstring.
It adds length (implement by size() )
It define the constant npos to indicate no possition.
It adds the at (reference and const reference)
It define the find char and find sstring methods
and the substr method
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
need merge sstring
We would like to extend the httpd capabilities and use it for the API
implementation.
The first step is to make it a library with main that calls an instanse.
This break the implementation to a header file, implementation and main,
that simply calls the implementation.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
1. Moved all signal handler functions/members into a wrapping class
2. Block all signals on desctuctor call (resetting of signal handler is
not enough since some signals will arive even if we reset signal handler
to SIG_DFL e.g. timer)
Fixes use-after-free when a signal is caught after the reactor is
destroyed.
Signed-off-by: Shlomi Livne <shlomi@cloudius-systems.com>
engine() cannot be called before the local_engine was constructed because it
dereferences the pointer local_engine to create a reference.
Consequently, the following error can be seen while running fileiotest:
./core/reactor.hh:854:13: runtime error: reference binding to null pointer of
type 'struct reactor' ASAN:SIGSEGV
Let's switch the test to use app_template.
Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com>
merge_cells() always used the regular column_definition, even when called
for a static row.
Fix by parametrizing it with a method to get the column_definition.
With a collection, setting two separate elements in a collection would
cause the second to override the first. This also applies, with much
smaller effect, to normal cells (for example, updating the same counter
twice, or issuing two updates to the same cell but with different timestamps,
via thrift).
Fix by merging the two values rather than replacing the old one.
This value is passed as an opaque parameter of the rte_pktmbuf_pool_init().
It should equal to a buffer size + RTE_PKTMBUF_HEADROOM.
The default value is 2K + RTE_PKTMBUF_HEADROOM.
PMD is using this value minus RTE_PKTMBUF_HEADROOM for configuring the Rx
data buffers' size when it configures the Rx HW ring.
Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
Since merging cells is a different operation for atomic cells and
collections, move it into compare_for_merge(), which is where we check
the column type. Rename compare_for_merge to merge_column(), since it
now does more than compares.