Pārlūkot izejas kodu

fx: 测试修复

master
SisMaker pirms 3 gadiem
vecāks
revīzija
d4bcfb9b62
7 mainītis faili ar 129 papildinājumiem un 18 dzēšanām
  1. +2
    -2
      src/eNet.erl
  2. +83
    -0
      src/test/utPPtANSrv.erl
  3. +5
    -4
      src/test/utSslANSrv.erl
  4. +4
    -2
      src/test/utTcpAFSrv.erl
  5. +9
    -3
      src/test/utUdpCMod.erl
  6. +0
    -1
      src/test/utUdpCli.erl
  7. +26
    -6
      src/udp/ntUdpSrv.erl

+ 2
- 2
src/eNet.erl Parādīt failu

@ -37,7 +37,7 @@ openTcp(ListenName, Port, ListenOpts) ->
openSsl(ListenName, Port, ListenOpts) ->
SslMgrSupSpec = #{
id => ListenName,
start => {ntSslMgrSup, start_link, [Port, ListenOpts]},
start => {ntSslMgrSup, start_link, [ListenName, Port, ListenOpts]},
restart => permanent,
shutdown => infinity,
type => supervisor,
@ -63,7 +63,7 @@ openUdp(UdpName, Port, ListenOpts) ->
openPpt(ListenName, Port, ListenOpts) ->
SslMgrSupSpec = #{
id => ListenName,
start => {ntPptMgrSup, start_link, [Port, ListenOpts]},
start => {ntPptMgrSup, start_link, [ListenName, Port, ListenOpts]},
restart => permanent,
shutdown => infinity,
type => supervisor,

+ 83
- 0
src/test/utPPtANSrv.erl Parādīt failu

