37 #define HTTPS_PORT 443 54 #define HTTP_SCHEMES __table ( struct http_scheme, "http_schemes" ) 57 #define __http_scheme __table_entry ( HTTP_SCHEMES, 01 ) 119 #define HTTP_DIGEST_NC "00000001" 125 #define HTTP_DIGEST_CNONCE_LEN 8 132 #define HTTP_DIGEST_RESPONSE_LEN 32 241 #define HTTP_REQUEST_HEADERS \ 242 __table ( struct http_request_header, "http_request_headers" ) 245 #define __http_request_header __table_entry ( HTTP_REQUEST_HEADERS, 01 ) 377 #define HTTP_RESPONSE_HEADERS \ 378 __table ( struct http_response_header, "http_response_headers" ) 381 #define __http_response_header __table_entry ( HTTP_RESPONSE_HEADERS, 01 ) 470 #define HTTP_TRANSFER_ENCODINGS \ 471 __table ( struct http_transfer_encoding, "http_transfer_encodings" ) 474 #define __http_transfer_encoding __table_entry ( HTTP_TRANSFER_ENCODINGS, 01 ) 502 #define HTTP_CONTENT_ENCODINGS \ 503 __table ( struct http_content_encoding, "http_content_encodings" ) 506 #define __http_content_encoding __table_entry ( HTTP_CONTENT_ENCODINGS, 01 ) 544 #define HTTP_AUTHENTICATIONS \ 545 __table ( struct http_authentication, "http_authentications" ) 548 #define __http_authentication __table_entry ( HTTP_AUTHENTICATIONS, 01 ) struct interface xfer
Data transfer interface.
const char * qop
Quality of protection.
struct arbelprm_rc_send_wqe rc
const char * username
Username.
struct http_response_auth_digest digest
Digest authorization descriptor.
Content length specified.
struct http_method http_get
HTTP GET method.
struct http_response_auth_basic basic
Basic authorization descriptor.
void(* close)(struct http_transaction *http, int rc)
Server connection closed.
int(* format)(struct http_transaction *http, char *buf, size_t len)
Construct remaining "Authorization" header line.
const char * host
Server host name.
struct ntlm_challenge * challenge
Challenge message.
HTTP request range descriptor.
struct interface conn
Server connection.
unsigned int port
Default port.
int(* filter)(struct http_connection *conn)
Transport-layer filter (if any)
struct line_buffer linebuf
Temporary line buffer.
int(* tx)(struct http_transaction *http)
Transmit data.
HTTP response NTLM authorization descriptor.
struct uri * uri
Request URI.
const char * location
Redirection location.
struct http_state * state
Transaction state.
An HTTP authentication scheme.
#define HTTP_DIGEST_RESPONSE_LEN
HTTP Digest authentication response length.
struct interface socket
Transport layer interface.
An HTTP content encoding.
struct http_response_auth auth
Authorization descriptor.
struct http_request_range range
Range descriptor.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
int(* rx)(struct http_transaction *http, struct io_buffer **iobuf)
Receive data.
struct ntlm_nt_response nt
NT response.
struct interface xfer
Data transfer interface.
struct http_request request
Request.
int(* authenticate)(struct http_transaction *http)
Perform authentication.
struct http_transfer_encoding * encoding
Transfer encoding.
Keep connection alive after close.
struct http_method http_post
HTTP POST method.
size_t len
Authenticate message length.
struct http_response response
Response.
char * http_token(char **line, char **value)
Get HTTP response token.
const char * username
Username.
HTTP response transfer descriptor.
const char * uri
Request URI string.
const char * algorithm
Algorithm.
const char * algorithm
Algorithm.
pseudo_bit_t value[0x00020]
size_t len
Accumulated transfer-decoded length.
struct http_request_auth auth
Authentication descriptor.
struct http_response_content content
Content descriptor.
HTTP response Basic authorization descriptor.
HTTP request Digest authentication descriptor.
int http_open_uri(struct interface *xfer, struct uri *uri)
Open HTTP transaction for simple URI.
#define HTTP_DIGEST_CNONCE_LEN
HTTP Digest authentication client nonce length.
struct http_request_content content
Content descriptor.
const char * name
Scheme name (e.g.
const char * name
Method name (e.g.
struct http_method http_head
HTTP HEAD method.
HTTP request content descriptor.
static __always_inline void struct pci_range * range
struct ntlm_challenge_info info
Challenge information.
struct http_content_encoding * encoding
Content encoding.
struct http_authentication * auth
Authentication scheme (if any)
size_t len
Content length (may be zero)
struct interface content
Content-decoded interface.
int rc
Return status code.
unsigned int status
Status code.
struct interface transfer
Transfer-decoded interface.
const char * type
Content type (if any)
int http_connect(struct interface *xfer, struct uri *uri)
Connect to an HTTP server.
struct line_buffer headers
Raw response header lines.
struct http_response_auth_ntlm ntlm
NTLM authorization descriptor.
const void * data
Content data (if any)
HTTP request NTLM authentication descriptor.
struct http_scheme * scheme
HTTP scheme.
size_t len
Range length, or zero for no range request.
size_t len
Content length.
struct http_response_transfer transfer
Transfer descriptor.
struct http_authentication * auth
Authentication scheme (if any)
const char * username
Username.
struct http_request_auth_ntlm ntlm
NTLM authentication descriptor.
const char * password
Password.
struct uri * uri
Connection URI.
struct http_method * method
Method.
HTTP response Digest authorization descriptor.
const char * name
Name (e.g.
char cnonce[HTTP_DIGEST_CNONCE_LEN+1]
Client nonce.
size_t remaining
Chunk length remaining.
A Uniform Resource Identifier.
Transaction may be retried on failure.
NT LAN Manager (NTLM) authentication.
int http_open(struct interface *xfer, struct http_method *method, struct uri *uri, struct http_request_range *range, struct http_request_content *content)
Open HTTP transaction.
int(* parse)(struct http_transaction *http, char *line)
Parse remaining "WWW-Authenticate" header line.
HTTP request authentication descriptor.
NTLM challenge information.
HTTP request Basic authentication descriptor.
int(* init)(struct http_transaction *http)
Initialise transfer encoding.
int(* supported)(struct http_transaction *http)
Check if content encoding is supported for this request.
struct http_state state
Receive data state.
struct ntlm_lm_response lm
LAN Manager response.
An HTTP transfer encoding.
http_response_flags
HTTP response flags.
struct pooled_connection pool
Pooled connection.
HTTP response authorization descriptor.
int(* init)(struct http_transaction *http)
Initialise content encoding.
char response[HTTP_DIGEST_RESPONSE_LEN+1]
Response.
const char * opaque
Opaque.
unsigned int retry_after
Retry delay (in seconds)
struct http_request_auth_basic basic
Basic authentication descriptor.
struct http_request_auth_digest digest
Digest authentication descriptor.
const char * qop
Quality of protection.
HTTP response content descriptor.