mirror of https://github.com/ipxe/ipxe.git
[http] Hide HTTP transport-layer filter implementation details
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/181/head
parent
1b112e9d18
commit
be47c2c72c
|
@ -21,6 +21,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
|||
#include <ipxe/ntlm.h>
|
||||
|
||||
struct http_transaction;
|
||||
struct http_connection;
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
|
@ -43,11 +44,10 @@ struct http_scheme {
|
|||
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 */
|
||||
|
|
|
@ -301,8 +301,7 @@ int http_connect ( struct interface *xfer, struct uri *uri ) {
|
|||
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 */
|
||||
|
|
|
@ -31,12 +31,24 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
|||
*/
|
||||
|
||||
#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",
|
||||
|
@ -47,5 +59,5 @@ struct uri_opener https_uri_opener __uri_opener = {
|
|||
struct http_scheme https_scheme __http_scheme = {
|
||||
.name = "https",
|
||||
.port = HTTPS_PORT,
|
||||
.filter = add_tls,
|
||||
.filter = https_filter,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue