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
|
#ifndef _HAPROXY_QPACK_DEC_H
|
||||||
#define _HAPROXY_QPACK_DEC_H
|
#define _HAPROXY_QPACK_DEC_H
|
||||||
|
|
||||||
#include <haproxy/mux_quic-t.h>
|
struct buffer;
|
||||||
|
|
||||||
struct http_hdr;
|
struct http_hdr;
|
||||||
|
|
||||||
/* Internal QPACK processing errors.
|
/* 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,
|
int qpack_decode_fs(const unsigned char *buf, uint64_t len, struct buffer *tmp,
|
||||||
struct http_hdr *list);
|
struct http_hdr *list);
|
||||||
int qpack_decode_enc(struct qcs *qcs, void *ctx);
|
int qpack_decode_enc(struct buffer *buf, void *ctx);
|
||||||
int qpack_decode_dec(struct qcs *qcs, void *ctx);
|
int qpack_decode_dec(struct buffer *buf, void *ctx);
|
||||||
|
|
||||||
#endif /* _HAPROXY_QPACK_DEC_H */
|
#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) {
|
switch (h3s->type) {
|
||||||
case H3S_T_QPACK_DEC:
|
case H3S_T_QPACK_DEC:
|
||||||
if (qpack_decode_dec(qcs, NULL))
|
if (qpack_decode_dec(b, NULL))
|
||||||
return -1;
|
return -1;
|
||||||
break;
|
break;
|
||||||
case H3S_T_QPACK_ENC:
|
case H3S_T_QPACK_ENC:
|
||||||
if (qpack_decode_enc(qcs, NULL))
|
if (qpack_decode_enc(b, NULL))
|
||||||
return -1;
|
return -1;
|
||||||
break;
|
break;
|
||||||
case H3S_T_UNKNOWN:
|
case H3S_T_UNKNOWN:
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
#include <haproxy/buf.h>
|
#include <haproxy/buf.h>
|
||||||
#include <haproxy/chunk.h>
|
#include <haproxy/chunk.h>
|
||||||
#include <haproxy/h3.h>
|
#include <haproxy/h3.h>
|
||||||
#include <haproxy/ncbuf.h>
|
|
||||||
#include <haproxy/qpack-t.h>
|
#include <haproxy/qpack-t.h>
|
||||||
#include <haproxy/qpack-dec.h>
|
#include <haproxy/qpack-dec.h>
|
||||||
#include <haproxy/qpack-tbl.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.
|
* 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;
|
size_t len;
|
||||||
struct ncbuf *rxbuf;
|
|
||||||
unsigned char inst;
|
unsigned char inst;
|
||||||
|
|
||||||
rxbuf = &qcs->rx.ncbuf;
|
len = b_data(buf);
|
||||||
len = ncb_data(rxbuf, 0);
|
qpack_debug_hexdump(stderr, "[QPACK-DEC-ENC] ", b_head(buf), 0, len);
|
||||||
qpack_debug_hexdump(stderr, "[QPACK-DEC-ENC] ", ncb_head(rxbuf), 0, len);
|
|
||||||
|
|
||||||
if (!len) {
|
if (!len) {
|
||||||
qpack_debug_printf(stderr, "[QPACK-DEC-ENC] empty stream\n");
|
qpack_debug_printf(stderr, "[QPACK-DEC-ENC] empty stream\n");
|
||||||
return 0;
|
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) {
|
if (inst == QPACK_ENC_INST_DUP) {
|
||||||
/* Duplicate */
|
/* Duplicate */
|
||||||
}
|
}
|
||||||
@ -133,22 +130,20 @@ int qpack_decode_enc(struct qcs *qcs, void *ctx)
|
|||||||
*
|
*
|
||||||
* Returns 0 on success else non-zero.
|
* 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;
|
size_t len;
|
||||||
struct ncbuf *rxbuf;
|
|
||||||
unsigned char inst;
|
unsigned char inst;
|
||||||
|
|
||||||
rxbuf = &qcs->rx.ncbuf;
|
len = b_data(buf);
|
||||||
len = ncb_data(rxbuf, 0);
|
qpack_debug_hexdump(stderr, "[QPACK-DEC-DEC] ", b_head(buf), 0, len);
|
||||||
qpack_debug_hexdump(stderr, "[QPACK-DEC-DEC] ", ncb_head(rxbuf), 0, len);
|
|
||||||
|
|
||||||
if (!len) {
|
if (!len) {
|
||||||
qpack_debug_printf(stderr, "[QPACK-DEC-DEC] empty stream\n");
|
qpack_debug_printf(stderr, "[QPACK-DEC-DEC] empty stream\n");
|
||||||
return 0;
|
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) {
|
if (inst == QPACK_DEC_INST_ICINC) {
|
||||||
/* Insert count increment */
|
/* Insert count increment */
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user