@ -0,0 +1,83 @@
-module(utPPtANSrv). %% ssl active N server
-behaviour(gen_server).
-include("eNet.hrl").
-include("ntCom.hrl").
-export([newConn/1]).
-export([start/2, start_link/1]).
%% gen_server Function Exports
-export([init/1
, handle_call/3
, handle_cast/2
, handle_info/2
, terminate/2
, code_change/3
]).
-record(state, {socket}).
start(Name, Port) ->
PrivDir = code:priv_dir(eNet),
TcpOpts = [binary, {reuseaddr, true}],
SslOpts = [
{certfile, filename:join(PrivDir, "demo.crt")},
{keyfile, filename:join(PrivDir, "demo.key")}
],
Opts = [{tcpOpts, TcpOpts}, {sslOpts, SslOpts}, {conMod, ?MODULE}, {proxyPt, true}, {proxyPtTet, 1111111}],
eNet:openPpt(Name, Port, Opts).
start_link(Sock) ->
{ok, proc_lib:spawn_link(?MODULE, init, [Sock])}.
newConn(Sock) ->
start_link(Sock).
init(_Sock) ->
gen_server:enter_loop(?MODULE, [], #state{}).
handle_call(_Request, _From, State) ->
io:format("handle_call for______ ~p~n", [_Request]),
{reply, ignore, State}.
handle_cast(_Msg, State) ->
io:format("handle_cast for______ ~p~n", [_Msg]),
{noreply, State}.
handle_info({ssl, Socket, Data}, State = #state{socket = _Sock}) ->
io:format("packet:~p Data from ~s~n", [ssl:getopts(Socket, [packet]), Data]),
ssl:send(Socket, Data),
{noreply, State};
handle_info({ssl_error, _Socket, Reason}, State) ->
io:format("ssl_error for ~p~n", [Reason]),
{stop, {shutdown, Reason}, State};
handle_info({ssl_closed, _Socket}, State) ->
io:format("ssl_closed"),
{noreply, State};
handle_info({ssl_passive, SslSock}, State) ->
ssl:setopts(SslSock, [{active, 100}]),
{noreply, State};
handle_info({?mSockReady, Sock, SslOpts, SslHSTet, ProxyPt, ProxyPtTet}, State) ->
case ntPptAcceptor:pptAndHS(Sock, SslOpts, SslHSTet, ProxyPt, ProxyPtTet) of
{ok, SslSock} ->
ssl:setopts(SslSock, [{active, 100}]),
{noreply, State#state{socket = SslSock}};
_Err ->
io:format("handshake error ~p~n", [_Err]),
{stop, State}
end;
handle_info(_Info, State) ->
io:format("handle_info for______ ~p~n", [_Info]),
{noreply, State}.
terminate(_Reason, #state{socket = Sock}) ->
catch ssl:close(Sock).
code_change(_OldVsn, State, _Extra) ->
{ok, State}.

+ 5
- 4
src/test/utSslANSrv.erl Parādīt failu

@ -31,7 +31,7 @@ start(Name, Port) ->
eNet:openSsl(Name, Port, Opts).
start_link(Sock) ->
{ok, proc_lib:spawn_link(?MODULE, init, Sock)}.
{ok, proc_lib:spawn_link(?MODULE, init, [Sock])}.
newConn(Sock) ->
start_link(Sock).
@ -48,8 +48,8 @@ handle_cast(_Msg, State) ->
{noreply, State}.
handle_info({ssl, Socket, Data}, State = #state{socket = _Sock}) ->
io:format("packet:~p Data from ~s~n", [inet:getopts(Socket, [packet]), Data]),
prim_inet:send(Socket, Data),
io:format("packet:~p Data from ~s~n", [ssl:getopts(Socket, [packet]), Data]),
ssl:send(Socket, Data),
{noreply, State};
handle_info({ssl_error, _Socket, Reason}, State) ->
@ -63,8 +63,9 @@ handle_info({ssl_passive, SslSock}, State) ->
ssl:setopts(SslSock, [{active, 100}]),
{noreply, State};
handle_info({?mSockReady, Sock, SslOpts, HandshakeTimeout}, State) ->
case ntPptAcceptor:handshake(Sock, SslOpts, HandshakeTimeout) of
case ntSslAcceptor:handshake(Sock, SslOpts, HandshakeTimeout) of
{ok, SslSock} ->
ssl:setopts(SslSock, [{active, 100}]),
{noreply, State#state{socket = SslSock}};
_Err ->
io:format("handshake error ~p~n", [_Err]),

+ 4
- 2
src/test/utTcpAFSrv.erl Parādīt failu

@ -1,6 +1,8 @@
-module(utTcpAFSrv). %% tcp active false server
-behaviour(gen_server).
-include("eNet.hrl").
%% start
-export([newConn/1]).
@ -23,7 +25,7 @@ start(Name, Port) ->
eNet:openTcp(Name, Port, Opts).
start_link(Sock) ->
{ok, proc_lib:spawn_link(?MODULE, init, Sock)}.
{ok, proc_lib:spawn_link(?MODULE, init, [Sock])}.
newConn(Sock) ->
start_link(Sock).
@ -58,7 +60,7 @@ handle_info({inet_reply, _Sock, {error, Reason}}, State) ->
io:format("Shutdown for ~p~n", [Reason]),
shutdown(Reason, State);
handle_info({miSockReady, Sock}, State) ->
handle_info({?mSockReady, Sock}, State) ->
prim_inet:async_recv(Sock, 0, -1),
io:format("get miSockReady for______ ~p~n", [Sock]),
{noreply, State};

+ 9
- 3
src/test/utUdpCMod.erl Parādīt failu

@ -1,7 +1,13 @@
-module(utUdpCMod). %% tcp active false server
-module(utUdpCMod). %% upd active false server
-export([start/2, datagram/5]).
start(Name, Port) ->
Opts = [{conMod, ?MODULE}],
eNet:openUdp(Name, Port, Opts).
-export([datagram/5]).
datagram(Sock, IP, Port, AncData, Data) ->
io:format("udp receive the data ~p ~p ~p ~p ~p ~n ", [Sock, IP, Port, AncData, Data]),
ok = gen_udp:send(Sock, IP, Port, Data).
ok = gen_udp:send(Sock, IP, Port, Data),
{ok, self()}.

+ 0
- 1
src/test/utUdpCli.erl Parādīt failu

@ -35,6 +35,5 @@ loop(Num, Sock, Host, Port) ->
end.
send(N, Sock, Host, Port) ->
io:format("fdsfsfs ~n"),
gen_udp:send(Sock, Host, Port, [integer_to_list(N), ":", <<"Hello, eSockd!">>]).

+ 26
- 6
src/udp/ntUdpSrv.erl Parādīt failu

@ -113,13 +113,13 @@ init({Port, UoOpts}) ->
{stop, Reason}
end.
handleMsg({udp, Sock, IP, InPortNo, Packet}, #state{oSock = Sock, conMod = ConMod, peers = Peers} = State) ->
handleMsg({udp, Sock, IP, InPortNo, AncData, Packet}, #state{oSock = Sock, conMod = ConMod, peers = Peers} = State) ->
case maps:find({IP, InPortNo}, Peers) of
{ok, Pid} ->
Pid ! {datagram, self(), Packet},
{noreply, State};
error ->
try ConMod:datagram(Sock, IP, InPortNo, Packet) of
try ConMod:datagram(Sock, IP, InPortNo, AncData, Packet) of
{ok, Pid} ->
_Ref = erlang:monitor(process, Pid),
Pid ! {datagram, self(), Packet},
@ -133,9 +133,29 @@ handleMsg({udp, Sock, IP, InPortNo, Packet}, #state{oSock = Sock, conMod = ConMo
{noreply, State}
end
end;
handleMsg({udp, Sock, IP, InPortNo, Packet}, #state{oSock = Sock, conMod = ConMod, peers = Peers} = State) ->
case maps:find({IP, InPortNo}, Peers) of
{ok, Pid} ->
Pid ! {datagram, self(), Packet},
{ok, State};
error ->
try ConMod:datagram(Sock, IP, InPortNo, undefined, Packet) of
{ok, Pid} ->
_Ref = erlang:monitor(process, Pid),
Pid ! {datagram, self(), Packet},
{ok, addPeer({IP, InPortNo}, Pid, State)};
{error, Reason} ->
?ntErr("Failed to start udp channel for peer ~p ~p reason: ~p", [IP, InPortNo, Reason]),
{ok, State}
catch
C:R:S ->
?ntErr("Exception occurred when starting udp channel for peer ~p ~p, reason: ~p", [IP, InPortNo, {C, R, S}]),
{ok, State}
end
end;
handleMsg({udp_passive, Sock}, #state{oSock = Sock} = State) ->
inet:setopts(Sock, [{active, 100}]),
{noreply, State, hibernate};
{ok, State};
handleMsg({'DOWN', _MRef, process, DownPid, _Reason}, State = #state{peers = Peers}) ->
peerDown(DownPid, Peers, State);
@ -153,7 +173,7 @@ handleMsg({'$gen_call', From, miOpenPort}, #state{listenPort = LPort} = State) -
handleMsg(_Msg, State) ->
?ntErr("~p unexpected info: ~p ~n", [?MODULE, _Msg]),
{noreply, State}.
{ok, State}.
terminate(_Reason, #state{oSock = LSock, listenAddr = Addr, listenPort = Port}) ->
?ntInfo("stopped on ~s:~p ~n", [inet:ntoa(Addr), Port]),
@ -177,7 +197,7 @@ delPeer(Peer, Pid, State = #state{peers = Peers}) ->
peerDown(DownPid, Peers, State) ->
case maps:find(DownPid, Peers) of
{ok, Peer} ->
{noreply, delPeer(Peer, DownPid, State)};
{ok, delPeer(Peer, DownPid, State)};
error ->
{noreply, State}
{ok, State}
end.

Notiek ielāde…
Atcelt
Saglabāt