add debug
This commit is contained in:
parent
15264e9e6c
commit
374d1d4e6a
@ -14,12 +14,13 @@
|
|||||||
-export([handle_request/4]).
|
-export([handle_request/4]).
|
||||||
|
|
||||||
handle_request("POST", "/network/create", _, #{<<"id">> := NetworkId}) when NetworkId > 0 ->
|
handle_request("POST", "/network/create", _, #{<<"id">> := NetworkId}) when NetworkId > 0 ->
|
||||||
case sdlan_network_sup:ensured_network_started(NetworkId) of
|
case sdlan_network_sup:ensure_network_started(NetworkId) of
|
||||||
{ok, Pid} when is_pid(Pid) ->
|
{ok, Pid} when is_pid(Pid) ->
|
||||||
{ok, 200, sdlan_util:json_data(<<"success">>)};
|
{ok, 200, sdlan_util:json_data(<<"success">>)};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
logger:debug("[network_handler] create network: ~p, get error: ~p", [NetworkId, Reason]),
|
logger:debug("[network_handler] create network: ~p, get error: ~p", [NetworkId, Reason]),
|
||||||
{ok, 200, sdlan_util:json_error(-1, <<"error">>)}
|
ReasonBin = sdlan_util:term_to_binary(Reason),
|
||||||
|
{ok, 200, sdlan_util:json_error(-1, <<"error: ", ReasonBin/binary>>)}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
handle_request("POST", "/network/delete", _, #{<<"id">> := NetworkId}) when NetworkId > 0 ->
|
handle_request("POST", "/network/delete", _, #{<<"id">> := NetworkId}) when NetworkId > 0 ->
|
||||||
|
|||||||
@ -172,7 +172,7 @@ init([Id]) when is_integer(Id) ->
|
|||||||
erlang:process_flag(trap_exit, true),
|
erlang:process_flag(trap_exit, true),
|
||||||
case sdlan_api:get_network(Id) of
|
case sdlan_api:get_network(Id) of
|
||||||
{ok, #{<<"ipaddr">> := Null}} when Null == <<"null">>; Null == <<"NULL">> ->
|
{ok, #{<<"ipaddr">> := Null}} when Null == <<"null">>; Null == <<"NULL">> ->
|
||||||
ignore;
|
{stop, <<"ipaddrr is null">>};
|
||||||
{ok, NetworkInfo = #{<<"id">> := Id, <<"name">> := Name, <<"domain">> := Domain, <<"algorithm">> := Algorithm0, <<"ipaddr">> := IpAddr0, <<"owner_id">> := OwnerId}} ->
|
{ok, NetworkInfo = #{<<"id">> := Id, <<"name">> := Name, <<"domain">> := Domain, <<"algorithm">> := Algorithm0, <<"ipaddr">> := IpAddr0, <<"owner_id">> := OwnerId}} ->
|
||||||
logger:debug("[sdlan_network] load network info: ~p", [NetworkInfo]),
|
logger:debug("[sdlan_network] load network info: ~p", [NetworkInfo]),
|
||||||
{IpAddr, MaskLen} = parse_ipaddr(IpAddr0),
|
{IpAddr, MaskLen} = parse_ipaddr(IpAddr0),
|
||||||
@ -194,7 +194,7 @@ init([Id]) when is_integer(Id) ->
|
|||||||
owner_id = OwnerId, mask_len = MaskLen, key = Key, throttle_key = ThrottleKey}};
|
owner_id = OwnerId, mask_len = MaskLen, key = Key, throttle_key = ThrottleKey}};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
logger:warning("[sdlan_network] load network: ~p, get error: ~p", [Id, Reason]),
|
logger:warning("[sdlan_network] load network: ~p, get error: ~p", [Id, Reason]),
|
||||||
ignore
|
{stop, Reason}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
%% @private
|
%% @private
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
%% API
|
%% API
|
||||||
-export([start_link/0]).
|
-export([start_link/0]).
|
||||||
-export([ensured_network_started/1, delete_network/1, get_all_networks/0, start_network/1, reallocate_bind_width/0]).
|
-export([ensure_network_started/1, delete_network/1, get_all_networks/0, start_network/1, reallocate_bind_width/0]).
|
||||||
|
|
||||||
%% Supervisor callbacks
|
%% Supervisor callbacks
|
||||||
-export([init/1]).
|
-export([init/1]).
|
||||||
@ -50,13 +50,15 @@ init([]) ->
|
|||||||
%%% Internal functions
|
%%% Internal functions
|
||||||
%%%===================================================================
|
%%%===================================================================
|
||||||
|
|
||||||
-spec ensured_network_started(Id :: integer()) -> {ok, Pid :: pid()} | {error, Reason :: any()}.
|
-spec ensure_network_started(Id :: integer()) -> {ok, Pid :: pid()} | {error, Reason :: any()}.
|
||||||
ensured_network_started(Id) when is_integer(Id) ->
|
ensure_network_started(Id) when is_integer(Id) ->
|
||||||
case sdlan_network:get_pid(Id) of
|
case sdlan_network:get_pid(Id) of
|
||||||
undefined ->
|
undefined ->
|
||||||
case supervisor:start_child(?MODULE, child_spec(Id)) of
|
case supervisor:start_child(?MODULE, child_spec(Id)) of
|
||||||
{ok, Pid} when is_pid(Pid) ->
|
{ok, Pid} when is_pid(Pid) ->
|
||||||
{ok, Pid};
|
{ok, Pid};
|
||||||
|
{ok, undefined} ->
|
||||||
|
{error, ignored};
|
||||||
{error, {'already_started', Pid}} when is_pid(Pid) ->
|
{error, {'already_started', Pid}} when is_pid(Pid) ->
|
||||||
{ok, Pid};
|
{ok, Pid};
|
||||||
{error, Error} ->
|
{error, Error} ->
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
-export([is_broadcast_mac/1, is_multicast_mac/1]).
|
-export([is_broadcast_mac/1, is_multicast_mac/1]).
|
||||||
-export([ipv4_to_int/1, int_to_ipv4/1, ips/2, format_ip/1]).
|
-export([ipv4_to_int/1, int_to_ipv4/1, ips/2, format_ip/1]).
|
||||||
-export([ipv6_to_bytes/1, ipv6_bytes_to_binary/1, ipv6_assist_info/0]).
|
-export([ipv6_to_bytes/1, ipv6_bytes_to_binary/1, ipv6_assist_info/0]).
|
||||||
-export([hmac/2]).
|
-export([hmac/2, term_to_binary/1]).
|
||||||
|
|
||||||
-spec format_mac(Mac :: binary()) -> binary().
|
-spec format_mac(Mac :: binary()) -> binary().
|
||||||
format_mac(Mac) when is_binary(Mac) ->
|
format_mac(Mac) when is_binary(Mac) ->
|
||||||
@ -162,3 +162,6 @@ hmac(Key, Data) when is_binary(Key), is_binary(Data) ->
|
|||||||
Digest = crypto:mac(hmac, md5, Key, Data),
|
Digest = crypto:mac(hmac, md5, Key, Data),
|
||||||
%% 转成十六进制小写字符串,和 PHP hash_hmac 一致
|
%% 转成十六进制小写字符串,和 PHP hash_hmac 一致
|
||||||
lists:flatten([io_lib:format("~2.16.0b", [B]) || B <- binary:bin_to_list(Digest)]).
|
lists:flatten([io_lib:format("~2.16.0b", [B]) || B <- binary:bin_to_list(Digest)]).
|
||||||
|
|
||||||
|
term_to_binary(Term) ->
|
||||||
|
iolist_to_binary(io_lib:format("~p", [Term])).
|
||||||
Loading…
x
Reference in New Issue
Block a user