diff -r fd324464f56f -r 198ad9d8cec1 src/server/daemon/config.c --- a/src/server/daemon/config.c Mon Dec 26 16:46:55 2016 +0100 +++ b/src/server/daemon/config.c Tue Dec 27 11:16:39 2016 +0100 @@ -556,6 +556,7 @@ int cfg_handle_listener(ServerConfiguration *cfg, ServerConfigObject *obj) { ListenerConfig lc; + ZERO(&lc, sizeof(ListenerConfig)); lc.cfg = cfg; lc.port = 8080; lc.nacceptors = 1; @@ -577,20 +578,34 @@ sstr_t ssl = cfg_directivelist_get_str(obj->directives, S("SSL")); if(util_getboolean_s(ssl, WS_FALSE)) { sstr_t cert = cfg_directivelist_get_str(obj->directives, S("Cert")); - sstr_t privkey = cfg_directivelist_get_str(obj->directives, S("PrivateKey")); - sstr_t chain = cfg_directivelist_get_str(obj->directives, S("Chain")); + sstr_t privkey = cfg_directivelist_get_str(obj->directives, S("Key")); + sstr_t chain = cfg_directivelist_get_str(obj->directives, S("CertChain")); + sstr_t disableprot = cfg_directivelist_get_str( + obj->directives, + S("SSLDisableProtocol")); + WSBool config_ok = WS_TRUE; // TODO: log error if(!cert.ptr && !chain.ptr) { + log_ereport( + LOG_MISCONFIG, + "SSL Listener %s: Missing Cert or ChainCert directive", + lc.name.ptr); config_ok = WS_FALSE; } if(!privkey.ptr) { + log_ereport( + LOG_MISCONFIG, + "SSL Listener %s: Missing Key directive", + lc.name.ptr); config_ok = WS_FALSE; } + if(config_ok) { lc.certfile = cert; lc.privkeyfile = privkey; lc.chainfile = chain; + lc.disable_proto = disableprot; lc.ssl = WS_TRUE; } } else {