working clients show up

This commit is contained in:
helge
2020-12-16 13:33:39 -08:00
parent 436edc2d92
commit 6207c9f1c1
3 changed files with 62 additions and 11 deletions

View File

@@ -40,15 +40,29 @@
-record ('AWLAN_Node',{
key_id :: binary() | ets_dont_care(),
mqtt_settings = [<<"map">>,[]] :: term() | ets_dont_care(),
redirector_addr = <<>> :: term() | ets_dont_care(),
manager_addr = <<>> :: term() | ets_dont_care(),
sku_number = [<<"set">>,[]] :: term() | ets_dont_care(),
serial_number = <<>> :: term() | ets_dont_care(),
model = <<>>:: term() | ets_dont_care(),
version_matrix = [<<"map">>,[]] :: term() | ets_dont_care(),
id = <<"">> :: term(),
firmware_version = <<>> :: term() | ets_dont_care(),
firmware_url = <<"">> :: term(),
upgrade_dl_timer = 0 :: term(),
platform_version = <<>> :: term() | ets_dont_care(),
revision = <<>> :: term() | ets_dont_care(),
version_matrix = [<<"map">>,[]] :: term() | ets_dont_care()
firmware_pass = <<"">> :: term(),
upgrade_timer = 0 :: term(),
max_backoff = 60 :: term(),
led_config = [<<"map">>,[]] :: term(),
redirector_addr = <<>> :: term() | ets_dont_care(),
serial_number = <<>> :: term() | ets_dont_care(),
'_version' = [<<"uuid">>,<<"33fad8ee-4cd8-4818-a247-a4161ce3f2b0">>] :: term(),
mqtt_headers = [<<"map">>,[]] :: term(),
min_backoff = 30 :: term(),
device_mode = [<<"set">>,[]] :: term(),
upgrade_status = 0 :: term(),
revision = <<"1">> :: term() | ets_dont_care(),
mqtt_topics = [<<"map">>,[]] :: term(),
manager_addr = <<>> :: term() | ets_dont_care(),
factory_reset = [<<"set">>,[]] :: term()
}).
@@ -157,7 +171,23 @@
-record ('DHCP_leased_IP', {
key_id :: binary() | ets_dont_care()
key_id :: binary() | ets_dont_care(),
db_status = 1 :: term(),
subnet_mask = <<"255.255.255.0">> :: term(),
hostname = <<"">> :: term(),
secondary_dns = <<"0.0.0.0/0">> :: term(),
inet_addr = <<"">> :: term(),
lease_time = 43200 :: term(),
hwaddr = <<"">> :: term(),
'_version' = [<<"uuid">>,<<"463c9bfd-e539-419c-83d2-6048a1a9e2a7">>] :: term(),
manuf_id = 0 :: term(),
vendor_class = <<"">> :: term(),
device_type = 0 :: term(),
dhcp_server = <<"192.168.1.1">> :: term(),
device_name = <<"">> :: term(),
fingerprint = <<"1,121,3,6,15,114,119,252">> :: term(),
primary_dns = <<"192.168.1.1">> :: term(),
gateway = <<"192.168.1.1">> :: term()
}).
-record ('Wifi_Radio_Config', {

View File

@@ -53,7 +53,8 @@ configure (#cfg{ca_name=CAName, id=ID, redirector=R}=Config) ->
{lan_addr,<<"192.168.1.1">>},
{lan_mac,Info#client_info.lan_mac0},
{tip_redirector,R},
{wifi_clients,Info#client_info.wifi_clients}
{wifi_clients,Info#client_info.wifi_clients},
{name,Info#client_info.name}
% {serial,<<"21P10C69717951">>},
% {type,<<"EA8300">>},
% {wan_addr,<<"10.20.0.113">>},
@@ -101,6 +102,7 @@ initialize_ap_tables (Store, APC) ->
create_table('Wifi_Inet_State',APC,Store),
create_table('Wifi_RRM_Config',APC,Store),
create_table('Wifi_Stats_Config',APC,Store),
create_table ('DHCP_leased_IP',APC,Store),
create_table('Wifi_Associated_Clients',APC,Store).
%%------------------------------------------------------------------------------
@@ -378,7 +380,7 @@ create_table ('Wifi_RRM_Config',_APC,Store) ->
});
create_table ('Wifi_Associated_Clients',APC,Store) ->
io:format("CONFIGURED WIFI CLIENTS:~n~p~n",[proplists:get_value(wifi_clients,APC)]),
%io:format("CONFIGURED WIFI CLIENTS:~n~p~n",[proplists:get_value(wifi_clients,APC)]),
F = fun({_,_,[MAC|_]}) ->
ets:insert(Store, #'Wifi_Associated_Clients'{
key_id = utils:uuid_b(),
@@ -399,6 +401,19 @@ create_table ('Wifi_Associated_Clients',APC,Store) ->
% oftag = [<<"set">>,[]]
% });
create_table ('DHCP_leased_IP',APC,Store) ->
F = fun(N,{_,_,[MAC|_]}) ->
ets:insert(Store, #'DHCP_leased_IP'{
key_id = utils:uuid_b(),
'_version' = [<<"uuid">>, utils:uuid_b()],
hostname = iolist_to_binary([proplists:get_value(name,APC),"_",integer_to_list(N)]),
inet_addr = iolist_to_binary(["192.168.1.",integer_to_list(N+1)]),
hwaddr = MAC
})
end,
CL = proplists:get_value(wifi_clients,APC),
[F(N,X) || {N,X} <- lists:zip(lists:seq(1,length(CL)),CL)];
create_table ('Wifi_Stats_Config',_APC,Store) ->
ets:insert(Store, #'Wifi_Stats_Config'{
key_id = <<"f84b6834-80d6-4fd6-af73-98e3f4f96033">>,
@@ -423,6 +438,7 @@ create_table ('AWLAN_Node',APC,Store) ->
key_id = utils:uuid_b(),
redirector_addr = proplists:get_value(tip_redirector,APC),
serial_number = proplists:get_value(serial,APC),
id = proplists:get_value(serial,APC),
model = proplists:get_value(type,APC),
revision = <<"1">>,
platform_version = <<"OPENWRT_EA8300">>,

View File

@@ -32,8 +32,9 @@ eval_req(<<"transact">>,Id,#{<<"params">>:=_P},_Store) ->
eval_req(<<"monitor">>,Id,#{<<"params">>:=[<<"Open_vSwitch">>,NSpace|Tables]},Store) when length(Tables)==1 ->
Mon = req_monitor(NSpace,maps:to_list(hd(Tables)),Store),
Res = make_result(Id,Mon),
%Json = iolist_to_binary(jiffy:encode(Res)),
io:format("MONITOR REQUEST (~s):~n",[NSpace]), %,Json]),
% Json = iolist_to_binary(jiffy:encode(Res,[pretty])),
% io:format("MONITOR REQUEST (~s):~n~s~n",[NSpace,Json]),
io:format("MONITOR REQUEST (~s):~n",[NSpace]),
{ok, Res};
eval_req(<<"monitor">>,Id,P,_) ->
?L_EA("unrecognized monitor request: ~p",[P]),
@@ -95,7 +96,11 @@ req_monitor (NameSpace,[{Table,Operations}|_],Store) ->
case Table of
<<"Wifi_Associated_Clients">> ->
Res = monitor_result(modify,M,Store),
timer:apply_after(3000,?MODULE,publish_monitor,[self(),NameSpace,Res]),
timer:apply_after(5000,?MODULE,publish_monitor,[self(),NameSpace,Res]),
#{};
<<"DHCP_leased_IP">> ->
Res = monitor_result(modify,M,Store),
timer:apply_after(5500,?MODULE,publish_monitor,[self(),NameSpace,Res]),
#{};
_ ->
Ret