mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-18 03:30:43 +00:00
MINOR: htx: Remove support of pseudo headers because it is unused
The code to handle pseudo headers is unused and with no real value. So remove it.
This commit is contained in:
parent
613346b60e
commit
39744f792d
@ -94,24 +94,17 @@
|
||||
#define HTX_FL_UPGRADE 0x00000002
|
||||
|
||||
|
||||
/* Pseudo header types (max 255). */
|
||||
enum htx_phdr_type {
|
||||
HTX_PHDR_UNKNOWN = 0,
|
||||
HTX_PHDR_SIZE,
|
||||
};
|
||||
|
||||
/* HTTP block's type (max 15). */
|
||||
enum htx_blk_type {
|
||||
HTX_BLK_REQ_SL = 0, /* Request start-line */
|
||||
HTX_BLK_RES_SL = 1, /* Response start-line */
|
||||
HTX_BLK_HDR = 2, /* header name/value block */
|
||||
HTX_BLK_PHDR = 3, /* pseudo header block */
|
||||
HTX_BLK_EOH = 4, /* end-of-headers block */
|
||||
HTX_BLK_DATA = 5, /* data block */
|
||||
HTX_BLK_EOD = 6, /* end-of-data block */
|
||||
HTX_BLK_TLR = 7, /* trailer name/value block */
|
||||
HTX_BLK_EOM = 8, /* end-of-message block */
|
||||
/* 9 .. 14 unused */
|
||||
HTX_BLK_EOH = 3, /* end-of-headers block */
|
||||
HTX_BLK_DATA = 4, /* data block */
|
||||
HTX_BLK_EOD = 5, /* end-of-data block */
|
||||
HTX_BLK_TLR = 6, /* trailer name/value block */
|
||||
HTX_BLK_EOM = 7, /* end-of-message block */
|
||||
/* 8 .. 14 unused */
|
||||
HTX_BLK_UNUSED = 15, /* unused/removed block */
|
||||
};
|
||||
|
||||
@ -191,7 +184,6 @@ struct htx_blk *htx_replace_header(struct htx *htx, struct htx_blk *blk,
|
||||
struct htx_blk *htx_add_header(struct htx *htx, const struct ist name, const struct ist value);
|
||||
struct htx_blk *htx_add_blk_type_size(struct htx *htx, enum htx_blk_type type, uint32_t blksz);
|
||||
struct htx_blk *htx_add_all_headers(struct htx *htx, const struct http_hdr *hdrs);
|
||||
struct htx_blk *htx_add_pseudo_header(struct htx *htx, enum htx_phdr_type phdr, const struct ist value);
|
||||
struct htx_blk *htx_add_endof(struct htx *htx, enum htx_blk_type type);
|
||||
struct htx_blk *htx_add_data(struct htx *htx, const struct ist data);
|
||||
struct htx_blk *htx_add_trailer(struct htx *htx, const struct ist tlr);
|
||||
@ -299,25 +291,6 @@ static inline enum htx_blk_type htx_get_blk_type(const struct htx_blk *blk)
|
||||
return (blk->info >> 28);
|
||||
}
|
||||
|
||||
/* Returns the pseudo-header type of the block <blk>. If it's not a
|
||||
* pseudo-header, HTX_PHDR_UNKNOWN is returned.
|
||||
*/
|
||||
static inline enum htx_phdr_type htx_get_blk_phdr(const struct htx_blk *blk)
|
||||
{
|
||||
enum htx_blk_type type = htx_get_blk_type(blk);
|
||||
enum htx_phdr_type phdr;
|
||||
|
||||
switch (type) {
|
||||
case HTX_BLK_PHDR:
|
||||
phdr = (blk->info & 0xff);
|
||||
return phdr;
|
||||
|
||||
default:
|
||||
/* Not a pseudo-header */
|
||||
return HTX_PHDR_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
/* Returns the size of the block <blk>, depending of its type */
|
||||
static inline uint32_t htx_get_blksz(const struct htx_blk *blk)
|
||||
{
|
||||
@ -327,9 +300,6 @@ static inline uint32_t htx_get_blksz(const struct htx_blk *blk)
|
||||
case HTX_BLK_HDR:
|
||||
/* name.length + value.length */
|
||||
return ((blk->info & 0xff) + ((blk->info >> 8) & 0xfffff));
|
||||
case HTX_BLK_PHDR:
|
||||
/* value.length */
|
||||
return ((blk->info >> 8) & 0xfffff);
|
||||
default:
|
||||
/* value.length */
|
||||
return (blk->info & 0xfffffff);
|
||||
@ -542,7 +512,6 @@ static inline void htx_set_blk_value_len(struct htx_blk *blk, uint32_t vlen)
|
||||
|
||||
switch (type) {
|
||||
case HTX_BLK_HDR:
|
||||
case HTX_BLK_PHDR:
|
||||
blk->info = (type << 28) + (vlen << 8) + (blk->info & 0xff);
|
||||
break;
|
||||
case HTX_BLK_REQ_SL:
|
||||
@ -598,11 +567,6 @@ static inline struct ist htx_get_blk_value(const struct htx *htx, const struct h
|
||||
ret.len = (blk->info >> 8) & 0xfffff;
|
||||
break;
|
||||
|
||||
case HTX_BLK_PHDR:
|
||||
ret.ptr = htx_get_blk_ptr(htx, blk);
|
||||
ret.len = (blk->info >> 8) & 0xfffff;
|
||||
break;
|
||||
|
||||
case HTX_BLK_REQ_SL:
|
||||
case HTX_BLK_RES_SL:
|
||||
case HTX_BLK_DATA:
|
||||
@ -786,7 +750,6 @@ static inline const char *htx_blk_type_str(enum htx_blk_type type)
|
||||
case HTX_BLK_REQ_SL: return "HTX_BLK_REQ_SL";
|
||||
case HTX_BLK_RES_SL: return "HTX_BLK_RES_SL";
|
||||
case HTX_BLK_HDR: return "HTX_BLK_HDR";
|
||||
case HTX_BLK_PHDR: return "HTX_BLK_PHDR";
|
||||
case HTX_BLK_EOH: return "HTX_BLK_EOH";
|
||||
case HTX_BLK_DATA: return "HTX_BLK_DATA";
|
||||
case HTX_BLK_EOD: return "HTX_BLK_EOD";
|
||||
@ -797,14 +760,6 @@ static inline const char *htx_blk_type_str(enum htx_blk_type type)
|
||||
};
|
||||
}
|
||||
|
||||
static inline const char *htx_blk_phdr_str(enum htx_phdr_type phdr)
|
||||
{
|
||||
switch (phdr) {
|
||||
case HTX_PHDR_UNKNOWN: return "HTX_PHDR_UNKNOWN";
|
||||
default: return "HTX_PHDR_???";
|
||||
}
|
||||
}
|
||||
|
||||
static inline void htx_dump(struct htx *htx)
|
||||
{
|
||||
int32_t pos;
|
||||
@ -819,7 +774,6 @@ static inline void htx_dump(struct htx *htx)
|
||||
struct htx_sl *sl;
|
||||
struct htx_blk *blk = htx_get_blk(htx, pos);
|
||||
enum htx_blk_type type = htx_get_blk_type(blk);
|
||||
enum htx_phdr_type phdr = htx_get_blk_phdr(blk);
|
||||
uint32_t sz = htx_get_blksz(blk);
|
||||
struct ist n, v;
|
||||
|
||||
@ -839,11 +793,6 @@ static inline void htx_dump(struct htx *htx)
|
||||
pos, htx_blk_type_str(type), sz, blk->addr,
|
||||
(int)n.len, n.ptr,
|
||||
(int)v.len, v.ptr);
|
||||
|
||||
else if (type == HTX_BLK_PHDR)
|
||||
fprintf(stderr, "\t\t[%u] type=%-17s - size=%-6u - addr=%-6u\t%.*s\n",
|
||||
pos, htx_blk_phdr_str(phdr), sz, blk->addr,
|
||||
(int)v.len, v.ptr);
|
||||
else
|
||||
fprintf(stderr, "\t\t[%u] type=%-17s - size=%-6u - addr=%-6u%s\n",
|
||||
pos, htx_blk_type_str(type), sz, blk->addr,
|
||||
|
19
src/htx.c
19
src/htx.c
@ -528,7 +528,7 @@ struct htx_ret htx_xfer_blks(struct htx *dst, struct htx *src, uint32_t count,
|
||||
if (!max)
|
||||
break;
|
||||
if (sz > max) {
|
||||
/* Headers and pseudo headers must be fully copied */
|
||||
/* Headers must be fully copied */
|
||||
if (type != HTX_BLK_DATA)
|
||||
break;
|
||||
sz = max;
|
||||
@ -744,23 +744,6 @@ struct htx_blk *htx_add_all_headers(struct htx *htx, const struct http_hdr *hdrs
|
||||
}
|
||||
return htx_add_endof(htx, HTX_BLK_EOH);
|
||||
}
|
||||
/* Adds an HTX block of type PHDR in <htx>. It returns the new block on
|
||||
* success. Otherwise, it returns NULL.
|
||||
*/
|
||||
struct htx_blk *htx_add_pseudo_header(struct htx *htx, enum htx_phdr_type phdr,
|
||||
const struct ist value)
|
||||
{
|
||||
struct htx_blk *blk;
|
||||
|
||||
/* FIXME: check value.len ( < 1MB) */
|
||||
blk = htx_add_blk(htx, HTX_BLK_PHDR, value.len);
|
||||
if (!blk)
|
||||
return NULL;
|
||||
|
||||
blk->info += (value.len << 8) + phdr;
|
||||
memcpy(htx_get_blk_ptr(htx, blk), value.ptr, value.len);
|
||||
return blk;
|
||||
}
|
||||
|
||||
/* Adds an HTX block of type EOH,EOD or EOM in <htx>. It returns the new block
|
||||
* on success. Otherwise, it returns NULL.
|
||||
|
@ -1574,11 +1574,6 @@ static size_t h1_process_output(struct h1c *h1c, struct buffer *buf, size_t coun
|
||||
h1m->state = H1_MSG_HDR_L2_LWS;
|
||||
break;
|
||||
|
||||
case HTX_BLK_PHDR:
|
||||
/* not implemented yet */
|
||||
h1m->flags |= errflag;
|
||||
break;
|
||||
|
||||
case HTX_BLK_EOH:
|
||||
if (h1m->state != H1_MSG_LAST_LF && process_conn_mode) {
|
||||
/* There is no "Connection:" header and
|
||||
|
Loading…
Reference in New Issue
Block a user