MXS-2205 Combine maxscale/modutil.h with maxscale/modutil.hh

This commit is contained in:
Esa Korhonen 2018-12-03 12:38:05 +02:00
parent 49173bbe83
commit 97bb7e7e1a
54 changed files with 156 additions and 181 deletions

View File

@ -44,7 +44,7 @@
#include <maxscale/dcb.h>
#include <maxscale/modinfo.h>
#include <maxscale/modulecmd.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/protocol/mysql.h>
#include <maxscale/query_classifier.h>
#include <maxscale/router.h>

View File

@ -14,7 +14,7 @@
#include <maxscale/ccdefs.hh>
#include <maxscale/log.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <ctype.h>
namespace maxscale

View File

@ -1,126 +0,0 @@
/*
* Copyright (c) 2018 MariaDB Corporation Ab
*
* Use of this software is governed by the Business Source License included
* in the LICENSE.TXT file and at www.mariadb.com/bsl11.
*
* Change Date: 2022-01-01
*
* On the date above, in accordance with the Business Source License, use
* of this software will be governed by version 2 or later of the General
* Public License.
*/
#pragma once
/**
* @file modutil.h A set of useful routines for module writers
*/
#include <maxscale/cdefs.h>
#include <maxscale/buffer.h>
#include <maxscale/dcb.h>
#include <string.h>
#include <maxscale/pcre2.h>
MXS_BEGIN_DECLS
#define PTR_IS_RESULTSET(b) (b[0] == 0x01 && b[1] == 0x0 && b[2] == 0x0 && b[3] == 0x01)
#define PTR_IS_EOF(b) (b[0] == 0x05 && b[1] == 0x0 && b[2] == 0x0 && b[4] == 0xfe)
#define PTR_IS_OK(b) (b[4] == 0x00)
#define PTR_IS_ERR(b) (b[4] == 0xff)
#define PTR_IS_LOCAL_INFILE(b) (b[4] == 0xfb)
#define IS_FULL_RESPONSE(buf) (modutil_count_signal_packets(buf, 0, 0) == 2)
extern int modutil_is_SQL(GWBUF*);
extern int modutil_is_SQL_prepare(GWBUF*);
extern int modutil_extract_SQL(GWBUF*, char**, int*);
extern int modutil_MySQL_Query(GWBUF*, char**, int*, int*);
extern char* modutil_get_SQL(GWBUF*);
extern GWBUF* modutil_replace_SQL(GWBUF*, char*);
extern char* modutil_get_query(GWBUF* buf);
extern int modutil_send_mysql_err_packet(DCB*, int, int, int, const char*, const char*);
GWBUF* modutil_get_next_MySQL_packet(GWBUF** p_readbuf);
GWBUF* modutil_get_complete_packets(GWBUF** p_readbuf);
int modutil_MySQL_query_len(GWBUF* buf, int* nbytes_missing);
void modutil_reply_parse_error(DCB* backend_dcb, char* errstr, uint32_t flags);
void modutil_reply_auth_error(DCB* backend_dcb, char* errstr, uint32_t flags);
int modutil_count_statements(GWBUF* buffer);
int modutil_count_packets(GWBUF* buffer);
GWBUF* modutil_create_query(const char* query);
GWBUF* modutil_create_mysql_err_msg(int packet_number,
int affected_rows,
int merrno,
const char* statemsg,
const char* msg);
/** Struct used for tracking the state inside the modutil functions */
typedef struct
{
uint8_t state;
} modutil_state;
/** Static initialization define for modutil_state */
#define MODUTIL_STATE_INIT {0}
/**
* @brief Count the number of EOF and ERR packets in the buffer.
*
* Only complete packets are inspected and the buffer is assumed to only contain
* whole packets. If partial packets are in the buffer, they are ignored.
* The caller must handle the detection of partial packets in buffers.
*
* Before the first invocation, the value pointed by the @c state parameter
* should be initialized with MODUTIL_STATE_INIT. All subsequent calls with a
* partially processed result set must be made with only unprocessed packets
* in @c reply.
*
* @param reply Buffer to use
* @param n_found Number of previous found packets
* @param more Set to true if more results exist
* @param state Internal state of the function, NULL if the function is
* only called once per result set
*
* @return Total number of EOF and ERR packets including the ones already found
*/
int modutil_count_signal_packets(GWBUF* reply, int n_found, bool* more, modutil_state* state);
mxs_pcre2_result_t modutil_mysql_wildcard_match(const char* pattern, const char* string);
/**
* Given a buffer containing a MySQL statement, this function will return
* a pointer to the first character that is not whitespace. In this context,
* comments are also counted as whitespace. For instance:
*
* "SELECT" => "SELECT"
* " SELECT => "SELECT"
* " / * A comment * / SELECT" => "SELECT"
* "-- comment\nSELECT" => "SELECT"
*
* @param sql Pointer to buffer containing a MySQL statement
* @param len Length of sql.
*
* @return The first non whitespace (including comments) character. If the
* entire buffer is only whitespace, the returned pointer will point
* to the character following the buffer (i.e. sql + len).
*/
char* modutil_MySQL_bypass_whitespace(char* sql, size_t len);
/**
* @brief Write a COM_PING to a DCB and ignore the response
*
* @param dcb The backend DCB where the COM_PING is written
* @return True if command was successfully sent
*/
bool modutil_ignorable_ping(DCB* dcb);
/** Character and token searching functions */
char* strnchr_esc(char* ptr, char c, int len);
char* strnchr_esc_mysql(char* ptr, char c, int len);
bool is_mysql_statement_end(const char* start, int len);
bool is_mysql_sp_end(const char* start, int len);
char* modutil_get_canonical(GWBUF* querybuf);
// TODO: Move modutil out of the core
const char* STRPACKETTYPE(int p);
MXS_END_DECLS

