Serialize created listeners to disk

The created listeners are now stored to disk like created servers
are. This allows them to be used even after a restart.

Currently, the listeners cannot be deleted and need to be manually
removed.
This commit is contained in:
Markus Makela
2016-11-24 11:53:40 +02:00
parent dd63253261
commit e31afa28e4
7 changed files with 176 additions and 33 deletions

View File

@ -411,9 +411,10 @@ bool runtime_create_listener(SERVICE *service, const char *name, const char *add
if (rval)
{
const char *print_addr = addr ? addr : "0.0.0.0";
SERV_LISTENER *listener = serviceCreateListener(service, name, proto, addr,
u_port, auth, auth_opt, ssl);
if (serviceAddProtocol(service, name, proto, addr, u_port, auth, auth_opt, ssl) &&
serviceListen(service, u_port))
if (listener && listener_serialize(listener) && serviceListen(service, listener))
{
MXS_NOTICE("Listener '%s' at %s:%s for service '%s' created",
name, print_addr, port, service->name);