From e9c6dceb7c600fd313111cc94e7ff600f648b7b9 Mon Sep 17 00:00:00 2001 From: SisMaker <1713699517@qq.com> Date: Wed, 19 Jan 2022 17:52:25 +0800 Subject: [PATCH] =?UTF-8?q?ft:=20=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/proxyPt/ntPptAcceptor.erl | 9 +++++---- src/proxyPt/ntPptListener.erl | 22 ++++++++++------------ src/ssl/ntSslAcceptor.erl | 9 +++++---- src/ssl/ntSslListener.erl | 22 ++++++++++------------ src/tcp/ntTcpAcceptor.erl | 9 +++++---- src/tcp/ntTcpListener.erl | 22 ++++++++++------------ src/test/utPPtANSrv.erl | 4 ++-- src/test/utSslANSrv.erl | 4 ++-- src/test/utTcpAFSrv.erl | 4 ++-- src/udp/ntUdpSrv.erl | 30 ++++++++++++++++-------------- 10 files changed, 67 insertions(+), 68 deletions(-) diff --git a/src/proxyPt/ntPptAcceptor.erl b/src/proxyPt/ntPptAcceptor.erl index 9c6b233..ccfa255 100644 --- a/src/proxyPt/ntPptAcceptor.erl +++ b/src/proxyPt/ntPptAcceptor.erl @@ -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 diff --git a/src/proxyPt/ntPptListener.erl b/src/proxyPt/ntPptListener.erl index f7bb32a..a12a1ca 100644 --- a/src/proxyPt/ntPptListener.erl +++ b/src/proxyPt/ntPptListener.erl @@ -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), - {ok, 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), - {ok, 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]), diff --git a/src/ssl/ntSslAcceptor.erl b/src/ssl/ntSslAcceptor.erl index a9847e6..40b34c7 100644 --- a/src/ssl/ntSslAcceptor.erl +++ b/src/ssl/ntSslAcceptor.erl @@ -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 diff --git a/src/ssl/ntSslListener.erl b/src/ssl/ntSslListener.erl index 2e71854..677af64 100644 --- a/src/ssl/ntSslListener.erl +++ b/src/ssl/ntSslListener.erl @@ -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), - {ok, 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), - {ok, 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]), diff --git a/src/tcp/ntTcpAcceptor.erl b/src/tcp/ntTcpAcceptor.erl index b881178..29ed002 100644 --- a/src/tcp/ntTcpAcceptor.erl +++ b/src/tcp/ntTcpAcceptor.erl @@ -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 diff --git a/src/tcp/ntTcpListener.erl b/src/tcp/ntTcpListener.erl index cd93876..2c4c410 100644 --- a/src/tcp/ntTcpListener.erl +++ b/src/tcp/ntTcpListener.erl @@ -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), - {ok, 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), - {ok, 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]), diff --git a/src/test/utPPtANSrv.erl b/src/test/utPPtANSrv.erl index ad3670a..d0b8e85 100644 --- a/src/test/utPPtANSrv.erl +++ b/src/test/utPPtANSrv.erl @@ -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) -> diff --git a/src/test/utSslANSrv.erl b/src/test/utSslANSrv.erl index 36fe3fa..6319642 100644 --- a/src/test/utSslANSrv.erl +++ b/src/test/utSslANSrv.erl @@ -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) -> diff --git a/src/test/utTcpAFSrv.erl b/src/test/utTcpAFSrv.erl index 12547a3..923a358 100644 --- a/src/test/utTcpAFSrv.erl +++ b/src/test/utTcpAFSrv.erl @@ -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) -> diff --git a/src/udp/ntUdpSrv.erl b/src/udp/ntUdpSrv.erl index c30611f..37e75c7 100644 --- a/src/udp/ntUdpSrv.erl +++ b/src/udp/ntUdpSrv.erl @@ -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}, - {ok, 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]), - {ok, State} + kpS catch C:R:S -> ?ntErr("Exception occurred when starting udp channel for peer ~p ~p, reason: ~p", [IP, InPortNo, {C, R, S}]), - {ok, State} + kpS end end; handleMsg({udp_passive, Sock}, #state{oSock = Sock} = State) -> inet:setopts(Sock, [{active, 100}]), - {ok, 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), - {ok, 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), - {ok, State}; + kpS; -handleMsg(_Msg, State) -> +handleMsg(_Msg, _State) -> ?ntErr("~p unexpected info: ~p ~n", [?MODULE, _Msg]), - {ok, 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 -> - {ok, State} + kpS end. \ No newline at end of file