修正解密流量转发中重建TCP流部分序列号错误的问题。

This commit is contained in:
luqiuwen
2019-06-09 14:53:17 +08:00
committed by zhengchao
parent d5c54b96a7
commit f518ebfa00
3 changed files with 95 additions and 37 deletions

View File

@@ -74,6 +74,40 @@ void tfe_stream_addr_free(struct tfe_stream_addr * addr)
free(addr);
}
struct tfe_stream_addr * tfe_stream_addr_reverse(struct tfe_stream_addr * orin)
{
struct tfe_stream_addr * reverse_addr = NULL;
if(orin->addrtype == TFE_ADDR_STREAM_TUPLE4_V4)
{
reverse_addr = (struct tfe_stream_addr *) malloc(sizeof(struct tfe_stream_addr) +
sizeof(struct tfe_stream_addr_tuple4_v4));
reverse_addr->addrtype = TFE_ADDR_STREAM_TUPLE4_V4;
reverse_addr->addrlen = sizeof(struct tfe_stream_addr_tuple4_v4);
reverse_addr->tuple4_v4->saddr = orin->tuple4_v4->daddr;
reverse_addr->tuple4_v4->daddr = orin->tuple4_v4->saddr;
reverse_addr->tuple4_v4->source = orin->tuple4_v4->dest;
reverse_addr->tuple4_v4->dest = orin->tuple4_v4->source;
}
else if (orin->addrtype == TFE_ADDR_STREAM_TUPLE4_V6)
{
reverse_addr = (struct tfe_stream_addr *) malloc(sizeof(struct tfe_stream_addr) +
sizeof(struct tfe_stream_addr_tuple4_v6));
reverse_addr->addrtype = TFE_ADDR_STREAM_TUPLE4_V6;
reverse_addr->addrlen = sizeof(struct tfe_stream_addr_tuple4_v6);
reverse_addr->tuple4_v6->saddr = orin->tuple4_v6->daddr;
reverse_addr->tuple4_v6->daddr = orin->tuple4_v6->saddr;
reverse_addr->tuple4_v6->source = orin->tuple4_v6->dest;
reverse_addr->tuple4_v6->dest = orin->tuple4_v6->source;
return reverse_addr;
}
assert(reverse_addr != NULL);
return reverse_addr;
}
struct tfe_stream_addr * tfe_stream_addr_create_by_fd(int fd, enum tfe_conn_dir dir)
{
struct tfe_stream_addr * __stream_addr = NULL;