Beispiel #1
0
	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");
	}
Beispiel #2
0
	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);
	}