Browse Source

ft: 代码优化

master
SisMaker 3 years ago
parent
commit
e9c6dceb7c
10 changed files with 67 additions and 68 deletions
  1. +5
    -4
      src/proxyPt/ntPptAcceptor.erl
  2. +10
    -12
      src/proxyPt/ntPptListener.erl
  3. +5
    -4
      src/ssl/ntSslAcceptor.erl
  4. +10
    -12
      src/ssl/ntSslListener.erl
  5. +5
    -4
      src/tcp/ntTcpAcceptor.erl
  6. +10
    -12
      src/tcp/ntTcpListener.erl
  7. +2
    -2
      src/test/utPPtANSrv.erl
  8. +2
    -2
      src/test/utSslANSrv.erl
  9. +2
    -2
      src/test/utTcpAFSrv.erl
  10. +16
    -14
      src/udp/ntUdpSrv.erl

+ 5
- 4
src/proxyPt/ntPptAcceptor.erl View File

@ -65,6 +65,8 @@ loop(Parent, State) ->
exit(Reason);
Msg ->
case handleMsg(Msg, State) of
kpS ->
loop(Parent, State);
{ok, NewState} ->
loop(Parent, NewState);
{stop, Reason} ->
@ -115,7 +117,7 @@ handleMsg({inet_async, LSock, Ref, Msg}, #state{lSock = LSock, sslOpts = SslOpts
{stop, error_ret}
catch
E:R:S ->
?ntErr("CliMod:newConnect crash: ~p:~p~n~p~n ~n ", [E, R, S]),
?ntErr("ConMod:newConn crash: ~p:~p~n~p~n ~n ", [E, R, S]),
newAsyncAccept(LSock, State)
end;
{error, closed} ->
@ -125,9 +127,8 @@ handleMsg({inet_async, LSock, Ref, Msg}, #state{lSock = LSock, sslOpts = SslOpts
?ntErr("listen sock error ~p~n", [Reason]),
{stop, {lsock, Reason}}
end;
handleMsg(_Msg, State) ->
?ntErr("~p receive unexpected ~p msg: ~p", [?MODULE, self(), _Msg]),
{ok, State}.
handleMsg(_Msg, _State) ->
kpS.
newAsyncAccept(LSock, State) ->
case prim_inet:async_accept(LSock, -1) of

+ 10
- 12
src/proxyPt/ntPptListener.erl View File

@ -73,6 +73,8 @@ loop(Parent, State) ->
terminate(Reason, State);
Msg ->
case handleMsg(Msg, State) of
kpS ->
loop(Parent, State);
{ok, NewState} ->
loop(Parent, NewState);
{stop, Reason} ->
@ -89,13 +91,10 @@ loop(Parent, State) ->
, opts :: [listenOpt()]
}).
-define(DefTcpOpts, [{nodelay, true}, {reuseaddr, true}, {send_timeout, 30000}, {send_timeout_close, true}]).
init({AptSupName, Port, ListenOpts}) ->
TcpOpts = ?getLValue(tcpOpts, ListenOpts, []),
LastTcpOpts = ntCom:mergeOpts(?DefTcpOpts, TcpOpts),
%% Don't active the socket...
case gen_tcp:listen(Port, lists:keystore(active, 1, LastTcpOpts, {active, false})) of
case gen_tcp:listen(Port, lists:keystore(active, 1, TcpOpts, {active, false})) of
{ok, LSock} ->
AptCnt = ?getLValue(aptCnt, ListenOpts, ?AptCnt),
ConMod = ?getLValue(conMod, ListenOpts, undefined),
@ -103,23 +102,22 @@ init({AptSupName, Port, ListenOpts}) ->
startAcceptor(AptCnt, LSock, AptSupName, ConMod, ConArgs),
{ok, {LAddr, LPort}} = inet:sockname(LSock),
% ?ntInfo("success to listen on ~p ~n", [Port]),
{ok, #state{listenAddr = LAddr, listenPort = LPort, lSock = LSock, opts = [{acceptors, AptCnt}, {tcpOpts, LastTcpOpts}]}};
{ok, #state{listenAddr = LAddr, listenPort = LPort, lSock = LSock, opts = [{acceptors, AptCnt}, {tcpOpts, TcpOpts}]}};
{error, Reason} ->
?ntErr("failed to listen on ~p - ~p (~s) ~n", [Port, Reason, inet:format_error(Reason)]),
{stop, Reason}
end.
handleMsg({'$gen_call', From, miOpts}, #state{opts = Opts} = State) ->
handleMsg({'$gen_call', From, miOpts}, #state{opts = Opts} = _State) ->
gen_server:reply(From, Opts),
{okpan>, State};
kpS;
handleMsg({'$gen_call', From, miListenPort}, #state{listenPort = LPort} = State) ->
handleMsg({'$gen_call', From, miListenPort}, #state{listenPort = LPort} = _State) ->
gen_server:reply(From, LPort),
{okpan>, State};
kpS;
handleMsg(_Msg, State) ->
?ntErr("~p unexpected info: ~p ~n", [?MODULE, _Msg]),
{noreply, State}.
handleMsg(_Msg, _State) ->
kpS.
terminate(_Reason, #state{lSock = LSock, listenAddr = Addr, listenPort = Port}) ->
?ntInfo("stopped on ~s:~p ~n", [inet:ntoa(Addr), Port]),

+ 5
- 4
src/ssl/ntSslAcceptor.erl View File

@ -64,6 +64,8 @@ loop(Parent, State) ->
exit(Reason);
Msg ->
case handleMsg(Msg, State) of
kpS ->
loop(Parent, State);
{ok, NewState} ->
loop(Parent, NewState);
{stop, Reason} ->
@ -112,7 +114,7 @@ handleMsg({inet_async, LSock, Ref, Msg}, #state{lSock = LSock, sslOpts = SslOpts
{stop, error_ret}
catch
E:R:S ->
?ntErr("CliMod:newConnect crash: ~p:~p~n~p~n ~n ", [E, R, S]),
?ntErr("ConMod:newConn crash: ~p:~p~n~p~n ~n ", [E, R, S]),
newAsyncAccept(LSock, State)
end;
{error, closed} ->
@ -122,9 +124,8 @@ handleMsg({inet_async, LSock, Ref, Msg}, #state{lSock = LSock, sslOpts = SslOpts
?ntErr("listen sock error ~p~n", [Reason]),
{stop, {lsock, Reason}}
end;
handleMsg(_Msg, State) ->
?ntErr("~p receive unexpected ~p msg: ~p", [?MODULE, self(), _Msg]),
{ok, State}.
handleMsg(_Msg, _State) ->
kpS.
newAsyncAccept(LSock, State) ->
case prim_inet:async_accept(LSock, -1) of

+ 10
- 12
src/ssl/ntSslListener.erl View File

@ -73,6 +73,8 @@ loop(Parent, State) ->
terminate(Reason, State);
Msg ->
case handleMsg(Msg, State) of
kpS ->
loop(Parent, State);
{ok, NewState} ->
loop(Parent, NewState);
{stop, Reason} ->
@ -89,13 +91,10 @@ loop(Parent, State) ->
, opts :: [listenOpt()]
}).
-define(DefTcpOpts, [{nodelay, true}, {reuseaddr, true}, {send_timeout, 30000}, {send_timeout_close, true}]).
init({AptSupName, Port, ListenOpts}) ->
TcpOpts = ?getLValue(tcpOpts, ListenOpts, []),
LastTcpOpts = ntCom:mergeOpts(?DefTcpOpts, TcpOpts),
%% Don't active the socket...
case gen_tcp:listen(Port, lists:keystore(active, 1, LastTcpOpts, {active, false})) of
case gen_tcp:listen(Port, lists:keystore(active, 1, TcpOpts, {active, false})) of
{ok, LSock} ->
AptCnt = ?getLValue(aptCnt, ListenOpts, ?AptCnt),
ConMod = ?getLValue(conMod, ListenOpts, undefined),
@ -103,23 +102,22 @@ init({AptSupName, Port, ListenOpts}) ->
startAcceptor(AptCnt, LSock, AptSupName, ConMod, ConArgs),
{ok, {LAddr, LPort}} = inet:sockname(LSock),
% ?ntInfo("success to listen on ~p ~n", [Port]),
{ok, #state{listenAddr = LAddr, listenPort = LPort, lSock = LSock, opts = [{acceptors, AptCnt}, {tcpOpts, LastTcpOpts}]}};
{ok, #state{listenAddr = LAddr, listenPort = LPort, lSock = LSock, opts = [{acceptors, AptCnt}, {tcpOpts, TcpOpts}]}};
{error, Reason} ->
?ntErr("failed to listen on ~p - ~p (~s) ~n", [Port, Reason, inet:format_error(Reason)]),
{stop, Reason}
end.
handleMsg({'$gen_call', From, miOpts}, #state{opts = Opts} = State) ->
handleMsg({'$gen_call', From, miOpts}, #state{opts = Opts} = _State) ->
gen_server:reply(From, Opts),
{okpan>, State};
kpS;
handleMsg({'$gen_call', From, miListenPort}, #state{listenPort = LPort} = State) ->
handleMsg({'$gen_call', From, miListenPort}, #state{listenPort = LPort} = _State) ->
gen_server:reply(From, LPort),
{okpan>, State};
kpS;
handleMsg(_Msg, State) ->
?ntErr("~p unexpected info: ~p ~n", [?MODULE, _Msg]),
{noreply, State}.
handleMsg(_Msg, _State) ->
kpS.
terminate(_Reason, #state{lSock = LSock, listenAddr = Addr, listenPort = Port}) ->
?ntInfo("stopped on ~s:~p ~n", [inet:ntoa(Addr), Port]),

+ 5
- 4
src/tcp/ntTcpAcceptor.erl View File

@ -62,6 +62,8 @@ loop(Parent, State) ->
exit(Reason);
Msg ->
case handleMsg(Msg, State) of
kpS ->
loop(Parent, State);
{ok, NewState} ->
loop(Parent, NewState);
{stop, Reason} ->
@ -108,7 +110,7 @@ handleMsg({inet_async, LSock, Ref, Msg}, #state{lSock = LSock, ref = Ref, conMod
{stop, error_ret}
catch
E:R:S ->
?ntErr("CliMod:newConnect crash: ~p:~p~n~p~n ~n ", [E, R, S]),
?ntErr("ConMod:newConn crash: ~p:~p~n~p~n ~n ", [E, R, S]),
newAsyncAccept(LSock, State)
end;
{error, closed} ->
@ -118,9 +120,8 @@ handleMsg({inet_async, LSock, Ref, Msg}, #state{lSock = LSock, ref = Ref, conMod
?ntErr("listen sock error ~p~n", [Reason]),
{stop, {lsock, Reason}}
end;
handleMsg(_Msg, State) ->
?ntErr("~p receive unexpected ~p msg: ~p", [?MODULE, self(), _Msg]),
{ok, State}.
handleMsg(_Msg, _State) ->
kpS.
newAsyncAccept(LSock, State) ->
case prim_inet:async_accept(LSock, -1) of

+ 10
- 12
src/tcp/ntTcpListener.erl View File

@ -73,6 +73,8 @@ loop(Parent, State) ->
terminate(Reason, State);
Msg ->
case handleMsg(Msg, State) of
kpS ->
loop(Parent, State);
{ok, NewState} ->
loop(Parent, NewState);
{stop, Reason} ->
@ -89,13 +91,10 @@ loop(Parent, State) ->
, opts :: [listenOpt()]
}).
-define(DefTcpOpts, [{nodelay, true}, {reuseaddr, true}, {send_timeout, 30000}, {send_timeout_close, true}]).
init({AptSupName, Port, ListenOpts}) ->
TcpOpts = ?getLValue(tcpOpts, ListenOpts, []),
LastTcpOpts = ntCom:mergeOpts(?DefTcpOpts, TcpOpts),
%% Don't active the socket...
case gen_tcp:listen(Port, lists:keystore(active, 1, LastTcpOpts, {active, false})) of
case gen_tcp:listen(Port, lists:keystore(active, 1, TcpOpts, {active, false})) of
{ok, LSock} ->
AptCnt = ?getLValue(aptCnt, ListenOpts, ?AptCnt),
ConMod = ?getLValue(conMod, ListenOpts, undefined),
@ -103,23 +102,22 @@ init({AptSupName, Port, ListenOpts}) ->
startAcceptor(AptCnt, LSock, AptSupName, ConMod, ConArgs),
{ok, {LAddr, LPort}} = inet:sockname(LSock),
% ?ntInfo("success to listen on ~p ~n", [Port]),
{ok, #state{listenAddr = LAddr, listenPort = LPort, lSock = LSock, opts = [{acceptors, AptCnt}, {tcpOpts, LastTcpOpts}]}};
{ok, #state{listenAddr = LAddr, listenPort = LPort, lSock = LSock, opts = [{acceptors, AptCnt}, {tcpOpts, TcpOpts}]}};
{error, Reason} ->
?ntErr("failed to listen on ~p - ~p (~s) ~n", [Port, Reason, inet:format_error(Reason)]),
{stop, Reason}
end.
handleMsg({'$gen_call', From, miOpts}, #state{opts = Opts} = State) ->
handleMsg({'$gen_call', From, miOpts}, #state{opts = Opts} = _State) ->
gen_server:reply(From, Opts),
{okpan>, State};
kpS;
handleMsg({'$gen_call', From, miListenPort}, #state{listenPort = LPort} = State) ->
handleMsg({'$gen_call', From, miListenPort}, #state{listenPort = LPort} = _State) ->
gen_server:reply(From, LPort),
{okpan>, State};
kpS;
handleMsg(_Msg, State) ->
?ntErr("~p unexpected info: ~p ~n", [?MODULE, _Msg]),
{noreply, State}.
handleMsg(_Msg, _State) ->
kpS.
terminate(_Reason, #state{lSock = LSock, listenAddr = Addr, listenPort = Port}) ->
?ntInfo("stopped on ~s:~p ~n", [inet:ntoa(Addr), Port]),

+ 2
- 2
src/test/utPPtANSrv.erl View File

@ -5,7 +5,7 @@
-include("eNet.hrl").
-include("ntCom.hrl").
-export([newConn/1]).
-export([newConn/2]).
-export([start/2, start_link/1]).
@ -33,7 +33,7 @@ start(Name, Port) ->
start_link(Sock) ->
{ok, proc_lib:spawn_link(?MODULE, init, [Sock])}.
newConn(Sock) ->
newConn(Sock, _) ->
start_link(Sock).
init(_Sock) ->

+ 2
- 2
src/test/utSslANSrv.erl View File

@ -5,7 +5,7 @@
-include("eNet.hrl").
-include("ntCom.hrl").
-export([newConn/1]).
-export([newConn/2]).
-export([start/2, start_link/1]).
@ -33,7 +33,7 @@ start(Name, Port) ->
start_link(Sock) ->
{ok, proc_lib:spawn_link(?MODULE, init, [Sock])}.
newConn(Sock) ->
newConn(Sock, _) ->
start_link(Sock).
init(_Sock) ->

+ 2
- 2
src/test/utTcpAFSrv.erl View File

@ -4,7 +4,7 @@
-include("eNet.hrl").
%% start
-export([newConn/1]).
-export([newConn/2]).
-export([start/2, start_link/1]).
@ -27,7 +27,7 @@ start(Name, Port) ->
start_link(Sock) ->
{ok, proc_lib:spawn_link(?MODULE, init, [Sock])}.
newConn(Sock) ->
newConn(Sock, _) ->
start_link(Sock).
init(_Sock) ->

+ 16
- 14
src/udp/ntUdpSrv.erl View File

@ -73,6 +73,8 @@ loop(Parent, State) ->
terminate(Reason, State);
Msg ->
case handleMsg(Msg, State) of
kpS ->
loop(Parent, State);
{ok, NewState} ->
loop(Parent, NewState);
{stop, Reason} ->
@ -115,7 +117,7 @@ handleMsg({udp, Sock, IP, InPortNo, AncData, Packet}, #state{oSock = Sock, conMo
case maps:find({IP, InPortNo}, Peers) of
{ok, Pid} ->
Pid ! {datagram, self(), Packet},
{noreply, State};
kpS;
error ->
try ConMod:datagram(Sock, IP, InPortNo, AncData, Packet) of
{ok, Pid} ->
@ -124,18 +126,18 @@ handleMsg({udp, Sock, IP, InPortNo, AncData, Packet}, #state{oSock = Sock, conMo
{noreply, addPeer({IP, InPortNo}, Pid, State)};
{error, Reason} ->
?ntErr("Failed to start udp channel for peer ~p ~p reason: ~p", [IP, InPortNo, Reason]),
{noreply, State}
kpS
catch
C:R:S ->
?ntErr("Exception occurred when starting udp channel for peer ~p ~p, reason: ~p", [IP, InPortNo, {C, R, S}]),
{noreply, State}
kpS
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},
{okpan>, State};
kpS;
error ->
try ConMod:datagram(Sock, IP, InPortNo, undefined, Packet) of
{ok, Pid} ->
@ -144,16 +146,16 @@ handleMsg({udp, Sock, IP, InPortNo, Packet}, #state{oSock = Sock, conMod = ConMo
{ok, addPeer({IP, InPortNo}, Pid, State)};
{error, Reason} ->
?ntErr("Failed to start udp channel for peer ~p ~p reason: ~p", [IP, InPortNo, Reason]),
{okpan>, State}
kpS
catch
C:R:S ->
?ntErr("Exception occurred when starting udp channel for peer ~p ~p, reason: ~p", [IP, InPortNo, {C, R, S}]),
{okpan>, State}
kpS
end
end;
handleMsg({udp_passive, Sock}, #state{oSock = Sock} = State) ->
inet:setopts(Sock, [{active, 100}]),
{okpan>, State};
kpS;
handleMsg({'DOWN', _MRef, process, DownPid, _Reason}, State = #state{peers = Peers}) ->
peerDown(DownPid, Peers, State);
@ -161,17 +163,17 @@ handleMsg({'DOWN', _MRef, process, DownPid, _Reason}, State = #state{peers = Pee
handleMsg({'EXIT', DownPid, _Reason}, State = #state{peers = Peers}) ->
peerDown(DownPid, Peers, State);
handleMsg({'$gen_call', From, miOpts}, #state{opts = Opts} = State) ->
handleMsg({'$gen_call', From, miOpts}, #state{opts = Opts} = _State) ->
gen_server:reply(From, Opts),
{okpan>, State};
kpS;
handleMsg({'$gen_call', From, miOpenPort}, #state{listenPort = LPort} = State) ->
handleMsg({'$gen_call', From, miOpenPort}, #state{listenPort = LPort} = _State) ->
gen_server:reply(From, LPort),
{okpan>, State};
kpS;
handleMsg(_Msg, State) ->
handleMsg(_Msg, _State) ->
?ntErr("~p unexpected info: ~p ~n", [?MODULE, _Msg]),
{okpan>, State}.
kpS.
terminate(_Reason, #state{oSock = LSock, listenAddr = Addr, listenPort = Port}) ->
?ntInfo("stopped on ~s:~p ~n", [inet:ntoa(Addr), Port]),
@ -197,5 +199,5 @@ peerDown(DownPid, Peers, State) ->
{ok, Peer} ->
{ok, delPeer(Peer, DownPid, State)};
error ->
{okpan>, State}
kpS
end.

Loading…
Cancel
Save