blob: 611d56829d0c0f35cf87150e8c029caec6073ed1 [file] [log] [blame]
#ifndef _HAPROXY_HTTPCLIENT_T_H
#define _HAPROXY_HTTPCLIENT_T_H
#include <haproxy/http-t.h>
struct httpclient {
struct {
struct ist url; /* URL of the request */
enum http_meth_t meth; /* method of the request */
struct buffer buf; /* output buffer */
} req;
struct {
struct ist vsn;
uint16_t status;
struct ist reason;
struct http_hdr *hdrs; /* headers */
struct buffer buf; /* input buffer */
} res;
struct {
/* callbacks used to receive the response, if not set, the IO
* handler will consume the data without doing anything */
void (*res_stline)(struct httpclient *hc); /* start line received */
void (*res_headers)(struct httpclient *hc); /* headers received */
void (*res_payload)(struct httpclient *hc); /* payload received */
void (*res_end)(struct httpclient *hc); /* end of the response */
} ops;
struct sockaddr_storage dst; /* destination address */
struct appctx *appctx; /* HTTPclient appctx */
void *caller; /* ptr of the caller */
unsigned int flags; /* other flags */
};
#define HTTPCLIENT_F_ENDED 0x00000001
/* States of the HTTP Client Appctx */
enum {
HTTPCLIENT_S_REQ = 0,
HTTPCLIENT_S_RES_STLINE,
HTTPCLIENT_S_RES_HDR,
HTTPCLIENT_S_RES_BODY,
HTTPCLIENT_S_RES_END,
};
#endif /* ! _HAPROXY_HTTCLIENT__T_H */