fix network code

This commit is contained in:
anlicheng 2025-10-22 15:31:54 +08:00
parent 0a0688d230
commit f7371377ed
3 changed files with 40 additions and 15 deletions

View File

@ -20,7 +20,7 @@
handle_request("POST", "/test/auth_token", _, PostParams) -> handle_request("POST", "/test/auth_token", _, PostParams) ->
lager:debug("[test_handler] get post params: ~p", [PostParams]), lager:debug("[test_handler] get post params: ~p", [PostParams]),
Data = #{ Data = #{
<<"network_id">> => 8, <<"network_id">> => <<"x7qpl9rtf3sd5gh8jk2mn6bv">>,
<<"upgrade_type">> => 0, <<"upgrade_type">> => 0,
<<"upgrade_prompt">> => <<"simple upgrade">>, <<"upgrade_prompt">> => <<"simple upgrade">>,
<<"upgrade_address">> => <<"upgrade_address">> <<"upgrade_address">> => <<"upgrade_address">>
@ -36,27 +36,47 @@ handle_request("POST", "/test/upgrade", _, PostParams) ->
}, },
{ok, 200, sdlan_util:json_data(Data)}; {ok, 200, sdlan_util:json_data(Data)};
handle_request("POST", "/test/get_user_network", _, PostParams) ->
lager:debug("[test_handler] get post params: ~p", [PostParams]),
Data = #{
<<"network">> => [
#{
<<"name">> => <<"test1">>,
<<"code">> => <<"x7qpl9rtf3sd5gh8jk2mn6bv">>
},
#{
<<"name">> => <<"test2">>,
<<"code">> => <<"p8km3wz7es2df9gh4jk1lo5">>
},
#{
<<"name">> => <<"test3">>,
<<"code">> => <<"9fg2hj5kl8pr3ty6vb1nm7x">>
}
]
},
{ok, 200, sdlan_util:json_data(Data)};
handle_request("GET", "/test/get_all_networks", _, _) -> handle_request("GET", "/test/get_all_networks", _, _) ->
{ok, 200, sdlan_util:json_data([<<"8">>, <<"9">>, <<"10">>])}; {ok, 200, sdlan_util:json_data([<<"x7qpl9rtf3sd5gh8jk2mn6bv">>, <<"p8km3wz7es2df9gh4jk1lo5">>, <<"9fg2hj5kl8pr3ty6vb1nm7x">>])};
handle_request("GET", "/test/get_network", #{<<"id">> := Id}, _) -> handle_request("GET", "/test/get_network", #{<<"id">> := Id}, _) ->
Networks = #{ Networks = #{
<<"8">> => #{ <<"x7qpl9rtf3sd5gh8jk2mn6bv">> => #{
<<"id">> => <<"8">>, <<"id">> => <<"x7qpl9rtf3sd5gh8jk2mn6bv">>,
<<"name">> => <<"test1">>, <<"name">> => <<"test1">>,
<<"ipaddr">> => <<"10.211.179.0/24">>, <<"ipaddr">> => <<"10.211.179.0/24">>,
<<"owner_id">> => 1234, <<"owner_id">> => 1234,
<<"disabled_clients">> => [] <<"disabled_clients">> => []
}, },
<<"9">> => #{ <<"p8km3wz7es2df9gh4jk1lo5">> => #{
<<"id">> => <<"9">>, <<"id">> => <<"p8km3wz7es2df9gh4jk1lo5">>,
<<"name">> => <<"test2">>, <<"name">> => <<"test2">>,
<<"ipaddr">> => <<"10.211.180.0/24">>, <<"ipaddr">> => <<"10.211.180.0/24">>,
<<"owner_id">> => 1234, <<"owner_id">> => 1234,
<<"disabled_clients">> => [] <<"disabled_clients">> => []
}, },
<<"10">> => #{ <<"9fg2hj5kl8pr3ty6vb1nm7x">> => #{
<<"id">> => <<"10">>, <<"id">> => <<"9fg2hj5kl8pr3ty6vb1nm7x">>,
<<"name">> => <<"test3">>, <<"name">> => <<"test3">>,
<<"ipaddr">> => <<"10.211.181.0/24">>, <<"ipaddr">> => <<"10.211.181.0/24">>,
<<"owner_id">> => 1234, <<"owner_id">> => 1234,

View File

