From b7f8d1bbfd657ecfcae6e74a62766e2e15abaa11 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sat, 3 Mar 2012 20:15:21 +0000 Subject: [tls] Add support for Server Name Indication (SNI) Signed-off-by: Michael Brown --- src/include/ipxe/http.h | 1 + src/include/ipxe/tls.h | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src/include') diff --git a/src/include/ipxe/http.h b/src/include/ipxe/http.h index d8f4ca5ac..cf8c0c7fa 100644 --- a/src/include/ipxe/http.h +++ b/src/include/ipxe/http.h @@ -18,6 +18,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); extern int http_open_filter ( struct interface *xfer, struct uri *uri, unsigned int default_port, int ( * filter ) ( struct interface *, + const char *, struct interface ** ) ); #endif /* _IPXE_HTTP_H */ diff --git a/src/include/ipxe/tls.h b/src/include/ipxe/tls.h index c14e92106..90833781f 100644 --- a/src/include/ipxe/tls.h +++ b/src/include/ipxe/tls.h @@ -74,6 +74,10 @@ struct tls_header { #define TLS_RSA_WITH_AES_128_CBC_SHA 0x002f #define TLS_RSA_WITH_AES_256_CBC_SHA 0x0035 +/* TLS extension types */ +#define TLS_SERVER_NAME 0 +#define TLS_SERVER_NAME_HOST_NAME 0 + /** TLS RX state machine state */ enum tls_rx_state { TLS_RX_HEADER = 0, @@ -133,6 +137,8 @@ struct tls_session { /** Reference counter */ struct refcnt refcnt; + /** Server name */ + const char *name; /** Plaintext stream */ struct interface plainstream; /** Ciphertext stream */ @@ -183,7 +189,7 @@ struct tls_session { void *rx_data; }; -extern int add_tls ( struct interface *xfer, +extern int add_tls ( struct interface *xfer, const char *name, struct interface **next ); #endif /* _IPXE_TLS_H */ -- cgit v1.2.3-55-g7522