Commit Graph

180 Commits

Author SHA1 Message Date
52ae676fa4 Add cast when converting to size_t from double. 2016-02-18 13:19:08 +02:00
e1273a2e5f Clean skygw_utils.
Not finished yet. There are e.g. a number of functions that are only used
by the log manager. They could just as well be moved as private functions
to log_manager.cc.
2016-02-09 17:43:55 +02:00
38db155fef Make mlist a separate component.
Mlist is now made available as a separate component instead of
being a part of skygw_utils.
2016-02-09 17:31:15 +02:00
2692d1081c Add slist.
Slist removed from skygw_utils and added as a separate component.
Nobody seems to be using it, so it could also simply be removed.
Left in place for the time being.
2016-02-09 15:30:27 +02:00
1f241a5ed1 Rearrange libraries and build files.
This is the first change in an attempt to arrange the linking so that
more errors are detected at link-time.

- All files in server/core but for gateway.c are linked to one shared
  library called maxscale-common.
- The files log_manager/log_manager.cc and utils/skygw_utils.cc are
  built into maxscale-common as well.
- MaxScale itself consists now only of gateway.c and is linked with
  maxscale-common.
- All plugins link with maxscale-common.
- All executables link in addition with {EMBEDDED_LIB}.

After this change, the change (MXS-517) where query_classifier is the
only component that uses ${EMBEDDED_LIB} and the rest mysqlclient can
be made much cleaner.

After a few additional steps, all shared libraries can be linked with
the linker flags "-Wl,-z,defs", which directs the linker to resolve
all symbols. That will require that all shared libraries list all the
libraries they need, but will at the same time ensure that any
missing symbols are detected at link-time and not at run-time.
2016-01-22 23:26:17 +02:00
5ac1ab412e Formatted utils library sources
Formatted all utils library sources according to the style guide.
2016-01-22 18:55:54 +02:00
54ca1ab2de Canonicalized queries remove non-executable comments
The comments which do not alter the functionality of a query are now removed
from canonicalized queries.

Also fixed missing semicolon in the comment removal regex and added tests
for comment removal.
2016-01-11 17:14:57 +02:00
8ee110efa8 Fixed canonicalization and added more tests
Fixed mistakes in the canonicalization regular expressions and altered the
functions to use a source and destination buffers. This reduces the amount
of memory allocations that take place.

Added more canonical query tests to the internal test suite.
2016-01-11 17:14:44 +02:00
e0c84e0fe3 Added removal of MySQL style comments to query canonicalization.
Also fixed minor issues with the canonicalization regular expressions.
2016-01-11 17:13:14 +02:00
9c9e30fa08 Fixed value replacement and added more tests for canonicalization of queries
The value replacement was not taking session or system variables into notice.
2016-01-11 17:09:40 +02:00
995ed8c9d2 Improved query canonicalization
The query does not need to be parsed for it to be canonicalized and the parsing
uses the PCRE2 library. The regular expressions were changed so that only one
call to the function which replaces literal unquoted values is made.
2016-01-11 17:08:03 +02:00
b01e8b2eec Added utils library initialization function and improved replace_quoted
Currently the initialization function only prepares PCRE2 patterns for use.
Added the call to the new utils_init() function to MaxScale and all relevant
tests.

The replace_quoted now uses a shared PCRE2 pattern which should remove some
of the overhead of the function.
2016-01-11 17:04:39 +02:00
080a9ebc9d PCRE2 is now statically linked
Since the PCRE2 library was always going to be a part of MaxScale, there was
no real reason to have it as a shared library apart from smaller binaries.
2015-12-29 10:09:38 +02:00
a67a637b11 Ensure that calculated length is an integer. 2015-12-07 15:12:32 +02:00
a8535f42af Remove all traces of logfile_t
The earlier log file based approach for enabling and disabling
messages has now been completely replaced with the syslog priority
based approach.

Similarly as with log files before it is now possible to enable
and disable a log priority for a particular session, even though
it apparently has not been used much.

The local test-programs of the logging has got minimal attention
only to make them compile. They should get an overhaul as they did
not work before either.
2015-11-23 19:10:53 +02:00
6164b7f301 Fixed unsafe use of localtime
Since localtime is not thread-safe it should not be used in multithreaded
contexts. For this reason all calls to localtime were changed to localtime_r
in code where concurrency issues were possible.

