diff options
Diffstat (limited to 'httpd/httpd.h')
-rw-r--r-- | httpd/httpd.h | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/httpd/httpd.h b/httpd/httpd.h index 50f300a..2cb7934 100644 --- a/httpd/httpd.h +++ b/httpd/httpd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: httpd.h,v 1.82 2015/03/15 22:08:45 florian Exp $ */ +/* $OpenBSD: httpd.h,v 1.88 2015/07/16 16:29:25 florian Exp $ */ /* * Copyright (c) 2006 - 2015 Reyk Floeter <reyk@openbsd.org> @@ -34,6 +34,9 @@ #include <event.h> #include <imsg.h> #include <tls.h> +#include <vis.h> + +#include "patterns.h" #define CONF_FILE "/etc/httpd.conf" #define HTTPD_SOCKET "/var/run/httpd.sock" @@ -45,6 +48,7 @@ #define HTTPD_LOGROOT "/logs" #define HTTPD_ACCESS_LOG "access.log" #define HTTPD_ERROR_LOG "error.log" +#define HTTPD_LOGVIS VIS_NL|VIS_TAB|VIS_CSTYLE #define HTTPD_TLS_CERT "/etc/ssl/server.crt" #define HTTPD_TLS_KEY "/etc/ssl/private/server.key" #define HTTPD_TLS_CIPHERS "HIGH:!aNULL" @@ -62,6 +66,8 @@ #define SERVER_MAXREQUESTBODY 1048576 /* 1M */ #define SERVER_BACKLOG 10 #define SERVER_OUTOF_FD_RETRIES 5 +#define SERVER_MAX_PREFETCH 256 +#define SERVER_MIN_PREFETCHED 32 #define MEDIATYPE_NAMEMAX 128 /* file name extension */ #define MEDIATYPE_TYPEMAX 64 /* length of type/subtype */ @@ -199,6 +205,7 @@ enum imsg_type { IMSG_CTL_START, IMSG_CTL_REOPEN, IMSG_CFG_SERVER, + IMSG_CFG_TLS, IMSG_CFG_MEDIA, IMSG_CFG_AUTH, IMSG_CFG_DONE, @@ -278,6 +285,7 @@ struct client { void *clt_srv_conf; u_int32_t clt_srv_id; struct sockaddr_storage clt_srv_ss; + struct str_match clt_srv_match; int clt_s; in_port_t clt_port; @@ -341,12 +349,15 @@ SPLAY_HEAD(client_tree, client); #define SRVFLAG_NO_AUTH 0x00020000 #define SRVFLAG_BLOCK 0x00040000 #define SRVFLAG_NO_BLOCK 0x00080000 +#define SRVFLAG_LOCATION_MATCH 0x00100000 +#define SRVFLAG_SERVER_MATCH 0x00200000 #define SRVFLAG_BITS \ "\10\01INDEX\02NO_INDEX\03AUTO_INDEX\04NO_AUTO_INDEX" \ "\05ROOT\06LOCATION\07FCGI\10NO_FCGI\11LOG\12NO_LOG\13SOCKET" \ "\14SYSLOG\15NO_SYSLOG\16TLS\17ACCESS_LOG\20ERROR_LOG" \ - "\21AUTH\22NO_AUTH\23BLOCK\24NO_BLOCK" + "\21AUTH\22NO_AUTH\23BLOCK\24NO_BLOCK\25LOCATION_MATCH" \ + "\26SERVER_MATCH" #define TCPFLAG_NODELAY 0x01 #define TCPFLAG_NNODELAY 0x02 @@ -436,6 +447,16 @@ struct server_config { }; TAILQ_HEAD(serverhosts, server_config); +struct tls_config { + u_int32_t id; + + in_port_t port; + struct sockaddr_storage ss; + + size_t tls_cert_len; + size_t tls_key_len; +}; + struct server { TAILQ_ENTRY(server) srv_entry; struct server_config srv_conf; @@ -557,7 +578,7 @@ int server_headers(struct client *, void *, int (*)(struct client *, struct kv *, void *), void *); int server_writeresponse_http(struct client *); int server_response_http(struct client *, u_int, struct media_type *, - size_t, time_t); + off_t, time_t); void server_reset_http(struct client *); void server_close_http(struct client *); int server_response(struct httpd *, struct client *); @@ -674,7 +695,9 @@ int config_setreset(struct httpd *, u_int); int config_getreset(struct httpd *, struct imsg *); int config_getcfg(struct httpd *, struct imsg *); int config_setserver(struct httpd *, struct server *); +int config_settls(struct httpd *, struct server *); int config_getserver(struct httpd *, struct imsg *); +int config_gettls(struct httpd *, struct imsg *); int config_setmedia(struct httpd *, struct media_type *); int config_getmedia(struct httpd *, struct imsg *); int config_setauth(struct httpd *, struct auth *); |