View File

@ -13,13 +13,114 @@
#pragma once
/**
* @file modutil.hh C++ additions/alternatives for modutil.h functions
* @file modutil.hh A set of useful routines for module writers
*/
#include <maxscale/ccdefs.hh>
#include <maxscale/modutil.h>
#include <string>
#include <maxscale/buffer.hh>
#include <maxscale/dcb.h>
#include <maxscale/pcre2.h>
#define PTR_IS_RESULTSET(b) (b[0] == 0x01 && b[1] == 0x0 && b[2] == 0x0 && b[3] == 0x01)
#define PTR_IS_EOF(b) (b[0] == 0x05 && b[1] == 0x0 && b[2] == 0x0 && b[4] == 0xfe)
#define PTR_IS_OK(b) (b[4] == 0x00)
#define PTR_IS_ERR(b) (b[4] == 0xff)
#define PTR_IS_LOCAL_INFILE(b) (b[4] == 0xfb)
#define IS_FULL_RESPONSE(buf) (modutil_count_signal_packets(buf, 0, 0) == 2)
/** Static initialization define for modutil_state */
#define MODUTIL_STATE_INIT {0}
MXS_BEGIN_DECLS
extern int modutil_is_SQL(GWBUF*);
extern int modutil_is_SQL_prepare(GWBUF*);
extern int modutil_extract_SQL(GWBUF*, char**, int*);
extern int modutil_MySQL_Query(GWBUF*, char**, int*, int*);
extern char* modutil_get_SQL(GWBUF*);
extern GWBUF* modutil_replace_SQL(GWBUF*, char*);
extern char* modutil_get_query(GWBUF* buf);
extern int modutil_send_mysql_err_packet(DCB*, int, int, int, const char*, const char*);
GWBUF* modutil_get_next_MySQL_packet(GWBUF** p_readbuf);
GWBUF* modutil_get_complete_packets(GWBUF** p_readbuf);
int modutil_MySQL_query_len(GWBUF* buf, int* nbytes_missing);
void modutil_reply_parse_error(DCB* backend_dcb, char* errstr, uint32_t flags);
void modutil_reply_auth_error(DCB* backend_dcb, char* errstr, uint32_t flags);
int modutil_count_statements(GWBUF* buffer);
int modutil_count_packets(GWBUF* buffer);
GWBUF* modutil_create_query(const char* query);
GWBUF* modutil_create_mysql_err_msg(int packet_number, int affected_rows, int merrno,
const char* statemsg, const char* msg);
/** Struct used for tracking the state inside the modutil functions */
typedef struct
{
uint8_t state;
} modutil_state;
/**
* @brief Count the number of EOF and ERR packets in the buffer.
*
* Only complete packets are inspected and the buffer is assumed to only contain
* whole packets. If partial packets are in the buffer, they are ignored.
* The caller must handle the detection of partial packets in buffers.
*
* Before the first invocation, the value pointed by the @c state parameter
* should be initialized with MODUTIL_STATE_INIT. All subsequent calls with a
* partially processed result set must be made with only unprocessed packets
* in @c reply.
*
* @param reply Buffer to use
* @param n_found Number of previous found packets
* @param more Set to true if more results exist
* @param state Internal state of the function, NULL if the function is
* only called once per result set
*
* @return Total number of EOF and ERR packets including the ones already found
*/
int modutil_count_signal_packets(GWBUF* reply, int n_found, bool* more, modutil_state* state);
mxs_pcre2_result_t modutil_mysql_wildcard_match(const char* pattern, const char* string);
/**
* Given a buffer containing a MySQL statement, this function will return
* a pointer to the first character that is not whitespace. In this context,
* comments are also counted as whitespace. For instance:
*
* "SELECT" => "SELECT"
* " SELECT => "SELECT"
* " / * A comment * / SELECT" => "SELECT"
* "-- comment\nSELECT" => "SELECT"
*
* @param sql Pointer to buffer containing a MySQL statement
* @param len Length of sql.
*
* @return The first non whitespace (including comments) character. If the
* entire buffer is only whitespace, the returned pointer will point
* to the character following the buffer (i.e. sql + len).
*/
char* modutil_MySQL_bypass_whitespace(char* sql, size_t len);
/**
* @brief Write a COM_PING to a DCB and ignore the response
*
* @param dcb The backend DCB where the COM_PING is written
* @return True if command was successfully sent
*/
bool modutil_ignorable_ping(DCB* dcb);
/** Character and token searching functions */
char* strnchr_esc(char* ptr, char c, int len);
char* strnchr_esc_mysql(char* ptr, char c, int len);
bool is_mysql_statement_end(const char* start, int len);
bool is_mysql_sp_end(const char* start, int len);
char* modutil_get_canonical(GWBUF* querybuf);
// TODO: Move modutil out of the core
const char* STRPACKETTYPE(int p);
MXS_END_DECLS
namespace maxscale
{

View File

@ -16,7 +16,7 @@
#include <memory>
#include <maxscale/backend.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/response_stat.hh>
namespace maxscale

View File

@ -31,7 +31,7 @@
#include <maxscale/alloc.h>
#include <maxscale/log.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/protocol/mysql.h>
#include <maxscale/query_classifier.h>
#include <maxscale/utils.h>

View File

@ -12,7 +12,7 @@
*/
#include <maxscale/authenticator.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/alloc.h>
#include "internal/modules.hh"

View File

@ -24,7 +24,7 @@
#include <maxscale/alloc.h>
#include <maxscale/buffer.h>
#include <maxscale/buffer.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/poll.h>
#include <maxscale/protocol/mysql.h>
#include <maxscale/utils.h>

View File

@ -14,7 +14,7 @@
#include <maxscale/queryclassifier.hh>
#include <unordered_map>
#include <maxscale/alloc.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/query_classifier.h>
#include <maxscale/protocol/mysql.h>

View File

@ -33,7 +33,7 @@
#include <maxscale/housekeeper.h>
#include <maxscale/json_api.h>
#include <maxscale/log.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/poll.h>
#include <maxscale/router.h>
#include <maxscale/routingworker.hh>

View File

@ -13,7 +13,7 @@
#include <maxscale/session_command.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/protocol/mysql.h>
namespace maxscale

View File

@ -34,7 +34,7 @@
#include <string.h>
#include <maxscale/alloc.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/buffer.h>
/**

View File

@ -14,7 +14,7 @@
#include <maxscale/ccdefs.hh>
#include <algorithm>
#include <iostream>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/paths.h>
#include <maxscale/protocol/mysql.h>
#include "../core/internal/query_classifier.hh"

View File

@ -34,7 +34,7 @@
#include <maxscale/alloc.h>
#include <maxscale/event.hh>
#include <maxscale/modulecmd.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/paths.h>
#include <maxscale/secrets.h>
#include <maxscale/users.h>

View File

@ -19,7 +19,7 @@
#include <zlib.h>
#include <maxscale/alloc.h>
#include <maxscale/buffer.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/query_classifier.h>
#include <maxscale/paths.h>
#include "storagefactory.hh"

View File

@ -15,7 +15,7 @@
#include "cachefiltersession.hh"
#include <new>
#include <maxscale/alloc.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/mysql_utils.hh>
#include <maxscale/query_classifier.h>
#include "storage.hh"

View File

@ -21,7 +21,7 @@
#include <maxscale/alloc.h>
#include <maxscale/config.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/mysql_utils.hh>
#include <maxscale/protocol/mysql.h>
#include <maxscale/query_classifier.h>

View File

@ -14,7 +14,7 @@
#define MXS_MODULE_NAME "storage_inmemory"
#include "inmemorystorage.hh"
#include <maxscale/alloc.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/query_classifier.h>
#include "inmemorystoragest.hh"
#include "inmemorystoragemt.hh"

View File

@ -22,7 +22,7 @@
#include <maxscale/hint.h>
#include <maxscale/log.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/pcre2.h>
#include <maxscale/query_classifier.h>

View File

@ -71,7 +71,7 @@
#include <maxbase/atomic.h>
#include <maxscale/modulecmd.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/log.h>
#include <maxscale/protocol/mysql.h>
#include <maxscale/pcre2.h>

View File

@ -18,7 +18,7 @@
#include <maxscale/alloc.h>
#include <maxscale/buffer.h>
#include <maxscale/log.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/protocol/mysql.h>
static inline bool query_is_sql(GWBUF* query)

View File

@ -14,7 +14,7 @@
#include "user.hh"
#include <maxscale/alloc.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/protocol/mysql.h>
User::User(std::string name)

View File

@ -17,7 +17,7 @@
#include <maxscale/filter.h>
#include <maxscale/alloc.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include "mysqlhint.h"
/**

View File

@ -19,7 +19,7 @@
#include <maxscale/log.h>
#include <maxscale/filter.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include "mysqlhint.h"
#include <maxscale/alloc.h>

View File

@ -21,7 +21,7 @@
#include <maxscale/filter.h>
#include <maxscale/log.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/poll.h>
#include <maxscale/protocol/mysql.h>
#include <maxscale/query_classifier.h>

View File

@ -54,7 +54,7 @@ extern "C"
#include <maxscale/alloc.h>
#include <maxscale/filter.h>
#include <maxscale/log.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/query_classifier.h>
#include <maxscale/session.h>

View File

@ -18,7 +18,7 @@
#include <maxscale/buffer.hh>
#include <maxscale/filter.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/mysql_utils.hh>
#include <maxscale/poll.h>
#include <maxscale/protocol/mysql.h>

View File

@ -28,7 +28,7 @@
#include <maxscale/filter.h>
#include <maxscale/log.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/mysql_utils.hh>
#include <maxscale/paths.h>
#include <maxscale/poll.h>

View File

@ -63,7 +63,7 @@
#include <fcntl.h>
#include <maxscale/filter.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <string.h>
#include <time.h>
#include <sys/time.h>

View File

@ -41,7 +41,7 @@
#include <maxscale/hint.h>
#include <maxscale/log.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/server.h>
#include <maxscale/utils.h>

View File

@ -42,7 +42,7 @@
#include <maxscale/filter.h>
#include <maxscale/log.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/pcre2.h>
#include <maxscale/service.hh>
#include <maxscale/utils.h>

View File

@ -22,7 +22,7 @@
#include <maxscale/filter.h>
#include <maxscale/log.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/pcre2.h>
/**

View File

@ -17,7 +17,7 @@
#include <set>
#include <string>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
TeeSession::TeeSession(MXS_SESSION* session,
LocalClient* client,

View File

@ -16,7 +16,7 @@
#include <string>
#include <string.h>
#include <maxscale/buffer.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
namespace maxscale

View File

@ -14,7 +14,7 @@
#define MXS_MODULE_NAME "throttlefilter"
#include <maxscale/ccdefs.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/poll.h>
#include <maxscale/query_classifier.h>

View File

@ -38,7 +38,7 @@
#include <fcntl.h>
#include <maxscale/filter.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/log.h>
#include <string.h>
#include <time.h>

View File

@ -58,7 +58,7 @@
#include <maxscale/alloc.h>
#include <maxscale/filter.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/log.h>
#include <maxscale/server.h>
#include <maxbase/atomic.h>

View File

@ -17,7 +17,7 @@
#include <string>
#include <queue>
#include <maxbase/format.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/mysql_utils.hh>
using std::string;

View File

@ -17,7 +17,7 @@
#include <maxscale/limits.h>
#include <maxscale/log.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/poll.h>
#include <maxscale/protocol.h>
#include <maxscale/protocol/mysql.h>

View File

@ -28,7 +28,7 @@
#include <maxscale/authenticator.h>
#include <maxscale/log.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/poll.h>
#include <maxscale/protocol.h>
#include <maxscale/protocol/mysql.h>

View File

@ -24,7 +24,7 @@
#include <maxscale/alloc.h>
#include <maxscale/clock.h>
#include <maxscale/log.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/mysql_utils.hh>
#include <maxscale/protocol/mysql.h>
#include <maxscale/utils.h>

View File

@ -13,7 +13,7 @@
#include <maxscale/protocol/rwbackend.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/protocol/mysql.h>
#include <maxscale/log.h>

View File

@ -14,7 +14,7 @@
#include "catsession.hh"
#include <maxscale/protocol/mysql.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
using namespace maxscale;

View File

@ -38,7 +38,7 @@
#include <maxscale/server.h>
#include <maxscale/router.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/monitor.h>
#include <maxbase/atomic.h>
#include <maxscale/dcb.h>

View File

@ -33,7 +33,7 @@
#include <maxscale/session.h>
#include <maxscale/router.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxbase/atomic.h>
#include <maxscale/dcb.h>
#include <maxscale/poll.h>

View File

@ -38,7 +38,7 @@
#include <maxscale/log.h>
#include <maxscale/maxscale.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/resultset.hh>
#include <maxscale/router.h>
#include <maxscale/server.hh>

View File

@ -35,7 +35,7 @@
#include <maxscale/session.h>
#include <maxscale/router.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxbase/atomic.h>
#include <maxscale/dcb.h>
#include <maxscale/poll.h>

View File

@ -86,7 +86,7 @@
#include <maxscale/modinfo.h>
#include <maxscale/log.h>
#include <maxscale/protocol/mysql.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/utils.hh>
/* The router entry points */

View File

@ -27,7 +27,7 @@
#include <maxscale/dcb.h>
#include <maxscale/log.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/query_classifier.h>
#include <maxscale/router.h>
#include <maxscale/mysql_utils.hh>

View File

@ -24,7 +24,7 @@
#include <maxscale/query_classifier.h>
#include <maxscale/dcb.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/protocol/mysql.h>
#include <maxscale/alloc.h>

View File

@ -21,7 +21,7 @@
#include <maxscale/alloc.h>
#include <maxscale/clock.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/modutil.hh>
#include <maxscale/router.h>
#include <maxscale/server.h>

View File

@ -18,7 +18,7 @@
#include <string>
#include <maxscale/buffer.hh>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/queryclassifier.hh>
#include <maxscale/protocol/rwbackend.hh>

View File

@ -24,7 +24,7 @@
#include <maxscale/buffer.h>
#include <maxscale/log.h>
#include <maxscale/modinfo.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/poll.h>
#include <maxscale/query_classifier.h>
#include <maxscale/router.h>

View File

@ -19,7 +19,7 @@
#include <maxbase/atomic.hh>
#include <maxscale/alloc.h>
#include <maxscale/modutil.h>
#include <maxscale/modutil.hh>
#include <maxscale/poll.h>
#include <maxscale/query_classifier.h>
#include <maxscale/resultset.hh>