aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssh/test/ssh_peername_sockname_server.erl
diff options
context:
space:
mode:
authorMicael Karlberg <[email protected]>2013-11-13 17:20:31 +0100
committerMicael Karlberg <[email protected]>2013-11-13 17:20:31 +0100
commit8bcd32dfceec3b4381747046b82eec42487c7518 (patch)
treecca7f396b6b3bd98950e5fc7713dfc9988633b10 /lib/ssh/test/ssh_peername_sockname_server.erl
parentdc6f086a0751677da8724df397a062ab154f34cb (diff)
parentb166476d2674c056ed5f737170074e71fbdc4bfd (diff)
downloadotp-8bcd32dfceec3b4381747046b82eec42487c7518.tar.gz
otp-8bcd32dfceec3b4381747046b82eec42487c7518.tar.bz2
otp-8bcd32dfceec3b4381747046b82eec42487c7518.zip
Merge branch 'bmk/snmp/handling_corrupt_atl_when_converting/r16/OTP-11453' into bmk/snmp/snmp425_integration
Conflicts: lib/snmp/src/misc/snmp_log.erl
Diffstat (limited to 'lib/ssh/test/ssh_peername_sockname_server.erl')
-rw-r--r--lib/ssh/test/ssh_peername_sockname_server.erl56
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/ssh/test/ssh_peername_sockname_server.erl b/lib/ssh/test/ssh_peername_sockname_server.erl
new file mode 100644
index 0000000000..7664f3ee25
--- /dev/null
+++ b/lib/ssh/test/ssh_peername_sockname_server.erl
@@ -0,0 +1,56 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2008-2013. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+
+%%
+
+-module(ssh_peername_sockname_server).
+
+%% The purpose of this module is to perform tests on the server side of an
+%% ssh connection.
+
+
+-behaviour(ssh_daemon_channel).
+-record(state, {}).
+
+-export([init/1, handle_msg/2, handle_ssh_msg/2, terminate/2]).
+
+init([]) ->
+ {ok, #state{}}.
+
+handle_msg({ssh_channel_up, ChannelId, ConnectionManager}, State) ->
+ ssh_connection:send(ConnectionManager, ChannelId,
+ term_to_binary(
+ {catch ssh:peername(ConnectionManager),
+ catch ssh:sockname(ConnectionManager)
+ })
+ ),
+ {ok, State}.
+
+handle_ssh_msg({ssh_cm, _, {exit_signal, ChannelId, _, _Error, _}},
+ State) ->
+ {stop, ChannelId, State};
+
+handle_ssh_msg({ssh_cm, _, {exit_status, ChannelId, _Status}}, State) ->
+ {stop, ChannelId, State};
+
+handle_ssh_msg({ssh_cm, _CM, _}, State) ->
+ {ok, State}.
+
+terminate(_Reason, _State) ->
+ ok.