From 53988be5ee922fff61dca22d80eb506e3188a363 Mon Sep 17 00:00:00 2001 From: Loic Nageleisen Date: Tue, 19 Sep 2017 13:48:45 +0200 Subject: [PATCH] Close listening socket outside of start --- lib/nanoserve.rb | 7 ++++--- test/test_nanoserve.rb | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/nanoserve.rb b/lib/nanoserve.rb index c464766..cbc098b 100644 --- a/lib/nanoserve.rb +++ b/lib/nanoserve.rb @@ -11,14 +11,15 @@ module NanoServe @port = port @block = block @thr = nil + @srv = nil end def start(y) - server = TCPServer.new(@port) + @srv = TCPServer.new(@port) @thr = Thread.new do Thread.abort_on_exception = true - conn = server.accept + conn = @srv.accept port, host = conn.peeraddr[1, 2] client = "#{host}:#{port}" logger.debug "#{client}: connected" @@ -38,12 +39,12 @@ module NanoServe yield @thr.join - server.close y end def stop + @srv.close @thr.kill end diff --git a/test/test_nanoserve.rb b/test/test_nanoserve.rb index f5bf694..9bbded2 100644 --- a/test/test_nanoserve.rb +++ b/test/test_nanoserve.rb @@ -24,6 +24,8 @@ class TestNanoServe < MiniTest::Test s.close end + r.stop + assert_equal(uuid, buf) end @@ -50,6 +52,8 @@ class TestNanoServe < MiniTest::Test Net::HTTP.get(uri + "test?uuid=#{uuid}") end + r.stop + assert_equal(uuid, req.first.params['uuid']) end end