Commit Graph

138 Commits

Author SHA1 Message Date
bed28db3fd Merge branch '2.3' into develop 2019-05-24 13:55:47 +03:00
a12a0af887 Merge branch '2.3' into develop 2019-05-15 15:47:36 +03:00
0f85baabe1 MXS-2491 Remove global destructor inter-dependency
log.cc:this_unit.slogger depends upon logger.cc:this_unit.ident.
Depending on which one is destructed first, there will be a crash
or then not.

It seems that the destruction order when returning from main()
is not necessarily the same as that when calling exit() in main,
as this bug is triggered with compilers versions and not with other.
2019-05-15 15:46:20 +03:00
de95fcc9d6 Format rest of the sources 2019-05-10 10:31:12 +03:00
e3b5ba9620 MXS-1973 Support reverse DNS for client hostnames in MaxCtrl
May slow maxscale down when used. Only supported for "list sessions",
"show sessions" and "show session <id>".
2019-05-08 15:04:44 +03:00
5ab0876a5f MXS-2468 Allow an http::Async object to be reset 2019-05-03 14:57:41 +03:00
ded4050997 Add missing header to test_host_class 2019-04-29 15:59:41 +03:00
d186244261 Add test for class Host 2019-04-25 15:27:10 +03:00
8b7b7b4d3f Add a streamable class (Host) that represents an address and port,
or a unix domain socket.
2019-04-24 12:38:04 +03:00
533d5b522b MXS-1662 Cleanup PAM conversation function
Check fuction call counter properly.
2019-04-15 13:28:44 +03:00
969ef5f9f7 MXS-1662 Add PAM authentication option for admin users
If normal authentication fails and a PAM service is defined, PAM authentication
is attempted. Separate services can be set for read-only users and admin-level
users.
2019-04-15 13:28:44 +03:00
74634abc80 MXS-1662 Move PAM authentication function into maxbase
The same code can be used for REST-API authentication.
2019-04-09 14:41:40 +03:00
ffd2d80ea0 Link with rt
On CentOS 6 (glibc 2.12) you must explicitly link with rt for
clock_gettime.
2019-04-08 11:24:30 +03:00
d40e29d5f6 A little houskeeping.
Increasing counter sizes from int to long for averages.
Rename random functions to end with _co instead of _exclusive to
indicate range [close, open[, and to allow future suffixes oc, cc and oo.
2019-03-27 13:15:14 +02:00
72d02d33c0 MXS-2314 Remove unnecessary worker states
The removed states were not used for anything useful.
2019-02-11 13:03:18 +02:00
b18467e17e Add direct mode to Worker::execute()
Sometimes that's what you want, but primarily for completeness'
sake and it makes AUTO more sensical as it essentially chooses
beteen DIRECT and QUEUED mode.
2019-01-31 10:04:55 +02:00
640bf40eed MXS-2219 Make a non-URL async HTTP request READY
An asynchronous HTTP request for 0 URLs is immediately
in READY state.
2019-01-17 11:11:21 +02:00
9823fe2651 MXS-2247 Add support for random number generation to maxutils
Classes for xorshift and std random. Add a random number generator to Worker.
2019-01-10 16:51:32 +02:00
839b9b781d MXS-2219 Differentiate between READY and ERROR with http::Async
An async http operation that has not been initiated is READY,
while an operation that cannot be initated is ERRORed.
2019-01-07 12:59:27 +02:00
1fa0144b0b Fix broken http test 2018-12-20 09:32:51 +02:00
910777efbc MXS-2208 Address review comments
Also report errors in more detailed manner.
2018-12-18 15:16:45 +02:00
3eca3ff7dc MXS-2208 Add init/finish functions for mxb::http
Init/finish needed, as curl otherwise will leak memory.
2018-12-18 15:16:45 +02:00
0d733bb1bb MXS-2208 Implement synchronous GET in terms of asynch 2018-12-18 15:16:45 +02:00
847f53b21b MXS-2208 Introduce asynchronous GET
A multi HTTP GET can now be performed so that the caller
drives the polling of results.

This can now be used so that inside a monitor worker, the delays
are handled using delayed calls. Consequently, the monitor worker
event loop can remain responsive even though the Clustrix nodes
are being polled.
2018-12-18 15:16:45 +02:00
38a0d6a2df MXS-2208 If no sockets, then we use timeout
If no sockets, then we use timeout; not the other way around.
2018-12-18 15:16:45 +02:00
1d338f3c4a MXS-2208 Add synchronous multi GET
Now possible to GET multiple URLs in one go. Behind the scenes
the getting is done asynchronously and in parallell.
2018-12-18 15:16:45 +02:00
da3742324a MXS-2208 Now use trim() from maxbase 2018-12-18 15:16:45 +02:00
1b5b789342 MXS-2208 Move trim-functions from maxscale to maxbase
log.h now includes string.hh, which is conceptually wrong, but
log.h will shortly disappear and be superceded by log.hh.
2018-12-10 12:50:07 +02:00
8d77ddec63 MXS-2208 Add simple Http library
- Built on top of Curl
- Currently only GET
2018-12-05 12:48:42 +02:00
192562d930 MXS-2196: Don't force epoll flags
The epoll event flags are now fully controlled by the caller of the
Worker::add_fd function. This makes the mechanism more generic and allows
both edge triggered and level triggered behavior.
2018-12-04 11:50:43 +02:00
760f2ff34c Move alloc.cc to maxbase
Only renames the functions. Macro names are left as is to keep the diff
small.
2018-12-03 10:20:45 +02:00
a1e1ac0012 Move string_printf to maxbase
Can be used in tests.
2018-11-29 12:21:40 +02:00
ae1a062a58 MXS-2160 Use CLOCK_MONOTONIC_COARSE
We measure time in milliseconds and as CLOCK_MONOTONIC_COARSE
provides 1ms granularity we should use that since it is cheaper.
2018-11-13 16:44:30 +02:00
1108132cbd MXS-2057 Do not require systemd libraries
Exclude systemd usage if the library is not installed.
Only excluding what is necessary. This keeps the object size the
same and still compiles most of the code.
2018-11-09 16:45:59 +02:00
f29e5b65de MXS-2057 systemd watchdog
Systemd wathdog notification at a little more than 2/3 of the
systemd configured time. In the service config (maxscale.service)
add e.g. WatchdogSec=30s to set and enable the watchdog.
For building: install libsystemd-dev.

The next commit will modify cmake configuration and code to
conditionally compile the new code based on existence of libsystemd-dev.
2018-11-09 16:45:59 +02:00
c692c864e2 MXS-2078 Take new statistics into use 2018-11-08 10:44:32 +02:00
13a0390de6 MXS-2078 Add IntervalTimer
IntervalTimer is used for accumulating intervals (i.e. durations) over sections of code.
2018-11-08 10:44:32 +02:00
c45059f83d Fix size formatting
The sizes were rounded up instead of down. This caused gigabyte sizes to
be shown in the terabyte range.
2018-10-20 14:33:42 +03:00
7d03bee648 Add type formatting helpers
Created the <maxbase/format.hh> header that contains various helper
functions for formatting values into human readable forms. Currently only
binary to human readable size conversion is implemented.
2018-10-19 11:20:29 +03:00
75ea1b6ea1 Fix formatting of new(std::nothrow)
The code previously formatted everything as `new( std::nothrow)`.
2018-10-04 21:50:44 +03:00
268e689dc5 Fix code for warnings: unused-but-set-variable and warn_unused_result. 2018-10-03 16:33:24 +03:00
75f9921ca2 Merge branch '2.2' into develop 2018-10-02 10:18:09 +03:00
c65edd1298 Enhance StopWatch
Clean up, comments and enhancements. StopWatch lap() didn't mean lap-time, but elapsed time. Changed meaning to lap-time and added split() for split-time.
2018-10-01 09:30:24 +03:00
df3d08b959 Remove spammy debug print
The code was ran even when nothing was really going on and constantly wrote
to the log.
2018-09-26 14:03:08 +03:00
1063b4a6be Add missing cancel callback for delayed call.
And make the function a little neater.
2018-09-26 11:21:55 +03:00
5132339b7b Fix race condition.
Change a counter (s_next_delayed_call_id) in Worker from class static to
class member to avoid race conditions on the variable.
2018-09-25 17:07:06 +03:00
a94081067f Move Average into average.hh
Moved the class to a more appropriate place.
2018-09-24 12:07:49 +03:00
71ffef5708 Partially revert 4ba011266843857bbd3201e5b925a47e88e1808f
Add back leading operator enforcement.
2018-09-20 15:57:30 +03:00
2e069fa892 MXS-1632: Take mxb::atomic::add into use
The function now mostly replaces the use of atomic_add_ functions declared
in atomic.h.
2018-09-18 15:21:54 +03:00
108638b0cf Format with Uncrustify 0.67 2018-09-10 13:31:39 +03:00