Move listener parameter handling into Listener::create

The Listener::create method now takes a set of configuration parameters
from which it constructs a listener. This removes the duplicated code and
makes the behavior of listener creation similar to other objects in
MaxScale. It also allows the configuration parameters to be stored in the
listener object itself.
This commit is contained in:
Markus Mäkelä
2019-05-08 09:39:19 +03:00
parent ca21d27c68
commit 3813c728b1
12 changed files with 214 additions and 207 deletions

View File

@ -141,7 +141,7 @@ string create_unique_select()
int test(mock::Session& session,
FilterModule::Session& filter_session,
mock::RouterSession& router_session,
mock::RouterSession& router_session,
const TEST_CASE& tc)
{
int rv = 0;
@ -293,7 +293,15 @@ int test(FilterModule::Instance& filter_instance, const TEST_CASE& tc)
parameters.set("connection_timeout", "10s");
auto service = service_alloc("service", "readconnroute", &parameters);
auto listener = Listener::create(service, "listener", "mariadbclient", "0.0.0.0", 3306, "", "", nullptr);
MXS_CONFIG_PARAMETER listener_params;
listener_params.set(CN_ADDRESS, "0.0.0.0");
listener_params.set(CN_PORT, "3306");
listener_params.set(CN_PROTOCOL, "mariadbclient");
listener_params.set(CN_SERVICE, service->name());
auto listener = Listener::create("listener", "mariadbclient", listener_params);
mock::Client client("bob", "127.0.0.1");
mock::Session session(&client, listener);
mock::ResultSetBackend backend;

View File

@ -708,7 +708,7 @@ void log_error(const FW_TEST_CASE& c)
int test(mock::Client& client,
FilterModule::Session& filter_session,
mock::RouterSession& router_session,
mock::RouterSession& router_session,
const FW_TEST_CASE& c)
{
int rv = 0;
@ -772,8 +772,15 @@ int test(FilterModule::Instance& filter_instance, const FW_TEST& t)
parameters.set("max_retry_interval", "10s");
parameters.set("connection_timeout", "10s");
auto service = service_alloc("service", "readconnroute", &parameters);
auto listener = Listener::create(service, "listener", "mariadbclient", "0.0.0.0", 3306,
"", "", nullptr);
MXS_CONFIG_PARAMETER listener_params;
listener_params.set(CN_ADDRESS, "0.0.0.0");
listener_params.set(CN_PORT, "3306");
listener_params.set(CN_PROTOCOL, "mariadbclient");
listener_params.set(CN_SERVICE, service->name());
auto listener = Listener::create("listener", "mariadbclient", listener_params);
mock::Session session(&client, listener);
mock::OkBackend backend;
mock::RouterSession router_session(&backend, &session);