Define mask for fields
This commit is contained in:
parent
3bfe48972c
commit
6629f35a94
|
@ -58,10 +58,10 @@ static void spdylay_frame_pack_ctrl_hd(uint8_t* buf, const spdylay_ctrl_hd *hd)
|
||||||
static void spdylay_frame_unpack_ctrl_hd(spdylay_ctrl_hd *hd,
|
static void spdylay_frame_unpack_ctrl_hd(spdylay_ctrl_hd *hd,
|
||||||
const uint8_t* buf)
|
const uint8_t* buf)
|
||||||
{
|
{
|
||||||
hd->version = spdylay_get_uint16(buf) & 0x7fff;
|
hd->version = spdylay_get_uint16(buf) & SPDYLAY_VERSION_MASK;
|
||||||
hd->type = spdylay_get_uint16(buf+2);
|
hd->type = spdylay_get_uint16(buf+2);
|
||||||
hd->flags = buf[4];
|
hd->flags = buf[4];
|
||||||
hd->length = spdylay_get_uint32(buf+5) & 0xffffff;
|
hd->length = spdylay_get_uint32(buf+5) & SPDYLAY_LENGTH_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t spdylay_frame_alloc_pack_nv(uint8_t **buf_ptr,
|
static ssize_t spdylay_frame_alloc_pack_nv(uint8_t **buf_ptr,
|
||||||
|
@ -403,8 +403,9 @@ int spdylay_frame_unpack_syn_stream(spdylay_syn_stream *frame,
|
||||||
return SPDYLAY_ERR_INVALID_FRAME;
|
return SPDYLAY_ERR_INVALID_FRAME;
|
||||||
}
|
}
|
||||||
spdylay_frame_unpack_ctrl_hd(&frame->hd, head);
|
spdylay_frame_unpack_ctrl_hd(&frame->hd, head);
|
||||||
frame->stream_id = spdylay_get_uint32(payload) & 0x7fffffff;
|
frame->stream_id = spdylay_get_uint32(payload) & SPDYLAY_STREAM_ID_MASK;
|
||||||
frame->assoc_stream_id = spdylay_get_uint32(payload+4) & 0x7fffffff;
|
frame->assoc_stream_id =
|
||||||
|
spdylay_get_uint32(payload+4) & SPDYLAY_STREAM_ID_MASK;
|
||||||
frame->pri = spdylay_unpack_pri(payload+8);
|
frame->pri = spdylay_unpack_pri(payload+8);
|
||||||
r = spdylay_frame_alloc_unpack_nv(&frame->nv, payload+10, payloadlen-10,
|
r = spdylay_frame_alloc_unpack_nv(&frame->nv, payload+10, payloadlen-10,
|
||||||
inflater);
|
inflater);
|
||||||
|
@ -436,7 +437,7 @@ int spdylay_frame_unpack_syn_reply(spdylay_syn_reply *frame,
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
spdylay_frame_unpack_ctrl_hd(&frame->hd, head);
|
spdylay_frame_unpack_ctrl_hd(&frame->hd, head);
|
||||||
frame->stream_id = spdylay_get_uint32(payload) &0x7fffffff;
|
frame->stream_id = spdylay_get_uint32(payload) & SPDYLAY_STREAM_ID_MASK;
|
||||||
r = spdylay_frame_alloc_unpack_nv(&frame->nv, payload+6, payloadlen-6,
|
r = spdylay_frame_alloc_unpack_nv(&frame->nv, payload+6, payloadlen-6,
|
||||||
inflater);
|
inflater);
|
||||||
return r;
|
return r;
|
||||||
|
@ -467,7 +468,7 @@ int spdylay_frame_unpack_rst_stream(spdylay_rst_stream *frame,
|
||||||
return SPDYLAY_ERR_INVALID_FRAME;
|
return SPDYLAY_ERR_INVALID_FRAME;
|
||||||
}
|
}
|
||||||
spdylay_frame_unpack_ctrl_hd(&frame->hd, head);
|
spdylay_frame_unpack_ctrl_hd(&frame->hd, head);
|
||||||
frame->stream_id = spdylay_get_uint32(payload) & 0x7fffffff;
|
frame->stream_id = spdylay_get_uint32(payload) & SPDYLAY_STREAM_ID_MASK;
|
||||||
frame->status_code = spdylay_get_uint32(payload+4);
|
frame->status_code = spdylay_get_uint32(payload+4);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,10 @@
|
||||||
#include "spdylay_zlib.h"
|
#include "spdylay_zlib.h"
|
||||||
#include "spdylay_buffer.h"
|
#include "spdylay_buffer.h"
|
||||||
|
|
||||||
|
#define SPDYLAY_STREAM_ID_MASK 0x7fffffff
|
||||||
|
#define SPDYLAY_LENGTH_MASK 0xffffff
|
||||||
|
#define SPDYLAY_VERSION_MASK 0x7fff
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Packs SYN_STREAM frame |frame| in wire frame format and store it in
|
* Packs SYN_STREAM frame |frame| in wire frame format and store it in
|
||||||
* |*buf_ptr|. This function allocates enough memory to store given
|
* |*buf_ptr|. This function allocates enough memory to store given
|
||||||
|
|
Loading…
Reference in New Issue