mirror of
https://github.com/ipxe/ipxe
synced 2025-12-21 12:30:20 +03:00
Update HTTP to use data-xfer interface.
This commit is contained in:
@@ -7,56 +7,10 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include <gpxe/stream.h>
|
||||
#include <gpxe/async.h>
|
||||
#include <gpxe/linebuf.h>
|
||||
#include <gpxe/uri.h>
|
||||
|
||||
/** HTTP default port */
|
||||
#define HTTP_PORT 80
|
||||
|
||||
/** HTTPS default port */
|
||||
#define HTTPS_PORT 443
|
||||
|
||||
/** HTTP receive state */
|
||||
enum http_rx_state {
|
||||
HTTP_RX_RESPONSE = 0,
|
||||
HTTP_RX_HEADER,
|
||||
HTTP_RX_DATA,
|
||||
HTTP_RX_DEAD,
|
||||
};
|
||||
|
||||
/**
|
||||
* An HTTP request
|
||||
*
|
||||
*/
|
||||
struct http_request {
|
||||
/** URI being fetched */
|
||||
struct uri *uri;
|
||||
/** Data buffer to fill */
|
||||
struct buffer *buffer;
|
||||
/** Asynchronous operation */
|
||||
struct async async;
|
||||
|
||||
/** HTTP response code */
|
||||
unsigned int response;
|
||||
/** HTTP Content-Length */
|
||||
size_t content_length;
|
||||
|
||||
/** Server address */
|
||||
struct sockaddr server;
|
||||
/** Stream application for this request */
|
||||
struct stream_application stream;
|
||||
/** Number of bytes already sent */
|
||||
size_t tx_offset;
|
||||
/** RX state */
|
||||
enum http_rx_state rx_state;
|
||||
/** Line buffer for received header lines */
|
||||
struct line_buffer linebuf;
|
||||
};
|
||||
|
||||
extern int http_get ( struct uri *uri, struct buffer *buffer,
|
||||
struct async *parent );
|
||||
|
||||
#endif /* _GPXE_HTTP_H */
|
||||
|
||||
@@ -21,8 +21,8 @@ struct line_buffer {
|
||||
};
|
||||
|
||||
extern char * buffered_line ( struct line_buffer *linebuf );
|
||||
extern int line_buffer ( struct line_buffer *linebuf,
|
||||
const char **data, size_t *len );
|
||||
extern ssize_t line_buffer ( struct line_buffer *linebuf,
|
||||
const char *data, size_t len );
|
||||
extern void empty_line_buffer ( struct line_buffer *linebuf );
|
||||
|
||||
#endif /* _GPXE_LINEBUF_H */
|
||||
|
||||
Reference in New Issue
Block a user