summaryrefslogtreecommitdiff
path: root/test_server.rb
diff options
context:
space:
mode:
authorMiklos Fazekas <mfazekas@szemafor.com>2015-01-16 08:57:55 +0100
committerMiklos Fazekas <mfazekas@szemafor.com>2015-01-16 08:57:55 +0100
commit19556fcb5903366ca0210727b45a1f996e2fa469 (patch)
treef09f299b3959ad300a65d40f22bc0adfd5aa15c8 /test_server.rb
parentbe3773be239a44244a1bfedcbe84d032d76f4afa (diff)
downloadnet-ssh-server_side.tar.gz
Added integrations test refactored out channel extensionsserver_side
Diffstat (limited to 'test_server.rb')
-rw-r--r--test_server.rb20
1 files changed, 5 insertions, 15 deletions
diff --git a/test_server.rb b/test_server.rb
index 7f2926d..40f5d52 100644
--- a/test_server.rb
+++ b/test_server.rb
@@ -3,6 +3,7 @@ require 'net/ssh'
require 'net/ssh/server'
require 'net/ssh/server/keys'
require 'net/ssh/transport/server_session'
+require 'net/ssh/server/channel_extensions'
require 'socket'
require 'ostruct'
require 'byebug'
@@ -10,7 +11,6 @@ require 'byebug'
PORT = 2000
Thread.abort_on_exception=true
-
logger = Logger.new(STDERR)
logger.level = Logger::DEBUG
@@ -18,13 +18,8 @@ puts "Setting up server keys..."
server_keys = Net::SSH::Server::Keys.new(logger: logger, server_keys_directory: '.')
server_keys.load_or_generate
-def send_reply(channel,result)
- msg_type = result ? Net::SSH::Connection::Constants::CHANNEL_SUCCESS : Net::SSH::Connection::Constants::CHANNEL_FAILURE
- msg = Net::SSH::Buffer.from(:byte, msg_type, :long, channel.remote_id)
- channel.connection.send_message(msg)
-end
-
puts "Listening on port #{PORT}..."
+
Thread.start do
server = TCPServer.new PORT
header = []
@@ -40,6 +35,7 @@ Thread.start do
session = Net::SSH::Transport::ServerSession.new(client,options)
session.run_loop do |connection|
connection.on_open_channel('session') do |session, channel, packet|
+ channel.extend(Net::SSH::Server::ChannelExtensions)
channel.on_request 'shell' do |channel,data|
command = data.read_string
puts "received command:#{command}"
@@ -49,20 +45,14 @@ Thread.start do
#channel.process
command = data.read_string
if opt[:want_reply]
- send_reply(channel,true)
+ channel.send_reply(true)
opt[:want_reply] = false
end
sleep 2
puts "received command:#{command}"
channel.send_data "command :#{command} reply: 42\n"
- channel.eof!
- channel._flush
channel.send_channel_request('exit-status',:long,42)
- #channel.send_channel_request('eow@openssh.com')
- channel.close
- channel.on_eof { puts "on eof" ; channel.close }
- #channel.close
- #channel.send_channel_request('command-from-client', :string, "data-from-client")
+ channel.send_eof_and_close
end
end
end