|
|
|
@ -245,7 +245,7 @@ ts3init_reset_ipv6_tg(struct sk_buff *skb, const struct xt_action_param *par)
@@ -245,7 +245,7 @@ ts3init_reset_ipv6_tg(struct sk_buff *skb, const struct xt_action_param *par)
|
|
|
|
|
return NF_DROP; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static const char set_cookie_package_header[12] = {'T', 'S', '3', 'I', 'N', 'I', 'T', '1', 0x65, 0, 0x88, COMMAND_SET_COOKIE }; |
|
|
|
|
static const char ts3init_set_cookie_package_header[12] = {'T', 'S', '3', 'I', 'N', 'I', 'T', '1', 0x65, 0, 0x88, COMMAND_SET_COOKIE }; |
|
|
|
|
|
|
|
|
|
static bool |
|
|
|
|
ts3init_generate_cookie_ipv4(const struct xt_action_param *par, |
|
|
|
@ -255,7 +255,7 @@ ts3init_generate_cookie_ipv4(const struct xt_action_param *par,
@@ -255,7 +255,7 @@ ts3init_generate_cookie_ipv4(const struct xt_action_param *par,
|
|
|
|
|
const struct xt_ts3init_set_cookie_tginfo *info = par->targinfo; |
|
|
|
|
__u64 cookie[2]; |
|
|
|
|
|
|
|
|
|
if (get_current_cookie(info->cookie_seed, &cookie, packet_index) == false) |
|
|
|
|
if (ts3init_get_current_cookie(info->cookie_seed, &cookie, packet_index) == false) |
|
|
|
|
return false; |
|
|
|
|
if (ts3init_calculate_cookie_ipv4(ip, udp, cookie[0], cookie[1], cookie_hash)) |
|
|
|
|
return false; |
|
|
|
@ -270,7 +270,7 @@ ts3init_generate_cookie_ipv6(const struct xt_action_param *par,
@@ -270,7 +270,7 @@ ts3init_generate_cookie_ipv6(const struct xt_action_param *par,
|
|
|
|
|
const struct xt_ts3init_set_cookie_tginfo *info = par->targinfo; |
|
|
|
|
__u64 cookie[2]; |
|
|
|
|
|
|
|
|
|
if (get_current_cookie(info->cookie_seed, &cookie, packet_index) == false) |
|
|
|
|
if (ts3init_get_current_cookie(info->cookie_seed, &cookie, packet_index) == false) |
|
|
|
|
return false; |
|
|
|
|
if (ts3init_calculate_cookie_ipv6(ip, udp, cookie[0], cookie[1], cookie_hash)) |
|
|
|
|
return false; |
|
|
|
@ -286,7 +286,7 @@ ts3init_fill_set_cookie_payload(const struct sk_buff *skb,
@@ -286,7 +286,7 @@ ts3init_fill_set_cookie_payload(const struct sk_buff *skb,
|
|
|
|
|
const struct xt_ts3init_set_cookie_tginfo *info = par->targinfo; |
|
|
|
|
u8 *payload, payload_buf[34]; |
|
|
|
|
|
|
|
|
|
memcpy(newpayload, set_cookie_package_header, sizeof(set_cookie_package_header)); |
|
|
|
|
memcpy(newpayload, ts3init_set_cookie_package_header, sizeof(ts3init_set_cookie_package_header)); |
|
|
|
|
newpayload[12] = (u8)cookie_hash; |
|
|
|
|
newpayload[13] = (u8)(cookie_hash >> 8); |
|
|
|
|
newpayload[14] = (u8)(cookie_hash >> 16); |
|
|
|
@ -327,7 +327,7 @@ ts3init_set_cookie_ipv4_tg(struct sk_buff *skb, const struct xt_action_param *pa
@@ -327,7 +327,7 @@ ts3init_set_cookie_ipv4_tg(struct sk_buff *skb, const struct xt_action_param *pa
|
|
|
|
|
u8 *payload; |
|
|
|
|
u64 cookie_hash; |
|
|
|
|
u8 packet_index; |
|
|
|
|
const int payload_size = sizeof(set_cookie_package_header) + 20; |
|
|
|
|
const int payload_size = sizeof(ts3init_set_cookie_package_header) + 20; |
|
|
|
|
|
|
|
|
|
if (ts3init_prepare_ipv4_reply(skb, par, payload_size, &newskb, &newip, &newudp, &payload)) |
|
|
|
|
{ |
|
|
|
@ -353,7 +353,7 @@ ts3init_set_cookie_ipv6_tg(struct sk_buff *skb, const struct xt_action_param *pa
@@ -353,7 +353,7 @@ ts3init_set_cookie_ipv6_tg(struct sk_buff *skb, const struct xt_action_param *pa
|
|
|
|
|
u8 *payload; |
|
|
|
|
u64 cookie_hash; |
|
|
|
|
u8 packet_index; |
|
|
|
|
const int payload_size = sizeof(set_cookie_package_header) + 20; |
|
|
|
|
const int payload_size = sizeof(ts3init_set_cookie_package_header) + 20; |
|
|
|
|
|
|
|
|
|
if (ts3init_prepare_ipv6_reply(skb, par, payload_size, &newskb, &newip, &newudp, &payload)) |
|
|
|
|
{ |
|
|
|
|