#include <ipxe/ntlm.h>
struct http_transaction;
+struct http_connection;
/******************************************************************************
*
unsigned int port;
/** Transport-layer filter (if any)
*
- * @v xfer Data transfer interface
- * @v name Host name
+ * @v conn HTTP connection
* @ret rc Return status code
*/
- int ( * filter ) ( struct interface *xfer, const char *name );
+ int ( * filter ) ( struct http_connection *conn );
};
/** HTTP scheme table */
goto err_open;
/* Add filter, if any */
- if ( scheme->filter &&
- ( ( rc = scheme->filter ( &conn->socket, uri->host ) ) != 0 ) )
+ if ( scheme->filter && ( ( rc = scheme->filter ( conn ) ) != 0 ) )
goto err_filter;
/* Attach to parent interface, mortalise self, and return */
*/
#include <ipxe/open.h>
+#include <ipxe/uri.h>
#include <ipxe/tls.h>
#include <ipxe/http.h>
#include <ipxe/features.h>
FEATURE ( FEATURE_PROTOCOL, "HTTPS", DHCP_EB_FEATURE_HTTPS, 1 );
+/**
+ * Add HTTPS filter
+ *
+ * @v conn HTTP connection
+ * @ret rc Return status code
+ */
+static int https_filter ( struct http_connection *conn ) {
+
+ return add_tls ( &conn->socket, conn->uri->host );
+}
+
/** HTTPS URI opener */
struct uri_opener https_uri_opener __uri_opener = {
.scheme = "https",
struct http_scheme https_scheme __http_scheme = {
.name = "https",
.port = HTTPS_PORT,
- .filter = add_tls,
+ .filter = https_filter,
};