summaryrefslogtreecommitdiffstats
path: root/usr.sbin/httpd/server.c
diff options
context:
space:
mode:
authorreyk <reyk@openbsd.org>2014-09-05 10:04:20 +0000
committerreyk <reyk@openbsd.org>2014-09-05 10:04:20 +0000
commitbd1bab2f056ac0533ce827cc99ced62fb1a5fc8a (patch)
tree581a8bc25ea1d4a2646d533c221a3bf50a9241a1 /usr.sbin/httpd/server.c
parentTweaks, no functionnal change. (diff)
downloadwireguard-openbsd-bd1bab2f056ac0533ce827cc99ced62fb1a5fc8a.tar.xz
wireguard-openbsd-bd1bab2f056ac0533ce827cc99ced62fb1a5fc8a.zip
Remove a limitation that only allowed to specify a server name once.
The key has been changed to server name + address + port and now it is possible to use the same server name for multiple servers with different addresses, eg. http://www.example.com and https://www.example.com/. OK doug@ florian@
Diffstat (limited to 'usr.sbin/httpd/server.c')
-rw-r--r--usr.sbin/httpd/server.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/usr.sbin/httpd/server.c b/usr.sbin/httpd/server.c
index ed321af5752..e756abb99f9 100644
--- a/usr.sbin/httpd/server.c
+++ b/usr.sbin/httpd/server.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server.c,v 1.41 2014/09/02 16:20:41 reyk Exp $ */
+/* $OpenBSD: server.c,v 1.42 2014/09/05 10:04:20 reyk Exp $ */
/*
* Copyright (c) 2006 - 2014 Reyk Floeter <reyk@openbsd.org>
@@ -285,8 +285,7 @@ server_purge(struct server *srv)
/* It might point to our own "default" entry */
if (srv_conf != &srv->srv_conf) {
- free(srv_conf->ssl_cert);
- free(srv_conf->ssl_key);
+ serverconfig_free(srv_conf);
free(srv_conf);
}
}
@@ -297,6 +296,22 @@ server_purge(struct server *srv)
free(srv);
}
+void
+serverconfig_free(struct server_config *srv_conf)
+{
+ free(srv_conf->ssl_cert_file);
+ free(srv_conf->ssl_cert);
+ free(srv_conf->ssl_key_file);
+ free(srv_conf->ssl_key);
+}
+
+void
+serverconfig_reset(struct server_config *srv_conf)
+{
+ srv_conf->ssl_cert_file = srv_conf->ssl_cert =
+ srv_conf->ssl_key_file = srv_conf->ssl_key = NULL;
+}
+
struct server *
server_byaddr(struct sockaddr *addr, in_port_t port)
{