%% %% %CopyrightBegin% %% %% Copyright Ericsson AB 2018-2018. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. %% You may obtain a copy of the License at %% %% http://www.apache.org/licenses/LICENSE-2.0 %% %% Unless required by applicable law or agreed to in writing, software %% distributed under the License is distributed on an "AS IS" BASIS, %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %% See the License for the specific language governing permissions and %% limitations under the License. %% %% %CopyrightEnd% %% -module(socket_test_ttest_tcp_gen). -export([ accept/1, accept/2, active/2, close/1, connect/2, controlling_process/2, listen/0, listen/1, peername/1, port/1, recv/2, recv/3, send/2, shutdown/2, sockname/1 ]). %% ========================================================================== %% getopt(Sock, Opt) when is_atom(Opt) -> %% case inet:getopts(Sock, [Opt]) of %% {ok, [{Opt, Value}]} -> %% {ok, Value}; %% {error, _} = ERROR -> %% ERROR %% end. %% setopt(Sock, Opt, Value) when is_atom(Opt) -> %% inet:setopts(Sock, [{Opt, Value}]). %% ========================================================================== accept(Sock) -> case gen_tcp:accept(Sock) of {ok, NewSock} -> {ok, NewSock}; {error, _} = ERROR -> ERROR end. accept(Sock, Timeout) -> case gen_tcp:accept(Sock, Timeout) of {ok, NewSock} -> {ok, NewSock}; {error, _} = ERROR -> ERROR end. active(Sock, NewActive) when (is_boolean(NewActive) orelse (NewActive =:= once)) -> inet:setopts(Sock, [{active, NewActive}]). close(Sock) -> gen_tcp:close(Sock). connect(Addr, Port) -> Opts = [binary, {packet, raw}, {active, false}, {buffer, 32*1024}], case gen_tcp:connect(Addr, Port, Opts) of {ok, Sock} -> {ok, Sock}; {error, _} = ERROR -> ERROR end. controlling_process(Sock, NewPid) -> gen_tcp:controlling_process(Sock, NewPid). %% Create a listen socket listen() -> listen(0). listen(Port) when is_integer(Port) andalso (Port >= 0) -> Opts = [binary, {ip, {0,0,0,0}}, {packet, raw}, {active, false}, {buffer, 32*1024}], case gen_tcp:listen(Port, Opts) of {ok, Sock} -> {ok, Sock}; {error, _} = ERROR -> ERROR end. peername(Sock) -> inet:peername(Sock). port(Sock) -> inet:port(Sock). recv(Sock, Length) -> gen_tcp:recv(Sock, Length). recv(Sock, Length, Timeout) -> gen_tcp:recv(Sock, Length, Timeout). send(Sock, Data) -> gen_tcp:send(Sock, Data). shutdown(Sock, How) -> gen_tcp:shutdown(Sock, How). sockname(Sock) -> inet:sockname(Sock). %% ==========================================================================