Internal tests were left unchanged because they aren't multithreaded.
2015-11-19 17:17:16 +02:00
3e3770fa82 ss_dassert() no longer uses skygw_log_write.
Use of skygw_log_write() in ss_dassert and ss_info_dassert replaced
with the use of MXS_ERROR(). In addition, ss_dassert and ss_info_dassert
are now expressions that require a trailing ;.
2015-11-18 14:56:08 +02:00
b22d40b06b Fixed PCRE2 beng built when CMake is configured
The bundled PCRE2 library will be built as a separate target and configuring
CMake no longer builds it. Instead, it will only be built when it is out of date.
This requires all targets to declare that they depend on the pcre2 target in
order for it to be built.
2015-11-16 13:59:47 +02:00
6b88b6b17f Merge branch 'develop' into MXS-329-develop-20151111 2015-11-13 07:48:59 +02:00
05fbdb1b76 Log: skygw_log_flush replaced with mxs_log_flush.
skygw_log_flush replaced with mxs_log_flush and skygw_log_sync_all
with mxs_log_flush_sync.
2015-11-12 18:28:34 +02:00
dee20fe077 Merge remote-tracking branch 'origin/develop' into MXS-329-develop-20151111
# Conflicts:
#	server/core/CMakeLists.txt
#	server/core/buffer.c
#	server/core/service.c
#	server/modules/filter/tee.c
#	server/modules/monitor/mysql_mon.c
#	server/modules/routing/binlog/blr.c
#	server/modules/routing/binlog/blr_slave.c
#	server/modules/routing/debugcmd.c
#	server/modules/routing/readwritesplit/readwritesplit.c
#	utils/skygw_utils.cc

- resolved.
2015-11-11 11:08:02 +00:00
f17803e892 Only one log_file.
The array of log_files replaced with single instance.
2015-11-03 23:27:51 +02:00
1f22e2854b maxscale_getline moved to config.c
As a general purpose function should be somewhere else, but we
need to sort out what should be where first.
2015-10-30 09:38:40 +02:00
8d6c583a1c Added a check for duplicate sections in the configuration file. 2015-10-29 16:11:08 +02:00
9064212353 Fixed queries without assignment operators failing to be properly canonized. 2015-10-27 14:20:43 +02:00
cfeaf7d6e9 Merge remote-tracking branch 'origin/develop' into MXS-329
Conflicts:
	server/core/session.c
2015-09-10 13:07:27 +01:00
160bbb70ee MXS-251: strerror
Replaces all calls to strerror with calls to strerror_r. The former
is non-thread safe while the latter is.
2015-09-05 15:52:13 +03:00
753746f5c5 Fix mistakes 2015-08-28 16:12:36 +01:00
9c5f622481 Additional spinlock in random_jkiss. Initial attempt at implementing dummy sessions to provide total consistency - used in mysql_client in relation to authentication - a single static dummy session is used and linked from the client dcb when authentication is not yet complete. 2015-08-28 15:30:06 +01:00
820bb4ea00 Avoid name clash - change random to random_jkiss 2015-08-26 16:18:08 +01:00
1f6b544f33 Tidy dcb_free (prefer use of dcb_close) and remove from test code; add good random number generator. 2015-08-26 15:43:21 +01:00
d27ffcf06a Fix mistake in debug STRDCBSTATE() 2015-08-25 09:31:54 +01:00
12922225b8 Remove redundant DCB state DCB_STATE_FREED, remove obsolete assertion from poll.c, tidy up. 2015-08-25 09:11:44 +01:00
78eab19c62 Fixed compiler warnings. 2015-07-14 17:13:09 +03:00
3992f262ca Fixed Coverity defects 2015-07-14 16:17:50 +03:00
ba417ef633 Merge remote-tracking branch 'origin/develop' into MXS-122
Conflicts:
	server/core/dcb.c
2015-07-08 14:54:22 +01:00
e5d9abbdcb Fixes to Coverity defects. 2015-06-25 06:01:33 +03:00
09fdb0a2c2 Hopefully final tidy up. 2015-06-23 14:58:53 +01:00
4417f2bbf4 Moved atomic to its own static library. 2015-06-17 16:50:15 +03:00
152f9bbc4a Merge remote-tracking branch 'origin/develop' into MXS-122 2015-06-09 13:51:55 +01:00
fe2f8e70d1 Add CHK_SERVER capability and test in dcb_persistent_clean_count 2015-06-03 15:39:06 +01:00
455b132a22 Fixed a non-static variable causing multiple declarations when FAKE_CODE was defined 2015-05-13 22:46:05 +03:00
492918c72c Use common code for atomic_add(). 2015-05-12 16:50:37 +01:00
cf23baaa6b Fixed cyclic dependencies of log_manager and utils. 2015-05-09 11:10:27 +03:00
fc7072786b Fixed null pointer dereferences in maxkeys and maxpasswd. 2015-05-06 16:32:49 +03:00
3bd03fbe09 Merge branch 'logmanager_stdout' into develop 2015-05-04 11:03:24 +03:00
d545150ceb Fix to MXS-70: https://mariadb.atlassian.net/browse/MXS-70
Added assert information to error log.
2015-05-02 05:51:25 +03:00
e0feeac9e6 Added missing SESSION_STATE_ROUTER_READY to STRSESSIONSTATE macro. 2015-04-30 21:41:57 +03:00
7c988c4fd5 Removed stdout specific functions in skygw_utils and moved the logic to log_manager instead. 2015-04-30 04:26:48 +03:00
47e5b12eb8 Added a function that frees the skygw_file_t memory but doesn't close it. 2015-04-29 18:25:35 +03:00