7144 Commits

Author SHA1 Message Date
Johan Wikman
8d7653bdff Compile listener and ssl as C++ 2017-03-24 11:11:15 +02:00
Johan Wikman
b04e8b93c9 Compile statistics, thread, users and util as C++ 2017-03-24 11:05:55 +02:00
Johan Wikman
b5c44be4c8 Add missing MXS_[BEGIN|END]_DECLS 2017-03-24 10:59:05 +02:00
Johan Wikman
65e36a81bf Compile spinlock.c as C++ 2017-03-24 10:58:19 +02:00
Johan Wikman
bb1b7f9755 Compile server, service and session as C++ 2017-03-24 10:52:09 +02:00
Johan Wikman
ec39b54dea Compile secrets.c as C++ 2017-03-24 09:51:56 +02:00
Johan Wikman
a068c53286 Compile resultset.c as C++ 2017-03-24 09:45:42 +02:00
Johan Wikman
503c760848 Compile random_jkiss.c as C++ 2017-03-24 09:42:38 +02:00
Johan Wikman
a9c2580da4 Compile poll.c as C++ 2017-03-24 09:35:11 +02:00
Johan Wikman
d19ae82a63 Fix rebase 2017-03-24 09:29:53 +02:00
Johan Wikman
83fd79e280 Compile queuemanager.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
6acd58e86c Compile monitor.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
640f0d5139 Compile modutil.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
44fe995574 Compile mlist.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
419c55e5be Compile misc.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
604526667c Compile maxscale_pcre2.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
96df523ce4 Compile load_utils.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
a095c80d24 Compile housekeeper.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
ebf22eee8f Compile hint.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
d257a8a905 Compile hashtable.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
90f56e9dde Compile path.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
77bc2dd7bb Compile externcmd.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
9a22d1cb92 Compile filter.c as C++
The contents of the existing filter.cc was copied into filter.c that
subsequently was renamed to filter.cc.

The way the session is called as the last filter in the filter chain
is really dubious and ought to be rearranged so that the blind casting
of a session to a filter and back is not needed.
2017-03-24 09:21:20 +02:00
Johan Wikman
db18e19d3c Compile dcb.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
71ae3cf524 Compile config_runtime.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
74085978b4 Compile config.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
c84c2dcfbd Compile authenticator.c and buffer.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
462b572600 Compile atomic.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
acc61ed13d Compile alloc.c as C++ 2017-03-24 09:21:20 +02:00
Johan Wikman
f82232eac6 Compile adminusers.c as C++ 2017-03-24 09:21:20 +02:00
Markus Mäkelä
1a8ff4b813 MXS-1198: Add configurable listener retry interval
The maximum listener retry interval is now configurable.
2017-03-22 15:52:59 +02:00
Markus Mäkelä
dd94374057 Make the getCapabitilies entry point optional
The getCapabilities entry point is no longer required as long as all the
relevant capabilities are added to the static module parameters.
2017-03-22 15:47:37 +02:00
Markus Mäkelä
7bd05d4581 Merge branch '2.1' into develop 2017-03-22 15:20:21 +02:00
Johan Wikman
27d81cda6a Merge branch '2.1.1' into 2.1 2017-03-22 13:06:41 +02:00
Johan Wikman
2d00fe1019 Remove references to old release notes 2017-03-22 13:02:18 +02:00
Johan Wikman
d70dad260a Implement collecting behaviour in qc_sqlite
By default, only the essentials - the type and the operation - of
a statement will be collected and only if fields, tables, functions
and databases are explicitly asked for, will they be collected.
However, a statement will be parsed at most twice; if parsing is
needed a second time then all information will be collected.

If it is known that some particular information is needed, then
qc_parse() can be called explicitly to ensure it is collected
at first parsing.
2017-03-22 11:09:36 +02:00
Johan Wikman
d0a9571da0 Introduce new qc_parse() prototype
It is now possible to specify what information the caller is interested
in. With this the cost for collecting information during the query parsing
that nobody is interested in can be avoided.
2017-03-22 11:09:36 +02:00
Johan Wikman
441b0204bf Update cache documentation 2017-03-22 11:04:48 +02:00
Johan Wikman
15a22ec295 Do not use shared PCRE2 match data
The match data needs to be unique for each thread, so for the time
being it is created whenever it is needed. A more performant (although
possibly to a negigible amount) solution would be to have a separate
match data for each thread, but that will have to wait for 2.2.
2017-03-21 15:21:13 +02:00
Johan Wikman
117534d288 Use JIT in regex matching if available 2017-03-21 15:21:13 +02:00
Johan Wikman
17057ef340 Use thread specific pcre2 match data
For 2.2 a worker/thread object need to be passed around so that
not everyone need to create their own thread id mechanism.
2017-03-21 15:21:13 +02:00
Johan Wikman
3670edbc78 Spinlock cleanup
- Non-GCC intrinsics alternative implementation removed. Let's worry
  about the absence of the intrinsics once/if that becomes relevant.
- Spinlock release now performed using __sync_lock_release, as per
  svoj's advice.
- while-looping on the variable used as lock removed, so it no longer
  need to be volatile.
- Boolean function returns bool.
- Size of profiling counters increased.
- Risk for division-by-zero removed.
- Documentation moved from implementation to header.
2017-03-21 15:19:10 +02:00
Johan Wikman
4ca3c19ee3 Use [true|false] instead of [TRUE|FALSE] 2017-03-21 15:17:44 +02:00
Markus Mäkelä
83d696cdde Enable JIT support for PCRE2
The bundled PCRE2 library was built without JIT support.
2017-03-21 13:12:54 +02:00
Johan Wikman
b81c86f228 A rules object may be empty 2017-03-21 10:35:30 +02:00
Johan Wikman
df09dd2043 Update Cache documentation 2017-03-21 10:35:30 +02:00
Markus Mäkelä
ff60500d06 Document router module object
The router module object is now documented with similar documentation to
that of the filter module object.
2017-03-20 12:22:57 +02:00
Markus Mäkelä
ab4c738c3c MXS-1167: Skip loading of users for internal services at startup
When MaxScale is being started and the users are loaded, the MySQL
authenticator should not load the database users for internal services
abstracted as servers.

The loading of users at startup for internal services is avoided because
the startup is done in a single thread context and the internal services
have not yet been started.

The delayed loading of users will cause the authentication to fail when
the first client connect. This triggers the reloading of the users and the
second attempt at authentication will succeed. All of this is hidden from
the end user.
2017-03-20 12:16:29 +02:00
Markus Mäkelä
0b5d164855 MXS-1167: Skip permission checks for internal services
If a server points to a local MaxScale listener, the permission checks for
that server are skipped. This allows permission checks to be used with a
mix of external servers and internal services.
2017-03-20 11:10:55 +02:00
Markus Mäkelä
2e6e8574a4 MXS-864: Document build problems with PCRE2
Added a note about PCRE2 and possible problems that occur when CMake is
configured multiple times.
2017-03-20 11:10:55 +02:00