add fallback option

git-svn-id: file:///raid/svn-personal/tewi/trunk@19 8739d7e6-ffea-ec47-b151-bdff447c6205
This commit is contained in:
Nishi 2024-09-14 00:51:41 +00:00
parent 3da7713d32
commit fb2de8c01f
5 changed files with 17 additions and 1 deletions

View File

@ -34,9 +34,11 @@ void tw_config_init(void) {
for(i = 0; i < MAX_VHOSTS; i++) {
config.vhosts[i].sslkey = NULL;
config.vhosts[i].sslcert = NULL;
config.vhosts[i].root = NULL;
}
config.root.sslkey = NULL;
config.root.sslcert = NULL;
config.root.root = NULL;
config.vhost_count = 0;
config.module_count = 0;
config.extension = NULL;
@ -129,6 +131,14 @@ int tw_config_read(const char* path) {
if(current->sslcert != NULL) free(current->sslcert);
current->sslcert = cm_strdup(r[1]);
}
} else if(cm_strcaseequ(r[0], "DocumentRoot")) {
if(r[1] == NULL) {
cm_log("Config", "Missing path at line %d", ln);
stop = 1;
} else {
if(current->root != NULL) free(current->root);
current->root = cm_strdup(r[1]);
}
} else if(cm_strcaseequ(r[0], "ServerRoot")) {
if(r[1] == NULL) {
cm_log("Config", "Missing path at line %d", ln);

View File

@ -215,8 +215,8 @@ void tw_process_page(SSL* ssl, int sock, const char* status, const char* type, c
while(1) {
tw_write(ssl, sock, (unsigned char*)doc + incr, size < 128 ? size : 128);
incr += 128;
if(size <= 128) break;
size -= 128;
if(size <= 0) break;
}
}

View File

@ -25,6 +25,9 @@ int tw_ssl_cert_cb(SSL* ssl, void* arg) {
SSL_use_PrivateKey_file(ssl, e->sslkey, SSL_FILETYPE_PEM);
SSL_use_certificate_file(ssl, e->sslcert, SSL_FILETYPE_PEM);
return 1;
} else if(config.root.sslkey != NULL && config.root.sslcert != NULL) {
SSL_use_PrivateKey_file(ssl, config.root.sslkey, SSL_FILETYPE_PEM);
SSL_use_certificate_file(ssl, config.root.sslcert, SSL_FILETYPE_PEM);
} else {
return 0;
}

View File

@ -14,6 +14,7 @@ struct tw_config_entry {
int port;
char* sslkey;
char* sslcert;
char* root;
};
struct tw_config {

View File

@ -9,5 +9,7 @@ ListenSSL 8443 8444 8445 8446 8447
SSLKey key.pem
SSLCertificate cert.pem
DocumentRoot /var/www
BeginVirtualHost nishinbsd-ssd
EndVirtualHost