575 sstr("Threadpool"))); |
576 sstr("Threadpool"))); |
576 |
577 |
577 sstr_t ssl = cfg_directivelist_get_str(obj->directives, S("SSL")); |
578 sstr_t ssl = cfg_directivelist_get_str(obj->directives, S("SSL")); |
578 if(util_getboolean_s(ssl, WS_FALSE)) { |
579 if(util_getboolean_s(ssl, WS_FALSE)) { |
579 sstr_t cert = cfg_directivelist_get_str(obj->directives, S("Cert")); |
580 sstr_t cert = cfg_directivelist_get_str(obj->directives, S("Cert")); |
580 sstr_t privkey = cfg_directivelist_get_str(obj->directives, S("PrivateKey")); |
581 sstr_t privkey = cfg_directivelist_get_str(obj->directives, S("Key")); |
581 sstr_t chain = cfg_directivelist_get_str(obj->directives, S("Chain")); |
582 sstr_t chain = cfg_directivelist_get_str(obj->directives, S("CertChain")); |
|
583 sstr_t disableprot = cfg_directivelist_get_str( |
|
584 obj->directives, |
|
585 S("SSLDisableProtocol")); |
|
586 |
582 WSBool config_ok = WS_TRUE; |
587 WSBool config_ok = WS_TRUE; |
583 // TODO: log error |
588 // TODO: log error |
584 if(!cert.ptr && !chain.ptr) { |
589 if(!cert.ptr && !chain.ptr) { |
|
590 log_ereport( |
|
591 LOG_MISCONFIG, |
|
592 "SSL Listener %s: Missing Cert or ChainCert directive", |
|
593 lc.name.ptr); |
585 config_ok = WS_FALSE; |
594 config_ok = WS_FALSE; |
586 } |
595 } |
587 if(!privkey.ptr) { |
596 if(!privkey.ptr) { |
|
597 log_ereport( |
|
598 LOG_MISCONFIG, |
|
599 "SSL Listener %s: Missing Key directive", |
|
600 lc.name.ptr); |
588 config_ok = WS_FALSE; |
601 config_ok = WS_FALSE; |
589 } |
602 } |
|
603 |
590 if(config_ok) { |
604 if(config_ok) { |
591 lc.certfile = cert; |
605 lc.certfile = cert; |
592 lc.privkeyfile = privkey; |
606 lc.privkeyfile = privkey; |
593 lc.chainfile = chain; |
607 lc.chainfile = chain; |
|
608 lc.disable_proto = disableprot; |
594 lc.ssl = WS_TRUE; |
609 lc.ssl = WS_TRUE; |
595 } |
610 } |
596 } else { |
611 } else { |
597 lc.ssl = WS_FALSE; |
612 lc.ssl = WS_FALSE; |
598 } |
613 } |