fix proto
This commit is contained in:
parent
11ac0a5b8c
commit
37d46e5bbc
@ -59,8 +59,6 @@
|
||||
|
||||
%% 请求
|
||||
-define(PACKET_STUN_REQUEST, 16#30).
|
||||
%% 响应
|
||||
-define(PACKET_STUN_REPLY, 16#31).
|
||||
|
||||
%% stun网络类型检测
|
||||
%% 请求
|
||||
|
||||
@ -146,15 +146,6 @@
|
||||
}).
|
||||
-endif.
|
||||
|
||||
-ifndef('SDL_STUN_REPLY_PB_H').
|
||||
-define('SDL_STUN_REPLY_PB_H', true).
|
||||
-record(sdl_stun_reply,
|
||||
{network_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
|
||||
code = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
|
||||
message = <<>> :: unicode:chardata() | undefined % = 3, optional
|
||||
}).
|
||||
-endif.
|
||||
|
||||
-ifndef('SDL_DATA_PB_H').
|
||||
-define('SDL_DATA_PB_H', true).
|
||||
-record(sdl_data,
|
||||
@ -190,7 +181,9 @@
|
||||
-ifndef('SDL_STUN_PROBE_PB_H').
|
||||
-define('SDL_STUN_PROBE_PB_H', true).
|
||||
-record(sdl_stun_probe,
|
||||
{cookie = 0 :: non_neg_integer() | undefined % = 1, optional, 32 bits
|
||||
{cookie = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
|
||||
attr = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
|
||||
step = 0 :: non_neg_integer() | undefined % = 3, optional, 32 bits
|
||||
}).
|
||||
-endif.
|
||||
|
||||
@ -198,9 +191,9 @@
|
||||
-define('SDL_STUN_PROBE_REPLY_PB_H', true).
|
||||
-record(sdl_stun_probe_reply,
|
||||
{cookie = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
|
||||
port = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
|
||||
ip = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
|
||||
attr = 0 :: non_neg_integer() | undefined % = 4, optional, 32 bits
|
||||
step = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
|
||||
port = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
|
||||
ip = 0 :: non_neg_integer() | undefined % = 4, optional, 32 bits
|
||||
}).
|
||||
-endif.
|
||||
|
||||
|
||||
@ -83,8 +83,6 @@
|
||||
|
||||
-type sdl_stun_request() :: #sdl_stun_request{}.
|
||||
|
||||
-type sdl_stun_reply() :: #sdl_stun_reply{}.
|
||||
|
||||
-type sdl_data() :: #sdl_data{}.
|
||||
|
||||
-type sdl_register() :: #sdl_register{}.
|
||||
@ -99,9 +97,9 @@
|
||||
|
||||
-type sdl_arp_response() :: #sdl_arp_response{}.
|
||||
|
||||
-export_type(['sdl_v4_info'/0, 'sdl_v6_info'/0, 'sdl_register_super'/0, 'sdl_register_super_ack'/0, 'sdl_register_super_nak'/0, 'sdl_query_info'/0, 'sdl_peer_info'/0, 'sdl_empty_peer_info'/0, 'sdl_nat_changed_event'/0, 'sdl_drop_macs_event'/0, 'sdl_refresh_auth_event'/0, 'sdl_send_register_event'/0, 'sdl_network_shutdown_event'/0, 'sdl_stun_request'/0, 'sdl_stun_reply'/0, 'sdl_data'/0, 'sdl_register'/0, 'sdl_register_ack'/0, 'sdl_stun_probe'/0, 'sdl_stun_probe_reply'/0, 'sdl_arp_request'/0, 'sdl_arp_response'/0]).
|
||||
-type '$msg_name'() :: sdl_v4_info | sdl_v6_info | sdl_register_super | sdl_register_super_ack | sdl_register_super_nak | sdl_query_info | sdl_peer_info | sdl_empty_peer_info | sdl_nat_changed_event | sdl_drop_macs_event | sdl_refresh_auth_event | sdl_send_register_event | sdl_network_shutdown_event | sdl_stun_request | sdl_stun_reply | sdl_data | sdl_register | sdl_register_ack | sdl_stun_probe | sdl_stun_probe_reply | sdl_arp_request | sdl_arp_response.
|
||||
-type '$msg'() :: sdl_v4_info() | sdl_v6_info() | sdl_register_super() | sdl_register_super_ack() | sdl_register_super_nak() | sdl_query_info() | sdl_peer_info() | sdl_empty_peer_info() | sdl_nat_changed_event() | sdl_drop_macs_event() | sdl_refresh_auth_event() | sdl_send_register_event() | sdl_network_shutdown_event() | sdl_stun_request() | sdl_stun_reply() | sdl_data() | sdl_register() | sdl_register_ack() | sdl_stun_probe() | sdl_stun_probe_reply() | sdl_arp_request() | sdl_arp_response().
|
||||
-export_type(['sdl_v4_info'/0, 'sdl_v6_info'/0, 'sdl_register_super'/0, 'sdl_register_super_ack'/0, 'sdl_register_super_nak'/0, 'sdl_query_info'/0, 'sdl_peer_info'/0, 'sdl_empty_peer_info'/0, 'sdl_nat_changed_event'/0, 'sdl_drop_macs_event'/0, 'sdl_refresh_auth_event'/0, 'sdl_send_register_event'/0, 'sdl_network_shutdown_event'/0, 'sdl_stun_request'/0, 'sdl_data'/0, 'sdl_register'/0, 'sdl_register_ack'/0, 'sdl_stun_probe'/0, 'sdl_stun_probe_reply'/0, 'sdl_arp_request'/0, 'sdl_arp_response'/0]).
|
||||
-type '$msg_name'() :: sdl_v4_info | sdl_v6_info | sdl_register_super | sdl_register_super_ack | sdl_register_super_nak | sdl_query_info | sdl_peer_info | sdl_empty_peer_info | sdl_nat_changed_event | sdl_drop_macs_event | sdl_refresh_auth_event | sdl_send_register_event | sdl_network_shutdown_event | sdl_stun_request | sdl_data | sdl_register | sdl_register_ack | sdl_stun_probe | sdl_stun_probe_reply | sdl_arp_request | sdl_arp_response.
|
||||
-type '$msg'() :: sdl_v4_info() | sdl_v6_info() | sdl_register_super() | sdl_register_super_ack() | sdl_register_super_nak() | sdl_query_info() | sdl_peer_info() | sdl_empty_peer_info() | sdl_nat_changed_event() | sdl_drop_macs_event() | sdl_refresh_auth_event() | sdl_send_register_event() | sdl_network_shutdown_event() | sdl_stun_request() | sdl_data() | sdl_register() | sdl_register_ack() | sdl_stun_probe() | sdl_stun_probe_reply() | sdl_arp_request() | sdl_arp_response().
|
||||
-export_type(['$msg_name'/0, '$msg'/0]).
|
||||
|
||||
-if(?OTP_RELEASE >= 24).
|
||||
@ -142,7 +140,6 @@ encode_msg(Msg, MsgName, Opts) ->
|
||||
sdl_send_register_event -> encode_msg_sdl_send_register_event(id(Msg, TrUserData), TrUserData);
|
||||
sdl_network_shutdown_event -> encode_msg_sdl_network_shutdown_event(id(Msg, TrUserData), TrUserData);
|
||||
sdl_stun_request -> encode_msg_sdl_stun_request(id(Msg, TrUserData), TrUserData);
|
||||
sdl_stun_reply -> encode_msg_sdl_stun_reply(id(Msg, TrUserData), TrUserData);
|
||||
sdl_data -> encode_msg_sdl_data(id(Msg, TrUserData), TrUserData);
|
||||
sdl_register -> encode_msg_sdl_register(id(Msg, TrUserData), TrUserData);
|
||||
sdl_register_ack -> encode_msg_sdl_register_ack(id(Msg, TrUserData), TrUserData);
|
||||
@ -709,39 +706,6 @@ encode_msg_sdl_stun_request(#sdl_stun_request{client_id = F1, network_id = F2, m
|
||||
end
|
||||
end.
|
||||
|
||||
encode_msg_sdl_stun_reply(Msg, TrUserData) -> encode_msg_sdl_stun_reply(Msg, <<>>, TrUserData).
|
||||
|
||||
|
||||
encode_msg_sdl_stun_reply(#sdl_stun_reply{network_id = F1, code = F2, message = F3}, Bin, TrUserData) ->
|
||||
B1 = if F1 == undefined -> Bin;
|
||||
true ->
|
||||
begin
|
||||
TrF1 = id(F1, TrUserData),
|
||||
if TrF1 =:= 0 -> Bin;
|
||||
true -> e_varint(TrF1, <<Bin/binary, 8>>, TrUserData)
|
||||
end
|
||||
end
|
||||
end,
|
||||
B2 = if F2 == undefined -> B1;
|
||||
true ->
|
||||
begin
|
||||
TrF2 = id(F2, TrUserData),
|
||||
if TrF2 =:= 0 -> B1;
|
||||
true -> e_varint(TrF2, <<B1/binary, 16>>, TrUserData)
|
||||
end
|
||||
end
|
||||
end,
|
||||
if F3 == undefined -> B2;
|
||||
true ->
|
||||
begin
|
||||
TrF3 = id(F3, TrUserData),
|
||||
case is_empty_string(TrF3) of
|
||||
true -> B2;
|
||||
false -> e_type_string(TrF3, <<B2/binary, 26>>, TrUserData)
|
||||
end
|
||||
end
|
||||
end.
|
||||
|
||||
encode_msg_sdl_data(Msg, TrUserData) -> encode_msg_sdl_data(Msg, <<>>, TrUserData).
|
||||
|
||||
|
||||
@ -894,13 +858,31 @@ encode_msg_sdl_register_ack(#sdl_register_ack{network_id = F1, src_mac = F2, dst
|
||||
encode_msg_sdl_stun_probe(Msg, TrUserData) -> encode_msg_sdl_stun_probe(Msg, <<>>, TrUserData).
|
||||
|
||||
|
||||
encode_msg_sdl_stun_probe(#sdl_stun_probe{cookie = F1}, Bin, TrUserData) ->
|
||||
if F1 == undefined -> Bin;
|
||||
encode_msg_sdl_stun_probe(#sdl_stun_probe{cookie = F1, attr = F2, step = F3}, Bin, TrUserData) ->
|
||||
B1 = if F1 == undefined -> Bin;
|
||||
true ->
|
||||
begin
|
||||
TrF1 = id(F1, TrUserData),
|
||||
if TrF1 =:= 0 -> Bin;
|
||||
true -> e_varint(TrF1, <<Bin/binary, 8>>, TrUserData)
|
||||
end
|
||||
end
|
||||
end,
|
||||
B2 = if F2 == undefined -> B1;
|
||||
true ->
|
||||
begin
|
||||
TrF2 = id(F2, TrUserData),
|
||||
if TrF2 =:= 0 -> B1;
|
||||
true -> e_varint(TrF2, <<B1/binary, 16>>, TrUserData)
|
||||
end
|
||||
end
|
||||
end,
|
||||
if F3 == undefined -> B2;
|
||||
true ->
|
||||
begin
|
||||
TrF1 = id(F1, TrUserData),
|
||||
if TrF1 =:= 0 -> Bin;
|
||||
true -> e_varint(TrF1, <<Bin/binary, 8>>, TrUserData)
|
||||
TrF3 = id(F3, TrUserData),
|
||||
if TrF3 =:= 0 -> B2;
|
||||
true -> e_varint(TrF3, <<B2/binary, 24>>, TrUserData)
|
||||
end
|
||||
end
|
||||
end.
|
||||
@ -908,7 +890,7 @@ encode_msg_sdl_stun_probe(#sdl_stun_probe{cookie = F1}, Bin, TrUserData) ->
|
||||
encode_msg_sdl_stun_probe_reply(Msg, TrUserData) -> encode_msg_sdl_stun_probe_reply(Msg, <<>>, TrUserData).
|
||||
|
||||
|
||||
encode_msg_sdl_stun_probe_reply(#sdl_stun_probe_reply{cookie = F1, port = F2, ip = F3, attr = F4}, Bin, TrUserData) ->
|
||||
encode_msg_sdl_stun_probe_reply(#sdl_stun_probe_reply{cookie = F1, step = F2, port = F3, ip = F4}, Bin, TrUserData) ->
|
||||
B1 = if F1 == undefined -> Bin;
|
||||
true ->
|
||||
begin
|
||||
@ -1190,7 +1172,6 @@ decode_msg_2_doit(sdl_refresh_auth_event, Bin, TrUserData) -> id(decode_msg_sdl_
|
||||
decode_msg_2_doit(sdl_send_register_event, Bin, TrUserData) -> id(decode_msg_sdl_send_register_event(Bin, TrUserData), TrUserData);
|
||||
decode_msg_2_doit(sdl_network_shutdown_event, Bin, TrUserData) -> id(decode_msg_sdl_network_shutdown_event(Bin, TrUserData), TrUserData);
|
||||
decode_msg_2_doit(sdl_stun_request, Bin, TrUserData) -> id(decode_msg_sdl_stun_request(Bin, TrUserData), TrUserData);
|
||||
decode_msg_2_doit(sdl_stun_reply, Bin, TrUserData) -> id(decode_msg_sdl_stun_reply(Bin, TrUserData), TrUserData);
|
||||
decode_msg_2_doit(sdl_data, Bin, TrUserData) -> id(decode_msg_sdl_data(Bin, TrUserData), TrUserData);
|
||||
decode_msg_2_doit(sdl_register, Bin, TrUserData) -> id(decode_msg_sdl_register(Bin, TrUserData), TrUserData);
|
||||
decode_msg_2_doit(sdl_register_ack, Bin, TrUserData) -> id(decode_msg_sdl_register_ack(Bin, TrUserData), TrUserData);
|
||||
@ -2187,64 +2168,6 @@ skip_32_sdl_stun_request(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_
|
||||
|
||||
skip_64_sdl_stun_request(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> dfp_read_field_def_sdl_stun_request(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData).
|
||||
|
||||
decode_msg_sdl_stun_reply(Bin, TrUserData) -> dfp_read_field_def_sdl_stun_reply(Bin, 0, 0, 0, id(0, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData).
|
||||
|
||||
dfp_read_field_def_sdl_stun_reply(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_stun_reply_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_reply(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_stun_reply_code(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_reply(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_stun_reply_message(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_reply(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_stun_reply{network_id = F@_1, code = F@_2, message = F@_3};
|
||||
dfp_read_field_def_sdl_stun_reply(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_sdl_stun_reply(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
dg_read_field_def_sdl_stun_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_stun_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
dg_read_field_def_sdl_stun_reply(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) ->
|
||||
Key = X bsl N + Acc,
|
||||
case Key of
|
||||
8 -> d_field_sdl_stun_reply_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||
16 -> d_field_sdl_stun_reply_code(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||
26 -> d_field_sdl_stun_reply_message(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||
_ ->
|
||||
case Key band 7 of
|
||||
0 -> skip_varint_sdl_stun_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
||||
1 -> skip_64_sdl_stun_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
||||
2 -> skip_length_delimited_sdl_stun_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
||||
3 -> skip_group_sdl_stun_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
||||
5 -> skip_32_sdl_stun_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData)
|
||||
end
|
||||
end;
|
||||
dg_read_field_def_sdl_stun_reply(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_stun_reply{network_id = F@_1, code = F@_2, message = F@_3}.
|
||||
|
||||
d_field_sdl_stun_reply_network_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_stun_reply_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
d_field_sdl_stun_reply_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) ->
|
||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
||||
dfp_read_field_def_sdl_stun_reply(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData).
|
||||
|
||||
d_field_sdl_stun_reply_code(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_stun_reply_code(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
d_field_sdl_stun_reply_code(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) ->
|
||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
||||
dfp_read_field_def_sdl_stun_reply(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData).
|
||||
|
||||
d_field_sdl_stun_reply_message(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_stun_reply_message(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
d_field_sdl_stun_reply_message(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) ->
|
||||
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
||||
dfp_read_field_def_sdl_stun_reply(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData).
|
||||
|
||||
skip_varint_sdl_stun_reply(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_sdl_stun_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
skip_varint_sdl_stun_reply(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_stun_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
skip_length_delimited_sdl_stun_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_sdl_stun_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
skip_length_delimited_sdl_stun_reply(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) ->
|
||||
Length = X bsl N + Acc,
|
||||
<<_:Length/binary, Rest2/binary>> = Rest,
|
||||
dfp_read_field_def_sdl_stun_reply(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
skip_group_sdl_stun_reply(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) ->
|
||||
{_, Rest} = read_group(Bin, FNum),
|
||||
dfp_read_field_def_sdl_stun_reply(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
skip_32_sdl_stun_reply(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_stun_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
skip_64_sdl_stun_reply(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_stun_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
decode_msg_sdl_data(Bin, TrUserData) ->
|
||||
dfp_read_field_def_sdl_data(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(false, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), TrUserData).
|
||||
|
||||
@ -2463,57 +2386,71 @@ skip_32_sdl_register_ack(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrU
|
||||
|
||||
skip_64_sdl_register_ack(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_register_ack(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
decode_msg_sdl_stun_probe(Bin, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Bin, 0, 0, 0, id(0, TrUserData), TrUserData).
|
||||
decode_msg_sdl_stun_probe(Bin, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Bin, 0, 0, 0, id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData).
|
||||
|
||||
dfp_read_field_def_sdl_stun_probe(<<8, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_sdl_stun_probe_cookie(Rest, Z1, Z2, F, F@_1, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_probe(<<>>, 0, 0, _, F@_1, _) -> #sdl_stun_probe{cookie = F@_1};
|
||||
dfp_read_field_def_sdl_stun_probe(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_sdl_stun_probe(Other, Z1, Z2, F, F@_1, TrUserData).
|
||||
dfp_read_field_def_sdl_stun_probe(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_stun_probe_cookie(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_probe(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_stun_probe_attr(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_probe(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_stun_probe_step(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_probe(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_stun_probe{cookie = F@_1, attr = F@_2, step = F@_3};
|
||||
dfp_read_field_def_sdl_stun_probe(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_sdl_stun_probe(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
dg_read_field_def_sdl_stun_probe(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_stun_probe(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
||||
dg_read_field_def_sdl_stun_probe(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) ->
|
||||
dg_read_field_def_sdl_stun_probe(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_stun_probe(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
dg_read_field_def_sdl_stun_probe(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) ->
|
||||
Key = X bsl N + Acc,
|
||||
case Key of
|
||||
8 -> d_field_sdl_stun_probe_cookie(Rest, 0, 0, 0, F@_1, TrUserData);
|
||||
8 -> d_field_sdl_stun_probe_cookie(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||
16 -> d_field_sdl_stun_probe_attr(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||
24 -> d_field_sdl_stun_probe_step(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||
_ ->
|
||||
case Key band 7 of
|
||||
0 -> skip_varint_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, TrUserData);
|
||||
1 -> skip_64_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, TrUserData);
|
||||
2 -> skip_length_delimited_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, TrUserData);
|
||||
3 -> skip_group_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, TrUserData);
|
||||
5 -> skip_32_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, TrUserData)
|
||||
0 -> skip_varint_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
||||
1 -> skip_64_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
||||
2 -> skip_length_delimited_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
||||
3 -> skip_group_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
||||
5 -> skip_32_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData)
|
||||
end
|
||||
end;
|
||||
dg_read_field_def_sdl_stun_probe(<<>>, 0, 0, _, F@_1, _) -> #sdl_stun_probe{cookie = F@_1}.
|
||||
dg_read_field_def_sdl_stun_probe(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_stun_probe{cookie = F@_1, attr = F@_2, step = F@_3}.
|
||||
|
||||
d_field_sdl_stun_probe_cookie(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_sdl_stun_probe_cookie(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
||||
d_field_sdl_stun_probe_cookie(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, TrUserData) ->
|
||||
d_field_sdl_stun_probe_cookie(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_stun_probe_cookie(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
d_field_sdl_stun_probe_cookie(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) ->
|
||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
||||
dfp_read_field_def_sdl_stun_probe(RestF, 0, 0, F, NewFValue, TrUserData).
|
||||
dfp_read_field_def_sdl_stun_probe(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData).
|
||||
|
||||
skip_varint_sdl_stun_probe(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, TrUserData);
|
||||
skip_varint_sdl_stun_probe(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, TrUserData).
|
||||
d_field_sdl_stun_probe_attr(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_stun_probe_attr(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
d_field_sdl_stun_probe_attr(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) ->
|
||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
||||
dfp_read_field_def_sdl_stun_probe(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData).
|
||||
|
||||
skip_length_delimited_sdl_stun_probe(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> skip_length_delimited_sdl_stun_probe(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
||||
skip_length_delimited_sdl_stun_probe(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) ->
|
||||
d_field_sdl_stun_probe_step(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_stun_probe_step(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
d_field_sdl_stun_probe_step(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) ->
|
||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
||||
dfp_read_field_def_sdl_stun_probe(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData).
|
||||
|
||||
skip_varint_sdl_stun_probe(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
skip_varint_sdl_stun_probe(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
skip_length_delimited_sdl_stun_probe(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_sdl_stun_probe(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||
skip_length_delimited_sdl_stun_probe(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) ->
|
||||
Length = X bsl N + Acc,
|
||||
<<_:Length/binary, Rest2/binary>> = Rest,
|
||||
dfp_read_field_def_sdl_stun_probe(Rest2, 0, 0, F, F@_1, TrUserData).
|
||||
dfp_read_field_def_sdl_stun_probe(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
skip_group_sdl_stun_probe(Bin, _, Z2, FNum, F@_1, TrUserData) ->
|
||||
skip_group_sdl_stun_probe(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) ->
|
||||
{_, Rest} = read_group(Bin, FNum),
|
||||
dfp_read_field_def_sdl_stun_probe(Rest, 0, Z2, FNum, F@_1, TrUserData).
|
||||
dfp_read_field_def_sdl_stun_probe(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
skip_32_sdl_stun_probe(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, TrUserData).
|
||||
skip_32_sdl_stun_probe(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
skip_64_sdl_stun_probe(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, TrUserData).
|
||||
skip_64_sdl_stun_probe(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
||||
|
||||
decode_msg_sdl_stun_probe_reply(Bin, TrUserData) -> dfp_read_field_def_sdl_stun_probe_reply(Bin, 0, 0, 0, id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData).
|
||||
|
||||
dfp_read_field_def_sdl_stun_probe_reply(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_stun_probe_reply_cookie(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_probe_reply(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_stun_probe_reply_port(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_probe_reply(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_stun_probe_reply_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_probe_reply(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_stun_probe_reply_attr(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_probe_reply(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_stun_probe_reply{cookie = F@_1, port = F@_2, ip = F@_3, attr = F@_4};
|
||||
dfp_read_field_def_sdl_stun_probe_reply(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_stun_probe_reply_step(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_probe_reply(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_stun_probe_reply_port(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_probe_reply(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_stun_probe_reply_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
dfp_read_field_def_sdl_stun_probe_reply(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_stun_probe_reply{cookie = F@_1, step = F@_2, port = F@_3, ip = F@_4};
|
||||
dfp_read_field_def_sdl_stun_probe_reply(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dg_read_field_def_sdl_stun_probe_reply(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData).
|
||||
|
||||
dg_read_field_def_sdl_stun_probe_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_stun_probe_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
@ -2521,9 +2458,9 @@ dg_read_field_def_sdl_stun_probe_reply(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_
|
||||
Key = X bsl N + Acc,
|
||||
case Key of
|
||||
8 -> d_field_sdl_stun_probe_reply_cookie(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
16 -> d_field_sdl_stun_probe_reply_port(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
24 -> d_field_sdl_stun_probe_reply_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
32 -> d_field_sdl_stun_probe_reply_attr(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
16 -> d_field_sdl_stun_probe_reply_step(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
24 -> d_field_sdl_stun_probe_reply_port(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
32 -> d_field_sdl_stun_probe_reply_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
_ ->
|
||||
case Key band 7 of
|
||||
0 -> skip_varint_sdl_stun_probe_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
@ -2533,25 +2470,25 @@ dg_read_field_def_sdl_stun_probe_reply(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_
|
||||
5 -> skip_32_sdl_stun_probe_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData)
|
||||
end
|
||||
end;
|
||||
dg_read_field_def_sdl_stun_probe_reply(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_stun_probe_reply{cookie = F@_1, port = F@_2, ip = F@_3, attr = F@_4}.
|
||||
dg_read_field_def_sdl_stun_probe_reply(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_stun_probe_reply{cookie = F@_1, step = F@_2, port = F@_3, ip = F@_4}.
|
||||
|
||||
d_field_sdl_stun_probe_reply_cookie(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_stun_probe_reply_cookie(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
d_field_sdl_stun_probe_reply_cookie(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, TrUserData) ->
|
||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
||||
dfp_read_field_def_sdl_stun_probe_reply(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, TrUserData).
|
||||
|
||||
d_field_sdl_stun_probe_reply_port(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_stun_probe_reply_port(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
d_field_sdl_stun_probe_reply_port(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, TrUserData) ->
|
||||
d_field_sdl_stun_probe_reply_step(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_stun_probe_reply_step(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
d_field_sdl_stun_probe_reply_step(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, TrUserData) ->
|
||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
||||
dfp_read_field_def_sdl_stun_probe_reply(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, TrUserData).
|
||||
|
||||
d_field_sdl_stun_probe_reply_ip(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_stun_probe_reply_ip(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
d_field_sdl_stun_probe_reply_ip(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, TrUserData) ->
|
||||
d_field_sdl_stun_probe_reply_port(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_stun_probe_reply_port(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
d_field_sdl_stun_probe_reply_port(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, TrUserData) ->
|
||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
||||
dfp_read_field_def_sdl_stun_probe_reply(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, TrUserData).
|
||||
|
||||
d_field_sdl_stun_probe_reply_attr(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_stun_probe_reply_attr(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
d_field_sdl_stun_probe_reply_attr(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, TrUserData) ->
|
||||
d_field_sdl_stun_probe_reply_ip(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_stun_probe_reply_ip(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||
d_field_sdl_stun_probe_reply_ip(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, TrUserData) ->
|
||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
||||
dfp_read_field_def_sdl_stun_probe_reply(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, TrUserData).
|
||||
|
||||
@ -2768,7 +2705,6 @@ merge_msgs(Prev, New, MsgName, Opts) ->
|
||||
sdl_send_register_event -> merge_msg_sdl_send_register_event(Prev, New, TrUserData);
|
||||
sdl_network_shutdown_event -> merge_msg_sdl_network_shutdown_event(Prev, New, TrUserData);
|
||||
sdl_stun_request -> merge_msg_sdl_stun_request(Prev, New, TrUserData);
|
||||
sdl_stun_reply -> merge_msg_sdl_stun_reply(Prev, New, TrUserData);
|
||||
sdl_data -> merge_msg_sdl_data(Prev, New, TrUserData);
|
||||
sdl_register -> merge_msg_sdl_register(Prev, New, TrUserData);
|
||||
sdl_register_ack -> merge_msg_sdl_register_ack(Prev, New, TrUserData);
|
||||
@ -3046,21 +2982,6 @@ merge_msg_sdl_stun_request(#sdl_stun_request{client_id = PFclient_id, network_id
|
||||
true -> NFsession_token
|
||||
end}.
|
||||
|
||||
-compile({nowarn_unused_function,merge_msg_sdl_stun_reply/3}).
|
||||
merge_msg_sdl_stun_reply(#sdl_stun_reply{network_id = PFnetwork_id, code = PFcode, message = PFmessage}, #sdl_stun_reply{network_id = NFnetwork_id, code = NFcode, message = NFmessage}, _) ->
|
||||
#sdl_stun_reply{network_id =
|
||||
if NFnetwork_id =:= undefined -> PFnetwork_id;
|
||||
true -> NFnetwork_id
|
||||
end,
|
||||
code =
|
||||
if NFcode =:= undefined -> PFcode;
|
||||
true -> NFcode
|
||||
end,
|
||||
message =
|
||||
if NFmessage =:= undefined -> PFmessage;
|
||||
true -> NFmessage
|
||||
end}.
|
||||
|
||||
-compile({nowarn_unused_function,merge_msg_sdl_data/3}).
|
||||
merge_msg_sdl_data(#sdl_data{network_id = PFnetwork_id, src_mac = PFsrc_mac, dst_mac = PFdst_mac, is_p2p = PFis_p2p, ttl = PFttl, data = PFdata, session_token = PFsession_token, identity_id = PFidentity_id},
|
||||
#sdl_data{network_id = NFnetwork_id, src_mac = NFsrc_mac, dst_mac = NFdst_mac, is_p2p = NFis_p2p, ttl = NFttl, data = NFdata, session_token = NFsession_token, identity_id = NFidentity_id}, _) ->
|
||||
@ -3128,18 +3049,30 @@ merge_msg_sdl_register_ack(#sdl_register_ack{network_id = PFnetwork_id, src_mac
|
||||
end}.
|
||||
|
||||
-compile({nowarn_unused_function,merge_msg_sdl_stun_probe/3}).
|
||||
merge_msg_sdl_stun_probe(#sdl_stun_probe{cookie = PFcookie}, #sdl_stun_probe{cookie = NFcookie}, _) ->
|
||||
merge_msg_sdl_stun_probe(#sdl_stun_probe{cookie = PFcookie, attr = PFattr, step = PFstep}, #sdl_stun_probe{cookie = NFcookie, attr = NFattr, step = NFstep}, _) ->
|
||||
#sdl_stun_probe{cookie =
|
||||
if NFcookie =:= undefined -> PFcookie;
|
||||
true -> NFcookie
|
||||
end,
|
||||
attr =
|
||||
if NFattr =:= undefined -> PFattr;
|
||||
true -> NFattr
|
||||
end,
|
||||
step =
|
||||
if NFstep =:= undefined -> PFstep;
|
||||
true -> NFstep
|
||||
end}.
|
||||
|
||||
-compile({nowarn_unused_function,merge_msg_sdl_stun_probe_reply/3}).
|
||||
merge_msg_sdl_stun_probe_reply(#sdl_stun_probe_reply{cookie = PFcookie, port = PFport, ip = PFip, attr = PFattr}, #sdl_stun_probe_reply{cookie = NFcookie, port = NFport, ip = NFip, attr = NFattr}, _) ->
|
||||
merge_msg_sdl_stun_probe_reply(#sdl_stun_probe_reply{cookie = PFcookie, step = PFstep, port = PFport, ip = PFip}, #sdl_stun_probe_reply{cookie = NFcookie, step = NFstep, port = NFport, ip = NFip}, _) ->
|
||||
#sdl_stun_probe_reply{cookie =
|
||||
if NFcookie =:= undefined -> PFcookie;
|
||||
true -> NFcookie
|
||||
end,
|
||||
step =
|
||||
if NFstep =:= undefined -> PFstep;
|
||||
true -> NFstep
|
||||
end,
|
||||
port =
|
||||
if NFport =:= undefined -> PFport;
|
||||
true -> NFport
|
||||
@ -3147,10 +3080,6 @@ merge_msg_sdl_stun_probe_reply(#sdl_stun_probe_reply{cookie = PFcookie, port = P
|
||||
ip =
|
||||
if NFip =:= undefined -> PFip;
|
||||
true -> NFip
|
||||
end,
|
||||
attr =
|
||||
if NFattr =:= undefined -> PFattr;
|
||||
true -> NFattr
|
||||
end}.
|
||||
|
||||
-compile({nowarn_unused_function,merge_msg_sdl_arp_request/3}).
|
||||
@ -3208,7 +3137,6 @@ verify_msg(Msg, MsgName, Opts) ->
|
||||
sdl_send_register_event -> v_msg_sdl_send_register_event(Msg, [MsgName], TrUserData);
|
||||
sdl_network_shutdown_event -> v_msg_sdl_network_shutdown_event(Msg, [MsgName], TrUserData);
|
||||
sdl_stun_request -> v_msg_sdl_stun_request(Msg, [MsgName], TrUserData);
|
||||
sdl_stun_reply -> v_msg_sdl_stun_reply(Msg, [MsgName], TrUserData);
|
||||
sdl_data -> v_msg_sdl_data(Msg, [MsgName], TrUserData);
|
||||
sdl_register -> v_msg_sdl_register(Msg, [MsgName], TrUserData);
|
||||
sdl_register_ack -> v_msg_sdl_register_ack(Msg, [MsgName], TrUserData);
|
||||
@ -3476,21 +3404,6 @@ v_msg_sdl_stun_request(#sdl_stun_request{client_id = F1, network_id = F2, mac =
|
||||
ok;
|
||||
v_msg_sdl_stun_request(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_stun_request}, X, Path).
|
||||
|
||||
-compile({nowarn_unused_function,v_msg_sdl_stun_reply/3}).
|
||||
-dialyzer({nowarn_function,v_msg_sdl_stun_reply/3}).
|
||||
v_msg_sdl_stun_reply(#sdl_stun_reply{network_id = F1, code = F2, message = F3}, Path, TrUserData) ->
|
||||
if F1 == undefined -> ok;
|
||||
true -> v_type_uint32(F1, [network_id | Path], TrUserData)
|
||||
end,
|
||||
if F2 == undefined -> ok;
|
||||
true -> v_type_uint32(F2, [code | Path], TrUserData)
|
||||
end,
|
||||
if F3 == undefined -> ok;
|
||||
true -> v_type_string(F3, [message | Path], TrUserData)
|
||||
end,
|
||||
ok;
|
||||
v_msg_sdl_stun_reply(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_stun_reply}, X, Path).
|
||||
|
||||
-compile({nowarn_unused_function,v_msg_sdl_data/3}).
|
||||
-dialyzer({nowarn_function,v_msg_sdl_data/3}).
|
||||
v_msg_sdl_data(#sdl_data{network_id = F1, src_mac = F2, dst_mac = F3, is_p2p = F4, ttl = F5, data = F6, session_token = F7, identity_id = F8}, Path, TrUserData) ->
|
||||
@ -3553,27 +3466,33 @@ v_msg_sdl_register_ack(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl
|
||||
|
||||
-compile({nowarn_unused_function,v_msg_sdl_stun_probe/3}).
|
||||
-dialyzer({nowarn_function,v_msg_sdl_stun_probe/3}).
|
||||
v_msg_sdl_stun_probe(#sdl_stun_probe{cookie = F1}, Path, TrUserData) ->
|
||||
v_msg_sdl_stun_probe(#sdl_stun_probe{cookie = F1, attr = F2, step = F3}, Path, TrUserData) ->
|
||||
if F1 == undefined -> ok;
|
||||
true -> v_type_uint32(F1, [cookie | Path], TrUserData)
|
||||
end,
|
||||
if F2 == undefined -> ok;
|
||||
true -> v_type_uint32(F2, [attr | Path], TrUserData)
|
||||
end,
|
||||
if F3 == undefined -> ok;
|
||||
true -> v_type_uint32(F3, [step | Path], TrUserData)
|
||||
end,
|
||||
ok;
|
||||
v_msg_sdl_stun_probe(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_stun_probe}, X, Path).
|
||||
|
||||
-compile({nowarn_unused_function,v_msg_sdl_stun_probe_reply/3}).
|
||||
-dialyzer({nowarn_function,v_msg_sdl_stun_probe_reply/3}).
|
||||
v_msg_sdl_stun_probe_reply(#sdl_stun_probe_reply{cookie = F1, port = F2, ip = F3, attr = F4}, Path, TrUserData) ->
|
||||
v_msg_sdl_stun_probe_reply(#sdl_stun_probe_reply{cookie = F1, step = F2, port = F3, ip = F4}, Path, TrUserData) ->
|
||||
if F1 == undefined -> ok;
|
||||
true -> v_type_uint32(F1, [cookie | Path], TrUserData)
|
||||
end,
|
||||
if F2 == undefined -> ok;
|
||||
true -> v_type_uint32(F2, [port | Path], TrUserData)
|
||||
true -> v_type_uint32(F2, [step | Path], TrUserData)
|
||||
end,
|
||||
if F3 == undefined -> ok;
|
||||
true -> v_type_uint32(F3, [ip | Path], TrUserData)
|
||||
true -> v_type_uint32(F3, [port | Path], TrUserData)
|
||||
end,
|
||||
if F4 == undefined -> ok;
|
||||
true -> v_type_uint32(F4, [attr | Path], TrUserData)
|
||||
true -> v_type_uint32(F4, [ip | Path], TrUserData)
|
||||
end,
|
||||
ok;
|
||||
v_msg_sdl_stun_probe_reply(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_stun_probe_reply}, X, Path).
|
||||
@ -3738,10 +3657,6 @@ get_msg_defs() ->
|
||||
#field{name = nat_type, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = v6_info, fnum = 6, rnum = 7, type = {msg, sdl_v6_info}, occurrence = optional, opts = []},
|
||||
#field{name = session_token, fnum = 7, rnum = 8, type = bytes, occurrence = defaulty, opts = []}]},
|
||||
{{msg, sdl_stun_reply},
|
||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = code, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = message, fnum = 3, rnum = 4, type = string, occurrence = defaulty, opts = []}]},
|
||||
{{msg, sdl_data},
|
||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||
@ -3759,12 +3674,15 @@ get_msg_defs() ->
|
||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}]},
|
||||
{{msg, sdl_stun_probe}, [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}]},
|
||||
{{msg, sdl_stun_probe},
|
||||
[#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = attr, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = step, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}]},
|
||||
{{msg, sdl_stun_probe_reply},
|
||||
[#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = port, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = ip, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = attr, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}]},
|
||||
#field{name = step, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = port, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = ip, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}]},
|
||||
{{msg, sdl_arp_request},
|
||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = target_ip, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
|
||||
@ -3790,7 +3708,6 @@ get_msg_names() ->
|
||||
sdl_send_register_event,
|
||||
sdl_network_shutdown_event,
|
||||
sdl_stun_request,
|
||||
sdl_stun_reply,
|
||||
sdl_data,
|
||||
sdl_register,
|
||||
sdl_register_ack,
|
||||
@ -3818,7 +3735,6 @@ get_msg_or_group_names() ->
|
||||
sdl_send_register_event,
|
||||
sdl_network_shutdown_event,
|
||||
sdl_stun_request,
|
||||
sdl_stun_reply,
|
||||
sdl_data,
|
||||
sdl_register,
|
||||
sdl_register_ack,
|
||||
@ -3903,10 +3819,6 @@ find_msg_def(sdl_stun_request) ->
|
||||
#field{name = nat_type, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = v6_info, fnum = 6, rnum = 7, type = {msg, sdl_v6_info}, occurrence = optional, opts = []},
|
||||
#field{name = session_token, fnum = 7, rnum = 8, type = bytes, occurrence = defaulty, opts = []}];
|
||||
find_msg_def(sdl_stun_reply) ->
|
||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = code, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = message, fnum = 3, rnum = 4, type = string, occurrence = defaulty, opts = []}];
|
||||
find_msg_def(sdl_data) ->
|
||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||
@ -3924,12 +3836,15 @@ find_msg_def(sdl_register_ack) ->
|
||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}];
|
||||
find_msg_def(sdl_stun_probe) -> [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}];
|
||||
find_msg_def(sdl_stun_probe) ->
|
||||
[#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = attr, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = step, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}];
|
||||
find_msg_def(sdl_stun_probe_reply) ->
|
||||
[#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = port, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = ip, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = attr, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}];
|
||||
#field{name = step, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = port, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = ip, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}];
|
||||
find_msg_def(sdl_arp_request) ->
|
||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||
#field{name = target_ip, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
|
||||
@ -4010,7 +3925,6 @@ fqbin_to_msg_name(<<"SDLRefreshAuthEvent">>) -> sdl_refresh_auth_event;
|
||||
fqbin_to_msg_name(<<"SDLSendRegisterEvent">>) -> sdl_send_register_event;
|
||||
fqbin_to_msg_name(<<"SDLNetworkShutdownEvent">>) -> sdl_network_shutdown_event;
|
||||
fqbin_to_msg_name(<<"SDLStunRequest">>) -> sdl_stun_request;
|
||||
fqbin_to_msg_name(<<"SDLStunReply">>) -> sdl_stun_reply;
|
||||
fqbin_to_msg_name(<<"SDLData">>) -> sdl_data;
|
||||
fqbin_to_msg_name(<<"SDLRegister">>) -> sdl_register;
|
||||
fqbin_to_msg_name(<<"SDLRegisterAck">>) -> sdl_register_ack;
|
||||
@ -4035,7 +3949,6 @@ msg_name_to_fqbin(sdl_refresh_auth_event) -> <<"SDLRefreshAuthEvent">>;
|
||||
msg_name_to_fqbin(sdl_send_register_event) -> <<"SDLSendRegisterEvent">>;
|
||||
msg_name_to_fqbin(sdl_network_shutdown_event) -> <<"SDLNetworkShutdownEvent">>;
|
||||
msg_name_to_fqbin(sdl_stun_request) -> <<"SDLStunRequest">>;
|
||||
msg_name_to_fqbin(sdl_stun_reply) -> <<"SDLStunReply">>;
|
||||
msg_name_to_fqbin(sdl_data) -> <<"SDLData">>;
|
||||
msg_name_to_fqbin(sdl_register) -> <<"SDLRegister">>;
|
||||
msg_name_to_fqbin(sdl_register_ack) -> <<"SDLRegisterAck">>;
|
||||
@ -4100,7 +4013,6 @@ get_msg_containment("sdlan_pb") ->
|
||||
sdl_send_register_event,
|
||||
sdl_stun_probe,
|
||||
sdl_stun_probe_reply,
|
||||
sdl_stun_reply,
|
||||
sdl_stun_request,
|
||||
sdl_v4_info,
|
||||
sdl_v6_info];
|
||||
@ -4135,7 +4047,6 @@ get_proto_by_msg_name_as_fqbin(<<"SDLDropMacsEvent">>) -> "sdlan_pb";
|
||||
get_proto_by_msg_name_as_fqbin(<<"SDLArpRequest">>) -> "sdlan_pb";
|
||||
get_proto_by_msg_name_as_fqbin(<<"SDLStunProbe">>) -> "sdlan_pb";
|
||||
get_proto_by_msg_name_as_fqbin(<<"SDLArpResponse">>) -> "sdlan_pb";
|
||||
get_proto_by_msg_name_as_fqbin(<<"SDLStunReply">>) -> "sdlan_pb";
|
||||
get_proto_by_msg_name_as_fqbin(<<"SDLStunProbeReply">>) -> "sdlan_pb";
|
||||
get_proto_by_msg_name_as_fqbin(<<"SDLRegisterSuperNak">>) -> "sdlan_pb";
|
||||
get_proto_by_msg_name_as_fqbin(<<"SDLRegisterSuperAck">>) -> "sdlan_pb";
|
||||
|
||||
@ -165,27 +165,27 @@ handle_packet(Sock, ClientIp, ClientPort, <<?PACKET_STUN_REQUEST:8, Body/binary>
|
||||
%% 辅助节点没有assist的配置,不支持attr = 2的探测
|
||||
handle_packet(Sock, Ip, Port, <<?PACKET_STUN_PROBE:8, Body/binary>>) ->
|
||||
maybe
|
||||
#sdl_stun_probe{cookie = Cookie} ?= sdlan_pb:decode_msg(Body, sdl_stun_probe),
|
||||
#sdl_stun_probe{cookie = Cookie, step = Step, attr = Attr} ?= sdlan_pb:decode_msg(Body, sdl_stun_probe),
|
||||
logger:debug("[sdlan_stun] get stun_probe request, cookie: ~p", [Cookie]),
|
||||
|
||||
ProbeReply = #sdl_stun_probe_reply {
|
||||
ProbeReplyPacket = sdlan_pb:encode_msg(#sdl_stun_probe_reply {
|
||||
cookie = Cookie,
|
||||
ip = int_ip(Ip),
|
||||
port = Port,
|
||||
attr = ?STUN_ATTR_CHANGE_NONE
|
||||
},
|
||||
step = Step
|
||||
}),
|
||||
|
||||
%% 什么不都改变
|
||||
ProbeReplyNonePacket = sdlan_pb:encode_msg(ProbeReply),
|
||||
gen_udp:send(Sock, Ip, Port, <<?PACKET_STUN_PROBE_REPLY, ProbeReplyNonePacket/binary>>),
|
||||
|
||||
%% 切换端口返回
|
||||
ProbeReplyPortPacket = sdlan_pb:encode_msg(ProbeReply#sdl_stun_probe_reply{attr = ?STUN_ATTR_CHANGE_PORT}),
|
||||
sdlan_stun_port_assist:stun_relay(Ip, Port, ProbeReplyPortPacket),
|
||||
|
||||
%% 切换端口和ip
|
||||
ProbeReplyPeerPacket = sdlan_pb:encode_msg(ProbeReply#sdl_stun_probe_reply{attr = ?STUN_ATTR_CHANGE_PEER}),
|
||||
sdlan_stun_peer_assist:stun_relay(Ip, Port, ProbeReplyPeerPacket)
|
||||
case Attr of
|
||||
?STUN_ATTR_CHANGE_NONE ->
|
||||
%% 什么不都改变
|
||||
gen_udp:send(Sock, Ip, Port, <<?PACKET_STUN_PROBE_REPLY, ProbeReplyPacket/binary>>);
|
||||
?STUN_ATTR_CHANGE_PEER ->
|
||||
%% 切换端口和ip
|
||||
sdlan_stun_peer_assist:stun_relay(Ip, Port, ProbeReplyPacket);
|
||||
?STUN_ATTR_CHANGE_PORT ->
|
||||
%% 切换端口返回
|
||||
sdlan_stun_port_assist:stun_relay(Ip, Port, ProbeReplyPacket)
|
||||
end
|
||||
end;
|
||||
|
||||
%% 转发消息, 跨服务器的stun_reply的转发通过socket来转发
|
||||
|
||||
@ -111,12 +111,6 @@ message SDLStunRequest {
|
||||
bytes session_token = 7;
|
||||
}
|
||||
|
||||
message SDLStunReply {
|
||||
uint32 network_id = 1;
|
||||
uint32 code = 2;
|
||||
string message = 3;
|
||||
}
|
||||
|
||||
message SDLData {
|
||||
uint32 network_id = 1;
|
||||
bytes src_mac = 2;
|
||||
@ -146,13 +140,15 @@ message SDLRegisterAck {
|
||||
|
||||
message SDLStunProbe {
|
||||
uint32 cookie = 1;
|
||||
uint32 attr = 2;
|
||||
uint32 step = 3;
|
||||
}
|
||||
|
||||
message SDLStunProbeReply {
|
||||
uint32 cookie = 1;
|
||||
uint32 port = 2;
|
||||
uint32 ip = 3;
|
||||
uint32 attr = 4;
|
||||
uint32 step = 2;
|
||||
uint32 port = 3;
|
||||
uint32 ip = 4;
|
||||
}
|
||||
|
||||
// ARP查询相关
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user