@ -123,15 +123,15 @@ handle_info({tcp, Sock, <<PacketId:32, ?PACKET_REGISTER_SUPER, Body/binary>>}, S
%% Mac地址不能是广播地址 %% Mac地址不能是广播地址
true = not (sdlan_util:is_multicast_mac(Mac) orelse sdlan_util:is_broadcast_mac(Mac)), true = not (sdlan_util:is_multicast_mac(Mac) orelse sdlan_util:is_broadcast_mac(Mac)),
AuthResult = case {NetworkCode, Token} of AuthResult = if
{<<>>, Token} -> Token /= <<>> ->
sdlan_api:auth_token(ClientId, Token, Version); sdlan_api:auth_token(ClientId, Token, Version);
{NetworkCode, <<>>} -> NetworkCode /= <<>> ->
sdlan_api:check_network_code(ClientId, NetworkCode, Version) sdlan_api:check_network_code(ClientId, NetworkCode, Version)
end, end,
case AuthResult of case AuthResult of
{ok, #{<<"result">> := #{<<"network_id">> := NetworkId, <<"upgrade_type">> := UpgradeType, <<"upgrade_prompt">> := UpgradePrompt, <<"upgrade_address">> := UpgradeAddress}}} when is_integer(NetworkId) -> {ok, #{<<"result">> := #{<<"network_id">> := NetworkId, <<"upgrade_type">> := UpgradeType, <<"upgrade_prompt">> := UpgradePrompt, <<"upgrade_address">> := UpgradeAddress}}} when is_binary(NetworkId) ->
lager:debug("[sdlan_channel] client_id: ~p, mac: ~p, token: ~p, version: ~p, registerd, alloc network_id: ~p", [ClientId, sdlan_util:format_mac(Mac), Token, Version, NetworkId]), lager:debug("[sdlan_channel] client_id: ~p, mac: ~p, token: ~p, version: ~p, registerd, alloc network_id: ~p", [ClientId, sdlan_util:format_mac(Mac), Token, Version, NetworkId]),
%% network的对应关系 %% network的对应关系
case sdlan_network:get_pid(NetworkId) of case sdlan_network:get_pid(NetworkId) of
@ -141,7 +141,7 @@ handle_info({tcp, Sock, <<PacketId:32, ?PACKET_REGISTER_SUPER, Body/binary>>}, S
RsaPubKey = sdlan_cipher:rsa_pem_decode(PubKey), RsaPubKey = sdlan_cipher:rsa_pem_decode(PubKey),
EncodedAesKey = rsa_encode(AesKey, RsaPubKey), EncodedAesKey = rsa_encode(AesKey, RsaPubKey),
RegisterSuperAck = sdlan_pb:encode_msg(#sdl_register_super_ack { RegisterSuperAck = sdlan_pb:encode_msg(Ack = #sdl_register_super_ack {
dev_addr = #sdl_dev_addr{ dev_addr = #sdl_dev_addr{
network_id = NetworkId, network_id = NetworkId,
net_addr = NetAddr, net_addr = NetAddr,
@ -153,6 +153,7 @@ handle_info({tcp, Sock, <<PacketId:32, ?PACKET_REGISTER_SUPER, Body/binary>>}, S
upgrade_prompt = UpgradePrompt, upgrade_prompt = UpgradePrompt,
upgrade_address = UpgradeAddress upgrade_address = UpgradeAddress
}), }),
lager:debug("ack is: ~p", [Ack]),
%% %%
Reply = <<PacketId:32, ?PACKET_REGISTER_SUPER_ACK, RegisterSuperAck/binary>>, Reply = <<PacketId:32, ?PACKET_REGISTER_SUPER_ACK, RegisterSuperAck/binary>>,
@ -230,7 +231,7 @@ handle_info({tcp, Sock, <<PacketId:32, ?PACKET_QUERY_INFO, Body/binary>>}, State
end; end;
handle_info({tcp, _Sock, <<0:32, ?PACKET_PING>>}, State = #state{transport = Transport, socket = Sock, client_id = ClientId, ping_counter = PingCounter}) -> handle_info({tcp, _Sock, <<0:32, ?PACKET_PING>>}, State = #state{transport = Transport, socket = Sock, client_id = ClientId, ping_counter = PingCounter}) ->
lager:debug("[sdlan_channel] client_id: ~p, get ping", [ClientId]), %lager:debug("[sdlan_channel] client_id: ~p, get ping", [ClientId]),
Transport:send(Sock, <<0:32, ?PACKET_PONG>>), Transport:send(Sock, <<0:32, ?PACKET_PONG>>),
{noreply, State#state{ping_counter = PingCounter + 1}}; {noreply, State#state{ping_counter = PingCounter + 1}};

View File

@ -23,7 +23,7 @@
-export([start_link/2]). -export([start_link/2]).
-export([get_name/1, get_pid/1, assign_ip_addr/5, peer_info/3, unregister/3, debug_info/1, get_network_id/1, get_used_map/1]). -export([get_name/1, get_pid/1, assign_ip_addr/5, peer_info/3, unregister/3, debug_info/1, get_network_id/1, get_used_map/1]).
-export([forward/5, update_hole/6, disable_client/2, get_channel/2, dropout_client/2, reload/1]). -export([forward/5, update_hole/6, disable_client/2, get_channel/2, dropout_client/2, reload/1]).
-export([test_event/1]). -export([test_event/1, simple_debug/0]).
%% gen_server callbacks %% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
@ -73,6 +73,10 @@
%%% API %%% API
%%%=================================================================== %%%===================================================================
simple_debug() ->
Pid = get_pid(<<"x7qpl9rtf3sd5gh8jk2mn6bv">>),
debug_info(Pid).
%% -- MARK: %% -- MARK:
test_event(Pid) -> test_event(Pid) ->
gen_server:cast(Pid, test_event). gen_server:cast(Pid, test_event).