900cbb4cff
MXS-2304 Move last config_get_x() functions inside class
2019-03-04 12:27:36 +02:00
6c05fa7d54
MXS-2302: Use unique_ptr for hint storage
...
This removes the need to explicitly free them.
2019-03-04 08:48:32 +02:00
d52f685ee2
MXS-2302: Rename hintfilter objects
...
Renamed the objects to camelcase variants.
2019-03-04 08:48:32 +02:00
e5299e1eab
MXS-2302: Move hint parser into its own class
...
Keeping the parser state internal to a subclass makes the code more
readable and allows the removal of most parameters. It also removes the
need to return iterator ranges from the tokenization function thus making
the Token class obsolete.
Unit testing benefits from this as well as it more closely resembles usage
in the wild as more of the code can be run without a live system.
2019-03-04 08:48:32 +02:00
3fef15e892
MXS-2302: Remove templates from parsing code
...
The templates were only used to make testing easier and upon review the
gain in testing convenience wasn't large enough to warrant its use.
2019-03-04 08:48:32 +02:00
684ddfd12d
MXS-2302: Use filter template in hintfilter
2019-03-04 08:48:32 +02:00
1d49e45036
MXS-2302: Do hint processing in a member function
...
Also fixed a unit test failure.
2019-03-04 08:48:32 +02:00
f106864659
MXS-2302: Use STL containers for hint storage
...
The named hints and the hint stack are now stored in STL containers.
2019-03-04 08:48:32 +02:00
2045ac656b
MXS-2302: Remove unused hintfilter code
...
Also moved the token types into the correct file.
2019-03-04 08:48:32 +02:00
ec234124b1
MXS-2302: Remove unused parsing code
...
Removed all code that is no longer used. The hint stack mechanism is still
in use but can, and should, be replaced with std::vector.
2019-03-04 08:48:32 +02:00
c5a8b693c3
MXS-2302: Take new hint parsing code into use
2019-03-04 08:48:32 +02:00
ca9224bf88
MXS-2302: Rewrite hint tokenization and parsing
...
The tokenization is somewhat crude but given the small amount of token
types it is acceptably efficient while still maintaining readability. The
parsing is quite simple to implement as a sort of a recursive descent
parser and is a lot more readable that the old state machine
implementation.
Extended the unit test to check that all supported hint types are parsed
correctly. The stack mechanism isn't fully covered by the unit test and it
needs to be added once the stack mechanism uses STL containers.
2019-03-04 08:48:32 +02:00
897fee715d
MXS-2302: Use const char* in hintfilter functions
2019-03-04 08:48:32 +02:00
11be8ed0f0
MXS-2302: Add comment extraction code
...
The code extracts comments from a query. All three comment types are
supported and the double dash comments properly handle invalid input
(fixes MXS-2289).
The code uses iterators to access to the query and returns a list of
iterator pairs as start and end markers to comments. This makes testing
easier as the input and output can be passed as an std::string.
2019-03-04 08:48:32 +02:00
5828c93112
MXS-2304 Convert static config parameter methods to non-static
...
Parameter handling changed in several places.
2019-02-22 15:17:55 +02:00
9fbaafea91
MXS-2304 Remove additional module parameter classes
...
Equivalent functionality is now in the basic config parameter class.
2019-02-19 13:52:44 +02:00
bd3d5bb010
MXS-2329 Use durations in throttle filter
2019-02-19 10:11:57 +02:00
f3acf77a9f
MXS-2329 Use durations in ccrfilter
...
The time window of the ccrfilter is now specified as a duration.
Internally, the time window is still always handled as seconds.
2019-02-19 10:11:57 +02:00
90e5b80b71
MXS-2050 Use global counter to detect log rotation request
...
Modules need to check the number regularly to detect a new log rotation.
2019-02-15 11:08:14 +02:00
98a081f65b
MXS-2050 Separate session log and shared log handling
...
Shared log file is accessed under a lock.
2019-02-15 11:08:14 +02:00
1fed465fdb
MXS-2246 Remove duplicate info in SERVICE and Service
...
Both of them contained fields for the service and router names.
Now the names are in SERVICE and they must be accessed via member
function.
2019-02-14 15:24:10 +02:00
2528c5fa4d
MXS-2253 Make Cache use the new duration config type
...
Internally the Cache used seconds, so some changes were needed.
2019-02-14 10:57:55 +02:00
311704cdd9
MXS-2050 Clean up session log checking
...
Also moved constants around.
2019-02-13 10:36:36 +02:00
c5763beb28
MXS-2050 Check session file rotation
...
Session log files are now regularly checked for existence. If the log file
does not exist (likely because it has been rotated), a new log file is created.
2019-02-13 10:36:36 +02:00
16641a1f46
MXS-2050 Prepare to move file handling inside router sessions
...
The sessions will need to reopen the log file if it's rotated.
2019-02-13 10:36:36 +02:00
cc06f98e42
MXS-2050 Move diagnostics and command handlers inside class
2019-02-11 14:17:43 +02:00
19ab89144b
MXS-2050 Move filter settings to a container
2019-02-08 13:49:11 +02:00
c09128111c
MXS-2050 Move more static functions to class methods
2019-02-08 13:49:11 +02:00
81f1cf567e
MXS-2050 Rearrange methods
...
Several functions moved to class methods.
2019-02-08 13:47:45 +02:00
7bbd155a7a
MXS-2050 Clean up qlafilter code
...
Move class and related declarations to a header file, run uncrustify.
2019-02-08 13:47:45 +02:00
8c5c93eb60
Remove superfluous const casts
2019-02-08 12:27:45 +02:00
3550048c19
Fix mock-framework
...
Got broken due to changes in how configuration settings are handled.
2019-02-08 12:12:31 +02:00
42b5c39f43
Merge branch '2.3' into develop
2019-02-07 10:50:27 +02:00
08a05d3ab9
Fix use of uninitialized variables
...
Building with optimization in debug mode revealed code that could in
theory result in undefined behavior.
2019-02-06 14:22:24 +02:00
78d9ef2910
MXS-2304 Remove remaining uses of config_get_string() from module code
...
The function returns a pointer to an internal string and should not be
used.
2019-02-06 12:36:23 +02:00
5ab7734e9d
MXS-2304 Add contains() to test if a parameter exists
...
Replaces uses of config_get_param() in modules either with contains()
or get_string(). The config_get_param() is moved to internal headers,
as it allows seeing inside a config setting.
2019-02-06 12:36:23 +02:00
5a409f313a
MXS-2304 Config string handling cleanup
...
Using correct functions in most cases.
2019-02-05 10:52:46 +02:00
4132c9bbbc
MXS-2304 Use get_c_str_copy instead of config_copy_string()
...
Also uses get_string() in core-code when appropriate.
2019-02-05 10:28:37 +02:00
3eb7d89c80
MXS-2304 Use get_service() and get_server()
2019-02-01 17:31:41 +02:00
882d360355
MXS-2304 Use get_size() instead of config_get_size()
2019-02-01 17:23:14 +02:00
b357717149
MXS-2304 Use get_bool() instead of config_get_bool()
2019-02-01 17:18:49 +02:00
7cb969b0d9
MXS-2271 Clean up server list parsing functions, use in monitor config
...
The functions now return the parsed array.
2019-02-01 14:59:51 +02:00
f2d2202ea3
MXS-2304 Use get_enum() instead of config_get_enum()
2019-02-01 10:29:24 +02:00
c8a84cebd0
MXS-2304 Use get_integer() instead of config_get_integer()
2019-01-31 18:12:25 +02:00
3b55893a20
Combine maxscale/buffer.h with maxscale/buffer.hh
2019-01-17 12:37:40 +02:00
d4674faa7d
Convert maxscale/query_classifier.h to .hh
...
The header was not merged with queryclassifier.hh since the latter
does not include the former.
2019-01-15 18:18:39 +02:00
f38ee85d5b
Allocate match_data only when necessary
...
If the session doesn't match the required username or remote address, the
match data is not allocated. This also doubles as a replacement of the
active member variable.
2019-01-15 14:10:55 +02:00
38879e6d0f
Move active PCRE2 data structures into RegexSession
...
The match_data object should not be used by multiple threads at the same
time as it stores the offsets into the query string for matches.
2019-01-15 14:10:55 +02:00
f9704bda9b
Rename regexfilter structures
2019-01-15 14:10:54 +02:00
07cbda7771
Merge branch '2.3' into develop
2019-01-11 13:06:16 +02:00