(not yet ready for merge Mark/Dave, regression testing is WIP)
Changes committed to git://git.pcp.io/nathans/pcp.git master
Nathan Scott (1):
libpcp_web: rework the simple http client library
debian/libpcp-web1-dev.install | 4
man/man3/pmhttpnewclient.3 | 95 +
man/man3/pmjsoninit.3 | 10
qa/src/.gitignore | 1
qa/src/GNUlocaldefs | 10
qa/src/GNUmakefile | 8
qa/src/httpfetch.c | 131 +
src/GNUmakefile | 1
src/include/pcp/GNUmakefile | 3
src/include/pcp/impl.h | 3
src/include/pcp/pmhttp.h | 44
src/include/pcp/pmjson.h | 6
src/libpcp_http/GNUmakefile | 27
src/libpcp_http/src/.gitignore | 1
src/libpcp_http/src/GNUmakefile | 32
src/libpcp_http/src/README | 78 -
src/libpcp_http/src/http_error_codes.c | 39
src/libpcp_http/src/http_error_codes.h | 43
src/libpcp_http/src/http_fetcher.c | 887 ------------
src/libpcp_http/src/http_fetcher.h | 168 --
src/libpcp_web/src/GNUmakefile | 8
src/libpcp_web/src/exports | 10
src/libpcp_web/src/http_client.c | 679 +++++++++
src/libpcp_web/src/http_client.h | 47
src/libpcp_web/src/http_parser.c | 2437 +++++++++++++++++++++++++++++++++
src/libpcp_web/src/http_parser.h | 324 ++++
src/libpcp_web/src/jsmn.c | 1
src/libpcp_web/src/jsmn.h | 17
src/libpcp_web/src/json_helpers.c | 6
src/libpcp_web/src/private.h | 40
src/pmdas/apache/GNUmakefile | 7
src/pmdas/apache/README | 4
src/pmdas/apache/apache.c | 54
src/pmdbg/pmdbg.c | 4
34 files changed, 3873 insertions(+), 1356 deletions(-)
commit c59b6135b6b8f89197e22571e591f67a5ca195fa
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Mon Aug 15 07:22:11 2016 +1000
libpcp_web: rework the simple http client library
This commit continues Lukas' earlier work with starting
a library for common web functionality. It refactors &
extends the original libpcp_http (static-only) library
used by pmdaapache into a documented and shared library
that other PMDAs can use going forward.
Beyond that, this also adds some new functionality -
- unix domain socket support (esp. for pmdadocker);
- switches to a modern http parser implementation, which
is more general and performs better than the original;
- prefer persistent connections whenever possible;
- cater for both http 1.0 and 1.1 client requests; and
- removals global state from the original implementation;
|