SslPlugin(x0d::XzeroDaemon* d, const std::string& name) : x0d::XzeroPlugin(d, name), listeners_(), priorities_("NORMAL") { gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); int rv = gnutls_global_init(); if (rv != GNUTLS_E_SUCCESS) { TRACE("gnutls_global_init: %s", gnutls_strerror(rv)); return; //Error::CouldNotInitializeSslLibrary; } TRACE("gnutls_global_init: %s", gnutls_strerror(rv)); daemon().addComponent(std::string("GnuTLS/") + gnutls_check_version(nullptr)); setupFunction("ssl.listen", &SslPlugin::add_listener) .param<x0::IPAddress>("address", x0::IPAddress("0.0.0.0")) .param<int>("port", 80) .param<int>("backlog", 128) .param<int>("multi_accept", 1) .param<bool>("reuse_port", false); setupFunction("ssl.loglevel", &SslPlugin::set_loglevel, x0::FlowType::Number); setupFunction("ssl.priorities", &SslPlugin::set_priorities, x0::FlowType::String); setupFunction("ssl.context", &SslPlugin::add_context) .param<x0::FlowString>("keyfile") .param<x0::FlowString>("certfile") .param<x0::FlowString>("trustfile") .param<x0::FlowString>("priorities"); }
userdir_plugin(x0d::XzeroDaemon* d, const std::string& name) : x0d::XzeroPlugin(d, name), dirname_("/public_html") { setupFunction("userdir.name", &userdir_plugin::setup_userdir, x0::FlowType::String); mainFunction("userdir", &userdir_plugin::handleRequest); }