diff --git a/apps/sdlan/include/sdlan.hrl b/apps/sdlan/include/sdlan.hrl index 47c7424..5b93a19 100644 --- a/apps/sdlan/include/sdlan.hrl +++ b/apps/sdlan/include/sdlan.hrl @@ -13,8 +13,9 @@ -define(DEFAULT_PASS, <<"`encrypt!`">>). --define(PACKET_EMPTY, 16#00). +%% 一级分类,包类型分类,占一个字节 +-define(PACKET_EMPTY, 16#00). %% 注册相关 -define(PACKET_REGISTER_SUPER, 16#01). -define(PACKET_REGISTER_SUPER_ACK, 16#02). @@ -32,23 +33,6 @@ %% 推送的事件信息, 不需要返回值 -define(PACKET_EVENT, 16#10). -%% 定义事件信息 --define(PACKET_EVENT_KNOWN_IP, 16#01). --define(PACKET_EVENT_DROP_IP, 16#02). --define(PACKET_EVENT_NAT_CHANGED, 16#03). --define(PACKET_EVENT_SEND_REGISTER, 16#04). - -%% 网络关闭 --define(PACKET_EVENT_NETWORK_SHUTDOWN, 16#FF). - -%% 推送命令信息, 需要等待返回值 --define(PACKET_COMMAND, 16#11). --define(PACKET_COMMAND_ACK, 16#12). - -%% 网络发生变化 --define(PACKET_COMMAND_CHANGE_NETWORK, 16#01). --define(PACKET_COMMAND_UPGRADE, 16#02). - %% 网络流量统计 -define(PACKET_FLOW_TRACER, 16#15). @@ -56,7 +40,6 @@ -define(PACKET_REGISTER_ACK, 16#21). %% stun相关的请求 - %% 请求 -define(PACKET_STUN_REQUEST, 16#30). %% 响应 @@ -74,18 +57,22 @@ -define(PACKET_POLICY_REQUEST, 16#b0). -define(PACKET_POLICY_REPLY, 16#b1). -%% stun请求的attr --define(STUN_ATTR_CHANGE_NONE, 0). --define(STUN_ATTR_CHANGE_PORT, 1). --define(STUN_ATTR_CHANGE_PEER, 2). - %% 欢迎消息 -define(PACKET_WELCOME, 16#4F). %% 数据转发 -define(PACKET_STUN_DATA, 16#FF). --record(id_generator, { - tab :: atom(), - increment_id = 0 :: integer() -}). \ No newline at end of file +%% 二级命名 + +%% 定义事件信息 +-define(EVENT_KNOWN_IP, 16#01). +-define(EVENT_DROP_IP, 16#02). +-define(EVENT_NAT_CHANGED, 16#03). +-define(EVENT_SEND_REGISTER, 16#04). +-define(EVENT_NETWORK_SHUTDOWN, 16#FF). + +%% stun请求的attr +-define(STUN_ATTR_CHANGE_NONE, 0). +-define(STUN_ATTR_CHANGE_PORT, 1). +-define(STUN_ATTR_CHANGE_PEER, 2). \ No newline at end of file diff --git a/apps/sdlan/src/quic/sdlan_quic_channel.erl b/apps/sdlan/src/quic/sdlan_quic_channel.erl index 6a11373..63644a5 100644 --- a/apps/sdlan/src/quic/sdlan_quic_channel.erl +++ b/apps/sdlan/src/quic/sdlan_quic_channel.erl @@ -99,7 +99,7 @@ handle_event(internal, do_init, initializing, State=#state{conn = Conn}) -> {ok, _} = quicer:async_accept_stream(Conn, #{active => true}), {next_state, waiting_stream, State}; -handle_event(info, {quic, new_stream, Stream, Opts}, waiting_stream, State=#state{conn = Conn, max_packet_size = MaxPacketSize, heartbeat_sec = HeartbeatSec}) -> +handle_event(info, {quic, new_stream, Stream, Opts}, waiting_stream, State=#state{max_packet_size = MaxPacketSize, heartbeat_sec = HeartbeatSec}) -> logger:debug("[sdlan_quic_channel] call new_stream: ~p, opts: ~p", [Stream, Opts]), %% 发送欢迎消息 WelcomePkt = sdlan_pb:encode_msg(#sdl_welcome{ diff --git a/apps/sdlan/src/sdlan_network.erl b/apps/sdlan/src/sdlan_network.erl index 394603d..d4e801c 100644 --- a/apps/sdlan/src/sdlan_network.erl +++ b/apps/sdlan/src/sdlan_network.erl @@ -197,7 +197,7 @@ handle_call({attach, ChannelPid, ClientId, Mac, Ip, Hostname}, _From, ip = Ip }), broadcast(fun(#endpoint{channel_pid = ChannelPid0}) -> - sdlan_quic_channel:send_event(ChannelPid0, ?PACKET_EVENT_NAT_CHANGED, NatChangedEvent) + sdlan_quic_channel:send_event(ChannelPid0, ?EVENT_NAT_CHANGED, NatChangedEvent) end, [Mac], Endpoints), %% 清理就的绑定关系 @@ -251,7 +251,7 @@ handle_call({peer_info, SrcMac, DstMac}, _From, State = #state{endpoints = Endpo nat_port = SrcNatPort, v6_info = SrcV6Info }), - sdlan_quic_channel:send_event(DstChannelPid, ?PACKET_EVENT_SEND_REGISTER, RegisterEvent) + sdlan_quic_channel:send_event(DstChannelPid, ?EVENT_SEND_REGISTER, RegisterEvent) end, {reply, {ok, {DstNatPeer, DstNatType}, DstV6Info}, State}; _ -> @@ -350,7 +350,7 @@ handle_cast({update_hole, SessionToken, ClientId, Mac, Peer, NatType, V6Info}, S }), logger:debug("[sdlan_network] client_id: ~p(~p), hole changed", [ClientId, Ip]), broadcast(fun(#endpoint{channel_pid = ChannelPid}) -> - sdlan_quic_channel:send_event(ChannelPid, ?PACKET_EVENT_NAT_CHANGED, NatChangedEvent) + sdlan_quic_channel:send_event(ChannelPid, ?EVENT_NAT_CHANGED, NatChangedEvent) end, [Mac], Endpoints) end, NEndpoint = Endpoint0#endpoint{hole = NHole, v6_info = V6Info, last_seen = erlang:monotonic_time(second)}, @@ -392,7 +392,7 @@ terminate(Reason, #state{network_id = NetworkId, endpoints = Endpoints}) -> NetworkShutdownEvent = sdlan_pb:encode_msg(#sdl_network_shutdown_event{ message = <<"Network shutdown">> }), - sdlan_quic_channel:send_event(ChannelPid, ?PACKET_EVENT_NETWORK_SHUTDOWN, NetworkShutdownEvent), + sdlan_quic_channel:send_event(ChannelPid, ?EVENT_NETWORK_SHUTDOWN, NetworkShutdownEvent), sdlan_quic_channel:stop(ChannelPid, normal); false -> ok diff --git a/message.proto b/message.proto index efaf5ab..df6ba9b 100644 --- a/message.proto +++ b/message.proto @@ -14,8 +14,7 @@ message SDLV6Info { } // 和super之间采用了quic协议通讯 -// 传输层采用: <> -// 数据层采用: <> +// 传输层采用: <> message SDLWelcome { uint32 version = 1;