-local mechanisms = {};
-local backend_mechanism = {};
-
--- register a new SASL mechanims
-local function registerMechanism(name, backends, f)
- assert(type(name) == "string", "Parameter name MUST be a string.");
- assert(type(backends) == "string" or type(backends) == "table", "Parameter backends MUST be either a string or a table.");
- assert(type(f) == "function", "Parameter f MUST be a function.");
- mechanisms[name] = f
- for _, backend_name in ipairs(backends) do
- if backend_mechanism[backend_name] == nil then backend_mechanism[backend_name] = {}; end
- t_insert(backend_mechanism[backend_name], name);
+local initialized = false;
+
+local function init(service_name)
+ if not initialized then
+ local st, errmsg = pcall(cyrussasl.server_init, service_name);
+ if st then
+ initialized = true;
+ else
+ log("error", "Failed to initialize CyrusSASL: %s", errmsg);
+ end