]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Aki Tuomi [Wed, 22 Apr 2020 11:48:28 +0000 (14:48 +0300)]
stats: metrics - Use str_sanitize_utf8 to create submetric name
This was before sanitized to ascii letters and numbers. It is
foreseeable that e.g. usernames can contain utf-8 in future
so better retain it as utf-8 here.
Timo Sirainen [Sat, 18 Apr 2020 18:36:10 +0000 (21:36 +0300)]
submission-login: Fix printf type for SIZE in HELO reply
Fixes compiler warning with 32bit systems.
Timo Sirainen [Sat, 18 Apr 2020 18:35:04 +0000 (21:35 +0300)]
lib-index: Fix signedness compiler warning with 32bit
Timo Sirainen [Mon, 20 Apr 2020 08:44:03 +0000 (11:44 +0300)]
stats: Add missing stats_startup_time global variable to unit tests
It's not currently actually used, but this fixes linking
--without-shared-libs
Timo Sirainen [Mon, 20 Apr 2020 08:53:38 +0000 (11:53 +0300)]
stats: Change stats_settings to be static
Timo Sirainen [Mon, 20 Apr 2020 08:53:00 +0000 (11:53 +0300)]
stats: client_http_init() - Add stats_settings parameter
Stephan Bosch [Tue, 10 Mar 2020 23:43:07 +0000 (00:43 +0100)]
stats: stats-service-openmetrics - Add histogram support.
Stephan Bosch [Fri, 22 Nov 2019 18:55:48 +0000 (19:55 +0100)]
stats: stats-service-openmetrics - Make composition of response payload scalable.
Use the new HTTP server response payload ostream API.
Stephan Bosch [Fri, 22 Nov 2019 18:55:48 +0000 (19:55 +0100)]
stats: stats-service-openmetrics - Restructure metrics export for incremental output.
This way, the string buffer can be written to an output stream after every
exported (sub-) metric.
Stephan Bosch [Wed, 11 Mar 2020 18:29:15 +0000 (19:29 +0100)]
stats: stats-service-openmetrics - Fix code duplication between count and duration output metrics.
Stephan Bosch [Thu, 12 Mar 2020 15:04:38 +0000 (16:04 +0100)]
stats: stats-service-openmetrics - Record has_submetric status in request context.
Stephan Bosch [Wed, 11 Mar 2020 18:45:51 +0000 (19:45 +0100)]
stats: stats-service-openmetrics - Use basic request struct for context data.
Stephan Bosch [Wed, 11 Mar 2020 17:24:34 +0000 (18:24 +0100)]
stats: stats-service-openmetrics - Export Dovecot base metrics in a separate function.
Stephan Bosch [Sat, 23 Nov 2019 11:21:48 +0000 (12:21 +0100)]
stats: stats-service-openmetrics - Rename resp to hsresp in stats_service_openmetrics_request().
Stephan Bosch [Sat, 23 Nov 2019 11:19:14 +0000 (12:19 +0100)]
stats: stats-service-openmetrics - Rename req to hsreq in stats_service_openmetrics_request().
Stephan Bosch [Wed, 11 Mar 2020 19:04:25 +0000 (20:04 +0100)]
stats: Reformat stats-service-openmetrics.c.
Aki Tuomi [Thu, 12 Mar 2020 09:48:28 +0000 (11:48 +0200)]
stats: Do not export base metric with sub-metrics on prometheus
This can confuse prometheus.
Stephan Bosch [Fri, 15 Nov 2019 21:00:13 +0000 (22:00 +0100)]
lib-http: http_server_response_send_payload() - Reimplement with the new ostream API.
This considerably simplifies the code.
Stephan Bosch [Mon, 11 Nov 2019 22:35:17 +0000 (23:35 +0100)]
lib-http: test-http-server-errors - Add tests for the new asynchronous payload output stream API.
Stephan Bosch [Thu, 14 Nov 2019 00:00:03 +0000 (01:00 +0100)]
lib-http: test-http-payload - Add tests for the new asynchronous server payload output stream API.
Stephan Bosch [Mon, 11 Nov 2019 20:53:09 +0000 (21:53 +0100)]
lib-http: http-server-response - Replace payload output stream API implementation.
It now supports both blocking and non-blocking behavior.
Stephan Bosch [Sun, 25 Nov 2018 20:24:07 +0000 (21:24 +0100)]
lib: Create wrapper output stream.
This allows creating the stream before the actual output is available, thereby
wrapping the whole process of making a connection, doing protocol handshakes,
and submitting the request. Once there's an actual output stream, data from the
wrapper stream can be sent. Until that time, the wrapper will block or return 0
(based on whether it is blocking or not).
The wrapper stream is a partial implementation that needs to be completed (by in
heritance) by the respective protocol implementation.
Stephan Bosch [Fri, 13 Mar 2020 23:57:48 +0000 (00:57 +0100)]
lib-http: http-server-connection - Hold immune request reference while sending response.
Stephan Bosch [Fri, 13 Mar 2020 23:39:38 +0000 (00:39 +0100)]
lib-http: http-server-connection - When connection is closed, abort requests with provided reason.
Stephan Bosch [Fri, 13 Mar 2020 22:55:50 +0000 (23:55 +0100)]
lib-http: http-server-request - Add http_server_request_immune_ref/unref() and use the new API.
Makes the request immune to http_server_request_destroy() until the last immune
reference is dropped. The destruction is only delayed, so destroy is implicit
once the last immune reference is dropped.
Stephan Bosch [Fri, 13 Mar 2020 23:41:10 +0000 (00:41 +0100)]
lib-http: http-server-request - Notify response about request destroy before destroy callback is called.
Stephan Bosch [Sat, 14 Mar 2020 11:21:15 +0000 (12:21 +0100)]
lib-http: http-server-request - Don't destroy anything when request destroy is delayed.
Stephan Bosch [Fri, 13 Mar 2020 23:30:20 +0000 (00:30 +0100)]
lib-http: http-server-request - Log reason in http_server_request_abort() debug message.
Stephan Bosch [Mon, 11 Nov 2019 17:47:18 +0000 (18:47 +0100)]
lib-http: http-server-connection - Significantly simplify destroying the request payload stream.
Stephan Bosch [Sun, 17 Nov 2019 23:34:50 +0000 (00:34 +0100)]
lib-http: http-server-response - Fix management of connection idle timeout.
Stephan Bosch [Mon, 11 Nov 2019 16:45:35 +0000 (17:45 +0100)]
lib-http: http-server-response - Add response reference counting API.
Uses request reference counting internally. This is just a convenience API.
Stephan Bosch [Mon, 11 Nov 2019 16:37:55 +0000 (17:37 +0100)]
lib-http: http-server-response - Add http_server_response_request_destroy().
Stephan Bosch [Mon, 11 Nov 2019 16:33:49 +0000 (17:33 +0100)]
lib-http: http-server-response - Rename http_server_response_free() to http_server_response_request_free().
Stephan Bosch [Mon, 11 Nov 2019 16:27:45 +0000 (17:27 +0100)]
lib-http: http-server-response - Publish http_server_response_finish_payload_out() as internal API.
Stephan Bosch [Sat, 9 Nov 2019 11:52:41 +0000 (12:52 +0100)]
lib-http: http-server-response - Restructure initialization of response payload sending.
Divided it into three phases: determination of the type of payload, the
initialization of the payload output stream and the construction of the message
header.
The new structure allows for adding new payload APIs more easily.
Stephan Bosch [Sun, 17 Nov 2019 21:25:45 +0000 (22:25 +0100)]
lib-http: http-server-connection - Restructure/rename idle timeout functions.
This way, the code will better match similar code in the HTTP client implementation.
Stephan Bosch [Mon, 11 Nov 2019 16:04:33 +0000 (17:04 +0100)]
lib-http: http-server-connection - Restructure http_server_connection_input_resume().
Stephan Bosch [Mon, 11 Nov 2019 17:55:37 +0000 (18:55 +0100)]
lib-http: http-server-connection - Add http_server_connection_input_set_pending().
Stephan Bosch [Mon, 11 Nov 2019 16:01:47 +0000 (17:01 +0100)]
lib-http: http-server-connection - Publish internal API for halting and resuming connection input handling.
Stephan Bosch [Sat, 9 Nov 2019 10:02:56 +0000 (11:02 +0100)]
lib-http: http-server-connection - Add internal API for halting and resuming connection output handling.
Stephan Bosch [Mon, 11 Nov 2019 23:57:39 +0000 (00:57 +0100)]
lib-http: test-http-server-errors - Fix name of client_connection_deinit().
Stephan Bosch [Mon, 11 Nov 2019 23:56:30 +0000 (00:56 +0100)]
lib-http: test-http-server-errors - Ignore SIGPIPE.
Stephan Bosch [Mon, 11 Nov 2019 22:37:01 +0000 (23:37 +0100)]
lib-http: test-http-server-errors - Add log prefixes to distinguish client and server debug messages.
Stephan Bosch [Mon, 11 Nov 2019 21:55:54 +0000 (22:55 +0100)]
lib-http: Reformat test-http-server-errors.c.
Stephan Bosch [Fri, 15 Nov 2019 16:31:07 +0000 (17:31 +0100)]
lib-http: test-http-payload - Add tests for the old blocking server payload output API.
Stephan Bosch [Mon, 11 Nov 2019 17:01:33 +0000 (18:01 +0100)]
lib-http: test-http-payload - Properly finish blocking server payload output.
Stephan Bosch [Wed, 4 Apr 2018 01:23:15 +0000 (03:23 +0200)]
lib-http: test-http-payload - Use client request object for test_client_echo_finished() rather than index.
Stephan Bosch [Wed, 4 Apr 2018 01:18:55 +0000 (03:18 +0200)]
lib-http: test-http-payload - Use client request object for test_client_download_finished() rather than index.
Stephan Bosch [Wed, 4 Apr 2018 08:10:09 +0000 (10:10 +0200)]
lib-http: test-http-payload - echo: Manage active requests asynchronously.
Stephan Bosch [Wed, 4 Apr 2018 01:10:58 +0000 (03:10 +0200)]
lib-http: test-http-payload - Rename client request file stream field to 'file_in'.
This is the stream used to compare against the incoming payload (either download or echo).
Stephan Bosch [Sun, 25 Mar 2018 20:02:33 +0000 (22:02 +0200)]
lib-http: test-http-payload - Group test settings into a common struct.
Allows reliable initialization.
Stephan Bosch [Tue, 20 Mar 2018 18:16:33 +0000 (19:16 +0100)]
lib-http: test-http-payload - Add log prefixes to distinguish client and server debug messages.
Stephan Bosch [Wed, 4 Apr 2018 08:25:59 +0000 (10:25 +0200)]
lib-http: test-http-payload - Only switch ioloop for progress timeout when it is running.
Stephan Bosch [Wed, 4 Apr 2018 08:18:41 +0000 (10:18 +0200)]
lib-http: test-http-payload - Do not continue running ioloop when failure occurred.
Stephan Bosch [Wed, 4 Apr 2018 11:58:00 +0000 (13:58 +0200)]
lib-http: test-http-payload - echo: Add debug message for when incoming payload is finished.
Stephan Bosch [Wed, 4 Apr 2018 11:56:15 +0000 (13:56 +0200)]
lib-http: test-http-payload - echo: Properly handle empty payload.
Stephan Bosch [Wed, 4 Apr 2018 11:27:53 +0000 (13:27 +0200)]
lib-http: Reformat test-http-payload.c.
Stephan Bosch [Sun, 17 Nov 2019 23:11:43 +0000 (00:11 +0100)]
lib-http: http-server-connection - Fix http_server_connection_flush() return value.
Stephan Bosch [Sat, 9 Nov 2019 09:47:22 +0000 (10:47 +0100)]
lib-http: http-server-connection - Add support for switching to an explicit ioloop.
Stephan Bosch [Sat, 9 Nov 2019 09:47:04 +0000 (10:47 +0100)]
lib: iostream-pump - Add support for switching to an explicit ioloop.
Stephan Bosch [Sun, 25 Mar 2018 18:03:47 +0000 (20:03 +0200)]
lib-http: http-server-request - Fix blocking payload input stream error handling.
Stephan Bosch [Tue, 20 Mar 2018 01:27:19 +0000 (02:27 +0100)]
lib-http: http-message parser - Improve error for invalid payload.
Add the textual error from the payload stream (chunked transfer).
Stephan Bosch [Mon, 19 Mar 2018 18:16:11 +0000 (19:16 +0100)]
lib-http: http-message parser - Refer to message payload rather than response payload in error message.
The message parser is used for both requests and responses.
Stephan Bosch [Thu, 27 Feb 2020 00:24:03 +0000 (01:24 +0100)]
lib-http: Restructure http-message-parser.c.
Reduce line length.
Stephan Bosch [Wed, 26 Feb 2020 23:24:54 +0000 (00:24 +0100)]
lib-http: Reformat http-message-parser.c.
Stephan Bosch [Thu, 27 Feb 2020 20:48:14 +0000 (21:48 +0100)]
lib-http: http-transfer-chunked - Don't implicitly finish the output stream upon o_stream_close().
Stephan Bosch [Sat, 9 Nov 2019 12:31:52 +0000 (13:31 +0100)]
lib-http: http-server-response - Properly finish the payload output stream asynchronously.
Payload output handling is finished only after the stream is finished and
flushed completely.
Stephan Bosch [Tue, 20 Mar 2018 19:42:17 +0000 (20:42 +0100)]
lib-http: http-client-request - Properly finish the payload output stream asynchronously.
Payload output handling is finished only after the stream is finished and
flushed completely.
Stephan Bosch [Tue, 20 Mar 2018 17:23:43 +0000 (18:23 +0100)]
lib-http: http-transfer-chunked - Make sending of the trailer chunk in ostream more reliable.
Use the new o_stream_finish() functionality.
Stephan Bosch [Tue, 20 Mar 2018 17:39:32 +0000 (18:39 +0100)]
lib-http: http-transfer-chunked - Add assertions to ensure that the chunk istream position is valid.
Stephan Bosch [Tue, 20 Mar 2018 19:58:30 +0000 (20:58 +0100)]
lib-http: Reformat http-client-connection.c.
Stephan Bosch [Tue, 12 Nov 2019 01:45:52 +0000 (02:45 +0100)]
lib-http: Reformat http-transfer-chunked.c.
Stephan Bosch [Thu, 5 Jul 2018 22:01:14 +0000 (00:01 +0200)]
lib-http: http-server-response - Prevent response content stream from finishing the connection output stream.
This is not supposed to happen ever, because the connection output stream needs
to be available for several responses. This was at some point a problem in some
of the test with the new ostream payload API.
Stephan Bosch [Thu, 5 Jul 2018 21:52:51 +0000 (23:52 +0200)]
lib-http: http-client-request - Prevent request content stream from finishing the connection output stream.
This is not supposed to happen ever, because the connection output stream needs
to be available for several requests. This was at some point a problem in some
of the test with the new ostream payload API.
Stephan Bosch [Fri, 22 Nov 2019 18:51:15 +0000 (19:51 +0100)]
lib: ostream - Use local variable for stream rather than pointer in o_stream_destroy().
Problem is that a destroy callback can mess with the pointer, leading to all kinds of trouble.
Aki Tuomi [Mon, 17 Feb 2020 09:10:46 +0000 (11:10 +0200)]
stats: Export sub-metrics for openmetrics
Aki Tuomi [Mon, 17 Feb 2020 11:19:16 +0000 (13:19 +0200)]
stats: stats-service-openmetrics.c - Fix whitespace formatting
Stephan Bosch [Sun, 17 Nov 2019 09:55:49 +0000 (10:55 +0100)]
stats: stats-service - Add support for OpenMetrics/Prometheus.
Stephan Bosch [Thu, 14 Nov 2019 23:34:32 +0000 (00:34 +0100)]
stats: Add stats exporter service infrastructure.
Stephan Bosch [Thu, 14 Nov 2019 23:32:00 +0000 (00:32 +0100)]
stats: Add HTTP server support.
Stephan Bosch [Thu, 14 Nov 2019 23:28:18 +0000 (00:28 +0100)]
stats: stats-metrics - Associate each metric with its corresponding metric settings.
Stephan Bosch [Thu, 14 Nov 2019 23:24:03 +0000 (00:24 +0100)]
stats: Make service startup time available as a global variable.
Stephan Bosch [Thu, 14 Nov 2019 22:57:19 +0000 (23:57 +0100)]
stats: Make metrics struct a global variable.
Stephan Bosch [Thu, 14 Nov 2019 23:08:15 +0000 (00:08 +0100)]
stats: Make settings available as a global variable.
Stephan Bosch [Thu, 14 Nov 2019 23:05:29 +0000 (00:05 +0100)]
stats: Create stats-common.h.
Stephan Bosch [Tue, 19 Nov 2019 00:34:06 +0000 (01:34 +0100)]
lib-http: http-server-request - Add http_server_request_fail_bad_method().
Stephan Bosch [Sun, 17 Nov 2019 14:01:26 +0000 (15:01 +0100)]
lib-http: http-url - Add http_url_init_authority_from().
Stephan Bosch [Thu, 14 Nov 2019 22:33:49 +0000 (23:33 +0100)]
stats: stats-settings - Add description setting for metrics.
Stephan Bosch [Fri, 8 Nov 2019 16:11:36 +0000 (17:11 +0100)]
lib-http: http-server - Implement support for dynamically adding resources.
Before, the application would get all requests through a single main callback
and the application was always responsible for mapping request targets to a
particular application-defined HTTP resource. Now, an application can receive
requests for a certain HTTP resource through a separately-registered resource
object, which allows dynamic configuration of server resources. This way, e.g.
a generic HTTP service with several separate 'drivers' or plugin support for an
HTTP service can be implemented more easily.
Stephan Bosch [Sun, 17 Nov 2019 13:28:37 +0000 (14:28 +0100)]
lib-http: http-server-request - Provide default response for OPTIONS * request.
Stephan Bosch [Sun, 17 Nov 2019 09:52:52 +0000 (10:52 +0100)]
lib-http: http-server-connection - Run request callback in new datastack frame.
Stephan Bosch [Fri, 8 Nov 2019 16:11:36 +0000 (17:11 +0100)]
lib-http: http-server-connection - Restructure request callback handling.
Move most of it to http-server-request.
Stephan Bosch [Fri, 8 Nov 2019 16:11:35 +0000 (17:11 +0100)]
lib-http: server: Replace http_*_debug() with e_debug().
Stephan Bosch [Fri, 8 Nov 2019 16:11:34 +0000 (17:11 +0100)]
lib-http: server: Replace http_*_error() with e_error().
Stephan Bosch [Fri, 8 Nov 2019 16:11:32 +0000 (17:11 +0100)]
lib-http: server: Replace i_error() with e_error().
Stephan Bosch [Fri, 8 Nov 2019 16:11:32 +0000 (17:11 +0100)]
lib-http: server: Remove redundant debug logging checks.
Stephan Bosch [Fri, 8 Nov 2019 16:11:31 +0000 (17:11 +0100)]
lib-http: server: Add support for event API.
Stephan Bosch [Mon, 11 Nov 2019 16:20:48 +0000 (17:20 +0100)]
lib-http: http-server-request - Make http_server_request_label() a normal function.
Stephan Bosch [Sat, 9 Nov 2019 08:36:56 +0000 (09:36 +0100)]
lib-http: Reformat http-server-response.c.
Stephan Bosch [Fri, 8 Nov 2019 16:11:31 +0000 (17:11 +0100)]
lib-http: Reformat http-server-request.c.