修正KNI-ACCEPTOR中kni_info定义错误导致的KNI消息解析错误的问题。
This commit is contained in:
@@ -70,7 +70,7 @@ struct kni_tlv_header
|
|||||||
{
|
{
|
||||||
uint16_t magic;
|
uint16_t magic;
|
||||||
uint16_t counts;
|
uint16_t counts;
|
||||||
};
|
} __attribute__((__packed__));
|
||||||
|
|
||||||
struct kni_tlv_info
|
struct kni_tlv_info
|
||||||
{
|
{
|
||||||
@@ -80,11 +80,11 @@ struct kni_tlv_info
|
|||||||
union
|
union
|
||||||
{
|
{
|
||||||
uint8_t value_as_raw[0];
|
uint8_t value_as_raw[0];
|
||||||
uint16_t value_as_uint16;
|
uint16_t value_as_uint16[0];
|
||||||
uint32_t value_as_uint32;
|
uint32_t value_as_uint32[0];
|
||||||
uint16_t value_as_uint64;
|
uint64_t value_as_uint64[0];
|
||||||
};
|
};
|
||||||
};
|
} __attribute__((__packed__));
|
||||||
|
|
||||||
struct kni_acceptor
|
struct kni_acceptor
|
||||||
{
|
{
|
||||||
@@ -166,7 +166,7 @@ static int __kni_parse_tlv_data(struct kni_acceptor * ctx,
|
|||||||
/* VALUE is uint32_t, length is 4 */
|
/* VALUE is uint32_t, length is 4 */
|
||||||
case KNI_TLV_TYPE_PROTOCOL:
|
case KNI_TLV_TYPE_PROTOCOL:
|
||||||
{
|
{
|
||||||
uint32_t __value = tlv_info->value_as_uint32;
|
uint32_t __value = tlv_info->value_as_uint32[0];
|
||||||
if (__value == KNI_TLV_VALUE_HTTP)
|
if (__value == KNI_TLV_VALUE_HTTP)
|
||||||
{
|
{
|
||||||
out_para->session_type = STREAM_PROTO_PLAIN;
|
out_para->session_type = STREAM_PROTO_PLAIN;
|
||||||
@@ -182,7 +182,7 @@ static int __kni_parse_tlv_data(struct kni_acceptor * ctx,
|
|||||||
/* VALUE is uint32_t, length is 4 */
|
/* VALUE is uint32_t, length is 4 */
|
||||||
case KNI_TLV_TYPE_KEYRING_ID:
|
case KNI_TLV_TYPE_KEYRING_ID:
|
||||||
{
|
{
|
||||||
uint32_t __value = tlv_info->value_as_uint32;
|
uint32_t __value = tlv_info->value_as_uint32[0];
|
||||||
out_para->keyring_id = __value;
|
out_para->keyring_id = __value;
|
||||||
assert(tlv_info->len == sizeof(uint32_t));
|
assert(tlv_info->len == sizeof(uint32_t));
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user