MINOR: qpack: reduce dependencies on other modules
Clean up QPACK decoder API by removing dependencies on ncbuf and MUX-QUIC. This reduces includes statements. It will also help to implement a standalone QPACK decoder.
This commit is contained in:
parent
c5d31ed8be
commit
53eef46b88
|
@ -21,8 +21,7 @@
|
|||
#ifndef _HAPROXY_QPACK_DEC_H
|
||||
#define _HAPROXY_QPACK_DEC_H
|
||||
|
||||
#include <haproxy/mux_quic-t.h>
|
||||
|
||||
struct buffer;
|
||||
struct http_hdr;
|
||||
|
||||
/* Internal QPACK processing errors.
|
||||
|
@ -45,7 +44,7 @@ struct qpack_dec {
|
|||
|
||||
int qpack_decode_fs(const unsigned char *buf, uint64_t len, struct buffer *tmp,
|
||||
struct http_hdr *list);
|
||||
int qpack_decode_enc(struct qcs *qcs, void *ctx);
|
||||
int qpack_decode_dec(struct qcs *qcs, void *ctx);
|
||||
int qpack_decode_enc(struct buffer *buf, void *ctx);
|
||||
int qpack_decode_dec(struct buffer *buf, void *ctx);
|
||||
|
||||
#endif /* _HAPROXY_QPACK_DEC_H */
|
||||
|
|
4
src/h3.c
4
src/h3.c
|
@ -230,11 +230,11 @@ static ssize_t h3_parse_uni_stream_no_h3(struct qcs *qcs, struct buffer *b)
|
|||
|
||||
switch (h3s->type) {
|
||||
case H3S_T_QPACK_DEC:
|
||||
if (qpack_decode_dec(qcs, NULL))
|
||||
if (qpack_decode_dec(b, NULL))
|
||||
return -1;
|
||||
break;
|
||||
case H3S_T_QPACK_ENC:
|
||||
if (qpack_decode_enc(qcs, NULL))
|
||||
if (qpack_decode_enc(b, NULL))
|
||||
return -1;
|
||||
break;
|
||||
case H3S_T_UNKNOWN:
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
#include <haproxy/buf.h>
|
||||
#include <haproxy/chunk.h>
|
||||
#include <haproxy/h3.h>
|
||||
#include <haproxy/ncbuf.h>
|
||||
#include <haproxy/qpack-t.h>
|
||||
#include <haproxy/qpack-dec.h>
|
||||
#include <haproxy/qpack-tbl.h>
|
||||
|
@ -97,22 +96,20 @@ static uint64_t qpack_get_varint(const unsigned char **buf, uint64_t *len_in, in
|
|||
*
|
||||
* Returns 0 on success else non-zero.
|
||||
*/
|
||||
int qpack_decode_enc(struct qcs *qcs, void *ctx)
|
||||
int qpack_decode_enc(struct buffer *buf, void *ctx)
|
||||
{
|
||||
size_t len;
|
||||
struct ncbuf *rxbuf;
|
||||
unsigned char inst;
|
||||
|
||||
rxbuf = &qcs->rx.ncbuf;
|
||||
len = ncb_data(rxbuf, 0);
|
||||
qpack_debug_hexdump(stderr, "[QPACK-DEC-ENC] ", ncb_head(rxbuf), 0, len);
|
||||
len = b_data(buf);
|
||||
qpack_debug_hexdump(stderr, "[QPACK-DEC-ENC] ", b_head(buf), 0, len);
|
||||
|
||||
if (!len) {
|
||||
qpack_debug_printf(stderr, "[QPACK-DEC-ENC] empty stream\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
inst = (unsigned char)*ncb_head(rxbuf) & QPACK_ENC_INST_BITMASK;
|
||||
inst = (unsigned char)*b_head(buf) & QPACK_ENC_INST_BITMASK;
|
||||
if (inst == QPACK_ENC_INST_DUP) {
|
||||
/* Duplicate */
|
||||
}
|
||||
|
@ -133,22 +130,20 @@ int qpack_decode_enc(struct qcs *qcs, void *ctx)
|
|||
*
|
||||
* Returns 0 on success else non-zero.
|
||||
*/
|
||||
int qpack_decode_dec(struct qcs *qcs, void *ctx)
|
||||
int qpack_decode_dec(struct buffer *buf, void *ctx)
|
||||
{
|
||||
size_t len;
|
||||
struct ncbuf *rxbuf;
|
||||
unsigned char inst;
|
||||
|
||||
rxbuf = &qcs->rx.ncbuf;
|
||||
len = ncb_data(rxbuf, 0);
|
||||
qpack_debug_hexdump(stderr, "[QPACK-DEC-DEC] ", ncb_head(rxbuf), 0, len);
|
||||
len = b_data(buf);
|
||||
qpack_debug_hexdump(stderr, "[QPACK-DEC-DEC] ", b_head(buf), 0, len);
|
||||
|
||||
if (!len) {
|
||||
qpack_debug_printf(stderr, "[QPACK-DEC-DEC] empty stream\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
inst = (unsigned char)*ncb_head(rxbuf) & QPACK_DEC_INST_BITMASK;
|
||||
inst = (unsigned char)*b_head(buf) & QPACK_DEC_INST_BITMASK;
|
||||
if (inst == QPACK_DEC_INST_ICINC) {
|
||||
/* Insert count increment */
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue