修改项目结构

This commit is contained in:
anlicheng 2026-04-02 14:26:48 +08:00
parent e01916fabf
commit 32a7151f7d
52 changed files with 4713 additions and 55 deletions

245
include/sdlan_pb.hrl Normal file
View File

@ -0,0 +1,245 @@
%% -*- coding: utf-8 -*-
%% Automatically generated, do not edit
%% Generated by gpb_compile version 4.21.7
-ifndef(sdlan_pb).
-define(sdlan_pb, true).
-define(sdlan_pb_gpb_version, "4.21.7").
-ifndef('HELLO_PB_H').
-define('HELLO_PB_H', true).
-record('Hello',
{
}).
-endif.
-ifndef('SDLV4INFO_PB_H').
-define('SDLV4INFO_PB_H', true).
-record('SDLV4Info',
{port = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
v4 = <<>> :: iodata() | undefined, % = 2, optional
nat_type = 0 :: non_neg_integer() | undefined % = 3, optional, 32 bits
}).
-endif.
-ifndef('SDLV6INFO_PB_H').
-define('SDLV6INFO_PB_H', true).
-record('SDLV6Info',
{port = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
v6 = <<>> :: iodata() | undefined % = 2, optional
}).
-endif.
-ifndef('SDLWELCOME_PB_H').
-define('SDLWELCOME_PB_H', true).
-record('SDLWelcome',
{version = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
max_bidi_streams = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
max_packet_size = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
heartbeat_sec = 0 :: non_neg_integer() | undefined % = 4, optional, 32 bits
}).
-endif.
-ifndef('SDLREGISTERSUPER_PB_H').
-define('SDLREGISTERSUPER_PB_H', true).
-record('SDLRegisterSuper',
{client_id = <<>> :: unicode:chardata() | undefined, % = 1, optional
network_id = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
mac = <<>> :: iodata() | undefined, % = 3, optional
ip = 0 :: non_neg_integer() | undefined, % = 4, optional, 32 bits
mask_len = 0 :: non_neg_integer() | undefined, % = 5, optional, 32 bits
hostname = <<>> :: unicode:chardata() | undefined, % = 6, optional
pub_key = <<>> :: unicode:chardata() | undefined, % = 7, optional
access_token = <<>> :: unicode:chardata() | undefined % = 8, optional
}).
-endif.
-ifndef('SDLREGISTERSUPERACK_PB_H').
-define('SDLREGISTERSUPERACK_PB_H', true).
-record('SDLRegisterSuperAck',
{algorithm = <<>> :: unicode:chardata() | undefined, % = 1, optional
key = <<>> :: iodata() | undefined, % = 2, optional
region_id = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
session_token = <<>> :: iodata() | undefined % = 4, optional
}).
-endif.
-ifndef('SDLREGISTERSUPERNAK_PB_H').
-define('SDLREGISTERSUPERNAK_PB_H', true).
-record('SDLRegisterSuperNak',
{error_code = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
error_message = <<>> :: unicode:chardata() | undefined % = 2, optional
}).
-endif.
-ifndef('SDLQUERYINFO_PB_H').
-define('SDLQUERYINFO_PB_H', true).
-record('SDLQueryInfo',
{dst_mac = <<>> :: iodata() | undefined % = 1, optional
}).
-endif.
-ifndef('SDLPEERINFO_PB_H').
-define('SDLPEERINFO_PB_H', true).
-record('SDLPeerInfo',
{dst_mac = <<>> :: iodata() | undefined, % = 1, optional
v4_info :: sdlan_pb:'SDLV4Info'() | undefined, % = 2, optional
v6_info :: sdlan_pb:'SDLV6Info'() | undefined % = 3, optional
}).
-endif.
-ifndef('SDLARPREQUEST_PB_H').
-define('SDLARPREQUEST_PB_H', true).
-record('SDLArpRequest',
{target_ip = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
origin_ip = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
context = <<>> :: iodata() | undefined % = 3, optional
}).
-endif.
-ifndef('SDLARPRESPONSE_PB_H').
-define('SDLARPRESPONSE_PB_H', true).
-record('SDLArpResponse',
{target_ip = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
target_mac = <<>> :: iodata() | undefined, % = 2, optional
origin_ip = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
context = <<>> :: iodata() | undefined % = 4, optional
}).
-endif.
-ifndef('SDLPOLICYREQUEST_PB_H').
-define('SDLPOLICYREQUEST_PB_H', true).
-record('SDLPolicyRequest',
{src_identity_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
dst_identity_id = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
version = 0 :: non_neg_integer() | undefined % = 3, optional, 32 bits
}).
-endif.
-ifndef('SDLPOLICYRESPONSE_PB_H').
-define('SDLPOLICYRESPONSE_PB_H', true).
-record('SDLPolicyResponse',
{src_identity_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
dst_identity_id = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
version = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
rules = <<>> :: iodata() | undefined % = 4, optional
}).
-endif.
-ifndef('SDLEVENT.NATCHANGED_PB_H').
-define('SDLEVENT.NATCHANGED_PB_H', true).
-record('SDLEvent.NatChanged',
{mac = <<>> :: iodata() | undefined, % = 1, optional
ip = 0 :: non_neg_integer() | undefined % = 2, optional, 32 bits
}).
-endif.
-ifndef('SDLEVENT.SENDREGISTER_PB_H').
-define('SDLEVENT.SENDREGISTER_PB_H', true).
-record('SDLEvent.SendRegister',
{dst_mac = <<>> :: iodata() | undefined, % = 1, optional
nat_ip = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
nat_port = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
nat_type = 0 :: non_neg_integer() | undefined, % = 4, optional, 32 bits
v6_info :: sdlan_pb:'SDLV6Info'() | undefined % = 5, optional
}).
-endif.
-ifndef('SDLEVENT.NETWORKSHUTDOWN_PB_H').
-define('SDLEVENT.NETWORKSHUTDOWN_PB_H', true).
-record('SDLEvent.NetworkShutdown',
{message = <<>> :: unicode:chardata() | undefined % = 1, optional
}).
-endif.
-ifndef('SDLEVENT.EXITNODECONTROL_PB_H').
-define('SDLEVENT.EXITNODECONTROL_PB_H', true).
-record('SDLEvent.ExitNodeControl',
{action = 0 :: integer() | undefined, % = 1, optional, 32 bits
node_mac = <<>> :: iodata() | undefined, % = 2, optional
node_ip = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
remark = <<>> :: unicode:chardata() | undefined % = 4, optional
}).
-endif.
-ifndef('SDLEVENT_PB_H').
-define('SDLEVENT_PB_H', true).
-record('SDLEvent',
{event :: {nat_changed, sdlan_pb:'SDLEvent.NatChanged'()} | {send_register, sdlan_pb:'SDLEvent.SendRegister'()} | {shutdown, sdlan_pb:'SDLEvent.NetworkShutdown'()} | {exit_node, sdlan_pb:'SDLEvent.ExitNodeControl'()} | undefined % oneof
}).
-endif.
-ifndef('SDLSTUNREQUEST_PB_H').
-define('SDLSTUNREQUEST_PB_H', true).
-record('SDLStunRequest',
{client_id = <<>> :: unicode:chardata() | undefined, % = 1, optional
network_id = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
mac = <<>> :: iodata() | undefined, % = 3, optional
ip = 0 :: non_neg_integer() | undefined, % = 4, optional, 32 bits
nat_type = 0 :: non_neg_integer() | undefined, % = 5, optional, 32 bits
v6_info :: sdlan_pb:'SDLV6Info'() | undefined, % = 6, optional
session_token = <<>> :: iodata() | undefined % = 7, optional
}).
-endif.
-ifndef('SDLSTUNREPLY_PB_H').
-define('SDLSTUNREPLY_PB_H', true).
-record('SDLStunReply',
{
}).
-endif.
-ifndef('SDLDATA_PB_H').
-define('SDLDATA_PB_H', true).
-record('SDLData',
{network_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
src_mac = <<>> :: iodata() | undefined, % = 2, optional
dst_mac = <<>> :: iodata() | undefined, % = 3, optional
is_p2p = false :: boolean() | 0 | 1 | undefined, % = 4, optional
ttl = 0 :: non_neg_integer() | undefined, % = 5, optional, 32 bits
data = <<>> :: iodata() | undefined, % = 6, optional
session_token = <<>> :: iodata() | undefined, % = 7, optional
identity_id = 0 :: non_neg_integer() | undefined % = 8, optional, 32 bits
}).
-endif.
-ifndef('SDLSTUNPROBE_PB_H').
-define('SDLSTUNPROBE_PB_H', true).
-record('SDLStunProbe',
{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.
-ifndef('SDLSTUNPROBEREPLY_PB_H').
-define('SDLSTUNPROBEREPLY_PB_H', true).
-record('SDLStunProbeReply',
{cookie = 0 :: non_neg_integer() | undefined, % = 1, 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.
-ifndef('SDLREGISTER_PB_H').
-define('SDLREGISTER_PB_H', true).
-record('SDLRegister',
{network_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
src_mac = <<>> :: iodata() | undefined, % = 2, optional
dst_mac = <<>> :: iodata() | undefined % = 3, optional
}).
-endif.
-ifndef('SDLREGISTERACK_PB_H').
-define('SDLREGISTERACK_PB_H', true).
-record('SDLRegisterAck',
{network_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
src_mac = <<>> :: iodata() | undefined, % = 2, optional
dst_mac = <<>> :: iodata() | undefined % = 3, optional
}).
-endif.
-endif.

View File

@ -1,7 +1,13 @@
syntax = "proto3"; syntax = "proto3";
package mypkg;
// //
message Hello {
}
message SDLV4Info { message SDLV4Info {
uint32 port = 1; uint32 port = 1;
bytes v4 = 2; bytes v4 = 2;

View File

@ -6,13 +6,20 @@
{rebar3_gpb_plugin, ".*", {git, "https://github.com/lrascao/rebar3_gpb_plugin.git", {tag, "2.23.8"}}} {rebar3_gpb_plugin, ".*", {git, "https://github.com/lrascao/rebar3_gpb_plugin.git", {tag, "2.23.8"}}}
]}. ]}.
% ======================
% 核心:强制指定 proto 路径 + 输出到你的 apps/sdlan
% ======================
{gpb_opts, [ {gpb_opts, [
{i, "proto"}, % proto 文件目录 {i, "proto"}, % proto 放在你的 app 里面
{module_name_suffix, "_pb"}, % 生成 xxx_pb.erl {src_dirs, ["proto"]},
{o_erl, "apps/sdlan/src"}, % .erl 输出到 src recursive,
{o_hrl, "apps/sdlan/include"}, % .hrl 输出到 include {module_name_suffix, "_pb"},
{o_erl, "src"},
{o_hrl, "include"},
{strings_as_binaries, true}, {strings_as_binaries, true},
type_specs type_specs,
report,
verbose
]}. ]}.
{deps, [ {deps, [
@ -21,7 +28,6 @@
{jiffy, ".*", {git, "https://github.com/davisp/jiffy.git", {tag, "1.1.1"}}}, {jiffy, ".*", {git, "https://github.com/davisp/jiffy.git", {tag, "1.1.1"}}},
{cowboy, ".*", {git, "https://github.com/ninenines/cowboy.git", {tag, "2.12.0"}}}, {cowboy, ".*", {git, "https://github.com/ninenines/cowboy.git", {tag, "2.12.0"}}},
{mysql, ".*", {git, "https://github.com/mysql-otp/mysql-otp", {tag, "1.8.0"}}}, {mysql, ".*", {git, "https://github.com/mysql-otp/mysql-otp", {tag, "1.8.0"}}},
{gpb, ".*", {git, "https://github.com/tomas-abrahamsson/gpb.git", {tag, "4.21.1"}}},
{throttle, ".*", {git, "https://github.com/lambdaclass/throttle.git", {tag, "0.3.0"}}}, {throttle, ".*", {git, "https://github.com/lambdaclass/throttle.git", {tag, "0.3.0"}}},
{dns_erlang, ".*", {git, "https://github.com/dnsimple/dns_erlang.git", {tag, "v4.4.0"}}}, {dns_erlang, ".*", {git, "https://github.com/dnsimple/dns_erlang.git", {tag, "v4.4.0"}}},
{quicer, ".*", {git, "https://github.com/emqx/quic.git", {tag, "0.4.0"}}}, {quicer, ".*", {git, "https://github.com/emqx/quic.git", {tag, "0.4.0"}}},
@ -37,33 +43,10 @@
]}. ]}.
{relx, [{release, {sdlan, "0.1.0"}, {relx, [{release, {sdlan, "0.1.0"},
[sdlan, [sdlan, sasl]},
sasl]}, {mode, dev},
{sys_config, "./config/sys.config"},
{mode, dev}, {vm_args, "./config/vm.args"}]}.
%% automatically picked up if the files
%% exist but can be set manually, which
%% is required if the names aren't exactly
%% sys.config and vm.args
{sys_config, "./config/sys.config"},
{vm_args, "./config/vm.args"}
%% the .src form of the configuration files do
%% not require setting RELX_REPLACE_OS_VARS
%% {sys_config_src, "./config/sys.config.src"},
%% {vm_args_src, "./config/vm.args.src"}
]}.
{profiles, [{prod, [{relx,
[%% prod is the default mode when prod
%% profile is used, so does not have
%% to be explicitly included like this
{mode, prod}
%% use minimal mode to exclude ERTS
%% {mode, minimal}
]
}]}]}.
{profiles, [{prod, [{relx, [{mode, prod}]}]}]}.
{rebar_packages_cdn, "https://hexpm.upyun.com"}. {rebar_packages_cdn, "https://hexpm.upyun.com"}.

View File

@ -1,5 +1,5 @@
{"1.2.0", {"1.2.0",
[{<<"base32">>,{pkg,<<"base32">>,<<"1.0.0">>},2}, [{<<"base32">>,{pkg,<<"base32">>,<<"1.0.0">>},1},
{<<"certifi">>,{pkg,<<"certifi">>,<<"2.5.2">>},1}, {<<"certifi">>,{pkg,<<"certifi">>,<<"2.5.2">>},1},
{<<"cowboy">>, {<<"cowboy">>,
{git,"https://github.com/ninenines/cowboy.git", {git,"https://github.com/ninenines/cowboy.git",
@ -12,17 +12,8 @@
{<<"dns_erlang">>, {<<"dns_erlang">>,
{git,"https://github.com/dnsimple/dns_erlang.git", {git,"https://github.com/dnsimple/dns_erlang.git",
{ref,"e1149a2dd6f49c6560aa245bc6f3d40a5cbe70e1"}}, {ref,"e1149a2dd6f49c6560aa245bc6f3d40a5cbe70e1"}},
1},
{<<"dns_proxy">>,
{git,"https://gitea.s5s8.com/anlicheng/dns_proxy.git",
{ref,"5ed832359e42ec99d148bf2ada1729b540017ab8"}},
0}, 0},
{<<"fs">>,{pkg,<<"fs">>,<<"6.1.1">>},1}, {<<"fs">>,{pkg,<<"fs">>,<<"6.1.1">>},1},
{<<"goldrush">>,{pkg,<<"goldrush">>,<<"0.1.9">>},1},
{<<"gpb">>,
{git,"https://github.com/tomas-abrahamsson/gpb.git",
{ref,"a53bc4909b3dc5a78b996263d92db38fed9d4782"}},
0},
{<<"hackney">>, {<<"hackney">>,
{git,"https://github.com/benoitc/hackney.git", {git,"https://github.com/benoitc/hackney.git",
{ref,"f3e9292db22c807e73f57a8422402d6b423ddf5f"}}, {ref,"f3e9292db22c807e73f57a8422402d6b423ddf5f"}},
@ -32,24 +23,17 @@
{git,"https://github.com/davisp/jiffy.git", {git,"https://github.com/davisp/jiffy.git",
{ref,"9ea1b35b6e60ba21dfd4adbd18e7916a831fd7d4"}}, {ref,"9ea1b35b6e60ba21dfd4adbd18e7916a831fd7d4"}},
0}, 0},
{<<"lager">>,
{git,"https://github.com/erlang-lager/lager.git",
{ref,"459a3b2cdd9eadd29e5a7ce5c43932f5ccd6eb88"}},
0},
{<<"metrics">>,{pkg,<<"metrics">>,<<"1.0.1">>},1}, {<<"metrics">>,{pkg,<<"metrics">>,<<"1.0.1">>},1},
{<<"mimerl">>,{pkg,<<"mimerl">>,<<"1.2.0">>},1}, {<<"mimerl">>,{pkg,<<"mimerl">>,<<"1.2.0">>},1},
{<<"mysql">>, {<<"mysql">>,
{git,"https://github.com/mysql-otp/mysql-otp", {git,"https://github.com/mysql-otp/mysql-otp",
{ref,"caf5ff96c677a8fe0ce6f4082bc036c8fd27dd62"}}, {ref,"caf5ff96c677a8fe0ce6f4082bc036c8fd27dd62"}},
0}, 0},
{<<"parse_trans">>, {<<"parse_trans">>,{pkg,<<"parse_trans">>,<<"3.3.0">>},1},
{git,"https://github.com/uwiger/parse_trans",
{ref,"6f3645afb43c7c57d61b54ef59aecab288ce1013"}},
0},
{<<"pkt">>, {<<"pkt">>,
{git,"https://github.com/msantos/pkt.git", {git,"https://github.com/msantos/pkt.git",
{ref,"67a4a14f596fded5ad5f2d8f94318faa8ad2c288"}}, {ref,"67a4a14f596fded5ad5f2d8f94318faa8ad2c288"}},
1}, 0},
{<<"poolboy">>, {<<"poolboy">>,
{git,"https://github.com/devinus/poolboy.git", {git,"https://github.com/devinus/poolboy.git",
{ref,"3bb48a893ff5598f7c73731ac17545206d259fac"}}, {ref,"3bb48a893ff5598f7c73731ac17545206d259fac"}},
@ -78,10 +62,10 @@
{<<"base32">>, <<"1AB331F812FCC254C8F7D4348E1E5A6F2B9B32B7A260BF2BC3358E3BF14C841A">>}, {<<"base32">>, <<"1AB331F812FCC254C8F7D4348E1E5A6F2B9B32B7A260BF2BC3358E3BF14C841A">>},
{<<"certifi">>, <<"B7CFEAE9D2ED395695DD8201C57A2D019C0C43ECAF8B8BCB9320B40D6662F340">>}, {<<"certifi">>, <<"B7CFEAE9D2ED395695DD8201C57A2D019C0C43ECAF8B8BCB9320B40D6662F340">>},
{<<"fs">>, <<"9D147B944D60CFA48A349F12D06C8EE71128F610C90870BDF9A6773206452ED0">>}, {<<"fs">>, <<"9D147B944D60CFA48A349F12D06C8EE71128F610C90870BDF9A6773206452ED0">>},
{<<"goldrush">>, <<"F06E5D5F1277DA5C413E84D5A2924174182FB108DABB39D5EC548B27424CD106">>},
{<<"idna">>, <<"1D038FB2E7668CE41FBF681D2C45902E52B3CB9E9C77B55334353B222C2EE50C">>}, {<<"idna">>, <<"1D038FB2E7668CE41FBF681D2C45902E52B3CB9E9C77B55334353B222C2EE50C">>},
{<<"metrics">>, <<"25F094DEA2CDA98213CECC3AEFF09E940299D950904393B2A29D191C346A8486">>}, {<<"metrics">>, <<"25F094DEA2CDA98213CECC3AEFF09E940299D950904393B2A29D191C346A8486">>},
{<<"mimerl">>, <<"67E2D3F571088D5CFD3E550C383094B47159F3EEE8FFA08E64106CDF5E981BE3">>}, {<<"mimerl">>, <<"67E2D3F571088D5CFD3E550C383094B47159F3EEE8FFA08E64106CDF5E981BE3">>},
{<<"parse_trans">>, <<"09765507A3C7590A784615CFD421D101AEC25098D50B89D7AA1D66646BC571C1">>},
{<<"snabbkaffe">>, <<"9BE2F54F61FC6862391B666B2B5B76C3FA53598E2989A17CEF1B48CF347A8A63">>}, {<<"snabbkaffe">>, <<"9BE2F54F61FC6862391B666B2B5B76C3FA53598E2989A17CEF1B48CF347A8A63">>},
{<<"ssl_verify_fun">>, <<"CF344F5692C82D2CD7554F5EC8FD961548D4FD09E7D22F5B62482E5AEAEBD4B0">>}, {<<"ssl_verify_fun">>, <<"CF344F5692C82D2CD7554F5EC8FD961548D4FD09E7D22F5B62482E5AEAEBD4B0">>},
{<<"unicode_util_compat">>, <<"8516502659002CEC19E244EBD90D312183064BE95025A319A6C7E89F4BCCD65B">>}]}, {<<"unicode_util_compat">>, <<"8516502659002CEC19E244EBD90D312183064BE95025A319A6C7E89F4BCCD65B">>}]},
@ -89,10 +73,10 @@
{<<"base32">>, <<"0449285348ED0C4CD83C7198E76C5FD5A0451C4EF18695B9FD43792A503E551A">>}, {<<"base32">>, <<"0449285348ED0C4CD83C7198E76C5FD5A0451C4EF18695B9FD43792A503E551A">>},
{<<"certifi">>, <<"3B3B5F36493004AC3455966991EAF6E768CE9884693D9968055AEEEB1E575040">>}, {<<"certifi">>, <<"3B3B5F36493004AC3455966991EAF6E768CE9884693D9968055AEEEB1E575040">>},
{<<"fs">>, <<"EF94E95FFE79916860649FED80AC62B04C322B0BB70F5128144C026B4D171F8B">>}, {<<"fs">>, <<"EF94E95FFE79916860649FED80AC62B04C322B0BB70F5128144C026B4D171F8B">>},
{<<"goldrush">>, <<"99CB4128CFFCB3227581E5D4D803D5413FA643F4EB96523F77D9E6937D994CEB">>},
{<<"idna">>, <<"A02C8A1C4FD601215BB0B0324C8A6986749F807CE35F25449EC9E69758708122">>}, {<<"idna">>, <<"A02C8A1C4FD601215BB0B0324C8A6986749F807CE35F25449EC9E69758708122">>},
{<<"metrics">>, <<"69B09ADDDC4F74A40716AE54D140F93BEB0FB8978D8636EADED0C31B6F099F16">>}, {<<"metrics">>, <<"69B09ADDDC4F74A40716AE54D140F93BEB0FB8978D8636EADED0C31B6F099F16">>},
{<<"mimerl">>, <<"F278585650AA581986264638EBF698F8BB19DF297F66AD91B18910DFC6E19323">>}, {<<"mimerl">>, <<"F278585650AA581986264638EBF698F8BB19DF297F66AD91B18910DFC6E19323">>},
{<<"parse_trans">>, <<"17EF63ABDE837AD30680EA7F857DD9E7CED9476CDD7B0394432AF4BFC241B960">>},
{<<"snabbkaffe">>, <<"70A98DF36AE756908D55B5770891D443D63C903833E3E87D544036E13D4FAC26">>}, {<<"snabbkaffe">>, <<"70A98DF36AE756908D55B5770891D443D63C903833E3E87D544036E13D4FAC26">>},
{<<"ssl_verify_fun">>, <<"BDB0D2471F453C88FF3908E7686F86F9BE327D065CC1EC16FA4540197EA04680">>}, {<<"ssl_verify_fun">>, <<"BDB0D2471F453C88FF3908E7686F86F9BE327D065CC1EC16FA4540197EA04680">>},
{<<"unicode_util_compat">>, <<"D48D002E15F5CC105A696CF2F1BBB3FC72B4B770A184D8420C8DB20DA2674B38">>}]} {<<"unicode_util_compat">>, <<"D48D002E15F5CC105A696CF2F1BBB3FC72B4B770A184D8420C8DB20DA2674B38">>}]}

4440
src/sdlan_pb.erl Normal file

File diff suppressed because it is too large Load Diff