src/server/daemon/config.c

changeset 130
198ad9d8cec1
parent 129
fd324464f56f
child 133
87b405d61f64
--- 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 {

mercurial