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